Intro: Luxo Jr.
Guessed it right, it's the Pixar's first cartoon animation. A classic 1986, 2 minute animated cartoon lamp that play's with a ball, which at the end accidentally deflates. I also loved this one, you'll see this luxo at the start of any pixar movie, where he jumps on the letter "i" of PIXAR and replaces itself with it.
So, this time I decided to make a robotic luxo Jr. which can programmed and customized by hobbyist and tinkerer's. But there is a twist in the story, instead of going with all high tech 3D printing, controllers and programmers, i decided to go bare minimum on this project. Why so?, Well most of the time I met new hobbyist around various maker lab's, I often see them complaining about how the printer's are not working properly or controller is not being interfaced or heating issues etc. So I decided lets make something that everyone can make and play around. Idea is to make a table top personalized Luxo Jr. robot with bare minimum hardware and some simple ardunio coding skills.
Grab some servo's, an ardunio maybe, bunch of wires, a cup of coffee and let's get started..!
Step 1: Let's Go Shopping
I promise in this instructable, we'll be using no complex hardware or high end skills. So for this project we'll need :
- 9G servos - 5 pieces (Buy)
- NodeMCU - 1 piece (Buy)
- Usb to Micro USB cable - 1 piece (Buy)
- 12v 3A adapter - 1 piece (Buy)
- LED pcb plate - 1 piece (Buy)
- Ice Cream Sticks - 50 pieces
- Fevicol - (Buy)
- Cello tape
- Double sided tape
You'll be also needing these tools :
- Wire stripper
- Screwdriver set
Step 2: Day One
"One picture is worth a thousand words" , and one video is worth a book. So to make it simple to understand the whole construction of the robotic lamp i have some stepwise images and a time lapse video of the build here. You can refer to both to understand the making of the structure as well as the servo placement etc
Step 3: Day Two
Day two would be more of electronics and final assembly. You can use the schematics and fritzing diagrams to understand the pcb assembly .Again there is a time lapse video explaining the procedure and everything.
There are two parts of code one is the which goes in the NodeMCU.
Part One :
Follow the following steps to upload the code on NodeMCU and run it.
- Use this instructable (here) to use ardunio IDE for NodeMCU programming
- In the zip attached or the github repository here, you will find a folder named "NodeServo" which has a (.ino).
- Open that (.ino) file (the code) in the ardunio IDE
- If you have followed the step one properly, then select nodemcu and upload the code
Part two :
Follow the following steps to run a python code on your laptop/desktop:
Note* : The code is as of now only for Linux distributions
- The zip/github repo you've downloaded previously has a python code in it.
- Do "pip install -r requirements.txt"
- The "requirements.txt" has all the code dependencies which will be automatically downloaded
- Now, run "sudo chmod 777 /dev/ttyUSB#", which allows the code to access you machine serial port. the "#" is basically the port which the nodemcu is connected. you can find that out using this command "ls \dev\ | grep ttyUSB"
- once that is done, run the code using "python app.py"
- you should see a servo management panel in front of you
- select the checkbox which says serial port and opt the serial port with the baud rate as 115200 (depends on the nodemcu code, i have used 115200)
- now press connect and you should see connected and the panel is ready to be used.
- the first 5 bars are for robot control, if the connections are made as per the schematics given.
Step 4: Complete Construction and Build
If everything has been done as per the videos, images and the final instructions given before you should have a robotic lamp like Luxo Jr.
Its a beginners step here, in fact as of now we can only control the robot. But with a sense of community driven project, i have hosted all the code under this repository. The idea is that people can make, modify and share there changes to everyone.
My next steps will be :
- recording certain steps of the robot, which i make using the control panel and replay them.
- controlling the robot over MQTT over internet.
- Using machine learning concepts to make the system more intuitive and joyful
- What would be your next step as a contributor.