Wednesday, May 30, 2007

Viper Ear: Sound Sensor for Microbric Viper Robot



Hello readers!

It’s been a long time since my last blog post. I was a bit busy and wasn’t getting time for blogging. Anyway, I did something cool and thought you people would like it. I’ve been working mostly with webcams over the last couple of months. I wanted to do something different for a little change and found sound a very interesting way of communicating with robots/computers. I created a sound sensor for my Microbric Viper Robot to give it the ability to respond to claps and whistles. I had to work extra hard on this project as things weren’t getting done as quickly as they usually do. The basic idea was that the sensor would send the PIC a logic 1 if the loudness of the sound coming in to the microphone exceeds a certain threshold and 0 otherwise. So, the sensor compares the microphone voltage to a reference voltage, and sends a logic 1 if the microphone output is higher (however, my signal is inverted because of the way I set up the op-amp as a comparator in my circuit). I had to experiment a lot on a breadboard before I had the circuit working perfectly. Here’s the final circuit I ended up with:




Since I didn’t have an oscilloscope at home, I turned my computer into an oscilloscope by using PC-Oscilloscope by Christian Zeitnitz. This software works with a sound card. It doesn’t have a fast sampling rate, but it’s good enough for testing this circuit. Parallel port based oscilloscopes are probably a little faster, but I didn’t have time to make one. In the oscilloscope, the signal from the sensor is a nice series of sharp spikes.



In the video, you’ll notice that I clap several times to control the robot. The first clap I make is only for initializing the clap counting algorithm in the program. After the first clap, the robot counts the number of times I clap my hands during an interval of 2-3 seconds. For example, if I clap once (after the initializing clap), the robot either moves forward or stops, depending on its state. If I clap twice, the robot turns left. Three claps make it turn right. Sometimes, the sensor also gets triggered from motor noise. So, I have to adjust the preset in the circuit to get things working perfectly. For extra reliability, the robot moves forward slowly to keep motor noise as low as possible. I think that programmatically distinguishing between a clap and motor noise or electronically filtering it out could also be worth a try.

This was a fairly simple project, but it took much longer than usual. Well, I have some more cool ideas for sound sensors. ;) Keep visiting!

Thursday, May 03, 2007

ASIMOV1



Colin has built a fully functional prototype for the Defcon competition, ASIMOV1, using two high torque, serial port controlled servos! He’s also got a cool circle detection code working which identifies white circles against a black background and shoots them down. Trust me, you wouldn't want to go in front of that robot in a white underwear! Check out the video above. You’ll also see a video clip in which ASIMOV1 is working as a simple laser guided gun! We’ve procured sponsorship from Pololu and ServoCity. Now, its time to get a more powerful shotgun airsoft gun for this autonomous robot! :)

Tuesday, April 24, 2007

Self Navigating Microbric Viper Robot



Hey folks,

After several days of hard work, I've managed to turn my Microbric Viper robot into an intelligent mobile robot, which moves around my house and avoids obstacles along its way! This time, I've mounted a laser based obstacle detector on top of a servo. So, now the robot is able to scan its surroundings before making a move. This project is still based on the principles working behind my autonomous RC car project. However, unlike the autonomous RC car, now more than half of the robot's brain resides within the robot itself. The part of the brain which lies in my computer makes only one crucial decision of whether it is safe to move forward or not. Based on this Yes/No decision, the robot decides how it should maneuver itself in order to avoid the obstacle in front of it. For example, if the computer detects an obstacle, it tells the robot to stop. Then, the robot starts scanning the area by rotating the obstacle detector. During the scan, if the computer finds a place with no obstacles in close range, it tells the robot to move forward again. Check out the video above to see it in action!



I've made some hardware modifications on the Viper robot for attaching the laser pointer. Watch the video below. In this video, I'm controlling the Viper robot (and its laser pointer), with a TV remote!:



The Iguanaworks IR transmitter I used in my previous project charges up a capacitor in order to provide a range of up to 10-meters. This time, however, I wasn't getting very good mileage with the computer I was using. So, I built my own parallel port controlled IR transmitter using a DVD remote which came with my PS2. :) I'm using a simple, parallel port controlled transistor switch for turning the remote on and off. On receiving any IR pulse from the computer, the robot takes action. Yeah, I admit that its a bit of an overkill, but I had to do it!



Wow..this project was kinda difficult! I really had to work hard on it and my ass is really burning.....AARRRRGGHHHH.....I feel tired..I think I'll be taking a short break. :)

Keep sending me your thoughts and ideas. I really appreciate them. In the meantime, I'll be enjoying life... :)


- Ashish

Thursday, April 05, 2007

Laser Following Microbric Viper Robot


I've been playing around with the Microbric Viper robot construction kit over the last couple of days. The Viper uses a Basic Atom microcontroller which can be programmed in BASIC. These robots can also be controlled with a computer using an IR transmitter. I'm using an Iguanaworks IR tranceiver which works with a serial port for my projects.

Well, since I love webcams, I decided to turn my Viper into a simple laser following robot! I've mounted a small wireless webcam on top of the robot. The webcam, transmits video to my computer. My computer determines the position of the laser in the camera's field of view and tries to move the robot towards it. As far as the software is concerned, I'm using a modified version of my Autonomous RC Car code. Watch the video above. I think the next step could be to mount the camera on a servo motor. That way, the robot would be able to scan its surroundings by rotating the camera! I also plan to try object tracking with this robot. That would be fun!