Python, mon programme ne marche pas HELP!

uneasperge Messages postés 2 Date d'inscription vendredi 5 mai 2023 Statut Membre Dernière intervention 6 mai 2023 - 5 mai 2023 à 15:35
uneasperge Messages postés 2 Date d'inscription vendredi 5 mai 2023 Statut Membre Dernière intervention 6 mai 2023 - 6 mai 2023 à 12:39

Bonjour,

Mon prof m'a demandé de réaliser un programme Python qui permettrait à un robot (mBot) de suivre une ligne noire. Cependant, ce programme doit être activé depuis un autre appareil. D'après Thonny, la 19ème ligne (ligne soulignée) a une erreur mais je n'arrive pas à la trouver : (

Pouvez-vous m'aider ?

Merci d'avance : )

import board
import busio
import time
import pwmio
from digitalio import DigitalInOut, Direction

octet = ""

moteur_gauche=DigitalInOut(board.D1)
moteur_gauche.direction=Direction.OUTPUT
moteur_droite=DigitalInOut(board.D2)
moteur_droite.direction=Direction.OUTPUT

capteur_gauche=DigitalInOut(board.D3)
capteur_gauche.direction=Direction.INPUT
capteur_droite=DigitalInOut(board.D4)
capteur_droite.direction=Direction.INPUT

ser=busio.UART(board TX, board RX, baudrate=9600, timeout=0.300)

def suivre_ligne():
    if capteur_gauche.value == 1 and capteur_droite.value == 1:
        moteur_gauche.value = 1
        moteur_droite.value = 1
        
    elif capteur_gauche.value == 1:
        moteur_gauche.value = 1
        moteur_droite.value = 0
        
    elif capteur_droite.value == 1:
        moteur_gauche.value = 0
        moteur_droite.value = 1
while True:
    
    octet = ser.read(32)
    print("Octet = ", octet)
    time.sleep(1)
    
    if octet == b'1\r\n':
        suivre_ligne()
    elif octet == b'0\r\n':
        moteur_gauche.value = 0
        moteur_droite.value = 0

3 réponses

georges97 Messages postés 11842 Date d'inscription lundi 31 janvier 2011 Statut Contributeur Dernière intervention 23 avril 2024 2 251
5 mai 2023 à 16:26

Bonjour,

Il semble que les modules Adafruit tels que busio nécessitent quelques instructions additionnelles pour assurer leur compatibilité avec le périphérique connecté

voir :

https://raspberrypi.stackexchange.com/questions/122262/how-to-avoid-importing-adafruit-python-modules-such-as-busio-and-board

vérifier également si votre version de Thonny est à jour. Il vous faut au minimum python 3.6 pour fonctionner avec busio

https://forums.raspberrypi.com/viewtopic.php?t=301860

voir aussi :

https://docs.circuitpython.org/en/latest/shared-bindings/busio/index.html

Par ailleurs, de ce que je comprends de votre message, le programme est exécuté sur un ordinateur (peut-être un raspberry pi) et transmis (en wifi?) sur le mbot. Je chercherais donc à vérifier (dans un script de test) que le signal arrive bien et que leds ou servos-moteurs sont activés sur une instruction. Si je ne me trompe pas, busio communique sur un port i2c.

Ceci dit, je n'ai pas suivi le portage de python sur mbot (et je n'ai que les versions qui fonctionnaient avec scratch et arduino/mbot).

J'espère donc que ces pistes (sauf erreur de ma part sur toute la ligne) et d'autres à venir vous permettrons de trouver les corrections à appliquer.

Ces erait bien de poster ici vos avancées.

1
hypothetix Messages postés 191 Date d'inscription dimanche 19 janvier 2020 Statut Membre Dernière intervention 24 avril 2024 53
5 mai 2023 à 17:37

Bonjour,

ser=busio.UART(board TX, board RX, baudrate=9600, timeout=0.300)
 Thonny doit signaler qu'il ne faut pas d'espace dans un nom de variable
 donc essaie:
 ser=busio.UART(boardTX, boardRX, baudrate=9600, timeout=0.300)
 
 Des exemples ici:
 https://www.programcreek.com/python/example/123500/busio.UART
 
 remarque:
 Pour deposer du code merci de suivre les directives suivantes ici:
 https://codes-sources.commentcamarche.net/faq/11288-poster-un-extrait-de-code
 
 
 Bon courage
 


1
uneasperge Messages postés 2 Date d'inscription vendredi 5 mai 2023 Statut Membre Dernière intervention 6 mai 2023
6 mai 2023 à 12:39

Merci pour vos toutes réponses !

Il semble que j'ai oublié de mettre un point entre "board" et "RX" et "board" et "TX" : )

Merci pour les liens envoyés qui m'on réellement aidés !

0