Skip to main content

SMC_core (SMCC) allows for direct communication and control of the Serial-Motor-Controller project via Python-code.

Project description

SMCC

The SMCC (SMC-Core) is a simple python based API that allows to interface via serial port with the SMCD (SMC-Driver). This allows the SMCC to be imported to your own projects without having to drag the GUI with it.

Index

Installation

To install the SMCC just use pip as follows:

$ pip install smcc

The project is hosted on the pypi register: https://pypi.org/projects/SMCC

Example use

Quick Start

Configure a 3.75°/step stepper motor to perform a full clockwise rotation at 20 rpm:

# Imports
import serial
import time
from SMCC.Commands import SETUP_CMD, STEP_CMD, generateControlDict, sendCommand

# Configure motor
ctrl_dict = generateControlDict()
ctrl_dict['degrees_per_step'] = 3.75

# Serial port configuration
port='/dev/ttyACM0'
br = 9600
to = 10 # seconds
ctrl_dict['comms'] = serial.Serial(port, baudrate=br, timeout=to)
# Wait 10 seconds for Arduino to reboot
time.sleep(10)

# Configure speed
ctrl_dict['speed'] = 20
# Configure freq from speed
_, real_freq, counter = getFrequency(ctrl_dict)
ctrl_dict['freq'] = real_freq
ctrl_dict['freq_counter'] = counter

# Send setup CMD
setup_cmd = SETUP_CMD(ctrl_dict)
setup_response = sendCommand(ctrl_dict['comms'], setup_cmd)

# Set rotation direction and number of steps
n_steps = int(360/ctrl_dict['degrees_per_step'])
ctrl_dict['steps'] = n_steps
ctrl_dict['direction'] = True

# Send step cmd
step_cmd = STEP_CMD(ctrl_dict)
step_response = sendCommand(ctrl_dict['comms'], step_cmd)

# Wait for the motor to complete rotation before closing port
wait_time = 20 #Seconds
time.sleep(wait_time)

ctrl_dict['comms'].close()

In depth examples

Two detailed explained examples are provided on Examples:

  1. python_example.py : Shows the basic operation of the API, by performing the configuration and then a full counterclockwise rotation of the stepper motor.
  2. jupyter_example.ipynb: Shows the basic operation of the API, performs a clockwise and then a counterclockwise rotation of the stepper motor.

All the examples are designed to work with the SMCD (Serial Motor Controller Driver)

Reference

The REFERENCE.md provides a detailed explanation of every function and constant provided on the API.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

smcc-0.0.2.tar.gz (104.7 kB view hashes)

Uploaded Source

Built Distribution

smcc-0.0.2-py3-none-any.whl (20.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page