Introduction
Controlling two motors through a f28379d microcontroller and two drv8305 motor drivers.
Installation
1 pip install git+https://github.com/cps-lab-saga/f28379d-drv8305-dual-comm.git@main
Basic usage
1from math import pi, degrees
2
3from f28379d_drv8305_dual_comm import Controller
4
5c = Controller() # connect to controller
6
7c.set_control_mode(1, "position control (speed)") # set control mode for motor 1
8c.disable_motor(2) # disable motor 2
9
10c.set_zero_angle(1) # set current pos for motor 1 to zero
11
12c.set_pos(1, pi) # set target position of motor 1 to pi radians
13
14# hold down the external pushbutton to run
15
16current_pos = c.get_pos(1) # get current position of motor 1
17print(f"{degrees(current_pos)} degrees")
18
19c.disconnect() # disconnect from controller
Read data using callback function
1from time import sleep
2
3from f28379d_drv8305_dual_comm import Controller
4
5
6def my_callback_func(measurements):
7 print(measurements)
8
9
10c = Controller() # connect to controller
11
12c.set_callback(my_callback_func) # function is called when data arrived from controller
13
14sleep(5)
15
16c.disconnect() # disconnect from controller
Read data from queue
1from f28379d_drv8305_dual_comm import Controller
2
3c = Controller() # connect to controller
4
5for _ in range(500):
6 print(c.get_from_queue())
7
8c.disconnect() # disconnect from controller