How to Make (Almost) Anything



Project 13: 9 Axis Sound Spatializing Helmet

Final Project: 9 Axis Sound Spatializing Helmet Integration: 2 designed boards with LSM303DLH + L3G4200DTR, designed Arduino 328p as a bus, to Ardiuno IDE, through Standard Firmata to MAX MSP (with Maxuino), to a firewire audio interface to speakers embedded in designed thermoformable/lasercut helmet) Reality Check -> Spiral Development FInal Project achieved-> Motion Activated Python Music Player Integration: 2 Motion Sensors, 1 Distance Sensor, Self designed Attiny44 as a bus controlling an audio library through Pygame.

A Short Diary of the process
Day -9: Attempt to design and mill the first sensor LSM303DLH 3D Compass and Accelerometer separately of the L3G4200DTR Gyroscope While in search of the right components, I start to study an off the shelf device, a Chinese Rip-off the the Sparkfun 9 Degrees of Freedom IMU. I started to write the code in Arduino IDE, following Amanda's advice, using the Pitch, Yaw, Roll equations. At the ight Baud rate! Finding corresponding Arduino libraries. Looking for a way to parse the string in Max MSP. Achievement: Getting YPR data through Serial communication. Trying to avoid IDE.

Day-8: Attempt to map in MAX MSP the audio effects corresponding to yaw, pitch, roll using Berkeley Ambisonics Max MSP environment . Picking speakers and amplifiers. Design of helmets based on head 3D scan in Rhino. Thinking of the best sound conductive option: Aluminium casting? Solid wood? Not aware of the time it actually requires!

Day-7: Struggling to get the Hello Arduino to function in IDE. With Thras, I learn about entering its parameters in the boards.txt and config. Since it was an Atmel 328P, I had to modify the frequence/clock rate to 200000Htz, protocol. IDE keeps making mistakes about which type of programmer to use: one more thing to enter manually! Finally achieving to upload Standard Firmata. I start to understand the difficulty of debugging when the sketches are only showing a small part of what is processed. The libraries problem: when it works it makes everything easy but when it doesn't because you don't use the whole commercial set-up that comes with it: very difficult to debug. Wondering if I could start a clean.C file? It still feels very dry compared to Python.

Day-6 Parallel development: trying to understand from Neil's simple accellerometer I understand what kind of string these raw data would come out like but noone can explain me the math x=x0+255.x1. But I understand I can scale any data in my python file.

Day-5: Time is missing to design the 9 axis in Eagle because merging the 2 schematics seems difficult. The perspective of reflowing... Trying to get my Hello Arduino to communicate though Firmate with Maxuino: serial ports show but that's all i can do. Then trying to read data from the Sparkfun 9Axis IMU but since I cant upload anything on it, it's useless: even though the raw live data are accessible in Terminal!

Day-4: Trying to connect Hello Arduino with the ADAFRUIT 9 axis ADABNO055. Reading the data sheet finally. And finding out that the Hello Arduino PA4 and PA5 usually used to read digital signals from the IMU (sending SCL clock and SDA data through I2C protocol). Can i redefine other pins to do the job? I need to come back to this and Neil's response about I2C bit banging. I want to try to see if I can start by extracting them and adding them to my sketch. The part about pull-up resistors requires more general reading. I will come back to this. Then look at how to use with Firmata non standard. Extract raw data from ADABNO055. But through UNO. The project is pointless then. Unsing protocols and libraries to bypass programming the boards in C. My goal was to bypass IDE.

Day-4: Thermoformed a helmet at CBA. Very fast but requires a sense of when the PETG is ready: not too hard/not too soft. More helmet designs now turning into a dodecahedron in sheer acrylic.

Day-3: Given I cannot connect Hello Arduino to that ADA absolute sensor because it has too many libraries and I could get raw data only through UNO, I have to completely change my plan. I start with the sensors I have. Now I understand there are sensors more complex than others. The Motion sensor just sends either 0 either 1, very slowly.The dodecahedron shape seems fit for cast concrete speakers

Day-2: Designing a nice tight foam mold in Rhino. Difficult because of the truncated dodecahedron, the undercuts and the liquid hydrostone/rockite but I find a trick. Modifying .c to run ATtiny as a bus based on Neil's Networks/bus.c. Use MISO and MOSI as new input PA6. Modifying. make file accordingly. Looking into Pyaudio, Pyglet.My Python crashes after Pyaudio.

Day-1: casting the speakers. Debugging Python with Thras.

D Day: A scaled down project but with a new pragmatic approach of building module by module, step by step and adding in complexity instead of the other way round. The spiral development. I just wished it hit me a week ago at least. I am going to miss the mad rhythm of that class. But I have to re explore each of theses weeks. And make my 9 axis sonic helmet.