Close
0%
0%

Trundlebot - The Educational Robot

The fun “turtle” robot is a low cost education toy that anyone can build and enjoy learning to programme with.

Similar projects worth following
This is a project to create a simple low cost “turtle” like robot that anyone can own and learn to program with. It is based around the Raspberry Pi Pico and makes learning to programme more fun.

Fundamental to the design is that it is low cost to produce and can be built easily by anyone. All the parts are commonly available, or can be produced at a low cost. The design can be extended by anyone and other educational tutorials can be combined with it to further extend it.

The design is compatible with Raspberry Pi Pico, Raspberry Pi Pico W, W5100S-EVB-Pico and WIZnet WizFi360.

Hardware

The hardware consists of a main controller board with the Pi Pico compatible board installed, and a chassis with two low cost 28BYJ-48 stepper motors mounted to it. We web interface uses the WizFi360-EVB-Pico and is being ported to the Pi Pico W.

The PCB design files for the controller board are available to download from this page. Most online PCB manufacturers can create a partly-assembled board from these files with all the key components already in place.

The chassis can be laser cut using the DXF file from here, but hand cutting from 3mm plywood is also an option if you do not have access to a laser cutter. The 3D printed parts can be produced on most 3D printers and should be small enough that they can be ordered online at a low cost if printing them is not an option.

Assembly will take a couple of hours. I have created a separate set of build instructions with photographs. This is also available for download from below.

Software

With education being at the centre of this project it was important that it remain compatible with other Pi Pico educational projects, and that the code all be in Python. To enable this a set of libraries have been created to bring the required WizFi630 functionality natively to Python.

The base library that controls movement is trundle.py. Including this in you project gives some simple calls to move the Trundlebot around.

# Include this at the top of every programme
import trundle
 
# Move forward 50mm
trundle.forward(50)
 
# Move back 20mm
trundle.back(20)
 
# Turn right 45 degrees
trundle.right(45)
 
# Turn right 90 degrees
trundle.left(90)

Using the WizFi360-EVB-Pico gives full remote control via a drag and drop web portal. The following libraries (available from the GitHub repository) are used. 

  • wizfi360.py : This handles communication vaa the UART to the WizFi360 wifi module and dispatches callbacks to the rest of the Python code.
  • wizhttpsrv.py : An HTTP server that sits on top of the wizfi360.py library.
  • trundle.py : The Trundlebot stepper motor driver library that is used to move the robot.
  • index.htm : The web app including all the HTML5, CSS and Javascript combined in to one file
  • wizmain.py : The main WifFi Trundlebot code that joins everything together
  • main.py : This is used to auto start the Trundlebot code.


Before transferring the code you need to enter your wifi configuration towards the top of wizmain.py. After doing this it is recommended you transfer all the files except main.py to the Pico using Thonny. Once transferred run wizmain.py and you will be given a link with an IP address in the console. This is the link to your web app that controls the WifFi Trundlebot by any machine on your local network.

After testing your Trundlebot you can then copy across the main.py. This final file will auto start after being powered, connect to the wifi, and start the web app server.

Web interface

The WizFi Trundlebot is controlled via a drag-and-drop web interface. You have a number of commands to the right of the screen, including forward and back, right and left, and wait.

If you want the robot to turn right then just drag the “Right” command to the list on the other side of the screen and enter the angle you would like it to turn by. Similarly, if you want to move forward drag the “Forward” command to the list and enter the distance. You can reorder the list and drag items back you no longer want.

When you have your commands programmed in you can hit the “Go” button and your WizFi Trundlebot will start to move.

Hopefully you like the WizFi Trundlebot and will have a go at building your own.

Assembling_You_WizFi_Trundlebot.pdf

Build instructions document when using the WIZnet - WizFi360-EVB-Pico.

Adobe Portable Document Format - 2.66 MB - 04/19/2023 at 15:02

Preview
Download

Trundlebot_Trundlepad0.stl

The "Trudlepad" for the front of the Trundlebot. 3D print one of these.

Standard Tesselated Geometry - 1.13 MB - 04/19/2023 at 15:02

Download

Trundlebot_PCB_Layout.pdf

A diagram of the PCB layout.

Adobe Portable Document Format - 94.68 kB - 04/19/2023 at 15:02

Preview
Download

Trundlebot_Motor_Holder0.stl

The housing for the motos. 3D print two of these.

Standard Tesselated Geometry - 214.93 kB - 04/19/2023 at 15:02

Download

Trundlebot.kicad_pcb

The KiCAD file for having your own circuit board manufactured.

kicad_pcb - 156.62 kB - 04/19/2023 at 15:02

Download

View all 11 files

  • 1 × Raspberry Pi Pico or compatable We have been prototyping with the WIZnet - WizFi360-EVB-Pico .
  • 2 × 28BYJ-48 - 5V Stepper Motor
  • 1 × Trundlebot Breakout PCB The files to have this made are on this page.
  • 2 × Cable Ties Just a couple of small ones.
  • 1 × USB Lead A nice long one for programming.

View all 13 components

  • Trundlebot mentioned in the MagPi magazine

    Alistair MacDonald07/21/2023 at 11:06 0 comments

    I was interviewed for this month's issue of the MagPi magazine and the Trundlebot gets a quick mention. https://magpi.raspberrypi.com/issues/131/

  • First batch of prototype kits

    Alistair MacDonald06/19/2023 at 18:48 0 comments

    The first batch of prototype kits are ready.

    These are the friends, family, and extra keen supporter prototype batch. They are to learn about issues newcomers will have building them and are as much of a learning opportunity for me as the people building them. In short they are not ready for primetime just yet, but do get in contact if you would like one.

  • The Late Shows 2023

    Alistair MacDonald05/23/2023 at 22:10 0 comments

    Last weekend I took the Trundlebot along to Maker Space (the Newcastle and Gateshead hack space) to show off at The Late Shows. This was an ideal opportunity to show off the project and get some feedback from a new audience.

    The event was well attended by a good crowd. It was enjoyable and provided some useful feedback. The three main takeaways I have are...

    1. A drag and drop interface is not as intuitive to many as I had thought. This surprised me but something I should look in to further. It may be different on a different day, or it could be that the world has chanced as I had not noticed. Some more testing with different audiences should shed some light on this. I always thought of the drag and drop interface as one of several ways to programme the Trundebot, but it may be better as a secondary option.
    2. There is an expectation that there is a task to be completed and an achievement to be "unlocked". This is not such a problem as I anticipate producing tutorials for some set projects to get people going, but it does highlight that not everyone is comfortable jumping straight in.
    3. Small spelling maitakes are all but invisible to the average person. There has been a corker all the way thought and no one had spotted it until then. I am going to need to assistance with internationalisation so I will add English to the list of Languages I need help with. ;-)

  • Do you want a Trundlebot PCB?

    Alistair MacDonald04/19/2023 at 15:59 0 comments

    My hope for this project is that it will result in others creating a Trundlebot and learning some programming gaining some enjoyment from it. The one part of the build that is best manufactured by a professional is the PCB, and this is a significantly lower cost if manufactured in larger numbers. As a result I am looking at selling the boards, and possibly even full kits if there is interest.

    Please met me know if that is something that interests you.

View all 4 project logs

  • 1
    Assembling the PCB board

    You need to have a Trundlebot PCB that can be ordered online. All the details a manufacturer needs are in the “Trundlebot KiCad PCB File” and the “Trundlebot BOM File” on this page.

    Most of the components will have been assembled by the board manufacturer, but we still need to add some connectors. This is not hard to do and is good practice if you are new to soldering. Don’t worry, it is really really hard to break, and there are many really good tutorials online if you have not done it before.

    First let's get all the parts we need for this.

    You will need the Trundlebot PCB, four 40-pin 2.54 mm pitch header socket strips, and a 40-pin 2.54 mm pitch header pin strip.

    Now let's cut the headers into the lengths required. You will need 4 x 20 socket, 2 x 8 socket, 1 x 6 socket, 1 x 3 socket, and 2 x 2 socket. You will also need 2 X 5 pin header for the stepper motors and a single 3 pin header for the stepper motor.

    There are a couple of tricks you can use to make soldering the connectors easier. First is to use some header pins to hold the Pi Pico header sockets in place. Having some blue/Blu/white tack to hold the headers in place will also make things easier for the other connectors. 

    Finally when soldering long strips of headers it is good practice to solder the pins at either end, check they are straight, and solder all the pins in between.

    You should have something that looks like this when you are done.

    Now on to the rest of the hardware.

  • 2
    Assembling the Trundlebot

    First gather all the parts you need.

    • The assembled Trundlebot PCB from above
    • Raspberry Pi Pico or compatible
    • 2 X 28BYJ stepper motors
    • 3D printed parts (2 X “Wheel”, 2 X “Motor Holder” and “Trundlepad” from the files below)
    • 2 X Rubber bands
    • 20 X M3 screws (8 X 10mm and 12 X 16mm, although 20 X 12mm will suffice)
    • 8 X M3 nuts
    • A Trundlebot chassis (Laser cut from the “Chassis” file below)
    • Felt pad (either a self adhesive "Glider" or felt cut to size)
    • A cables tie

    Before we start adding things to the chassis there are a few parts that are easy to assemble first. First are the wheels.

    The wheels require a rubber band to be placed around the circumference to give the Trundlebot more grip. The easy way to do this is to place the wheel flat on a table and hold the band with two fingers along one side. Then pull the other side down, wrap it round, and then slowly let it draw in.

    The bands will occasionally fall off, but if this happens frequently then they are probably too tight and you should try some larger ones. Flat rubber bands tend to be more reliable than square or round ones.

    Next let's prepare the trundlepad. Stick on your felt or Glider. An offcut of felt stuck with Gorilla Glue Clear is photographed here. Be careful not to get the glue on the surface of the felt.

    Next we need to attach the motors to the motor mounts. Simply place in the slot with the wires pointing away from the flat surface and screw in the shorter 10mm screws. The motor should not move, but be careful not to over tighten.

    Now we need to attach everything to the chassis. First place a 10mm screw through a hole on the chassis for the PCB. You can hold the PCB over the chassis to confirm you have the right holes. Screw on a nut and tighten with your fingers, and then repeat for the other 3 holes. The side with the nut on is now the top of the Trundlebot.

    Next screw on the motor mounts to the bottom of the chassis. Again, do not over tighten the screws. Do the same with the trundlepad. Check the following photo if you are not certain about the direction.

    To finish off this step push a cable tie though the second set of slots from the trundlepad end secure the cables. You can also push the motor connectors though the pill shaped hole.

    You should now have something that looks like this. You can cut off the excess cable tie.

    Now we can add the Trundlebot PCB we assembled before. Simply place over the screws in the orientation photographed. Screw on the remaining nuts and tighten fingertight. Connect the left stepper motor (the side of the connectors) to “Stepper Motor 1” and the right motor to “Stepper Motor 2”. The red wire should be to the bottom / front of the board.

    We are almost done. Now slowly but firmly push on the wheels until they will not push on any further. Finally insert your Pi Pico with the USB connector facing the top/back.

    Well done, you now have built your Trundlebot. Now let's get it doing something.

  • 3
    Uploading the software

    The easiest way to programme the Trundlebot us to use the Thonny software. Instructions to get this installed and working with the Raspberry Pi Pico is on the Raspberry Pi web site ( https://projects.raspberrypi.org/en/projects/getting-started-with-the-pico ) . Please follow these instructions until you have completed the “Blink the onboard LED” section.

    To use the Trundlebot motors we first need to upload the “trundle” library. First download the library to your computer from https://raw.githubusercontent.com/alistairuk/trundlebot/main/lib/trundle.py (right clicking and “Save link as…” should do that).

    Next open Thonny, select "File", then “Open…”, and then click the "This Computer" button. If the button is not shown then Thonny is not configured correctly for the Pi Pico and you should go back to the Raspberry Pi instructions. Then select the file you downloaded.

    There are two settings that can now be changed. Most hardware will work fine with the default settings. You will see a line that reads “wheel_diamiter = 99”. If you use a thick rubber band you may need to increase this value to 100. The setting “wheel_separation = 138” is the distance between the middle of the rubber bands and will normally be correct.

    Now we can save it to the Pi Pico by selecting "File" again, then "Save Copy...", this time clicking the "Raspberry Pi Pico" button, and entering the filename "trundle.py".

    That is the library installed. It can be tested in the Thonny “shell” tab at the bottom of the window. First enter the line…

    import trundle
    

    This will tell the Pi Pico to use the Trundle library. Next try…

    trundle.forward(40) 

    This should make the Trundlebot move forward 40mm. If not then check the troubleshooting section below.

    Now let's have some fun with writing some code.

View all 5 instructions

Enjoy this project?

Share

Discussions

RettaPetersen wrote 05/20/2023 at 07:57 point

The emphasis on easy assembly and the availability of commonly accessible parts ensures that anyone can build the robot without significant obstacles. Moreover, the project's extendability allows users to customize and enhance the design according to their preferences or combine it with other educational resources and also this article explains what it is, and why it is important The compatibility of the design with various Raspberry Pi models and the WIZnet WizFi360 expands its versatility and potential applications. Overall, this project holds promise in promoting programming education and hands-on learning experiences with robotics

  Are you sure? yes | no

rob adams wrote 01/28/2024 at 08:48 point

Absolutely agree! The focus on easy assembly is a game-changer, making robotics accessible to all skill levels. The extensibility is key – love how it encourages creativity. The compatibility with Raspberry Pi and WizFi360 opens up endless possibilities. A commendable project indeed! If you have questions about the work, I have a lot of scientific resources and a large library on this topic here https://educhill.com/.

  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates