Posts Tagged ‘Arduino’
Have you seen this book: Make: Lego and Arduino Projects? It’s all about adding in Arduinos to your Lego robot projects! This is really helpful if you find you want to do more with Lego robots, but find the NXT too restrictive.
It’s written by John Baichtal (@johnbaichtal), Matthew Beckler (@mbeckler) & Adam Wolf (@adamwwolf)! I’ve met these people at Maker Faire before, they are really cool. They asked me to write the foreword for their book, what a great honour!
This book goes along with the Bricktronics shield for Arduino. It’s how you can connect the NXT motors and sensors to the Arduino. They sent me one, cause even though I don’t have some Lego anymore, I’ll probably use the L293D for something (can never have enough of those chips eh!)
Here is a closeup of the board, not a lot of empty space and the TIP120′s will be standing up:
Here is the board when it is assembled. When following their kit instructions, the steps aren’t ordered from shortest components to tallest, so you may want to jump around a bit.
Look at this, the plastic connector things make it look like a giant compared to the Arduino / Diavolino!
CONNECTOR THINGS ARE STARING AT YOU!
Back in the day of RCX’s, the ‘connectors’ were much simpler and didn’t cost as much, they were just a few wires attached to a custom Lego brick. It was a lot easier back then to wire up your own lights or whatever.
I’m looking forward to using the L293D in some project at some point in time. As for the rest of the board, perhaps use it as robot artwork or something. Or if I find someone that is in to Arduinos and Legos, give it to them
Thanks again to the authours for the invite to write the Foreword. I hope it will get the readers motivated and ready to build (and read)!
More to come later about the latest and greatest RoboBrrd news!
Here is a new robot creature that I created! It doesn’t have a name yet, so it’s just called ‘weird eyebrow robot’.
It reacts differently when you ‘pet’ it and ‘poke’ it. Beware when it ruffles its brow! It enjoys singing short jingles. Rumour has it that the light up googely eye can peer into your soul.
Check out the video to see it in action:
Watch on YouTube
Pretty cool right? All of the electronics were from the Arduino Starter Kit. Here were all the electronics used from it:
- Micro servo
- Piezo speaker
- 3 Photocells/LDRs
- RGB LED
- White LED
- 2 Yellow LEDs
- 3 Blue LEDs
- 2 Green LEDs
- Lots of resistors…
It actually takes up all of the pins on the Arduino, which is great. All of the LEDs can be controlled individually, and the RGB and white ones (which are behind the googely eye) can have PWM.
Here are the extra parts and tools that were needed. If you don’t have any of these you should get them, or find a substitute. Some of these are obvious, but this list will serve useful for any newbies looking at it!
- Craft sticks, popsicle sticks, coffee stir sticks
- Hot glue
- Orange paint
- Purple sharpie
- Wire, shrink wrap, electrical tape
- Soldering iron, solder
- Scissors, wire cutters, wire strippers
- Googely eye
I started creating the robot just from the popsicle sticks. I wanted to try out a mechanism that was in my brain for a while, a way to control two eyebrows with one motor.
There is a lot of electronics in the starter kit, which is just awesome. It’s way more than you need, which is super for experimenting! I’m probably going to be using the LM293D for hacking the Useless Machine in a later project
So there are some interesting things in there… like a servo, funky coloured thing (aka pinwheel), lots of leds. I painted the eyebrow structure orange and this is how the idea is coming along:
There’s not that many wires for this robot, but I organized them with some tape so it would be quicker to plug in.
All of the pins are used! Yipee! Happiness!
With some testing of the pins and such, we can make the robot look differently!
With some more programming for its behaviour, it is done! (See the video for it in action if you haven’t already). There were some issues when programming it at first- I was writing and testing it when no LEDs were turned on. Since we’re using a breadboard, turning on the LEDs added some noise that I didn’t account for. So I had to scrap the entire program and just rewrite it. It works great now, though! I really like the way it has turned out.
It’s really great to have it running on your desk while you are typing away working on something. It goes to ‘sleep’ after 15 seconds or so, and its white LED does the Apple breathing pattern. When I was editing some of the photos, and got up from the chair, my shadow must have triggered the robot and it woke up, singing a little, so I interacted with it a bit! It’s almost like a real creature!
Back to the Arduino Starter Kit now… the book is cool. Makes me wonder if in 10 years, will they be rare like the Heathkit instruction books?
At the end of the video tutorials that go along with the kit, Massimo always says “Arduino is YOU”. So apparently I am a crazy robot builder with an unorganized desk then:
Thank you RS Components for the Arduino Starter Kit. It was really nice to use it to build another robot. They have videos of Massimo explaining the projects and such over here. Everyone should check it out and let their imagination run with it! Maybe even build a sibling to ‘Weird Eye Robot’, haha.
Also, if you noticed all of the wire, I finally used up the last of my yellow wire, and heat shrink. So right now I don’t have any stranded wire, and I’m running low on the solid core wire. If any of you readers know anyone out there who can donate a spool of wire, and some heat shrink, please let me know! Any help is really appreciated! Thanks!
Get your Arduino working with Google+ Hangouts!
I hacked this together a while ago, and now here is the tutorial for it. A lot of people have requested it, so hopefully it is of help!
Check out the video!
Watch on YouTube
In order for this to work, there are four main parts. The web app, Processing sketch, Arduino, and Google+ Hangouts xml.
The web app is the core of it all. The way it works is that it uses web sockets for communicating between the browsers, and a tcp socket to communicate back to Processing.
Processing is listening to this tcp socket, and then it tells Arduino what to do.
To get it working in Google+ Hangouts, the web app is included as an iframe. If your camera is pointing at the Arduino, then everyone will be able to see it work!
I have posted the code for all of this on Github. Go check it out!
A large amount of the code was based off of the code by John Schimmel: node-session. He was really awesome on Twitter helping me get it working!
The tutorial, with all the steps listed out, is over on RoboBrrd.com. I really recommend looking at it, because it tells you where to replace the variables for your own ones.
If you decide to take the plunge and try it out, I created a long in-depth tutorial walking through the code.
Watch on YouTube
I really hope that this helps people out there to get started! I would love to control some of your robots and blinky lights through Google+ Hangouts. Oh yeah, and it would be great to see them on the Robot Party!
Let me know if you have any questions along the way, and I can try and answer them! Gooooood luck!
The RoboBrrd Brain Board v2′s were received back from OSH Park a little while just before Montreal Mini Maker Faire. Check it out!
The silkscreen on them came out really nicely, just as imagined and expected. I didn’t have any/all of the components needed to build one of the boards, so it was time to do some desoldering.
First component tried was the socket:
It didn’t work out very well:
Next up was the crystal and 22pf capacitors!
Here is one of the mistakes on the board. The capacitors should be pushed out perhaps one millimeter or so. They are still able to be placed though.
Attempt at desoldering the FTDI header did not work out too well:
Desoldering these headers worked out!
At this point I decided to power up the board because I was curious what colour the power LED was. But then Pin 13 lit up as well. … What?! This was crazy, pin 13 was tied to 5V, which is the top-layer fill. I debugged everything, and mentioned it to OSH Park. Turned out to be a board defect, so they issued a refund for the board! Sweet!
This didn’t get desoldered correctly, so chopped part of it open. Cool!
Not all of the headers can be easily desoldered. All of the pins were free of solder, guess it just got messed up somehow.
Another attempt at desoldering!
The input jack made it out okay. Was a little worried about this one because it had massive amounts of solder on it.
Here is the whole board built up!
This is a RoboBrrd hiding in a box. It was getting another layer of varnish.
This is basically how the RoboBrrd Brain Board will fit. Except the input areas will face the other way (oops)
Photo of the desk from above. And apparently I actually wrote ‘check for shorts first’, hahaha
The upload wasn’t working and I wasn’t really sure what was happening. The chip wasn’t in a socket because I failed at desoldering one. I thought all of the pins were free of solder, and the chip was coming out pretty well… until two of its legs fell off (owch!) I’m saving this one because it can still become a good freeform Arduino style. Later on I found two smaller sockets, so cut them to be combined, and it worked really well.
Wow, look at all the solder dust!
Trying to solve the RoboBrrd Brain Board problem, I fiddled with the reset button and managed to get the IDE to upload code to it. Great, this means that the TX and RX lines are okay, and only leaves the reset line. I compared to the Diavolino…
Notice the difference? Orange-black-brown vs brown-black-orange. I chose the wrong resistor. This is a bad resistor. I’m never going to use it ever again!
I put in an actual 10K ohm resitor, and the upload worked flawlessly. It works great with the LoL shield as well, which is a pretty good way to test your Arduino derivatives.
The next step with this is to put it inside the RoboBrrd. I still had some of the lifty-thingys that Chris the Carpenter sent with his robot, so I tried some of those.
There’s kind of a design issue…
Also need to figure out what screw size to use for mounting the board inside of RoboBrrd. Here’s what it looks like inside of the RoboBrrd:
It’s really great that the RoboBrrd Brain Board works. I still need to test out if the voltage regulator parts work. Probably going to pop the chip out for that testing.
Building another RoboBrrd Brain Board would probably be a good idea, and I have enough Arduino derivatives around to just desolder parts from and use. Don’t have any screw terminals though, so will just have to pretend there are imaginary terminals there.
Looking forward to using the first ever RoboBrrd Brain Board for controlling a RoboBrrd, it’s going to be pretty sweet.
Thanks to people who donated to my robotics fund so I could get these fabbed. They turned out great, so thanks!
This is what the Arduino DUE looks like:
Board model: DUE!
So many small components, and the routes seem very detailed:
Check out this squiggly route! I was wondering if they were trying to imitate my weird sense of style in circuits. Later I found out in the Robot Party from Alvaro that it is probably because the lines have to be of the same length! This makes sense if it is for something sensitive like data transmission.
Look at all the tiny pins! It’s so immensely detailed!
That’s about it for the basic pics. There’s more on flickr here!
The board itself looks really nice. However my imagination can’t stop wondering about what this would look like if it was a black board rather than funky turquoise. It would probably look even more snazzier! However, no one really cares about the looks! We just want to make our projects more capable!
MANOI really wants to use the DUE so that it can blink AND balance at the same time. If anyone knows MANOI really well, this is kind of important… otherwise it ends up taking a 1m tall dive off tables. Owch.
I’ll post more about my adventures and progress as it happens!
The pics are CC BY-NC-SA! Go and use em!
This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Here’s the interview, it’s 14 minutes long, it was really fun to do!
Watch on YouTube
Wow! This was pretty crazy in a good way, so thanks guys! The video is getting close to 10,000 views!
More blog posts are in the pipeline, so keep your robo-eyes peeled!
One of the things that has been bugging me about RoboBrrd the past two days is wondering how it will interact with the software games. When planning this, I was thinking of making the games in Processing (Java). However, Java is getting old, and with new technologies on the rise, like websockets, I wanted to research this more.
You may be wondering, why are the interactive games so important for RoboBrrd anyway? If you are just trying to create an educational robot, who needs the games and software? We want to create a blended reality between the real RoboBrrd and the virtual RoboBrrd for the student, so that it is always accessible and available to the student to learn, hence the prior nickname ‘Learning Pet’. RoboBrrd is more than a robot, it’s a way to actively interact with virtual based learning applications.
One of the cool ideas that is arising in the hardware-software interface realm is driverless and middlewareless communication. The HIDUINO is a really cool implementation of this. Check out the website and the video for more information. http://dimitridiakopoulos.com/hiduino
Here are some ideas of ways of communicating that I was exploring:
- Socket.io on remote server
Sleek, new way of interfacing
Games are in the browser
Hosting for node.js with socket.io…
Would have to run some sort of middleware to communicate between the socket and the Arduino.
- RoboBrrd as a keyboard HID
Easy way to interact with a game on a server
No middleware needed
Only one way communication
- RoboBrrd as an audio or video HID
When researching this I found some ways of communicating to a usb webcam, but it is only for video streams mainly.
- RESTful API with AJAX auto-reload
Still need a fancy server to enable long running ajax processes
- Processing game, RESTful API
It would work.
Here are interesting links that were explored while researching:
Circuits@Home lots of USB Host & HID information here
Garmin communicator did some interesting this with communication
Mozilla Audio Data API
jasmid MIDI synthesis
Device element discussion
Node.js and Socket.io
Ajax periodic refresh
RESTful API with PHP and Apify
Node.js and WebSockets Demo
As you can see, the implementation that would most likely work would be the Processing game with a RESTful API back to the server for storing data. So yes, I did pretty much just go around in a complete circle, but I think that learning about more ways to communicate between software and hardware is really interesting.
So, happy holidays everyone- and there will be a week 2 progress update post later this evening!