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 details)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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

Hashes for smcc-0.0.2.tar.gz
Algorithm Hash digest
SHA256 0ecbf60ce6c5448f7d7d2567a42c3016bd1afcabd54071becbcf76c3ab4b92be
MD5 0d16a981ef9f009159e0ea948d004398
BLAKE2b-256 607a30b8d6eb80b25d11a5896ccbf451923f1ac23fca0ef5fc2f2f585525fa90

See more details on using hashes here.

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

Hashes for smcc-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 82aa6f8ddfb9f93e50d93d43cf34292662cbe69d28569f1f7b2093152dd81eef
MD5 e50e97c40d7202f5326670fdd949ba1b
BLAKE2b-256 37f17d0c26694579e482c3b1943e1c00b129ea3620069378b2775dc52d6d7e9c

See more details on using hashes here.

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