ortogere

ortogere - 'magical' device - similar to a compass

View project on GitHub

POV

the idea is that the compass needle can rotate slow in both directions to set / point a direction of choice.

but also can spin up to about 1800rpm (= 30rps) and have LEDs to create a classic POV display.

on every half of the needle are 12..20 LEDs (APA102-2020 or Nichia NSSM124D with TLC5971 or something similar) so we have a 12..20-Pixel high circle-screen.

pov concept overview

some first simple tests are documented at POV_simpletest


Contents


basic calculations

130mm Needle, 3mm Pixel Pitch

line = virtual pixel line on circumference (from inside to outside of circle)

name test value formula
updates_per_second = revolution_per_second 30  
rpm (revolution per minute) 1800 1800 updates_per_second * 60
pixel_pitch 3mm  
needle_diameter 130mm  
needle_active_radius 60mm 60 (needle_diameter - 10) / 2
pixel_per_line_count 20 toFixed(needle_active_radius / pixel_pitch; 0)
pixel_per_line_count_total 40 pixel_per_line_count * 2
line_circumference 408mm toFixed(π * needle_diameter; 1)
line_count 136 toFixed(line_circumference / pixel_pitch)
line_updates_per_revolution 136 line_count
line_updates_per_second 4080 updates_per_second * line_updates_per_revolution
line_updates_per_minute 244800 rpm * line_updates_per_revolution
duration_per_revolution 33ms toFixed(1000 / updates_per_second; 1)
duration_per_line 0.242ms toFixed((duration_per_revolution / line_count); 7)
duration_per_line_us 242us toFixed(duration_per_line * 1000; 0)
duration_per_line_ns 242000ns toFixed(duration_per_line * 1000000; 0)
line_pwm_duration_for_8bit 945ns toFixed(duration_per_line_ns / 256; 0)
line_pwm_rate_for_8bit 1,06MHz toFixed(1000 / line_pwm_duration_for_8bit ; 2)
line_pwm_duration_for_9bit 478ns toFixed(duration_per_line_ns / 512; 0)
line_pwm_rate_for_9bit 2,09MHz toFixed(1000 / line_pwm_duration_for_9bit ; 2)
line_pwm_duration_for_10bit 236ns toFixed(duration_per_line_ns / 1024; 0)
line_pwm_rate_for_10bit 4,24MHz toFixed(1000 / line_pwm_duration_for_10bit; 2)
line_pwm_duration_for_11bit 120ns toFixed(duration_per_line_ns / 2048; 0)
line_pwm_rate_for_11bit 8,33MHz toFixed(1000 / line_pwm_duration_for_11bit; 2)
line_pwm_duration_for_12bit 59ns toFixed(duration_per_line_ns / 4096; 0)
line_pwm_rate_for_12bit 16,95MHz toFixed(1000 / line_pwm_duration_for_12bit; 2)
line_pwm_duration_for_13bit 30ns toFixed(duration_per_line_ns / 8192; 0)
line_pwm_rate_for_13bit 33,33MHz toFixed(1000 / line_pwm_duration_for_13bit; 2)
line_pwm_duration_for_14bit 15ns toFixed(duration_per_line_ns / 16384; 0)
line_pwm_rate_for_14bit 66,67MHz toFixed(1000 / line_pwm_duration_for_14bit; 2)
line_pwm_duration_for_15bit 7ns toFixed(duration_per_line_ns / 32768; 0)
line_pwm_rate_for_15bit 142,86MHz toFixed(1000 / line_pwm_duration_for_15bit; 2)
line_pwm_duration_for_16bit 3,7ns toFixed(duration_per_line_ns / 65535; 2)
line_pwm_rate_for_16bit 270,27MHz toFixed(1000 / line_pwm_duration_for_16bit; 2)

reminder / helper

1 s                  = 1Hz
1 000 ms             = 1Hz
1 000 000 us         = 1Hz
1 000 000 000 ns     = 1Hz
1 000 000 000 000 ps = 1Hz

1s  = 1Hz
1ms = 1kHz
1us = 1MHz
1ns = 1GHz
1ps = 1THz

LEDs & LED-Driver

look at pov_leddriver.md

data transmission

look at pov_datatransmission.md

power transmission

look at pov_powertransmission.md

mechanics

look at pov_mechanics.md

motor

look at pov_motor.md

3D