One of the things I intend to implement is the ability for this robot to follow me or a target I designate. I was thinking about how I could implement this feature and thought I would just record my thoughts so far.
I had been planning on cannibalizing a WII remote at some point for its infra red camera. I did some looking around on the internet today and I found another useful Intructables project on how to extract the Wi Remote's infrared camera and the hardware that monitors it and connect it to an Arduino. It then cranks out the x,y coordinates of the four strongest infrared sources it sees and makes them available to the Arduino.
One of the experiments I need to perform is to see if I can use this camera to track an infrared LED I could then wear one and have the robot follow me by attempting to center the x coordinate by rotating its body as it moved.
The distance from the center point of the display in y would be proportional to the distance from the target. If I had some idea as to the average distance from the floor the LED was mounted on the target I may even be able to calculate distance. At close range the LED may go outside the field of view anyway in which case you would have to assume you had reached the target.
I have not thought much yet about where on the robot to mount it. Would there be any advantage to placing it inside the head which can move up and down in the Y axis?
This camera has been used to create simple electronic whiteboards as well. Perhaps I could also use it as an input device for drawing in the air or on a white board as well. Another interesting fact I did not know is that WII remotes use bluetooth to communicate and can be paired with any laptop with bluetooth build in. Bluetooth is not really an option for me since I don't want to add another radio if I can avoid it. I am already planning on using WIFI for remote control and internet access.
Thursday, February 27, 2014
Wednesday, February 26, 2014
Moving My Dog
Though there are a lot of other interesting parts to talk about, whenever I talk about my robotics project (or what is Dad doing in the basement) with my family, they always ask me, "When is it going to move?". I then explain that it is going to take me a while to work out a safe means of controlling the two Razor E-100 scooters I have purchased to form the heart of the drive system.
With a top speed of 10 mph, max load of 120 lbs and a service time of 40 minutes we are talking about something that, if it goes out of control could seriously hurt someone or destroy itself in an impact. This robot is going to have two of these inside and weigh more like 60 lbs when completed so being able to control the motor at far less then it maximum speed is important.
Also of concern is the high current, relatively, that a large DC motor requires. This motor can draw anywhere from 5-15 Amps at 24 volts. The original scooter comes with a controller that manages motor speed that I had to discard because it has a safety feature which detects voltage generated by the motor when the wheels move and prevents it from starting until the rider pushes off and squeezes the throttle. This is never going to happen with a robot unless you want to kick it to get it moving. The built in control system had to be discarded.
If you are interested in what this motor can do a full speed, just search for Razor E-100 on you tube and you can see kids literally zooming all over the place. I needed to demonstrate that the motor could be controlled at low speed with sufficient power to move a 60 lb load. Varying the input voltage is not a good solution because it will cut off the motor entirely before it gets anywhere as near slow enough for my needs. Slowing the motor with a resistor in series is also just a waste of power. What needed to be done was to pulse the 24 volt power supply and vary the frequency to control the effective power being delivered to the motor. This is called Pulse Width Modulation (PWM).
The motor must also be able to be controlled by an Arduino and relays are too slow to do the job so a solid state (transistor based) solution is the way to go. The most common way to control a DC motor's speed and direction by an input signal that an Arduino can generate is by using an H-Bridge circuit. I also needed one that could handle high current loads. I wanted to go with off the shelf parts, particularly for this component, because I am not a fan of fires. I went with the Megamoto Motor Control Shield for Arduino.
With a top speed of 10 mph, max load of 120 lbs and a service time of 40 minutes we are talking about something that, if it goes out of control could seriously hurt someone or destroy itself in an impact. This robot is going to have two of these inside and weigh more like 60 lbs when completed so being able to control the motor at far less then it maximum speed is important.
Also of concern is the high current, relatively, that a large DC motor requires. This motor can draw anywhere from 5-15 Amps at 24 volts. The original scooter comes with a controller that manages motor speed that I had to discard because it has a safety feature which detects voltage generated by the motor when the wheels move and prevents it from starting until the rider pushes off and squeezes the throttle. This is never going to happen with a robot unless you want to kick it to get it moving. The built in control system had to be discarded.
If you are interested in what this motor can do a full speed, just search for Razor E-100 on you tube and you can see kids literally zooming all over the place. I needed to demonstrate that the motor could be controlled at low speed with sufficient power to move a 60 lb load. Varying the input voltage is not a good solution because it will cut off the motor entirely before it gets anywhere as near slow enough for my needs. Slowing the motor with a resistor in series is also just a waste of power. What needed to be done was to pulse the 24 volt power supply and vary the frequency to control the effective power being delivered to the motor. This is called Pulse Width Modulation (PWM).
The motor must also be able to be controlled by an Arduino and relays are too slow to do the job so a solid state (transistor based) solution is the way to go. The most common way to control a DC motor's speed and direction by an input signal that an Arduino can generate is by using an H-Bridge circuit. I also needed one that could handle high current loads. I wanted to go with off the shelf parts, particularly for this component, because I am not a fan of fires. I went with the Megamoto Motor Control Shield for Arduino.
If you look at the specs, it can easily handle my expected load with a safety margin but to be able to control each scooter motor independently, I will need two shields but they are designed to stack on top of each other (see the link above). They will also use six of the digital output pins on the Arduino which are a precious resource but it will be worth it for all the trouble this board will save me. Right now I only own one but I will have to purchase a second one soon. Until I do there will be no backing up for this guy. He will only be able to move and turn in a forward direction.
To wrap up this post, here is a video of my breadboarded version of this shield in action. I wrote test sketches that allowed me to slow the motor down to a very reasonable speed. Please ignore the hair brush and the diet pepsi in the shot. The important thing is to see the Arduino is controlling the scooter.
I am starting to collect links and useful documents in a Springpad project which you can check out as well. That is it for this post. Will do another soon.
Tuesday, February 25, 2014
Building My Own Dog
For a while now I have been thinking of creating my own robotics project based on Raspberry PI and Arduino. Even though my day job is in software engineering, my undergraduate degree was in electrical engineering and I don’t get to use those skills as much as I would like. I wanted this project to be a platform for autonomous robotic software experiments when it is complete. I also wanted to make something that had some elements of interesting external design. There are too many robots that are just a collection of components bolted together without any thought to how they look, aesthetically . Since I am also a Doctor Who fan, I thought of K9.
He is strictly cutting edge 70’s technology on the outside but he was also a wheeled base platform with enough room inside for multiple control system projects which fit the bill perfectly.
It turned out I was not the first person to build one of these, at least as an accurate show prop. There is a K9 builder’s club with the details of many other people’s efforts in building K9 shells over the years. This site includes tons of construction examples and tips. Another useful project site for construction of an, in this case radio controlled, K9 prop can be found at Instructables . This site also had copies of accurate plans for constructing the shell. I will try to make the shell as accurate as possible while still allowing it to be functional as a real world robot.
With all this help in the construction of a K9 shell all the remained was the planning of the components to place inside to create, essentially, a roaming unix box on wheels. Each of the moving parts on the external shell would require its own servo motor. These moving parts include the ears, nose and tail. The head itself also moves but it will require a heavier duty motor than the standard RC hobby servos I have on hand.
Taking a tip from the Instructables project, the main drive motors will be cannibalized from two electric scooters. These scooters will also provide lead-acid batteries to act as a power source. These batteries may not be enough to allow for extended operation and I may have to add additional batteries before I am done.
It will take at least two Arduinos to manage this set for motors. These Arduinos will also be used to collect data from the ultrasonic range sensor and to control the keyboard and LCD display located on the back of the robot.
Two Arduinos are not enough to provide a meaningful software platform for autonomous movement, multimedia playback, internet access, or to drive the RGB display on the side of the robot. This requires a Raspberry PI. The PI will act as the real brain of the robot. It will access the Arduino data over its USB bus, process it and then issue orders back to the Arduinos to control motion and manage its keyboard and displays. This may or may not be fast enough to be practical and I will keep you posted when I have verified that this can work.
This is a project I am working on in my spare time. I estimate it will take about three years to complete and I have already been working on it in my spare time for about a year. I slowly acquire skills and parts I need as I go along and each system I get working is a small win that will hopefully build into both a fun robotic platform and a showpiece of science fiction anachronism/history.
I intend to post updates here documenting my progress, the materials I use and the solutions I find as I progress through this project. Each step gets me a little closer to completing the project and it feels really good to produce something physical instead of virtual like software. I have included a few pictures of the construction of the outer shell to get things started.
Miter
Here is a shot over a year old of the entire shell constructed out of cardboard to test out the plans I got from Instructables. I learned a lot by fitting the cardboard pieces together that helped me later when I would be working in wood.
(It is sitting on my foosball table)
Next came the slow process of cutting similar pieces out of MDF board. I really am learning woodworking as I go. This was done only with the tools I had on hand which where a Scroll Saw and a Miter Saw. I don't have an extensive workshop and these are not the optimal tools for the job but they did the trick. Here they are.
Using a scroll saw to cut the multiple panels that form the insets throughout the lower section of the body was an education I got from you tube. Thank you Scroll Saw Workshop! For months all I had to show for my efforts were a few wooden panels.
Finally, I began the assembly process. This is where I discovered the benefits of Heavy Duty Liquid Nails glue. This stuff works and quickly to join the separate MDF panels when combined with some clamps I purchased from Home Depot. Here is a shot from the assembly process.
As time marched on, I started priming and sanding and things started looking up.
I am slowly making progress. Here is one more shot of the shell which shows the dorsal control panel.
Next post I will start describing the electronic components I have been working on and show more construction shots. Progress is slow but rewarding. More to come soon.
Wednesday, November 2, 2011
Real Life Minecraft for Halloween
When I asked my son what he wanted to be for Halloween this year he told me he wanted to that guy, Steve, who is the main character in the game MineCraft (http://www.minecraft.net) . He said this would be no problem as all we would have to do is cover him in boxes. We found out soon enough that this was a little harder than we thought but the result was pretty cool.Once we got him sealed into the costume I could see walking would be a problem. This was solved by cutting joints into the boxes allowing his elbows and knees to bend. Next, the reality of dragging all these boxes along started to set in. I think we covered about 30 houses in our development but he had to stop for rest after every two or three. Resting involved slumping since the costume itself could support its own weight when he did this.
As we moved from house to house all the neighborhood kids marveled at the "cool robot costume!" Its easy to see how kids could mistake all his work for a robot instead of a cool cubic video game character. My son would keep yelling, "I am not a robot" but it was not working. I think a lot of this had to do with the way he moved in costume which you can see in the video.
Everywhere we went the parents handing out candy were just impressed that he made his own costume as there is not enough of this kind of home made effort going on anymore. Robot or not he loved being Steve the Mindcraft guy and now we have to store his creation because he is not quite ready to give it up yet.
Sunday, January 16, 2011
TheSixtyOne and ITunes

I like finding new music but I don't really seem to be able to use ITunes to do this. Why? Because I find the best way for me to find the things that I like is to listen to a stream of new music while I work and pick out what I like by listening to the whole song. ITunes does not create this radio station like experience since they limit you to 30-90 second clips that you have to find yourself.
Everyone talks about Pandora as the best way to find new music but I find that what is plays for me is usually something I have heard before and almost never any indy music or anything really cutting edge. This may be my fault as I am picking the starting song for my station.
What I have found is a free service called The Sixty One. The TheSixtyOne does not look like any traditional website I have come across and this may be off-putting to the new visitor. The site is actually a HTML5 music player which requires flash. It uses a unique quest based system to encourage you to learn it's features and to interact socially with artists and other users.
When you first open it, it will immediately begin exposing you to new music and artists. As you begin to experiment with the controls you can make the player produce new artists based on your mood or how adventurous you are feeling at the moment. If you like a particular artist you can get the player to dwell on that artists songs for a while before moving on.
The best part is, these are not artists who are getting much in the way of exposure on radio or ITunes. I don't know how these artists are brought to this service but they do a great job finding them. The player will try to hook you up with links to purchase what you have just heard but it often fails to do this last essential part very well. I often have to go to ITunes or Amazon myself to purchase songs but that is a small price to pay for finding new music. I wonder why Apple does not look to have better integration with this service simply to move more new music. For that matter, why don't they start streaming some of their own content in a similar manner. Radio stations were always the best way to move music in the past and ITunes does not really seem to offer us any alternative to the 30 second snippet. These two services go great together.
It is a pity that there is no SixtyOne service for the iPod itself. I would love to listen in my car. There is an IPad application with a different user interface but drawing on the same idea of discovery and streaming that the flash based website provides. It is called AWEditorium and it serves up TheSixtyOne's content on an IPad.
Apple should forget or modify their Ping service and look into bringing this type of social streaming service directly to ITunes. I would sell a lot of music but If they do they should not loose the Indy feel that the service offers now.
Thursday, January 13, 2011
Could Apprenticeship Become the New Career Path into Software Engineering??

Recently, my oldest son embarked on the path to become a software engineer just like dear old dad. Mind you, he has his goals set for the Game Design industry but which of my peers has not dreamed that dream at some point in their college career? I wish him luck in that very competitive industry.
What really struck me, however, was just how much more expensive it is to get a degree now a days in engineering and computer science. I think I payed about $60,000 dollars for my degree in the 80's but my son is going to end up paying something like $175,000 to $200,000 by the time he graduates. That is more than three times as much as I paid. Is he getting three times the education and just how long will it take for him to pay off his student loans? Will he still be paying off the equivalent of a house when he goes to buy his first house?
What of those kids who have the talent for computer science but can't raise the money or don't want to go into a single family home's worth of debt to get a degree just realize their dreams of being a career coder?
What about apprenticeship? I have worked with many undergraduates over the years as interns and many of them are extremely talented. Often times they pick up more career focused skills working in industry than they ever do in college. Some even stayed with the company well past their internships and had successful careers within software engineering without degrees. Could this talent be harnessed into a successful business model and provide a successful career path for these students?
Imagine if there was a startup company based on a core of experienced engineers that took on consulting work but staffed their teams with willing but inexperienced high school graduates? Built into this program was dedicated daily training for the staff as well as engagement in an active software development projects. It might even be possible to engage a local community collage for some of the training required. If a rigorous selection process were used to choose candidates you would get the energy, ideas and motivation of youth and the cost of their salary and training could be integrated into your consulting contract's cost for less than the cost of an experienced professional. Your business partner would get the assurance of the experienced staff member on the team and also the knowledge that choosing your company was almost the equivalent of providing a scholarship at the same time as meeting his or her business needs.
This approach would be both beneficial to the company and incredibly useful to jumpstart the apprentice's career. With about two years this person could use their education to enter the workspace with a resume significant enough to work in the field or use the credits the program gave them to pursue a degree if they felt that was their next step.
Admittedly, this is almost the mirror image of modern COOPerative education but if the education has been priced well beyond it's career building market value, perhaps this could be the future or even a winning business model able to educate young people and let them earn money and learn as they go while also being a profitable business.
Thursday, January 6, 2011
Cell Phones, Door Locks, Near Field Communication and Space 1999 - The ComLock
Star Trek may have popularized the cell phone concept but Space 1999 had most of the feature set of the IPhone figured out in 1975 with a device called the ComLock. It was amazingly prescient of Gerry and Sylvia Anderson and their production team to think through what kind of mobile device would be in common use in 1999. Little did they know that the actual smart phone device they were envisioning would not come to pass until 2007 in the form of the IPhone, Android and other smart phones.
If you take a look at technical drawings of the ComLock you can see this device had it all. A two mile range capable of being boosted by using near by landing craft like a cell tower, a telephone keypad and a small black and white (CRT) display. It could connect to the Moonbase Alpha computer, accept voice commands and it even had a docking station to recharge. In the show’s continuity guide you can see the device in its cradle (I wonder what the battery life was on it with that CRT). Add to this, features like an infra-red capable camera, air pressure gaugue, geiger counter and thermometer and I would like to know where I could line up to buy one.
With all of these features that are so similar to today’s smart phones, why don’t we see the most basic feature of a ComLock on our cellphones - The ability to unlock physical doors? The ComLock device was required to get any door on Moonbase to open. You could not move freely anywhere without one.
Now imagine that you could have a house or work key that you would always have on you, if lost could be located using GPS and could be remotely deleted if stolen. Sounds pretty good, huh, yet this particular aspect of smart phone usage has not really been tapped yet.
There are some products that will let you do this now with an IPhone but they can be pretty expensive. Schlage offers their Link system which allows you to open their keypad locks via a web browser or a cell phone but they are charging $8.99 a month for this privilege but it will work with the current generation of cell phones. Another company is offering a simpler approach. Primary systems actually will put your door directly on your wireless network but they are targeting large facilities. What is so hard about producing a simple lock that can be accessed over WIFI that I can buy now at Home Depot?
Perhaps the industry is waiting for Near Field Communication, a technology that lets your phone communicate with very nearby devices simply for such things as credit card transactions. This is rumored to be the next big thing in cell phones allowing us to buy things just by waving our phone in front of a merchant’s sensor. This would at least insure that the person trying to open your home’s front door was actually in front of the door at the time.
In summary, I wonder if Steve Jobs was a space 1999 fan? For that matter, was Gerry Anderson a Larry Niven and Jerry Pournelle fan since they were talking about similar hand held systems even earlier (1974) in their book, Mote in God’s Eye. If you want to get your hands on one, why not build your own? You can download a Paper Craft model of a ComLock. Either way, I think the Cell Phone will replace your keychain in the near future.
Subscribe to:
Posts (Atom)









