Intro: Creative Robotix - Educational Platform - Codee and Friends!
Hey Everyone! Creative Robotix, now that's what we like! Have you ever wanted to imagine, create and make your very own humanoid robot with its very own personality? We have, so we did, and we would like to share with you what we have done.
Our Creative Robotix educational platform is an open source platform designed for those who are interested in learning more about the next major market for technology, robots! Our platform provides a fun, hands-on, fully customisable and accessible experience which addresses core STEAM (Science, Technology, Engineering, Arts & Maths) learning outcomes and is suitable for groups and individuals of any age to imagine, and create their very own robot.
Our educational platform is fully opensource and can be built from cheap off the shelf and readily available parts. By building a robot from basic parts you will lean about robotics, electronics, computing, 3D printing and modelling. While assembling the robot, you will be introduced to the basics in all these skills; you can chose to focus on a particular area by modifying any aspects of the design, such as personalising your robots face, body and arms with your own designs or decoration. Alternatively, you might like to upgrade your robots compute or sensing capabilities.
The platform is articulated with 5 low-cost servo motors, enabling differential drive with independent head and arm movements. An 8x8 LED matrix enables colourful facial expressions and the addition of buzzer allows your robot to 'talk' (like R2-D2 from Starwars) and sing a nice tune (including the theme from Starwars). The platform can also sense objects, such as lines on the floor and obstacles that are along its pathway. It is powered by an Arduino Nano and has Bluetooth connectivity, which allows you to program the platform to operate in a few different modes. In full autonomous mode the platform makes for a happy little robot independent and carefree, or you can connect the platform to your mobile phone for some interactive fun, in super smart mode, you can give your robot a 'Brain the Size of a Planet' (as Marvin, the Paranoid Android, a fictional character in The Hitchhiker’s Guide to the Galaxy series by Douglas Adams was said to have) and hook it into the cloud of things via your PC where it can access internet knowledge and talk to other cloud connected Creative Robotix robots out there and share experiences. The options are limitless.
Our design philosophy is based around the 21st Century Robot Project an open source, crowd sourced framework approach to building robots in the 21st Century where robot's are imagined, designed and built to be social, to each have a name, to be community driven, connected, evolving, growing, improving over time, with each contribution and each iteration.
To get you started we’ve included a basic open source skin, CodEE. We encourage you to customise CodEE, with your own artistic skills, to give him his own personality, look and style, so why not print him out in white and let your artistic creativity go wild! Alternatively, why not dress him up, and take him out to see a show?
The Creative Robotix Educational Platform is skinnable, so why not show us your design skills and create a new robot character of your own, and perhaps write a creative story about your characters antics using some Science Fiction Prototyping, for more head on over to the Creative Science Foundation. To help your creative juices flow we have made other character skins for the platform, called RobEE, TimEE, TobEE (instructable to follow soon).
If you are technology minded, then why not try to find new ways to power our platform, perhaps with some of the latest advances in embedded technology, for example Pi-Zero-W and why not try out some other neat sensors, maybe a camera, positioning or even give our platform a sense of smell, or try out adding some other off-the-shelf technology you prefer. By evolving our design, creating your own robots, we hope that you will enter into the spirit of free-sharing by offering your designs back to the community so our Creative Robotix project can fulfill its vision for creating an an open source, crowd sourced approach to building and exploring the future of robotics with RobEE, TimEE, TobEE and Friends.
Finally, we wish you, "Happy Imagining, Happy Creating & Happy Making!"
- Estimated time to build (excluding 3D printing): 2 hours
- Estimated cost
- group build (excluding 3D printing): USD 18 - USD 30, group of 5
- individual build (excluding 3D printing): USD 33 - USD 55
- Computer programming
- Problem solving
Step 1: What You Need, the 3D Parts...
The design files are split into two ZIP files, the CR-Base Platform set forms the Creative Robotix robot base educational platform which can be 'skinned' to take on different robot characters. The CodEE file set is a character 'skin' which can be applied to the base. Download the design files and print them. We have tested these files on an UP BOX, printing in PLA. If you don't have access to a 3D printer then you might like to try the following online service 3D Hubs. We have also provided UP files with print layouts for the UPBOX+ and UP Box Mini.
Step 2: What You Need, the Components...
The materials can be bought from local electronics shops or online. We have used eBay to source components at the cheapest possible retail prices and have found the quality of components to be both good and reliable. A few of the components need to be bought in bulk and so the individual cost is relatively high when compared to the base unit cost. However, this is good encouragement to gather a group of friends and or classmates to share a social build together. The EXCEL Bill of Materials sheet will automatically adjust the quantity and order counts according to your group size. Also if you find a cheaper source and component combination, please let us know.
Download and print out the build mat on A4 paper, it will help you keep track of your parts.
- The bill of materials excludes sticky dots, double sided tape and tools as both are assumed to be common items.
Step 3: What You Need, Basic Tools, No Soldering Required...
A set of basic tools.
- Set of micro screwdrivers
- Medium size cross head screw driver
- Double strength double sided tape (or double sided sticky dots)
- Long nosed pliers
- Wire cutters
- Super Glue (optional)
- Automatic wire strippers (optional)
Step 4: Pinout Diagram and a Note of Caution When Wiring Up...
It's rarely good to connect devices with reverse polarity. Before you begin your build please familiarise yourself with the breakout board pin wiring diagram. Note where the power pins are on the board i.e. the +5V and 0V. Also note where these are on the other devices.
Step 5: Programme the Arduino Nano...
Our platform uses Firmata as a means to communicate with the host PC. You can download the source code and HEX binary from our GIT hub repository If you haven't done so already download and install the Arduino IDE.
You can choose from two options.
Option 1 - Upload HEX file
- Download the HEX file.
- Open your Arduino IDE. Click on the Tools tab, then Port: and identify the port number your Arduino Nano is located on (in the example COM4)
- Open a window command line window change into the directory where you downloaded the HEX file and run the following command (you may need to change the highlighted path to suit your installation.
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude -CC:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf -v -pm328p -carduino -PCOM4 -b57600 -Uflash:w:".\cre_firmata.hex":i
The default name for your robot will be Robee, the default password will be 1234.
Option 2 - Compile source
- Connect the Arduino Nano to your computer Select 'Tools' and then set the options 'Board' to 'Arduino Nano' and the 'Processor' to 'ATMega328' (or 'ATMega328 (Old Bootloader) '
- Our Firmata makes use of several libraries that you will need to download, install and configure.
- New Ping library - to install the library, select 'Sketch', then 'Include Library' and 'Manage Libraries'. Search for 'New Ping' and install. New Ping will conflict with the Tone functions, so you will need to edit the NewPing.h file and set the TIMMER_ENABLED setting to 'false'. You will find the '.h' file under the 'Arduino/libraries/NewPing' folder, usually in your 'Documents' folder.
- LedControl library - download the ZIP file from our GIT repository and install the library via the Arduino IDE.
- You may edit the the file CRE_Firmata.ino to give your robot a new name and pin number password. You can also do this later on from your computer.
- Compile and upload to your Arduino Nano.
// Edit this to rename your robot, you may also rename your robot via Firmata
#define MY_ROBOTS_NAME "Codee"
// Edit this to give your robot a new pin number
#define MY_ROBOTS_PIN 1234
Step 6: Join the Lower Body to the Upper Body...
Press fit the 'body-lower' and the 'body-upper' parts together. We have found the parts to fit quite tightly together, so press firm, so far we haven't broken any parts at the step. You may need an adult to help you with this step, ensure you use the palm of your hand to complete this step.
Tips that worked for us:
- Lightly press fit the parts together so they are in the correct position. Cover with a cloth and use a rubber mallet to gently force the parts together.
Step 7: Mount the Breakout Holder...
Use two 8mm screws to secure the breakout holder to the upper left corner of the body. Ensure the two posts furthest apart are at the top.
Step 8: Fit the Line Sensors...
The line sensor modules should snap snugly into place, held by the lower sensor indents. Use five 5mm washer head screws to secure them to the base, a firm press down on the screw driver will see them sink into the plastic. Hold the screws carefully to see them home. Ensure they are firmly home, but not over tighten.
- If a screw does not hold, then use one of the four spare 8mm washer head screws from the servo packs
- The order of the line sensors, this will be important for the correct pinout and wiring
Step 9: Assemble the Wheels and Mount the Drive Servos...
Note the screw heads at the bottom of the FS90R servos. They adjust the servos resting position. Do not touch them, but they may need adjusting in the final step. Remove the FS90R servo labels. Use three sticky dots (or tape, see next step) to mount the FS90R 360 servo into position. They should press fit and hold in place. Assemble the wheels with two 5mm self-taping screws. Fit the wheels to the servos and use two 4mm servo screws to fix the wheels in place on the centre spindle.
Tips that worked for us:
- After the build is complete you may want to put a spot of glue to permanently secure the motors in place. However, this is best left until your build is complete and you are happy with the way it is working.Instead of using the special 360 servos you may hack the cheaper Tower Pro SG90's servos for continuous rotation. By far the most reliable method is to hack a voltage divider in place of the potentiometer as ably described here.
NOTE: ENSURE YOU ARE WORKING WITH FS90R SERVOS in the step.
Step 10: Alternatively...
Use strong double sided tape to mount the servo wheels. Cut two slightly oversized rectangles of double sided tape and fit them into the servo cavities.
Step 11: Attach the Castor Bar...
Place three sticky dots (or double sided tape) along the top edge of the castor and push fit into the body, the top of the castor should appear flush with the front body.
Tips that worked for us:
- Alternatively use double sided sticky tape, or
- A tiny amount of superglue
Step 12: Tidy the Servo Wires...
Position the servo wires to receive the battery case in the next step.
Step 13: Fix the Battery Holder to the Castor Bar...
Ensure the battery holder is nice and snug against the top of the castor bar where it meets the main body and that it is centred. If it helps use a sticky dot or double sided tape to hold in place. Use two 8mm screws to fix to the castor bar.
Step 14: Mount the Arm and Head Servos...
Feed the head servo cable through the fittings as shown. As with the wheels, remove the servo labels, use three sticky dots per servo, or cut slightly oversized rectangles of double sided tape and fit them into the servo cavities. Fit the servos in position. They should press fit and hold in place
The servos should fit snugly into place.
Step 15: Wire-up the Line Sensors...
Strip 5 pairs of 3 wires from the main set of patch cables. Feed through the 5 pairs first, then connect the line sensors and tidily pull through. Facing front, the line sensors are numbered from 1 to 5, left to right. This will be important when connecting the other end of the cables to the Arduino breakout.
Tips that worked for us:
- The 5 pairs of 3 wires should naturally be different color combinations for easy identification of sensor number.
- Take a picture of the front, so you can reference the picture when wiring the sensors to the Arduino.
Step 16: Feed Through Wiring for the Ultrasound Sensor...
Strip off a group of four wires from the main patch cable set and feed the group of wires through the same opening at the line sensors, this maybe a tight fit, be gentle, but a firm push and some dexterity maybe needed here.
Step 17: Group the Wiring, Fit the Breakout Board, Connect the I/O and Tidy Up...
Turn the base over and connect the motors and sensors according to the pin mapping PDF. Tidy the line sensor wires through the breakout holder to the left, tidy all the servo wires and the ultrasound wires through the breakout holder to the right. You may need to spread the wires out to flatten them down so that the breakout board can be securely put into place over the top. Tidy and secure wires using cable ties.
Step 18: Fit the Processor...
The USB connector sits towards the top.
Step 19: Wire-up the Buzzer Module and Trim Any Excess Solder...
Strip off 3 wires from the main set of patch cables. Attach to the buzzer module. Using the cutter, carefully trim off excess solder. This will help the speaker fit into the speaker holder later.
Note on wiring:
- In the picture the white patch wire is 0 volts, the middle wire is +5 volts and the purple wire is signal wire and in the following steps will connect to pin 13 on the break out module.
Step 20: Wire-up the Voltage Divider for the Bluetooth Module...
The Bluetooth module we are using, the HC-05/06, operates on 3.3 volt signalling, the Arduino board we are using operates on 5 volt signalling. The 3.3 volt transmissions from the Bluetooth module to the Arduino are fine, in 5 volt logic a logic 1 is seen as a voltage greater than 2 volts, so we're all good. However, the 5 volt transmissions from the Arduino to the Bluetooth module may cause very bad things to happen to the RX input, over driving the input and potentially causing damage. We need to regulate the transmission voltage down to an acceptable level. This can easily be achieved with a 'voltage divider'. In this case we need to bring 5 volts down to 3.3 volts, so we need a 20K resistor across the modules RX input to ground and a 10K resistor from RX the input. The RX input resistor will connect to the the TX output on the Arduino Uno.
- How to 'read resistor values'
- The 20K resistor will be 3 banded red, black, orange, or 4 banded red, black, black, red
- The 10K resistor will be 3 banded brown, black, orange, or 4 banded brown, black, black, red
Step 21: Wire-up the Power...
Refer to the pinout diagram, connecting the +5V (the red patch wire) to the +5V pin next to A7 and the 0V (the black patch wire) to the 0V pin next at A7.
Step 22: Install the Buzzer and Bluetooth Module to the Carrier...
Ensure the Bluetooth carrier is orientated with the speaker holder top left. Apply two sticky dots or a strip of double sided tape to the lower two thirds of the carrier top. Fix the Bluetooth module in place, careful to alight the solder pins just after the edge of the carrier.
Slide the buzzer module into the Bluetooth carrier, this should be a tight fit. Trim the bottom solder again if necessary.
Slide the Bluetooth carrier over the Nano, top down. Connect up the buzzer and Bluetooth module using the pin out guide in the previous steps.
Use cable ties to neatly secure both to the existing cables.
Step 23: Base Platform Complete...
Step 24: Mount the Ultrasound Sensor and Front Body...
Connect the strip of four patch cables to the ultrasound sensor. Press fit the sensor into the sensor holder, it should be quite snug.Fit the holder over the body, you may need to apply a slight bend to lift the holder strut over the side of the body. Wire up the sensor using the pinout diagram.
Tips that worked for us:
- Completing this step after you have completed step 29 may help with the wiring.
Step 25: Assemble the Arms...
Thumbs Up! Using two of the long servo arm mounts from the Tower Pro secure them to the upper arms with two 5mm self-tapping screws, ensuring correct orientation, for left arm, right arm.
Tips that worked for us:
- If you do get an are the wrong way around, just remove the long servo arm and refit. If the 5mm screws no longer hold the servo arm in place, use a spare 8mm screw instead (you can trim any access with the wire cutters, but ensure you place a cloth over the cutter to capture the screw tip)
Step 26: Assemble the Head Mount Bracket...
Mount the remaining long servo arm to the head mount bracket using two 8mm self-tapping screws.
Step 27: Mount the LED Matrix...
The LED matrix should snap into place with a very snug fit. Ensure you have the LED matrix the correct way around, as shown.
Step 28: Attach the Head and Wire Up the Face...
Ensure that the servo motor spindle is centred before attaching the head, follow the pin map to connect the LED's.
Tips that worked for us:
- The servo spindle should be centred by default, but if it has moved then you can re-centre. Use a spare servo arm to place on the spindle, gently turning to each extreme to gauge and set the centre point. You don't need to be precise and you can also change the head position on the spindle later.
Step 29: Attach the Arms...
Role the servo spindle backwards until it reaches its end-stop, then attach the arms using two 4mm screws. A magnetic screwdriver head will make it easier to guide the screws down the arm spindle.
Tips that worked for us:
- We generally fix the arms so they are raised vertically upwards in the 'up' extreme.
Step 30: Build Done! Let's Power Up!
Place CodEE on a flat surface and insert four AA batteries, any AA batteries will do, however we recommend to go green and use rechargeable ones. If all has gone well, then CodEE should spring to life, smile and say hello. Check that CodEE's line sensors are responding. The LED on the front of the sensor should light up when on a light reflective surface and turn off when on a dark surface.
CodEE has an inbuilt demo, to trigger the demo on power up, connect signal pin 12 on the breakout board to GND (0 volts). On power up CodEE should run through his demo routine, moving forward for two seconds, then backwards, play a tune, while swinging both arms and looking around. CodEE's face should also display the distance to the nearest object within 60cm.
If nothing happens, or things don't work out as they should, don't worry, just remove one of the batteries. You will now need to 'debug' CodEE to help to work properly. There's probably just a few crossed wires, so carefully check through the connections, a VCC (+5 volts) or a signal wire may have been connected to a GND (0 volts) pin, or visa versa. If you can see nothing wrong, then remove all wires from the Arduino Breakout I/O board, and then add them back, one at a time, until you have them all connected and and functions working. Debugging, or problem solving, may take time, but it is a very useful skill to acquire.
Tips that worked for us:
- If your CodEE's wheels move slightly when they should be stationary, then you can adjust the servos by using a small screw driver to adjust the feedback resistor. The feedback resistor screw can be found at the bottom of the servo. Turn the screw until the servo stops turning or is stable at rest.
Step 31: Configure the Bluetooth Module...
Power down CodEE and remove the demo patch wire if connected. Connect a patch wire between signal A7 on the breakout board and GND (0 volts). Power up CodEE. CodEE should emit a series a chirps as the Bluetooth module is programmed and should then proceed to boot up with a smiley face. If this doesn't happen and a series of harsh chirps is repeatedly heard, then something went wrong. If this happens check all the wiring and connections.
One successfully complete, the Bluetooth module is programmed, power down and remove the patch wire.
Step 32: Connect Bluetooth to PC...
Step 33: Congratulations! Your Creative Journey Has Just Begun!
You now have your very own CodEE humanoid robot to play with, to program, to customize, to use at home, to use in class, or for your university project. Let us know what you do with yours!
We will be uploading some standalone sample applications and driver software for different platforms, including Python, C/C++, ROS and Android, to our Creative Robotix project pages.
Lastly, we wish you,
"Happy Learning. Happy Playing & Happy Experimenting!"