Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/mkner/arduino-l298p-mobile-robot-motor-control

arduino-L298P-mobile-robot-motor-control
https://github.com/mkner/arduino-l298p-mobile-robot-motor-control

arduino differential-drive-robots l298p motor pwm-motor-controllers robotics tt-motors wheel-encoders wheel-odometry

Last synced: 17 days ago
JSON representation

arduino-L298P-mobile-robot-motor-control

Awesome Lists containing this project

README

        

Functions for basic motor/wheel control of differential drive mobile robots\
using MotorShield L298P on Arduino UNO. Implemented in C/C++

* low level controller/actuator functions for basic motor control

* higher low-level commands using rate, time, distance units for motion control

* supports odometry using interrupt driven IR wheel encoder sensors & encoder wheels for TT-Motors

* has an auto-prime function that can kick-start TT-Motors into rotation \
when stalled and not enough current to escape resting inertia at low velocities

* versatile functions with intuitive semantic interface

* wheel odometry using Runge-Kutte approximation\
with serial terminal output of runtime results from implementation of\
ICR - Instananeous Center of Rotation - equations


Example from unicycle.c

Unicycle movements with a differential drive robot

Use the wheels function to create a unicycle function that limits the\
motion of the mobile robot to that of a unicycle

``` cpp

unicycle(FORWARD, 25, 4000) // go forward at 25% for 4 seconds

unicycle(SPIN_LEFT, 5, 2000) // spin (+) with rotational velocity (phi-dot) at 5% for 2 sec

delay(4000)

unicycle(FORWARD, 25) // move forward @ 25% continuously

unicycle(STOP) //same as wheels(STOP,2000)
delay(2000)

```