Showing posts with label robot. Show all posts
Showing posts with label robot. Show all posts

Oct 23, 2013

Once more into the [legotest] breach

Here's a video update about the progress of the LEGOtest machine #2 (#legotest)


Here is some extra info and progress starting with something I forgot to mention in the video: the shorter lever beam.



The lever was too long and, out of sheer luck, one of the shorter beams was the exact length needed. After that, I finally strengthened the base by removing the last LEGO legs and installing the Makeblock leg I showed in the video.



Once that was done it just made sense to attach the Arduino to the front leg as you can see in this picture of the whole machine:

The Makeblock parts are provided by The Little British Robot Company

As for the double action on the new motor; it both assembles the LEGO bricks and helps disassemble them.



The two movements are difficult to perform with a single motor since assembling needs a lot of strength while disassembling is all about subtlety. The part was first designed using LEGO Technics and it took 2-3 iterations before I found a way to achieve the two movements. To better understand the motion, check out the video.



Sep 15, 2013

Unboxing and Doodle cool

The parts for LEGO Test Machine #2 have made it safely across the Atlantic.


Makeblock parts from The Little British Robot Company

You can see me open the boxes and give some initial thoughts and ideas in this video:


When opening the shipping box, I've discovered a DoodleBot which the guys from TLBRC added as a gift. It's robot that can hold a pen and use it to either draw or write. I couldn’t resist so I built it right away and tested it by trying to make it write “Thanks TLBRC”. It 'kind of' looked good on the first try but clearly there is something wrong with one of the servos or sensor. I'm pretty sure that I didn't mount the rotation sensors properly so I'll have a look at it.

Seriously, look at this little thing. How can I stay made at it?

Still it's a really cool little robot base. The Arduino board that comes with the kit contains a ton of features and most are not used by the Doodle Bot. It even has a header to plug a Bluetooth device. Needless to say that I'll most likely reuse it for a future project.

If you ever get your hand on this kit, here are a couple of tips to make it work with the current Arduino IDE. By following the kit instructions you'll get to the right drivers and select the proper board. But to open and build the code in the IDE, you can do this:
  1. Open the Doodle_Bot_Text_Demo.pde with the Arduino IDE.
  2. Click OK when prompt about creating a ''Doodle_Bot_Test_Demo” folder.\
  3. (In a file explorer) Manually copy all the other demo files into this new folder
  4. (In Arduino IDE) Manually 'Add' all those files into the project
  5. In the Alphabet and Doodle_Bot_Text_Demo files, rename all the letters functions by adding the prefix 'l'. (e.g. F() becomes lF())

That's it, you should be ready to build and upload the code to the DoodleBot.

If you have any questions let me know.

May 2, 2013

Test design & LiveTankGame


Well, while I'm working on the design of the new LEGO test rig (see test1), I'm getting back into the tank project.  My generic goal for this long term project is to design a table top robotic game that will be a cross between a live card game and robotics.  So far I will have two tank platforms to test all the robotic modules so that I can prototype the gameplay based around those features.

TA1 (aka: whydontyouworkyou...)

You may ask yourself “Where the heck are you going with this?”, and that is a good question since I don't have a final answer yet.   You see, I like building stuff and I like cool-unusual-geeky-things that I can't afford so, many times, if I want something I have a tendency to build it.  My latest crazy idea came during the last Christmas vacation when my wife and I started playing a live card game called Android Netrunner.  No it has nothing to do with mobile phones.

The box

I found this game so cool that I had this crazy idea to reinvent the same level of gameplay using robots instead of cards. Why? Well... why not? Sooooo this is going to take a long time and I have to start by testing what kind of electronic interactions/capabilities the tanks can have. Once I have enough working features I will design the basic gameplay around them and build the two game tanks. Like I said... long term and so geeky that it technically falls into the nerd realm.

Here is a short update: The mobility base is composed of a robotic tank kit and a homemade DC motor driver. The motor driver PCB still needs a bit of redesign but it's functional for now and that... is good enough. Here I am building one of the two tank kits:


For now, the tank is controlled using an Android phone via bluetooth and I'm ready to start testing the other features like the laser, IR proximity sensors, light sensors, Ultrasonic range finder, etc...


Starting now, I will also tweet the updates using the hashtag #livetankgame.  


Feb 28, 2013

LEGO's magic number is 37,112

Have you ever asked yourself this question: "How many times can I assemble LEGO bricks before they wear out?"

Well... probably never but I did (on LEGO SE).  The story would end there if didn't had the knack to build a machine to test it.  Here it is:



The first version was using a metal tube attaching the top servo to the LEGO brick.  It was too flimsy and died during initial testing.  So I took an old CPU heat sink...


And using my trusty angle cutter, I made this new arm:


A successful test proved that the LEGO was no match for this chunk of aluminium.  I then made an infra-red proximity sensor to detect if the presence of the LEGO and rigged the whole thing to an Arduino.  This was shot before the test started:



and this was shot about two thirds into the testing that lasted a whopping 10 days!!!



So here are the 2 dead LEGO bricks after 10 days and 37,112 assembling and disassembling.



Don't try this at home. It's long, noisy and cruel to LEGO bricks.

In the end, both pieces failed at 50%. The studs of the bottom brick and the inside walls of the top brick are visibly worn. Both bricks can still hold on (not strongly) to normal bricks but, when put together, they can't hold. In a way, you could say that they are still in working conditions as long as they don't meet again.

Here are some more answers:


This story was covered in the follow media:

Jan 6, 2013

RoboTank #3 / motor driver version 2

Here is the second version of the programmable motor driver.


It uses a L239D chip to drive two DC motors and modulate their speed individually.   The board can be controlled with only two input wires.  This is made possible through an interface program loaded in the ATMEGA238 (same as Arduino UNO) onboard chip.  The interface chip and the driver chip are running on two separate power circuits and both are in sockets and can be easily replaced or, in the case of the ATMEGA238 chip, reprogrammed.

Using the ATMEGA238 chip makes this motor driver very versatile since 10 pins (5 digital and 5 analog) are still available for inputs/outputs.  This driver can then be reprogrammed and customized rapidly.  Here is the etching pattern I made using ExpressPCB:


Finally here's the part list:

  • 1x - Small copper clad laminate board
  • 1x - 16 pins socket
  • 1x - 28 pins socket
  • 2x - 0.1uf capacitor
  • 1x - 16MHz crystal
  • 2x - 6 pins female headers
  • 2x - PNP transistors
  • 2x - Inputs Screw Terminal 3.5mm (2 pins)
  • 2x - Inputs Screw Terminal 5mm (3 pins)
  • 1x - L293D (or SN754410)
  • 1x - ATMEGA238P-PU
  • Some wires
  • (optional) 1x - Heatsink for the L293D
I'll put up a Instructables ASAP with the PCB layout file.  Until then I can send it to you if you contact me directly.

Oct 16, 2012

His First Robot


We just finished this project so a created a page just for it.


This is a 5 hours project with my son Gérémy (7 years old at the time) who showed interest in doing some robotic using our old LEGO Mindstorm by building an RC car and wanted to build the RCX line following robot described in the Mindstorm books[...]


Aug 12, 2012

A new life for RCX 2.0


My LEGO Mindstorm had been unused for years now especially since I started using micro-controllers like BasicStamp and now Arduino. It had a short revival last winter when I used it to build a Star Wars R2-Unit crane for my twins. It was a real success and they played with it for two weeks straight.

Initially I was happy that my RCX was being used again but very puzzled that, after that playing stint, they had not included this new motorized brick into their regular LEGO play. Why? Maybe the cabling or specially the gears were a bit much for their age (7).

Lately my son made yet another awesome LEGO thingy and I told him he could make one part spin if he used the motors. He suddenly looked defeated and told me that “the pump thing is hard”. I finally knew why he was not using the RCX. He thought that the pneumatic system we used when making the crane, was the only way to make a working machine. Happy to enlighten him, I explained that he could use the motors alone and, at that very moment, I saw that his little brain was about to explode with ideas while he ran back to the LEGO boxes. His first creation was this 4 wheeled vehicle with one motor per wheel.


Then he dug up my old LEGO RCX 2.0 Mindstorm book that came with the kit, went through it one evening, found a line-following robot and built it the next day. I heard the perplexity in his voice when he called me saying “It's not working!”. The robot, going in circle, was missing the right code. I told him that building the physical robot was half the job and that it needed a program to tell him what to do. Of course now he wanted us to put the program in the robot.
I didn't want to disappoint him but the last time I pushed code on an RCX brick was in 2001 with a Windows XP computer. The software CD was probably lost in some storage box and, adding to the problem, loading a program must be done using a LEGO Infrared USB device (LEGO USB Tower) which are probably not supported anymore. Or so I thought.

I recovered my LEGO USB Tower and, ready for some major Internet archeology, Googled about LEGO RCX. I quickly found that Not Quite C (NQC) was still going strong. It was the programming language I used 10 years before. Not only that but I found that the LEGO USB Tower was now directly supported into Linux. So I plugged it in and BAM! /dev/usb/legousbtower0. Minutes later I uploaded a test program on the RCX brick and ran it. Victory is ours!


I coded a very simple program to show my son some basic logic in programing and now he's completely shocked by the fact that he can make a full robot, including the code.

I've created a monster and I like it.

More Geek info after the break

Feb 15, 2012

NASA != Marketing (rant)

In case you didn't know NASA is still there.  Thanks to our Russian partners we can still go to the Space Station where there was, today, an amazing display of supper high-tech showmanship from NASA.  A man shook a robot hand.


Yes you read it right.  A man (take the time to let it sink in) shook the hand (I know you think I'm going to say man but wait) of a robot.  Wow.

I'm personally a big fan of space exploration and robotic and I think that Robonaut2 will do great things.  It will at least pave the way for this kind of technology. But seriously NASA, can you make anything look cool for the average Joe?  If you can't picture the moment, here the scenario: Without the camera even moving, two guys (astronaut) float behind the Robot (which is not moving) and, after what seams to be a endless speech,  proceed to shake the hand of the robot who, for that special 3 seconds, moved 8 inches (toward the astronaut knee instead of the hand). There's a thing about good presentation: it's called practice.  Or you can you can do it live if what you're doing is so incredibly amazing that fumbling doesn't matter.

How about rock paper scissors? Even better, how about rock paper scissors lizard Spock?  If an Apollo astronaut would have been  at the control of the robot, I bet he would have done something cool.

Oh Internet, help me compile a list of  'The thing that NASA should have done as the first Robot-Human interaction'. Not a joke list but something that's worth showing the kids, something memorable.  And um... let's  try to stay politically correct please. (Comment here or use the hash tag #rb2firstmove on twitter)

I'll compile the list here:
  •  Rock paper scissors lizard Spock
  •  Thumb War
  •  Brake-dancing robot moves and arms wave
  • (your idea goes here)

Nov 22, 2011

Infrared on the cheap

When you make mobile robots, infrared detectors are a must. Here's a nice specimen taken in the Internet wilderness:


The problem is the cost. Starting at $13.95 US plus tax, plus shipping from Mars and the retarded Canadian border fees... in the end, it's to much. Not only that! It takes two weeks to come here. Two week! Are they using camels? I'm living in Quebec city, it's not that small, we even have asphalt and electricity.

Deep breath

Anyway for about $2.50 you can make the 'same' thing at home with these components:
  • Detector $1.95
  • Light $0.32
  • Resistor (220 ohms) ~$0.15
  • Bit of PCB board ~$0.01



Long live DIY

Nov 13, 2011

Sunday night with Bluetooth

What do you do after installing your Christmas lights? Build a robot of course!


This projects started with a modified version of the Boe-Bot on which I added big dirt wheels scavenged from a dead RC car. The simple structure on top is made with my usual LEGO spider-legs system supporting the Arduino and its proto shield. I'm using the Sparfun proto shield since it has a build-in connector for the BlueSmirf Bluetooth breakout board and.. it's red. I also use two power supplies to separate the servos from the rest of the electronics.

Software wise, I used the Sena BTerm app to do some direct communication with the Bluetooth device. This app was very practical since it enabled me to only code on the Arduino side. This made prototyping very fast. The only real work began when I had to make the real Android app using Bluetooth. For that I hacked Google's BluetoothChat demo and after a short time I was using buttons and sliders to communicate with my Arduino. Why was that work? Eclipse...


A great advantage of using an Android device as the communication platform is the real-time outputs. This is very nice when debugging since you don't have to be tether with the laptop.

Edit 1: I later created an Arduino to Arduino link with bluetooth.

Edit 2: Here is similar code a later used for the minirccar

Sep 12, 2011

Leguino

WIP: testing the onboard LEDs
before soldering the PCB

Micro-controllers and electronics are taking over my spare time... did I say spare time? Robots and flashing lights being 'sooOOoo cool', my kids are always coming in to see the crazy things I'm working on and asking half a million questions while working at my side. There's nothing like the hands-on approach.

Some weeks ago, my 6 years old son came to me with his favorite Lego robot and started telling me is plan to put flashing lights in the chest and in the head. He proceeded to show me where the batteries would be and that the [Arduino] chip would be in the middle of robot's back with all the wires going to each parts. He finished by explaining that he wanted to use Mom's hot-glue gun to attach the parts.

The 'backpack': 9v battery (bottom),
5v regulation (right on PCB) and Arduino chip


Ah, the wave of geeky pride overwhelm my dad heart. He is one of us now!

Not only did he had a plan, it was a great plan. It was doable and all the necessary components were included.

Here's the result:

Jan 23, 2011

Feeling my way


During the Christmas vacation I built a mobile robot using the Boe-Bot structural base and adding the Arduino 'brain' on top. This permitted me to rapidly get to the collision avoidance systems. I wanted to build my own range sensors since I started using with Lego MindStorm RCX 2.0 in 2000. I was always impressed by those guys on the web who were building custom sensors and accessories for their MindStorm projects.

The plan was to build an infrared range sensor that would be contained in a 2x4 standard Lego brick. I started by gutting out the Lego brick and drilled two holes into it for the LED and the detector. When positioning the light, I made sure it was set further back than the IR detector to prevent the LED light to shine directly into the detector.


I used the same parts than the ones I used on the Boe-Bot but I modified the circuit to make it more compact. Then it was the origami process of fitting all the components inside the brick and welding everything (including two resistors).


Wire wise, both the light and the detector needed a ground (black), the detector needed a 5v feed (red) and both were connected to separate control pins on the Arduino (yellow for the LED and grey for the detector). I then glued a 2x4 Lego plate to close the sensor.

Here is the final product attached to a servo. In this configuration I was able to sweep left and right, covering a wider range with one sensor.

Nov 2, 2010

Snow balling

I admit I'm still buying Legos and a vast majority of those are Lego Technics and Mindstorm that I use for prototypes and robots. But, from time to time like any 37 year old kid, I get a kit simply because it looks cool. Hence I have the Lego X-Wing.

This magnificent piece of design dating from the back-when-lucas-was-good era was siting on my work desk and my son, playing with it, said “Dad, can you make the ladder to climb in?”. Any reason to get my Legos out is a good reason, so Voila!



My son was happy but, like any good geek would, he had the obvious thought; what about the cane gizmo to get R2 in and out of the ship? The clouds parted and a ray of light beamed down on me. I was so ready for his demand... maybe I was too ready.
Not only did I built it but I made a working version using Lego Mindstorm motors and the remote control.



The rotation is powered with gears and the up-down motion is done with a pneumatic piston and a switch to select up or down (directing the air flow to the top or bottom of the piston). This extra manual step will come back to haunt me latter.
After watching my son playing with the crane for a bit, it was apparent that it's reach had to be improved. After all, I could still plug a third motor to the system. Some minutes latter version 2 was alive.



The base is resting on gliding 'skis' and stays in place because two of them are sitting in a groove. One side of the groove serves also as the row of teeth used by a gear (attached to the crane base) to pull or push the whole system. This gear is using a pulley system and so it just slips if the kids reach the end of the tracks (no grinding gears). The pneumatic switch had to be repositioned so that it would not jerk the whole assembly every time it's used (that switch is a real pain). Finally. the arm of the crane was also lengthened.
The kids (and I) played with that version for days. I added a weight in the back to prevent the 'gliding gear' to skip. This is the final version of this design:




In conclusion
The main problem with this crane is the pneumatic switch. All the other movements are made with the remote and the switch make the experience of using the crane awkward.

A second important point is to make it error proof. The pneumatic piston system and the pulley system permit the errors in the crane manipulation without breaking anything. On the other hand, the direct gears that are used to rotate the crane can skip, grind or break if something goes wrong. Also the tubing for the piston prevents the crane from doing a continuous rotation and could rip of. (We had a terrible accident where Han Solo was thrown across the flight deck...)

So the next project will be a new crane with a completely different design that can lift heavier loads and where all the controls are done using the remote. This system will also be error proof by using systems like:
* Pulleys
* Slip gears
* Automatic reverse

“Gentleman, we can rebuild it. We have the technology. [...]”