This repository contains code to control Jasmine Florentine's Ticklebot. Jasmine's original robot was created for the micro:bit platform. This repository assumes that you are using an Arduino microcontroller instead of a micro:bit device.
- Use instructions & template to construct ticklebot from card stock.
- Prepare the SparkFun Capacitive Touch Sensor for use by soldering header pins and a length of wire to the board.
- Use this circuit diagram to wire the components of your system together.
- Use either the text-based version of the TickleBot program or the Scratch (mBlock) version of the program to upload the logic to your Arduino.
- After upload, touch the robot's aluminum-coated foot to tickle it.
Jasmine Florentine's web page has excellent detailed instructions on how to assemble the ticklebot using card stock and a pair of micro servo motors. Refer to Jasmine's instructions when constructing your ticklebot.
Ticklebot Instructions (micro:bit)
There are some slight differences between the micro:bit configuration and the Arduino version of the tickletbot.
The micro:bit device includes a built-in capacitive touch sensor. A typical Arduino controller does not include
a capacitive touch sensor.
There is an Arduino-compatible library that can be used to add this touch sensor capability to an Arduino controller. For this project, however, I used a SparkFun Capacitive Touch Sensor breakout board (AT42QT1011) instead of building a DIY touch sensor.
SparkFun AT42QT1011 Capacitive Touch Sensor
I selected the SparkFun capacitive touch sensor over the DIY sensor in case a student prefers to program their Arduino using the Scratch-based mBlock coding platform.
Header pins were soldered to the SparkFun Capacitive Touch sensor to make it easier to use the device with a breadboard. The touch sensor is installed on a breadboard and then connected to the Arduino using jumper wires. Also, a small segment of wire was soldered to the "PAD" pin of the capacitive touch sensor. An alligator clip was then used to connect the "PAD" pin to the strip of foil on the understide of the ticklebot's left leg.
Header pins and a length of wire were soldered to the sensor
The sensor is installed onto a breadboard. An alligator clip connects the "PAD" wire to the ticklebot's leg.
Jumper wires are used to connect the Arduino controller to the micro servos that are used to control the ticklebot's arms.
Use jumper wires to connect the servos to the Arduino pins.
The ticklebot program assumes that the left and right arm servos are connected to digital pins 6 and 5 respectively. The ticklebot program also assumes that the output pin of the SparkFun capacitive touch sensor is connected to digital pin 9.
Use the following circuit diagram to connect your components to the Arduino.
In the circuit diagram above, the SparkFun sensor is depicted as being separate from the breadboard. This was done for clarity. For my ticklebot, I used the header pins to install the sensor onto the breadboard, and used jumper wires to connect the device to the appropriate Arduino pins.
SparkFun sensor installed on breadboard.
Once you have your ticklebot constructed and wired, you can clone this repository or download the program file and use the Arduino IDE software to install the program onto your Arduino controller. Once you've flashed the program to the Arduino, you should be able to touch the ticklebot's foot (the one with the aluminum sole) and the arms of the bot should move.
If you prefer to use the visual mBlock programming environment (which uses Scratch programming blocks) you can create an Arduino Scratch program using the following screenshot as a guide.
If your system doesn't behave as expected, you can check the circuit diagram to verify that your electrical connections are correct. You can also use the Arduino Serial Monitor software to view the debug statements from the code. Note that the Arduino IDE version of the code (written in C++) uses a serial baud rate of 9600. The mBlock version of the code uses a serial baud rate of 115200.
You can also look at the issues database of this repository to see if other users had similar problems with their system. You can also post questions in the issue database if you don't see an answer listed for your problem.