If you ever get the message “Entering programming mode.. FAILED!” while trying to program your AVR device don’t start messing with your MKII or upgrade its firmware 10 times or messing with the windows drivers like I did, cause that’s probably not the cause and you risk damaging you’re perfectly working MKII. As it turns out its just a faulty connection between the programmer and the target board. This is not likely to happen if you only use the programmer occasionally but I used it for like 50+ times a day and that meant inserting and removing the little 6pin connector a bunch of times. I removed the old 6pin connector, crimped a new one and its working again, so long live the MKII because it is a great tool.
You might be wondering why would I need to use that many times, well its because I’m working on this new project, a quadrocopter based on an atmega64. The microcontroller was chosen because I had a bunch around and ATMEL was kind enough to send me a ATAVRSBIN1 for my project.
The Inertial One System Board delivers a full 9 degree of freedom sensor platform comprising a 3 Axis Magnetometer from AKM (AK8975); 3 Axis Accelerometer from Bosch (BMA150) and a 3 Axis Gyroscope from InvenSense (ITG-3200) connected through an I2C interface.
At $54 its probably the most accessible 9DOF breakout out there and it comes with great sensors. Unfortunately I only managed to test and fly with the ITG-3200 gyro before I had a crash(you crash allot when developing from scratch a new firmware for a quad). Because of the crash a short-circuit happened somewhere on my board and it messed up the ATAVRSBIN1 sensors.
The ITG-3200 is a very good gyro with low noise so to replace the damaged ATAVRSBIN1 and to continue flying I got a wii motion plus which has the ITG3205 inside(its supposed to be just an OEM version of ITG3200). I haven’t done allot of testing with this new ITG3205 but I did notice some problems on the I2C bus, like sometimes the sensor does not respond , which is strange.(maybe the 400KHz freq is too high for the ITG3205 ?).
Anyway enough for now, I’ll post some updates on the project soon.
The past few months I’ve been working on the project for the Digilent Design Contest so I was quite busy. Together with my colleague Dragos I worked allot on this project but the results were great, our project the BlueRover won the 1st place so I say it was well worth it. First of all Digilent provided most of the parts needed for the project like :
The idea of a remote controlled rover excites almost every electronics student and when we heard about the Digilent contest we realized that we have the possibility to make such a project real. We decided to build our own remote controlled rover but it had to be different from what we’ve seen before. We came up with the idea that we could control the rover by using accelerometer data and that we could use a second accelerometer placed on the rover to sense the driving surface.
I handled the Rover with the sensors and my colleague took care of the control unit which is a Nokia E55 smartphone running a custom application in Python. The principle is simple the control unit sends acceleration data to the rover every 100ms thus controlling the movement of the rover. The rover reads data from the on-board sensors (CO, LPG, Temperature, Accelerometer, and Battery) and sends it to the control unit every 100ms. The control unit receives sensor data from the rover and reacts according to the rover accelerometer by vibrating on each bump sensed by the accelerometer. At the same time the control unit displays sensor data on screen.
I’m not going to go into details about the source code or the specs of all the boards we used in this project but you can find those in our report which I’m linking at the end of this article. I would like to add that Digilent RO did a great job in organizing this contest, it was a really great experience to be there and I’m sure we’ll be there next year too.
This article will be followed up by one dedicated to the BTM180 and BTM222 bluetooth modules from Rayson. Due to the lack of documentation on this module it was really difficult to get them working and I would like to share my experience for those who are facing the same issues.
Remember the Loving Little Braitenberg Vehicle I wrote about last month? Well, it seems that it has an even smaller little brother that only weighs 17 grams. And besides being in love with light, this itty-bitty Braitenberg vehicle can also show a different behaviour – being ‘aggressive’ towards it.
The vehicle has its own custom PCB and has the ATtiny25V from Atmel as its brain. Motion is acquired using two pager motors that run in one direction only, so the vehicle can only move forward. The parts list also include the MPC1700 3.3V voltage regulator, 2 light dependant resistors (LDRs), 2 2N3904 transistors, two 1N4148 diodes, rubber tubes that are used as wheels and a few resistors and capacitors. The whole device is powered by a small Lithium-polymer 3.7 V with 100mAh battery.
The Braitenberg vehicle is controlled using two inputs provided by the light sensors and PWM signal. The microcontroller was programmed removing the resistors, a rather unorthodox method, but it seems to be working. The vehicle being so small and its wheels even smaller, it should be tested on a clean surface. Also, if the surface diffuses the light you may experience some problems because the light sensors might be tricked by this.
All in all, another little Braitenberg Vehicle that is… well, adorable :). Schematics and demo video available in the link below.
One important parameter in robotics, one that can raise serious problems when trying to make things smaller, is the size of the parts you are using in building your robot. Because some indispensable pieces of hardware, like motors or batteries, have their sizes and even the smallest ones can be too big to use effectively, it is difficult to build a really small robot that incorporates all of these necesary elements. One solution to the problem could be to place these components outside of the robot.
This tiny robot uses an 18x Picaxemicrocontroller from Sparkfun, a micro serial servo controller, 2 high torque servos and 2 standard servos from Polulu and 2- 1/8″ x 1/16″ and 1- 1″x1″x1″ neodymium magnets (a detailed parts list is available in the link). The case of the robot is built from 3 metal cases made of .oo5″ thick phosphor bronze sheet metal and the volume of the robot measures less than 1/20 of a cubic inch. The robot only uses non-magnetic materials in its construction, including the glass bead wheels which are attached to brass pins on the bottom of the robot.
The reason for this is that the robot is activated using a rotating and spinning magnetic field. Two magnets are attached to an internal vertical pole that is bent to form one arm of the gripper. The robot can move forward and back, turn left or right, move the gripper, open or close it. The magnetic field is mounted on a CNC type machine and it can be moved and rotated horizontally or vertically. The four servo motors actuate the magnet which the robot follows. The serial servo controller receives commands from the Picaxemicrocontroller and sets the speed and direction of the motors.
Additional upgrades to the robot can include all kinds of sensors, like temperature or light sensors. An ingenious solution to a difficult problem, the Minuscule Gripper Robot could prove to be one step to microscopic robots of the future.
The Braitenberg vehicles, an idea developed by cyberneticist Valentino Braitenberg, are autonomous vehicles that move around using wheels and light sensors connected to them. Motion is acquired using only the interaction between the vehicle and its environment, without information processing or internal memory of any kind. Still, the Braitenberg vehicles appear to have intelligent behavior because they react to their surroundings, changing speed or direction accordingly. For that, they are regarded as the simplest form of behavior based artificial intelligence.
These vehicles can exhibit various types of behavior, similar to “aggression” or even “love”. Yes, that’s right, this is a tiny car that loves light. It follows the light source, turning after it and stopping when the light is powerful enough. The motors run at full speed if it’s dark and when light is detected by one of the sensors, the motor on that side is slowed down, so the vehicle changes its direction towards the light. When the light is bright enough, both motors are stopped and the vehicle remains still. If the light source is moved, the vehicle will start moving towards it as soon as the sensors detect the change of light intensity.
As most of these vehicles, this light-loving car is rather simple in design and hardware, using an Arduino Mini Pro on a 170 tie points Mini Breadboard, both from Sparkfun. For locomotion, the vehicle uses 2 HXT500 mini servos working at 3.7V from Hobbycity and 2 GM10 wheels from Solarbotics. Seeing is provided by 2 Light Dependant Resistors. Finally, the vehicle is powered by a 3.7V LiPo cell with 800 mAh from Sparkfun, which is enough for the Arduino Mini Pro working at 3.3V.
This has got to be one of the cutest cars I’ve seen, you can check out the demonstration video in the link.