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:
python_example.py
: Shows the basic operation of the API, by performing the configuration and then a full counterclockwise rotation of the stepper motor.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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file smcc-0.0.2.tar.gz
.
File metadata
- Download URL: smcc-0.0.2.tar.gz
- Upload date:
- Size: 104.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0ecbf60ce6c5448f7d7d2567a42c3016bd1afcabd54071becbcf76c3ab4b92be |
|
MD5 | 0d16a981ef9f009159e0ea948d004398 |
|
BLAKE2b-256 | 607a30b8d6eb80b25d11a5896ccbf451923f1ac23fca0ef5fc2f2f585525fa90 |
File details
Details for the file smcc-0.0.2-py3-none-any.whl
.
File metadata
- Download URL: smcc-0.0.2-py3-none-any.whl
- Upload date:
- Size: 20.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.17
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82aa6f8ddfb9f93e50d93d43cf34292662cbe69d28569f1f7b2093152dd81eef |
|
MD5 | e50e97c40d7202f5326670fdd949ba1b |
|
BLAKE2b-256 | 37f17d0c26694579e482c3b1943e1c00b129ea3620069378b2775dc52d6d7e9c |