Aller au contenu


Ritchy76

Inscrit(e) (le) 19 mars 2023
Déconnecté Dernière activité avril 30 2023 09:05
-----

Sujets que j'ai initiés

Utilisation DRV8825 derrière un MCP23017

16 avril 2023 - 06:59

Bonjour à tous,

Je construis un petit robot et pour garder un certain nombre de I/O sur mon raspberry, j’ai connecté mes 2 drivers DRV8825 sur un MCP23017 i/o extender.

Je programme en python et j’utilise la bibliothèque https://github.com/g...epo/RpiMotorLib pour le DRV et https://github.com/r...h-Raspberry-Pi- pour le MCP.

Le MCP et le DRV semble bien connecté, et le voltage de ces derniers a été vérifié pour mes moteurs PAP nema17.

La où je bloque, et je pense que c’est une lacune en programmation, c’est comment dans les lignes de code du DRV je lui indique d’aller chercher sur le MCP (ou plus simplement comment intégrer l’un dans l’autre les 2 bibliothèques).

Je vous mets ci-dessous les 2 codes indépendamment.

MCP23017_I2C avec test de rotation sur ses ports GPIO

from time import sleep
from MCP23017_I2C import * # https://github.com/rpsreal/MCP23017_I2C-with-Raspberry-Pi-/

GPIO_CHIP_1 = GPIO_CHIP(0x27, 1)

GPIO_CHIP_1.setup( 4, 'OUT', 'B')
GPIO_CHIP_1.setup( 5, 'OUT', 'B')
GPIO_CHIP_1.setup( 6, 'OUT', 'B')

# normalement pin 4 = Enable // pin 5 =Step // pin 6 = Direction
# GPIO_CHIP.output(pin, hl, side)
GPIO_CHIP_1.output(4, 0, 'B') #pin enable = low pour activer // high pour désactiver
GPIO_CHIP_1.output(6, 0, 'B')

for x in range(600):
    GPIO_CHIP_1.output(5, 1, 'B')
    sleep(0.005)

GPIO_CHIP_1.output(4, 1, 'B')

RpiMotorLib mais connecté au GPIO du raspberry



import RPi.GPIO as GPIO

# import the library
from RpiMotorLib import RpiMotorLib
    
#define GPIO pins
# GPIO_pins = (14, 15, 18) # Microstep Resolution MS1-MS3 -> GPIO Pin

GPIO_pins = (-1,-1,-1) # You can Pass in (-1,-1,-1) if you wish to hardwire Ms-X to logic and save GPIO pins.

direction= 6       # Direction -> GPIO Pin
step = 5      # Step -> GPIO Pin

# Declare a instance of class pass GPIO pins numbers and the motor type
mymotortest = RpiMotorLib.A4988Nema(direction, step, GPIO_pins, "DRV8825")

# call the function, pass the arguments
mymotortest.motor_go(False, "Full" , 100, .01, False, .05)

Je le précise, je suis débutant en programmation.

Merci de vos retours et  de votre aide

Bonne journée

Ritchy76