Skip to content

suromark/CamSlider-AnalogStick

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

46 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Camera Slider with stepper motor drive and analog stick control

  • Using Bresenham multi-dimensional as illustrated at http://members.chello.at/easyfilter/bresenham.html
  • Analog-Stick-Version - No auto-range at startup. No endstops. NO SAFETY. All positions and motions are user responsibility.
  • Microcontrollers supported:
    • Arduino Nano or clone (standalone only)
    • ESP32 breakout board e.g. Doit Devkit (with enhanced bluetooth features)

ESP32 prototype

ESP32 - optional Bluetooth command parser / remote

List of commands

  • end all commands with newline
  • one command per line
  • report current position and volatile target: pos
  • set current position as zero reference: zero
  • nudge current position of axis N by relative VALUE: n<N>,<VALUE> e.g. n2,-123
    • nudge sets volatile target to current position, adjusts axis N then executes run with current delay value
    • nudge can also be called during motion, repeatedly
  • set target of axis N to absolute position: a<N>,<VALUE> e.g. a0,-5131
  • move target of axis N by relative VALUE: r<N>,<VALUE> e.g. r1,-318
  • set step delay to VALUE loops per step: sd<VALUE> e.g. sd60
  • drive to current target: g
  • store target VALUE for axis N in memory SLOT: s<N>,<VALUE>,<SLOT> e.g. s2,13231,0
  • store current position in memory SLOT: set<SLOT> e.g. set0
  • drive to target SLOT: t<SLOT> e.g. t0 (overwrites the volatile target values defined by a or r!)

Hardware used:

Input:

  • Analog 3-axis stick with button, e.g. "JH-D400X-R4 10kOhm 4D sealed rocker"
  • digital rotating encoder
  • 3 buttons:
    • start/stop the motors by button on top of analog stick,
    • config select by encoder button
    • skip to next target by simple momentary button

Output:

  • 1602 display module with I2C connector
    • for Nano: 5 Volt version
    • for ESP32: either 5 Volt version and 2-channel bidir level shifter 3.3 <-> 5, or 3.3 V module
  • Stepper drivers: TMC2208

Power supply:

  • 10+ Volts DC of any kind (Lipo, AC adapter, Li-ion battery pack of power tools ...)
  • recommended: additional step-down regulator to deliver 5 volts for display, TMC driver logic side and controller module

Steppers:

  • e.g. MINEBEA 17PM-K077BP01CN (cheap, rather low power consumption, 10.2 Volts nominal, max. 300 mA but works fine for this purpose)

wiring @todo

Menu structure (rotation/push encoder button)

  • MODE SELECT
    • -> (Click) -> STICK DRIVE | STICK SLOW | PINGPONG | ONEWAY | ONEWAY_TRIG -> (click = select + return)
  • SET START
    • -> (Click) -> set coordinate index 0, back to menu
  • SET STOP
    • -> (Click) -> set coordinate index 1, back to menu
  • SET STEP DELAY
    • -> (Click) -> Turn right: increase value (slow down) | Turn Left: decrease value (speed up) -> (Click = Return)
  • OPTIONS
    • -> (Click) -> Recalibrate | Reboot/Reset? (TODO...)

Button B:

While driving in ... mode:

  • STICK DRIVE -> no action
  • STICK SLOW -> no action
  • PINGPONG -> always skip current target and start moving to next target
  • ONEWAY -> always skip current target and start moving to next target
  • ONEWAY_TRIG -> If running, skip to next target | if waiting, start the run

About

Platformio/Arduino firmware for yet another camera slider (with analog stick control)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published