Giter VIP home page Giter VIP logo

scf4-sdk's Introduction

Kurokesu SCF4 multi-axis stepper motor controller System On Module (SOM) targets applications where time to market, reliability and small footprint is important. Main control MCU is ST Cortex STM32F103 powerful enough either to run standard or run dedicated standalone firmware. The motor front end is based on ON Semiconductor new and highly specialized chipset LC898201.

Full documentation moved to WIKI

More details and ordering info at https://www.kurokesu.com

Some standalone use examples:

  • React to lidar distance sensor and adjust focus/zoom accordingly
  • Switch day/night filter by measuring ambient light intensity (with dedicated analog or digital sensor)
  • Take R/C inputs and control Remote-controlled drone or vehicle lens
  • Switch / reconfigure lens by single GPIO input (for example: reconfigure lens for wide/near operation by toggling GPIO pin)
  • And much more...

Managed mode (default) target applications worth mentioning:

  • Computer vision and analysis applications
  • Scientiffic applications
  • Neural network image processing and recognition applications
  • Transport systems (ITS)
  • Universal Pan/Tilt/Zoom and/or Focus/Zoom/Iris/+ driver
  • Toll systems
  • Trafic or segmental speed measurement
  • ROV/Drone lens control unit
  • Face recognition applications
  • Long term time-lapse cameras
  • Distant camera installations that may require reconfiguring optical train remotely
  • And much more...

scf4-sdk's People

Contributors

lukse avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

scf4-sdk's Issues

Documentation shows conflicting descriptions for G90 and G91 codes

https://wiki.kurokesu.com/books/scf4/page/controlling-scf4-with-g-code-commands

This page initially describes

G90 - Absolute Programming Mode
G91 - Incremental Programming Mode

then later on the page describes

G90 - Relative coordinates
Switch to relative coordinate programming mode. Motors can be instructed to turn positive or negative 0 ~ 65535 steps (16-bits). When the counter exceeds this range, it will overflow. And will not affect motor movement.

G91 - Absolute coordinates
Switch to absolute coordinate programming mode. In this mode, the range is limited by the internal 16-bit motor register and can be operated in a range of 0 ~ 65535.

G90 should be Absolute Coordinates and G91 should be Relative Coordinates. Or Incremental to keep with the initial language.

c/c++ code

Hi
Is there a c/c++ SDK to control camera? I want to use camera for drone.

Thanks

Homing for Stage A on the X10 is backwards

gui_L054(for C1_PRO_X10 camera)/hw_serial.cpp contains the following code for homing the first stage:

if rec == "seek_a":                            
    status_str = self.__ser_send(ser, "!1") 
    status = self.__parse_status(status_str)
    if status[3] == 1: 
        self.__ser_send(ser, "G91")
        self.__ser_send(ser, "M231 A")          # Set motion to forced mode
        self.__ser_send(ser, "G0 A+100") 
        self.__wait_till_stop(ser, status[CHA_PI], CHA_PI)     # Wait until homing is over 
    else: 
        self.__ser_send(ser, "G91") 
        self.__ser_send(ser, "M231 A")          # Set motion to forced mode
        self.__ser_send(ser, "G0 A-100") 
        self.__wait_till_stop(ser, status[CHA_PI], CHA_PI)     # Wait until homing is over

which results in incorrect homing behavior. Stage A moves away from the center reference point. The G0 command should be reverse for each case.

if rec == "seek_a":                            
    status_str = self.__ser_send(ser, "!1") 
    status = self.__parse_status(status_str)
    if status[3] == 1: 
        self.__ser_send(ser, "G91")
        self.__ser_send(ser, "M231 A")          # Set motion to forced mode
        self.__ser_send(ser, "G0 A-100")      # <--reverse direction
        self.__wait_till_stop(ser, status[CHA_PI], CHA_PI)     # Wait until homing is over 
    else: 
        self.__ser_send(ser, "G91") 
        self.__ser_send(ser, "M231 A")          # Set motion to forced mode
        self.__ser_send(ser, "G0 A+100")      # <--reverse direction 
        self.__wait_till_stop(ser, status[CHA_PI], CHA_PI)     # Wait until homing is over

Results in correct homing behavior.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.