Author Topic: Raspberry Pi Motor Library : A python 3 library for various motors and servos to  (Read 2220 times)

0 Members and 1 Guest are viewing this topic.

Offline typematrix

  • Contributor
  • Posts: 18
  • Country: sm
    • Github
Hi

TWIC

Raspberry Pi Motor Library : A python 3 library for various motors and servos to connect to a raspberry pi

https://github.com/gavinlyonsrepo/RpiMotorLib

Overview
--------------------------------------------
* Name: RpiMotorLib
* Title: Raspberry pi motor library.
* Description: A python 3 library for various motors and servos
to connect to a raspberry pi.
There are three categories in library.
Stepper motors , Dc Motors and Servos. The following is a list of tested parts

1. Stepper motor
    * Unipolar 28BYJ-48 Stepper motor controlled by ULN2003 driver module
    * Bipolar Nema 11 Stepper motor controlled by L298N H-Bridge Motor controller module.
    * Bipolar Nema 11 Stepper motor controlled by A4988 Stepper Motor Driver Carrier
    * Bipolar Nema 11 Stepper motor controlled by DRV8825 Stepper Motor Driver Carrier
    * Bipolar Nema 11 Stepper motor controlled by A3967 Stepper Motor Driver  "easy driver version 4.4"

2. DC motors
    * DC brushed motor controlled by L298N Motor controller module.
    * DC brushed motor controlled by a transistor.

3. Servo GPIO PWM
    * Tower pro Digital SG90 micro servo
    * Hitec HS422 servo
    * Tower pro MG996R Servo

The end user can import this library into their projects
and then control the components with short snippets of code.
The library is modular so user can just import the section they need.

Regards
 :)
« Last Edit: May 31, 2018, 01:40:39 pm by typematrix »
 

Offline james_s

  • Super Contributor
  • ***
  • Posts: 12613
  • Country: us
Neat, I'll file that away in my things to play with folder. Thanks.
 
The following users thanked this post: typematrix

Online Ian.M

  • Super Contributor
  • ***
  • Posts: 9135
Oh dear: it imports GPIO and uses  GPIO.PWM(), which is software PWM.   If you've ever scoped a  GPIO.PWM signal or even set the frequency to within the audio range and listened to it on a speaker, you'll be aware how rough the result is, as other threads vary the CPU load and this the latency of the PWM thread.   I'd have to hook up a servo to be 100% certain, but I bet the servo is excessively twitchy.

Personally I've moved away from using the GPIO module and switched to using the pigpio library, which is much much better at generating low-jitter waveforms.  http://abyz.me.uk/rpi/pigpio/python.html


 

Offline typematrix

  • Contributor
  • Posts: 18
  • Country: sm
    • Github
Oh dear: it imports GPIO and uses  GPIO.PWM(), which is software PWM.   If you've ever scoped a  GPIO.PWM signal or even set the frequency to within the audio range and listened to it on a speaker, you'll be aware how rough the result is, as other threads vary the CPU load and this the latency of the PWM thread.   I'd have to hook up a servo to be 100% certain, but I bet the servo is excessively twitchy.

Personally I've moved away from using the GPIO module and switched to using the pigpio library, which is much much better at generating low-jitter waveforms.  http://abyz.me.uk/rpi/pigpio/python.html

Ya, I am aware the servo twitching issues with RPIO , I mention it in documentation.
RPIO is  ok for some applications and methods. It is an issue If you need slow precise  steps.
At certain delays and step sizes there is twitching of the servo position.
I will look into a change over from RPIO to pigpio at next update for the servo function, add it to my TODO list.
 
« Last Edit: June 02, 2018, 07:58:22 pm by typematrix »
 


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf