A goal challenged robot

I was thinking about cockroaches after seeing some sort of program on the subject. It brought me on to thinking about insect locomotion and the way complex moves are carried out by creatures without a central nervous system. It then started to occur to me that the reason that these creatures (or any other for that matter) function is that there are a great deal of stimuli. An insect’s leg, for instance, has thousands of sensory organs to determine touch, temperature an various other external events that aren’t processed anywhere centrally. The thought the occurred to me about the notion of how a nervous system might work. Hence my latest, yet ugly, creation. The Roboto v2.

Roboto V2. from the front
This is the robot from the front. Currently it has 6 ultrasonic range sensors. This was the best thing to test my idea.

I had a frame for a robot I had already assembled and really didn’t get anywhere with it until I had this idea. Basically the idea is to have a matrix of variables, in this case a 10×10 struct array. Sensors are ‘bound’ to certain segments of the matrix. The matrix elements also communicate with the adjacent nodes to relay positive or negative stimuli. These stimuli make their way to the motor controls which are bound to other matrix nodes, in my case, elements several nodes away on opposite sides of the grid. The values expressed in the node are translated into motor movement.

Roboto V2.0 from the top, A tremendous jumble of wires.

What I have right now is functioning better than I hoped. I made close proximity ‘painful’ and moving forward ‘pleasurable’. A close proximity on the side will cause pain on the same side. Currently the robot seems to find open areas but doesn’t stay in them. I did fudge some things which are.

  • Output to the motors is kind of jury-rigged to disallow stopping by ensuring that at least one wheel is at maximum motion based on a weighted average.
  • the sensory input is weighted at the nodes. This was needed simply to make it function correctly.
  • I have a constant ‘pleasure’ value plugged in to make the robot strive to move forward. otherwise it would probably just stay in one place.
Here’s a video of it in action, doesn’t do a lot but I think it’s neat because I can’t predict it’s reaction despite the fact that it’s perfectly logical.

Well, I’m going to try some other things and add more stimuli like IR sensors, compass, accelerometer and a gyro. We’ll see if I can get something interesting out of it. An in case anyone is wondering about the build here’s a point by point list of what I used.

  • Arduino Mega2560
  • A robot chassis that I bought off EBay. It’s not bad.
  • Built the motor driver board myself with an SN75441one and a 5A linear LDO reg.
  • 7.4v LiPo battery, 850mah for direct drive to the motors
  • A little cheap bread board
  • and LED-KEY module, based off the TM1638, very handy modules
  • lots of male to female wires!
Anyways, Let’s see how it goes.

Sky-Tracker, so far, so good.

For the last few days I’ve been working on the electrical portion of an astrophotography mount for my camera. The mechanical portions were built by my father and I’m handling the electronic portion of the device. Basically, for those who don’t know, this device is designed to allow one to take long exposures of the stars without them blurring due to them moving across the sky. This device moves the camera in such a way that allows for said movement.

Originally, my father and I spent a day working on both the frame and the electronic portions of the unit. I quickly whipped one up with a protoboard I had laying around and a PIC16F690. I used an SN754410NE H-Bridge driver for this design as well. Unfortunately we didn’t finish the project that day, and I wasn’t keen on programming the PIC having to pull it out of the IC socket every time I wanted to test it.

The original defunct board. This board was omitted due to the fact that it had no ICSP provisions.
The original defunct board. This board was omitted due to the fact that it had no ICSP provisions.

Anyways, many months have passed since then so I decided to finish ‘er up. This time though I wanted the underlying design to be flexible enough to handle any configuration of “barn door” and to allow for nice methods for both calibrating and homing the device, whereas most DIY methods are rudimentary at best. The reason I want to make it more robust than needed is due to the fact that I believe that a nicely finished electronics board kit may sell quite well, or perhaps even the entire unit if done in a low-cost, high quality way.
Here are some of the planned features:
1. Multiple configurations built-in for both screw pitch, motor step angle and “barn door” configuration
2. Homing and End Range Switch provisions to allow for homing of the device and mechanical damage prevention.
3. Support for 12 and 16 button keypads.
4. Support for 8×1 or 16×1 HD44780 LCD displays. I choose these because they’re cheap and formatting for this style guarantees compatibility.
5. Multiple drive options, Full-step, Half-Step, Strong movement, weak movement.
Anyways, Here are some images and descriptions of how I put it together, up till now. As of this writing, it’s not finished yet. It will take some time methinks.

First, I took some Stripboard and planned out the pinouts and connections. Stripboard (or veroboard) is my favorite since it’s so damned easy to plan. Despite there being a great many other protoboards out there, veroboard has been the most useful, for me anyways.

Planning it out
Planning it out

Starting the board
Starting the board

Halfway done
Halfway done

Board pretty much complete
Board pretty much complete

There were a few kinks to work out but not many, despite how messy this board is. 🙂
It took me a while but I got the keypad, LCD and Stepper running. It didn’t take very long for the LCD and keypad since I’d already developed my own libraries for those functions. I then played with the stepper motor and got it working.

Astrophotography electrics working with keypad, LCD and stepper motor
Astrophotography electrics working with keypad, LCD and stepper motor

Now, to mount it in the enclosure. I just happened to have an ideal enclosure and a sealed lead acid battery from princess auto. The battery charged fine and I think it will serve quite well to run the stepper (This motor draws about 200-400ma depending on drive configuration). Here’s what it looks like as of today. 🙂

Electrics in Enclosure
Electrics in Enclosure

I’ll have to give the enclosure some rubber feet since the mounting screws jut from the bottom but that’s cosmetic at this point.

Anyways, I’ll report further progress, as usual, on my blog here.

Here are some interesting links

Comment if you wish.