Search This Blog

Saturday, 26 June 2010

Project: Burt - Assembly #2 Sensors

Onto my second video showing the next assembly step.
(Head to 1:25 in the video to skip to the breadboard layout)


I've assembled and added a ProtoShield, partially using atomicsalad's guide here. NOTE: The usual way to assemble this shield, is to have the female to male connectors aligned with the others in the Arduino stack. I have changed this so that they line up next to the breakboard, and used male headers to connect to the Duemilanove. The height of this shield, with a breadboard and breakout boards, ensures that this will be at the top of the Arduino stack. Which won't be a problem, getting too high will shift the centre of balance.

The breakboard nicely fits the Pololu Power Switch LV and Digital Dimensions accelerometer breakout boards.

The power switch was bought out of impulse. I only noticed during assembly that it is the LV version, Doh! It's too soon to work out the power consumption for the Arduino and sensors. So right now it's just there for testing. If the digital side of Burt can handle the 4x AAA 1.5V batteries, then I could use the switch (to power on the stack, and digitally power off the stack).

After years of practice and a lot of patience, my Google'ing turned up a fantastic practical discussion of accelerometers by Starlino.com - "Accelerometers reviewed and tested. Part 1: DE-ACCM2G (ADXL322), LIS244AL, Pololu MMA7260QT".

I bought the DE-ACCM2G board a few years back. Digital Dimensions have updated that product to a newer MEMS part since then. But thankfully for me I have the ADXL322 chip on my DE-ACCM2G board which fits in with Starlino's testing.

For those that wish to dig further into the depths of MEMS response and filter issues, Starlino has a follow up post entitled "Accelerometer benchmarks. Part 2: LIS331AL and DE-ACCM2G (ADXL322). Filters, amplifiers and vibration response".

I've uploaded Work-In-Progress (WIP) PDE code that grabs data back from the ADXL322. (See Note 1 below for SVN version numbering)

Seeing how stable the data is, backed up with Starlino's analysis, was wonderful to see. After working on a few Nintendo Wii game contracts, I was familiar with analysing the ADXL322 feedback from the WiiMote. But comparing what I remember about the WiiMote data and the buffered data it certainly is poles apart. So much cleaner. It also will save valuable cycle time not having to implement software filtering for this signal line, Result! I can now just play with thresholding the values to deduce what the chassis thinks it's doing, in relation to what the motor controller thinks :)

Next up is the testing of the IR sensor. The Sharp IR sensor is hooked up to Analog pin 2 (Vo), Ground (Gnd), and 5V (Vcc) lines. More WIP PDE code (Note2) (and more here) (Note3) has been uploaded that tests the analog reading and converts it to an approximated distance value. The distance conversion function is described in this Oomlout.com PDF guide. Initial testing shows the sensor sending back sensible values. Further testing is required with the IR sensor data. I'm curious to see how software filtering compares to passive filtering. Theirs certainly spare breadboard lines that could be used for it.

Right, time to look at hooking up the motor controller...

Notes:
1 - SVN version r35 (at the time of writing)
2 - SVN version r38
3 - SVN version r40

Sunday, 13 June 2010

Project: Burt - Assembly #1 Chassis

Here's a short video showing the initial chassis assembly.



As mentioned in a previous blog entry, I have assembled the RobotShop Robot Rover for Arduino tank kit. I followed the excellent assembly video here.

On the front there is a Sharp IR sensor (GP2Y0A21YK). It's three wires (Vo, Gnd, Vcc) are fed underneath the chassis and emerge through a hole. These three wires have also had male jumper leads spliced onto them, to make it easier to test via a breadboard. The 9V battery wires, and four motor wires are also routed through the chassis.

From my first robot I have some standoffs that fit nicely to the servo mounting points on the chassis (Pololu standoffs). I also have the CMUCam3 assembled and ready for use, once the main robot is up and running. Note: that this won't be the final camera module. The CMUCam3 is just ready for me to use now. I need to get two cameras huddled on the front of Burt for stereo vision libraries.

Underneath the chassis the four 1.5V batteries and 9V battery are ideally placed to connect to the motor controller and micro controller.

On the left of the video is a hint as to the next update. The testing of the ProtoShield, IR sensor, PowerSwitch, and Accelerometer.