The goal for this project was to build it with mostly parts that I had in my lab instead of designing or buying something special so for this reason some hacking had to be done.

tinyIMU v2 inertial measurement unit

tinyIMU V2 is a sensor unit useful for building quadrocopters or other platforms where you need to know the orientation of the given platform. It uses the MMA7455 3-axis accelerometer from Freescale with 10 bit output and the ITG3200 3-axis gyroscope from Invensense with 16 bit output. The PCB was designed to be as small as possible to save weight and space (both important parameters when flying). There is only a 4 pin header present on the PCB for power and I2C lines. The schematics and PCB was designed in Eagle and I’m releasing it under CC BY-NC-SA 3.0 (download link bellow).

This sensor unit has already been used successfully with AeroQuad software and its just a matter of having the right drivers for the sensors to use it with other platforms as well.

here is a video with tinyIMU connected to AeroQuad:
You need to a flashplayer enabled browser to view this YouTube video

tinyIMU V2 schematics + PCB

I recently ordered some samples from TI, which included the TMP275 digital sensor. The sensor has some nice features which I quote from it’s datasheet:

The TMP275 is a 0.5°C accurate, Two-Wire, serial output temperature sensor available in an MSOP-8 or an SO-8 package. The TMP275 is capable of reading temperatures with a resolution of 0.0625°C. The TMP275 is SMBus-compatible and allows up to eight devices on one bus. It is ideal for extended temperature measurement in a variety of communication, computer, consumer, environmental, industrial, and instrumentation applications. The TMP275 is specified for operation over a temperature range of −40°C to +125°C.

The easiest way to get the temperature out of the TMP275 seemed to be I2C. So I started by designing a board which has all the components needed: the sensor, an atmega8 brain, and some other components needed for the display and for powering the board. The display is a 4 digit 7 segment display from kingbright product code CA56-12GWA. As for the display part of the board, I used PNP transistors on the common anodes and resistors on the segments to limit the current draw on the atmega’s pins. The transistors are not current limited so the display will alaways light-up the same no matter how many segments are turned on.

TMP275 digital thermometer board

For the supply part of the board, I choose to make it portable and power it from a 9V battery, so I needed to use a voltage regulator. The choice was the good old 7805 because it’s cheap and easy to find.

I2C is a pretty common protocol so various libraries can be found on the web. I chose Peter Fleury’s I2C library because it was very well documented. The only external components needed by the TMP275 are a bypass capacitor between VCC and GND and two pull-up resistors required on SDA and SCL lines.

All the I2C stuff is handled by the library, so I only had to write a couple of lines of code to get the temperature out of the sensor:

 i2c_start_wait(sensor+I2C_WRITE);	// set device address and write mode
 i2c_write(0x0);			// write pointer register 00000000 to select temp register
 i2c_rep_start(sensor+I2C_READ);	//set device address and read mode
 temp_high=i2c_readAck();		// Read high byte of temperature
 temp_low=i2c_readNak();		// Read low byte of temperature

After reading the temperature from the sensor I had to display it on the 4 digit display. For that I had to write a display macro, which figures out the numbers and how to display them, basically I used software multiplexing. I even tested it on negative temperatures by placing the sensor in my fridge :). The readout was correct because I checked with another thermometer.

These new type of digital sensors are great, because you don’t have to worry about analog to digital conversion, all the  ADC is done inside the sensor. I mainly started working with this sensor because I want to incorporate a temperature reading function into a future project. Now that this part is done, is time to move onto the next one, ultrasonic range finder, which I’m guessing wont be as easy as the temperature reading.

I tried to comment every line of my code, but if you feel you don’t understand something, just post a comment and I’ll reply.

June 17th, 2009

Open Source Camera Axe

Open Source Camera Axe

Every so often you can find yourself unable to take a picture, because human reflexes can’t always handle the timing required in some circumstances. From wildlife photos of animals or lightning to various fast moving objects like bullets or even splashes or balloons popping, one can encounter many situations where hand-eye coordination or shooting skills just aren’t enough to get the job done. And here is where something like the Camera Axe comes into play.

This is an open source project, both hardware and software, that controls a camera or a flash, activating it at just the right time. The brain of the device is the ATmega328 microcontroller with Arduino Bootloader. The Camera Axe possesses a Flash Trigger to activate the flash with, a Camera Trigger for the camera itself, a Sound Sensor and a Light Sensor. The sound sensor is built using an electret microphone and its sensitivity can be adjusted with the potentiometer on the PCB. The light sensor is made with a photo transistor that detects both visible light and IR. The Camera Axe also has a RF receiver so it can be triggered remotely from about 200ft.

I have a lot of respect for open source stuff and this project makes no exception. You can find a detailed component list, schematics, pictures of the PCB, the enclosure and more pictures taken using the Camera Axe, as well as code and information about getting the board in the link below. The part list has detailed pricing for every component used, from voltage regulator and microcontroller to bolts and nuts and the whole thing costs about 120 dollars for a single Camera Axe, which is really cheap for what it can do.

A very interesting, fun, useful and detailed project, the Open Source Camera Axe is another tool for the photography enthusiast that is worth every penny. A demo video is also available in the link.

Open Source Camera Axe: [Link][via]

Open Source Camera Axe
March 12th, 2009

Car temperature gauge

Car temperature gauge

This project was send to us by Bob Ashlock, who is rightfully proud of his achievement, he made a temperature gauge with the LM34 sensor and PIC16F684. He inspired he’s project from this PIC16F84 thermometer that was posted here on youritronics. The sensor has 10mV/F output, not to be mistaken with the LM35 which has 10mV/C output, but the firmware can be easily adapted.

The source code  is well documented, but there is room for optimization, yet taking into consideration that this is Bob’s first project and he learned by himself its a great code. The outcome looks very nice and has its practical use, he used to measure the air and oil temperature in his 66′ Porsche. In the download you have the schematic and source code written in C.

Great job, and thanks for sharing with us your project and experience.

Car temperature gauge: [download]

© 2007-2011 YourITronics | Any logo, trademark and project represented here are property of their respective owners | Wordpress | Privacy Policy    RSS