So this is the newest addition the the raspberry pi family it’s called the Pico!
Now this ones not a miniature computer like the pi 3b+ or Pi zero, it’s actually a stand alone micro-controller.
I have also made a YouTube video on this which you can check out here: https://youtu.be/P9Ecb2ZDq4c
It can be used in a multitude of different electronic projects such as games, testing equipment, robotics , but today we’ll be using it to make a photography turn table which will spin subjects around to photograph or shoot b-roll.
The 3D printed parts were drawn up on the site Tinkercad which is a very straight forward 3D modelling program anyone can get started with.
you can access the project files here: https://www.thingiverse.com/thing:4768052
If you don’t have access to a 3D printer, there are some very affordable 3D print on demand services online that are a great option for printing your designs and shipping them to you. I’ll have a link to a few of them down below.
Now just as a disclaimer due to the size of the small stepper motor used in this project this one is well suited for light objects but nothing heavy or the motor simply won’t be able to spin the top so fair warning in terms of what this one is capable of.
Electrical Parts Needed
To start of with these are the electrical parts you’ll need :
*all parts are on amazon and will be linked below this post*
- A Raspberry Pi Pico microcontroller board
- Small integrated bread board with these dimensions
- 6 male to socket jumper wires
- 2 socket to socket jumper wires
- Arduino power module
- Stepper motor 28BYJ-48
- Motor Driver board with a ULN2003 driver chip
- Micro usb cable to usb A
- 9V battery and with barrel jack plug connection.
- Lazy suzan table bearing assembly
- 4X #4 size 6mm long self tapper screws
- 4X M3X10mm screws
- 4X M3X10 threaded Spacers
- Philips screw driver
- 3D printer or have access to a 3D printing service locally
- Vernier calipers for measuring components
- Hot glue gun or blue tac depending on if you want to re-use the components for another project.
Now this project can be broken down into 5 main parts.
1.Setting up the Raspberry Pi Pico and coding environment on your computer
2. Building the electrical circuit
3.Coding the program that will make the electrical parts function
4.Designing and printing parts to assemble the turn table
5.Turn table assembly and testing
1 – Setup Pico
To begin with we need to set up the Raspberry Pi Pico by downloading a program called Thonny.
Thonny is used for writing Micro Python code specifically for creating a working program we can run once the PICO is powered on.
Once you have downloaded and Installed Thonny the next step is to:
Add Micro Python firmware to the Pico, to do this
Attach raspberry pi pico to breadboard
Connect micro usb cable to PICO
Hold down bootsel button on Pico
While holding down button connect cable then to usb port on PC
There should now be a USB drive type device pop up with 2 files
click on the MicroPython
Click on the ‘Download UF2 file’ button
Drag file from your downloads into Pico folder
And now Pico can communicated with Thonny to load programs onto the device using code we’ve written.
Install IDE environment. Download it from https://thonny.org/
2 – Building the Stepper Motor Circuit
After the development environment is setup along with the PICO its time to build the electrical circuit, to get started you’ll need in front of you the follow things
6 male to socket jumper wires
And 2 socket to socket jumper wires
Arduino power module
ULN2003 Motor Driver circuit board
Stepper Motor 28BYJ-48
And lastely the 9V battery and barrel jack plug
Start by attaching the Pico with the micro usb connector facing out and insert it into the breadboard lining one side of the pins up with the C column and the other side into the h column this leaves us enough room to fit the wires beside the micro controller in order to connect it with the motor driver
Next attach the power module behind the microcontroller leaving enough space between the PICO and the power module so they don’t get in the way of one another
Next using this diagram we’re going to install wires connecting the GPIO pins 1 2 4 and 5 to the motor driver board corresponding IN1 IN2 IN3 and IN4 labelled pins in order for the Pico to be able to talk with the motor chip to tell the stepper motor when to move.
So Pin 1 will connect to IN1 Pin 2 with IN2 Pin 4 with IN3 and finally Pin 5 with IN4
Finally attach the Stepper motor plug into the motor driver board and plug in the micro USB cable into the Pico and the other end into your computer and the barrel connector into the power module to supply power to the bread board.
3 – Coding
Now it’s time to code our program that will make the stepper motor turn a full 360 degrees continuously.
To do this we first need to look at the ULN2003 motor driver chip documentation where it states to move the motor forward we have to put specific pins high for a moment in order for the spindle to turn:
Pin 1, then 1 and 2, then 2 and 3 and so on. In the MicroPython coding language it can be done like so:
First we’ll start by configuring GPO, GP1, GP2 and GP3 pins for output:
from machine import Pin
pin1 = Pin(0,Pin.OUT)
pin2 = Pin(1,Pin.OUT)
pin3 = Pin(2,Pin.OUT)
pin4 = Pin(3,Pin.OUT)
pins = [
pin1, pin2, pin3, pin4,
Next we need to write those steps as pins that must have a status of high to move:
steps = [
current_step = 0
Based off which step we are currently in we can select which pins must be set to high. After reaching the last element the sequence starts from the beginning:
high_pins = steps[current_step]
current_step += 1
if current_step == len(steps):
current_step = 0
So here we have an infinite loop that for current step sets all pins to low, then sets selected pins to high, increments step number and waits 1 millisecond.
So this code will turn the stepper motor clockwise and if you want to slow it down you just change the number of milliseconds the wait time is set too.
If you want he stepper motor to run in reverse you simply write the steps out in reverse and it will make so the motor starts in it’s final position pin4 and moves backwards.
We’ll save this to the Raspberry Pico and save it under the name main.py which when named this will automatically run the program when the PICA is powered on.
4. Designing photo turn table and printing parts
Next up is designing the turn table base and top plate.
Now for something like this I like to use Tinker CAD it’s a free online 3D modelling software that’s really easy to use if your a hobbyist and even has a small set of tutorial steps to get you up and running.
I wanted the stepper motor to be inset to the base and spin an upper section while the lower part remained stationary. So I started by measuring the stepper motor itself to work out how the base would be designed around it being the centre of the model.
The stepper motors shaft was positioned off centre to the motor I had to make sure it was the centre point, it also needed to sit down into the lower section enough to were the only part sticking out the top was the shaft to attach the table too.
I left enough space under base to fit all the electronic components so they were hidden and could be attached to the underside without being in the way, it also made it a lot cleaner looking and easy to move around.
Admittedly it did take a few revisions to get it exactly how I wanted it but sometimes when your making something from scratch you have to expect that things won’t always turn out perfect in which case revisions to the design are always going to happen.
Once I had the 3D model complete I saved it as an STL file and sliced it in CURA which I find to be the easiest to use to create a 3D printer file type, transferred it to a micro SD card and printed
The two separate pieces on my Ender 3, 3D printer which produces some decent models for the price and all up the printing time was little over 25 hours. Once you have the design dialled in though and your happy with it, the 3D printer pretty much takes care of the rest.
5 – Assembly
So we have the PICA set up, the code written, the circuit is built, the parts printed and now it’s time to put it all together
Fit the Stepper motor into the base first, and screw it into place with 2 #4 size 6mm long self tapper screws.
To fit the wires through the channel I removed them from the plug, before you do this make sure to take a picture so you know the order they go back in, then run the wires through the channel running down through the turn table base.
A tip here is to run 1 or 2 wires first and then tape any additional wires to the existing wire that has been run already and pull the rest through.
Now reconnect the wires into the plug one by one making sure to get the orientation right, you shouldn’t be able to pull the wires back through once they are locked in.
Next up mark out were the bearing plate will sit central to the stepper motor spindle and secure it over the top of the stepper motor leaving the spindle sticking out the top for the table to connect to,
Push down the table section onto the shaft and let it sit on the top bearing plate.
Now flip the turn table upside down to start fitting the electrical circuit components inside the base.
Start by fitting the :
breadboard with Pico attached
Fit the 9Volt battery and barrel jack plug connection
Fit 4 spacers and screws to the motor driver board and secure into place next to battery either with blue tac or a hot glue gun for a more permanent job.
Fit the arduino Power module to the other side and tidy up the wiring so that none of it is sticking out below the base, and make sure enough space is left to connect and disconnect the power plug easily into the power module
Once all the electrical parts are secured that’s the assembly done
Changing turn table speed through code
When the barrel jack plug is connected to the power module, it automatically runs through the program and starts spinning the table.
If you need to change the rotation speed, first disconnect the power connector, and jumper wire from pin 1 of the bread board to remove power from the circuit, and plug the PICA back into the computer via the micro usb port.
Open up Thonny, connect to the PICO and open the main.py file to change the time delay of each step in milliseconds.
just a couple numbers higher will slow down the rotation of the stepper motor considerably.
Once you’ve changed the time delay save the file and disconnect the usb cable connection to the pica, plug the jumper wire back to pin 1 on the breadboard and after reconnecting the power cable the table rotations speed should have changed.
Overall it turned out to be a fun project to make and definitely could be upgraded in the future with a more powerful stepper motor, an on/off switch instead of the plug and a few other addons to make it more customizable.
However it serves it’s purpose as a photography turn table and I was surprised just how much weight it could support. For the $4 dollar price tag the PICO is definitely a great addition to the raspberry pi line up and I think will have a lot of applications especially in smaller retro style gaming systems for makers in 2021.
Let me know down in the comments what you plan on making with the PICO I’ll be down there answering any questions.
So that’s it from me, if your interested in making this same project I left a link to the project files below as well as a link to the Raspberry Pi Pica, and everything you need for this one, if you enjoyed this post make sure to leave a comment and consider checking out some of my other tech reviews.
———————-Project Files———————— https://www.thingiverse.com/thing:4768052
PICO with presoldered header Pins(affiliate link) https://amzn.to/2ZA4PVT
(affiliate link) stepper motor and driver: https://amzn.to/2Zwwmry
(affiliate link) jumper leads: https://amzn.to/3bjTM8R
(affiliate link) 9V battery clip: https://amzn.to/3azlW0x
(affiliate link) 9V battery: https://amzn.to/3qEjlYH
arduino power module: https://www.jaycar.com.au/arduino-compatible-breadboard-power-module/p/XC4606
————————Project Tools———————— (affiliate link) vernier calipers: https://amzn.to/3qAickX
(affiliate link) 3D printer used: https://amzn.to/3k22vR0
(affiliate link) philips screwdriver: https://amzn.to/3k7h2uP
(affiliate link) hot glue gun: https://amzn.to/3qEjcnZ
(affiliate link) blue tack: https://amzn.to/3axjojs
————————3D print on demand services————-
(affiliate link) philips #4 6mm long screws https://amzn.to/2NFMWlW
(affiliate link) M3x10 screw: https://amzn.to/3k3WxiF
(affiliate link) M3x 10 threaded space: https://amzn.to/2M82Yon
(affiliate link) Lazy suzan bearing: https://amzn.to/2ZxFrQF