Introduction: POV Globe 24bit True Color and Simple HW
I've always wanted to make one of these POV globes. But the effort with all the soldering of LEDs,wires etc. has deterred me because i'm a lazy person :-) There has to be an easier way ! In this instructable i will show you how to build a POV globe with less electronic parts than other projects. The reason is the use of the adressable LED strips APA 102. This stripes don't need any driver electronic and can be directly connected with only 2 wires to a microcontroller. The state of the LEDs is ( and has to be ) VERY fast changable. To get a stable image the SPI clockrate is about 10 Mhz and could be even higher. For further information about the LEDs look here.
Another advantage is the use of normal bmp files that are stored on a microSD card.
Let's go !
Step 1: BOM
Here is a list of the main parts you'll need. For the LED ring i use my 3D printer, you can also use a slice of a PVC pipe (diameter 150-180mm).The bearing brackets are also printed, but can be made of a wood piece for example. For the basic frame i use some old metal profiles, feel free to use other metal profiles, wood, plastic or whatever. Be sure that the frame is torsionally rigid and a bit weighty.
For the drive shaft:
- threaded rod M8, length 250mm
- M8 nuts
brass sleeve 10mm, length 100mm
- 2 pcs. plastic washer 8mm (see also STL files)
Flexible Shaft Coupler 5mm to 8mm (those who where use for Nema 17)
for powering the LED ring over the shaft:
2 pcs. ball bearing 6300 (10x35x11) full metal
bearing brackets, see STL files or make from wood with a 35mm whole saw
- 4 pcs. screw M4x40 with nut
- 2 pcs. cable shoes 8mm
Brushless Motor with 5mm shaft
- 4 pcs. M3 screws for mounting the motor
ESC for brushless motor,possibly with fan
Alternatively you can use a combination of a brushed motor/esc with enough torque.
The motor described above has enough torque but never reach his max current of 50 Ampere. My supply measure less than 4 Ampere. So there is no use for a 50 Ampere ESC. I put a heatsink with fan on my 18Ampere ESC and it works fine.
For accurate "firing" the ESC i use an
- Arduino Pro Mini
- with two buttons
another option is a
We need 12V for the motor and 5V for the LED ring.
- I prefer the use of old pc supplies like shown in this instructable.
- There are lots of 12V/5A supplies out there from china.
- if you use one of this don't forget a DC-DC step down converter for the 5V
- 64pcs. APA 102 LED (2 Stripes a 32pcs.)
- Electrolytic capacitor 1000µF 10V
- TLE 4905L Hall sensor + magnet
- pull-up resistor 10k,1k
- Ring: Use the STL file or a slice of PVC pipe
- cable ties 100mm
- GOOD glue, that the stripes don't fly away at 2400rpm :-)
The Parallax Propeller Microcontroller:
Don't be afraid of this microcontroller, it is a powerful 8-core mcu with 80Mhz and is just as easy to program/flash as an arduino !
Another (my) choice is the P8XBlade2 from cluso, the microSD reader is already on board !
For programming the arduino and propeller you also need a USB to TTL adapter board like this one
Step 2: Housing
Here you see the housing. Make it from any material that is sturdy enough. In the end you need some kind of a cubic cage with approximately 100mm edge length where you can mount the motor and the ring/ bearings. The cube is mounted on a solid wood plate with distance bolts. A hole for the motor was drilled into the plate.
Step 3: The Drive Shaft
I choose a threaded rod with a length of 250mm. The length of the brass sleeves are about 30 and 50mm depending on the size of the cage and the shaft coupler. The upper (and longer) sleeve has to be isolated from the rod because it forms the positive pole for the ring supply. This is done by insulating tape and plastic washers. The sleeve will not fit on the rod with the tape until you increase the inner diameter from 8.0mm to 8.5 - 9.0 mm by drilling/milling. The other sleeve including the rod forms the negative pole.
Step 4: Brushless Supplying
Now it's time for the bearings. I choose bigger ones than the standard bearings because of better conductivity. Place the bearing in the holder and position the plate on top of it. The small hole at the side is for the cable. Don't forget the shaft and the washer between the bearings/sleeves.
I 3d-printed the holders, have a look at the stl/zip file.
Step 5: Motor Control
Have a look at the schematic how the motor electronic has to be connected.
If you have never program an arduino look at instructables :-) The two buttons are for motor speed. If you switch on the power supply the ESC gets a value of 500µS. Press one of the buttons to switch on the motor. The sketch took the value "StartPos = 625". Later, if you've found the right speed this value has to be changed. By using the left or right button you decrease/increase the speed, press both buttons at the same time for 2 sec. and the motor will stop.
Be sure that the motor/globe rotates counterclockwise, like the real earth :-)
Step 6: One LED Ring to Rule Them All :-)
Here comes the core ! Printed with my 3d printer but as i said above there are also other options. To save weight i have many holes place in the frame. Now cut two strips off, each with 32 LEDs. Better count off several times before using the scissor :-)
Placing the strips is a littly bit tricky. You have two strips/columns that generates odd and even lines. The odd lines are at one side of the ring, the even lines are at the opposite. Mark LED number 16 at each strip (respectively line number 32 and 33) and fix it at the frame like showing at the pictures. One led fits exactly between two opposing LEDs. So you have two place the second strip with an offset !!!
After that you can fix the PCB/PCBs, i made small slots in the bracings so the PCBs can easily attached.
Before you mount the ring on the shaft, you must balance it. Use a thin stick to balance and screws or nuts as counterweight.
Step 7: Schematic
In this schematic you see how the MCU board is cabled to the other parts at/in the ring. I also attach a photo of the hall sensor and the magnet. The schematic use an older and bigger fritzing MCU-board because i don't find fritzing templates of newer/current Propeller Boards. Feel free to ask your questions for the board you'll choose/get.
Step 8: Programming/Flashing the Parallax Propeller Microcontroller
This is the binary that can easily transfer to the prop-board. Here is a link to one of my previous Instructables that also use the propeller microcontroller and show you a HOW TO.
Step 9: Bring Into Service
Ok, first we only copy the test picture to the sd card.
- If the ring is manually rotated, the LEDs must flicker every time the hall sensor passes the magnet.
- now start the motor and increase the rotation speed until the LEDs are aligned (see the 2 pictures)
- the Voltage has to be constant and the ring must turn slighty to get a stable/aligned picture
- connect the arduino terminal to the motor control
- notice the shown value
- stop the machine
- replace the value to variable "startPos" in the POV_MotorControl sketch
- flash arduino again
Next time you start the motor you'll get the right speed.
The next step is no longer necessary with the new software, from a speed of 38 to 44 rps the odd and even lines are "locked" correctly.
(Use the up/down buttons for fine tuning if necessary.)
Now you can "fill" the card with your other pictures.
Have fun !!!!!!
Step 10: How to Create Your Own BMPs
You want to use your own pictures ? No problem, i show you:
- Resize your image to a resolution of 120 x 64 pixel
- rotate 90 degree counterclockwise
- mirror vertical
- possibly reduce the brightness (the LEDs are very bright),
the best brightness correction for images is to use gamma correction with a factor of 0.45
save as BMP with 24bit color and no RLE
after saving the size of the file has to be 23094 byte !
Any other size won't work.
If you want, store several images at the sd card. They are shown one by one each after one rotation.
Now it's up to you to create a better Death Star than mine !
Step 11: Additional Infos
Some things I noticed:
- If you use one of the tiny CpuBlades from cluso don't forget to solder the 3 pin jumper labelled QE for programming
- my bearings have a voltage drop of approx. 0.5 V so i have to increase the voltage from the dc-dc converter up to 6 Volt.
(January 13, 2017), added the ring.stl in step 6
- (January 17, 2017), the best brightness correction for images is to use gamma correction with a factor of 0.45
- (January 17,2017), update POV Globe0_2.binary
- (January18,2017), upload source code in step8
- (January 27,2017), upload new source code, version from 0_2 to I_0_1. Have made a great progress with the synchronization between odd and even lines. It's no longer necessary to find the correct speed, simply bring the ring to a speed of 38-44 rounds per second and the lines aligned !
- (March 03, 2017), modified the bearing holder
- (March 09, 2017), upload a test binary to switch on all LEDs