Это продолжение статьи о радиоуправлении. Здесь рассказывается про управление платформой с компьютера.
Связь робота с компьютером у меня реализована на радиомодулях представленных ранее.
Радиомодули
Для подключения радиомодуля к компьютеру нужен USB-UART переходник. Например, на CP2102
USB-UART переходник
Для windows лучше брать драйвера с официального сайта https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
Соединяется радиомодуль с USB-UART переходником согласно изложенным ниже инструкциям.
USB to UART Module --- Transceiver Module
+5V --- VDD
GND --- GND
RXD --- TXD
TXD --- RXD
Со стороны компьютера это всё выглядит обычным COM портом.
Теперь управлять роботом можно хоть из монитора порта Arduino IDE.
Но намного интереснее написать свою программу
Управление платформой реализуется через передачу специальных символов.
f --- движение вперед
b --- движение назад
l --- поворот налево
r --- поворот направо
s --- остановка
Можно написать сценарий обеспечивающий прохождение определенного маршрута
С данным кодом робот едет 3.5 секунды вперед. Затем робот едет 3.5 секунды назад. Затем робот поворачивает налево 4.8 секунды. И заканчивается всё поворотом робота направо в течении 4.8 секунд.
Есть ещё один интересный вариант использования этих радиомодулей. Только их нужно штуки три. Один подключается к ардуино робота. Второй подключается к компьютеру через USB-UART переходник. И третий модуль нужен для пульта.
Платформа управляется с пульта, а на компьютере записываются все команды оператора.
Ещё платформа может управляется программой с компьютера, а на пульте можно реализовать возможность экстренной остановки платформы.
У меня робот маленький и не очень быстрый, поэтому последнее решение осталось не реализованным. А в более серьёзных конструкциях нечто подобное быть должно.
В этой статье нет подробных пояснений по работе с UART модулем контроллера и COM портом компьютера, так как я об этом уже рассказывал (здесь и здесь).
Связь робота с компьютером у меня реализована на радиомодулях представленных ранее.
Радиомодули
Для подключения радиомодуля к компьютеру нужен USB-UART переходник. Например, на CP2102
USB-UART переходник
Для windows лучше брать драйвера с официального сайта https://www.silabs.com/products/development-tools/software/usb-to-uart-bridge-vcp-drivers
Соединяется радиомодуль с USB-UART переходником согласно изложенным ниже инструкциям.
USB to UART Module --- Transceiver Module
+5V --- VDD
GND --- GND
RXD --- TXD
TXD --- RXD
Со стороны компьютера это всё выглядит обычным COM портом.
Теперь управлять роботом можно хоть из монитора порта Arduino IDE.
Но намного интереснее написать свою программу
#!/usr/bin/env python # coding: utf-8 import serial port_number = 6 # COM7 baud_rate = 9600 # bps # open port ser = serial.Serial(port_number, baud_rate, bytesize = serial.EIGHTBITS, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, timeout = 1) print ser, '\n' # print port information # communication while 1 : data = raw_input('> ') ser.write(data) # close port ser.close() # C:/Python27/python.exe C:\robot\rc.py
Управление платформой реализуется через передачу специальных символов.
f --- движение вперед
b --- движение назад
l --- поворот налево
r --- поворот направо
s --- остановка
Можно написать сценарий обеспечивающий прохождение определенного маршрута
#!/usr/bin/env python # coding: utf-8 import time import serial port_number = 6 # COM7 baud_rate = 9600 # bps # open port ser = serial.Serial(port_number, baud_rate, bytesize = serial.EIGHTBITS, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, timeout = 1) print ser, '\n' # print port information # communication ser.write('s') print time.time(), 'stop' time.sleep(5) ser.write('f') print time.time(), 'forward' time.sleep(3.5) ser.write('s') print time.time(), 'stop' time.sleep(1) ser.write('b') print time.time(), 'backward' time.sleep(3.5) ser.write('s') print time.time(), 'stop' time.sleep(1) ser.write('l') print time.time(), 'left' time.sleep(4.8) ser.write('s') print time.time(), 'stop' time.sleep(1) ser.write('r') print time.time(), 'right' time.sleep(4.8) ser.write('s') print time.time(), 'stop' time.sleep(1) # close port ser.close() raw_input('') # C:/Python27/python.exe C:\robot\robot.py
С данным кодом робот едет 3.5 секунды вперед. Затем робот едет 3.5 секунды назад. Затем робот поворачивает налево 4.8 секунды. И заканчивается всё поворотом робота направо в течении 4.8 секунд.
Есть ещё один интересный вариант использования этих радиомодулей. Только их нужно штуки три. Один подключается к ардуино робота. Второй подключается к компьютеру через USB-UART переходник. И третий модуль нужен для пульта.
Платформа управляется с пульта, а на компьютере записываются все команды оператора.
#!/usr/bin/env python # coding: utf-8 import time import serial port_number = 6 # COM7 baud_rate = 9600 # bps # open port ser = serial.Serial(port_number, baud_rate, bytesize = serial.EIGHTBITS, parity = serial.PARITY_NONE, stopbits = serial.STOPBITS_ONE, timeout = 1) print ser, '\n' # print port information # communication data = '' while 1 : temp = ser.read() if temp and temp != data : data = temp print time.time(), data # close port ser.close() # C:/Python27/python.exe C:\robot\logger.py
Ещё платформа может управляется программой с компьютера, а на пульте можно реализовать возможность экстренной остановки платформы.
У меня робот маленький и не очень быстрый, поэтому последнее решение осталось не реализованным. А в более серьёзных конструкциях нечто подобное быть должно.
В этой статье нет подробных пояснений по работе с UART модулем контроллера и COM портом компьютера, так как я об этом уже рассказывал (здесь и здесь).
Комментариев нет:
Отправить комментарий