【Customer sharing】-- Serial port control Raspberry Pi DOFBOT Robotic arm from Mr.Wu - Yahboom

【Customer sharing】-- Contrôle du port série Raspberry Pi DOFBOT Bras robotique de M. Wu

0 commentaires

Parce que le Dofbot-pi est installé avec Ubuntu mate au lieu du système raspian, il est impossible d'ouvrir le port série avec raspi config pour modifier les paramètres du port série.

Il y a deux ports série à l'intérieur du CPU Raspberry Pi, l'un est le port série matériel (/dev/ttyama0), et l'autre est le port série mini (/dev/ttys0).
Le port série matériel a une source d'horloge de baud rate séparée, qui offre de bonnes performances et une grande stabilité ; Le port série mini a une fonction simple et une stabilité médiocre. Le baud rate est fourni par l'horloge du cœur du CPU et est affecté par l'horloge du cœur.

Le port série que nous utilisons pour la communication série nécessite une grande stabilité et performance, donc le port série matériel est devenu notre premier choix.
Puisque le port série matériel par défaut est attribué au module Bluetooth, nous devons attribuer le port série matériel au port série GPIO. Les opérations spécifiques sont les suivantes.

1. Ouvrez le terminal et entrez la commande sudo ls -l /dev

Entrez le mot de passe   yahboom

 

Nous pouvons voir que la configuration du port série dans l'état initial, comme indiqué ci-dessous.

2. Définissez le port série matériel sur le port série GPIO

2.1 Modifiez le fichier   /boot/firmware/config.txt   pour définir  enable_uart=1  Si enable_uart = 0, le port série minicom est activé au lieu de ce port série matériel.

Entrer la commande suivante :

sudo nano /boot/firmware/config.txt

2.2 Ajoutez dtoverlay=miniuart-bt à la fin, puis cliquez sur Ctrl + X et entrez y, et enfin appuyez sur entrer pour enregistrer et quitter.

3. Modifiez le   /boot/firmware/cmdline.txt  et supprimez tout le contenu concernant la console. 

Entrer la commande suivante :

sudo nano /boot/firmware/cmdline.txt

Ouvrir comme

 Supprimer le contenu concernant la console

Cliquez sur Ctrl + X et entrez y, puis appuyez sur entrer pour enregistrer et quitter

4. Désactivez le Bluetooth

Entrer la commande suivante :

sudo systemctl désactiver hciuart 

5. Éteignez l'interrupteur d'alimentation du Dofbot-pi et redémarrez-le.

Entrez la commande suivante dans cvérifiez si la modification est réussie

sudo ls -l /dev

 

À ce moment, la figure suivante montre que la modification est réussie.

6. Connectez le Raspberry Pi à l'ordinateur avec le câble micro USB, et ouvrez l'assistant de débogage du port série (l'affichage ch340 indique que l'ordinateur a été connecté au port série du bras robotique).

Cliquez sur le bouton d'ouverture du port série, ouvrez le port série, comme indiqué ci-dessous.

 7. Écrire un programme de test de port série serial_test.py

Entrer la commande suivante : 

nano serial_test.py

 

8. À propos du code

#Importer les bibliothèques nécessaires
import RPi.GPIO as GPIO
importer le temps
importer chaîne
import serial

from Arm_Lib import Arm_Device
Arm = Arm_Device() #créer un objet

#Définir le port GPIO en mode de codage BCM
GPIO.setmode(GPIO.BCM)

#Ignorer les messages d'avertissement
GPIO.setwarnings(False)

uart = serial.Serial("/dev/ttyAMA0", 115200, timeout=0.001)
if uart.isOpen == False:
uart.open()
uart.write('Le Raspberry Pi est prêt'.encode())

essayer :
while True:
size = uart.inWaiting() # Obtenir les caractères du tampon
si taille != 0 :
response = uart.read(size) # Lire le contenu et afficher
#print(response)
m=str(réponse, encodage = "utf-8")
uart.flushInput() # Vider le tampon de réception
time.sleep(0.1) # Délai logiciel
si m == '3':
Arm.Arm_serial_servo_write6(90, 120, 90, 90, 120, 90, 500) #Contrôler le mouvement du Dofbot
uart.write('Exécuter 9 complet '.encode())
print ('ok')
si m == '4':
Arm.Arm_serial_servo_write6(90, 40, 90, 60, 120, 80, 500)
uart.write('Exécution 0 complète '.encode())
print ('ok')
si m == '1':
Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 0, 500)
uart.write('Exécution 1 complète '.encode())
print ('ok')
si m == '2':
Arm.Arm_serial_servo_write6(120, 60, 90, 90, 90, 90, 500)
uart.write('Exécuter 2 complet '.encode())
print ('ok')
si m == '0':
Arm.Arm_serial_servo_write6(180, 60, 90, 60, 90, 180, 500)
uart.write('Exécution 0 terminée '.encode())
print ('ok')
si m == '5':
Arm.Arm_serial_servo_write6(90, 90, 90, 90, 90, 180, 500)
uart.write('Exécution 0 complète '.encode())
print ('ok')

except KeyboardInterrupt:
uart.close()

9. Saisissez le contenu ci-dessus et enregistrez ce fichier.

Vous pouvez également mettre le fichier  serial_test.py  au répertoire principal

10. Fermez le grand programme et exécutez le fichier python3 serial_test.py.

Entrer la commande suivante : 

sh ~/Dofbot/kill_YahboomArm.sh

Entrer la commande suivante : 

python3 serial_test.py

11. Cette invite indique que le port ne peut pas être ouvert /dev/ttyAMA0 Modifions simplement les permissions.

Entrer la commande suivante : 

sudo chmod 777 /dev/ttyAMA0

Entrer la commande suivante : 

python3 serial_test.py 

12. Entrez le numéro 0-5 et le Dofbot effectue certaines actions. Par exemple, envoyez le numéro 0. Le terminal et l'assistant de débogage du port série, comme indiqué ci-dessous.

Ce code est uniquement destiné à des fins de test et peut être amélioré et modifié par vous-même.

 

 

 

 

 


Tags:
【DIY project】-- Une voiture WiFi exclusivement pour mon chat.

【Unboxing et avis】---Robot éducatif Transbot ROS

Laisser un commentaire