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

【Compartir con el cliente】-- Brazo robótico DOFBOT Raspberry Pi con control de puerto serie del Sr. Wu

0 comentarios

Debido a que Dofbot-pi se instala con Ubuntu mate en lugar del sistema raspian, es imposible abrir el puerto serie con raspi config para modificar la configuración del puerto serie.

Hay dos puertos seriales dentro de la CPU Raspberry Pi, uno es el puerto serial de hardware (/dev/ttyama0) y el otro es el mini puerto serial (/dev/ttys0).
El puerto serie de hardware tiene una fuente de reloj de velocidad en baudios independiente, que tiene un buen rendimiento y una gran estabilidad; el puerto serie mini tiene una función simple y una estabilidad deficiente. La velocidad en baudios la proporciona el reloj del núcleo de la CPU y se ve afectada por el reloj del núcleo.

El puerto serie que utilizamos para la comunicación serie necesita alta estabilidad y rendimiento, por lo que el puerto serie de hardware se ha convertido en nuestra primera opción.
Dado que el puerto serial de hardware predeterminado está asignado al módulo Bluetooth, debemos asignar el puerto serial de hardware al puerto serial GPIO. Las operaciones específicas son las siguientes.

1. Abra la terminal e ingrese el comando sudo ls -l /dev

Introducir contraseña yahboom

Podemos ver la configuración del puerto serie en el estado inicial, como se muestra a continuación.

2. Configure el puerto serie del hardware como puerto serie GPIO

2.1 Modificar el archivo /boot/firmware/config.txt y establecer enable_uart=1 Si enable_uart = 0, se habilita el puerto serie minicom en lugar de este puerto serie de hardware.

Ingrese el siguiente comando:

sudo nano /boot/firmware/config.txt

2.2 Agregue dtoverlay=miniuart-bt al final, luego haga clic en Ctrl + X e ingrese y, y finalmente presione Enter para guardar y salir.

3. Modifique el archivo /boot/firmware/cmdline.txt y elimine todo el contenido de la consola.

Ingrese el siguiente comando:

sudo nano /boot/firmware/cmdline.txt

Abierto como

Eliminar contenido sobre la consola

Haga clic en Ctrl + X e ingrese y, luego presione Enter para guardar y salir

4. Desactivar Bluetooth

Ingrese el siguiente comando:

sudo systemctl deshabilitar hciuart

5. Apague el interruptor de encendido del Dofbot-pi y reinícielo.

Ingrese el siguiente comando para verificar si la modificación fue exitosa

sudo ls -l /dev

En este momento, la siguiente figura muestra que la modificación es exitosa.

6. Conecte la Raspberry Pi al ordenador con el cable micro USB y abra el asistente de depuración del puerto serie (el display ch340 indica que el ordenador se ha conectado al puerto serie del brazo robótico).

Haga clic en el botón Abrir puerto serie para abrir el puerto serie, como se muestra a continuación.

7. Escriba el programa de prueba del puerto serie serial_test.py

Ingrese el siguiente comando:

nano serial_test.py

8. Acerca del código

#Importar las librerías necesarias
importar RPi.GPIO como GPIO
tiempo de importación
cadena de importación
Importar serie

desde Arm_Lib importar Arm_Device
Brazo = Arm_Device() #crear objeto

#Establecer el puerto GPIO como modo de codificación BCM
Modo de configuración GPIO (GPIO.BCM)

#Ignorar mensajes de advertencia
GPIO.setwarnings(Falso)

uart = serial.Serial("/dev/ttyAMA0", 115200, tiempo de espera=0.001)
si uart.isOpen == Falso:
uart.open()
uart.write('Raspberry pi está lista'.encode())

intentar:
mientras sea verdadero:
tamaño = uart.inWaiting() # Obtener caracteres del buffer
si tamaño != 0:
respuesta = uart.read(size) # Leer contenido y mostrar
#imprimir(respuesta)
m=str(respuesta, codificación = "utf-8")
uart.flushInput() # Vaciar el búfer de recepción
time.sleep(0.1) # Retraso del software
si m == '3':
Arm.Arm_serial_servo_write6(90, 120, 90, 90, 120, 90, 500) #Controla el movimiento del Dofbot
uart.write('Ejecutar 9 completo '.encode())
imprimir ('ok')
si m == '4':
Brazo.Arm_serial_servo_write6(90, 40, 90, 60, 120, 80, 500)
uart.write('Ejecutar 0 completo '.encode())
imprimir ('ok')
si m == '1':
Brazo.Arm_serial_servo_write6(90, 90, 90, 90, 90, 0, 500)
uart.write('Ejecutar 1 '.encode())
imprimir ('ok')
si m == '2':
Brazo.Arm_serial_servo_write6(120, 60, 90, 90, 90, 90, 500)
uart.write('Ejecutar 2 completo '.encode())
imprimir ('ok')
si m == '0':
Brazo.Arm_serial_servo_write6(180, 60, 90, 60, 90, 180, 500)
uart.write('Ejecutar 0 completo '.encode())
imprimir ('ok')
si m == '5':
Brazo.Arm_serial_servo_write6(90, 90, 90, 90, 90, 180, 500)
uart.write('Ejecutar 0 completo '.encode())
imprimir ('ok')

excepto KeyboardInterrupt:
uart.cerrar()

9. Ingrese el contenido anterior y guarde este archivo.

También puedes poner el archivo serial_test.py en el directorio principal

10. Cierre el programa grande y ejecute el archivo python3 serial _ test.py.

Ingrese el siguiente comando:

sh ~/Dofbot/matar_YahboomArm.sh

Ingrese el siguiente comando:

prueba_serie_python3.py

11. Este mensaje indica que no se puede abrir el puerto /dev/ttyAMA0 Modifiquemos los permisos.

Ingrese el siguiente comando:

sudo chmod 777 /dev/ttyAMA0

Ingrese el siguiente comando:

prueba_serie_python3.py

12. Introduzca el número 0-5 y Dofbot realizará algunas acciones. Por ejemplo, envíe el número 0. El asistente de depuración de terminales y puertos serie, como se muestra a continuación.

Este código es solo para pruebas y puede ser mejorado y modificado por usted mismo.


Etiquetas:
【Proyecto de bricolaje】-- Un coche WiFi exclusivamente para mi gato mascota.

【Unboxing y reseña】---Robot educativo Transbot ROS

Deja un comentario