Raspberry Pi + Pololu Maestro Mini 12 + команды управления

53 views
Skip to first unread message

skitalez2010

unread,
Feb 10, 2015, 3:04:49 PM2/10/15
to make...@googlegroups.com

Уважаемые коллеги.
Задумался над реализацией роботизированной машинки с установкой всевозможных датчиков и приборов.
Названия у проекта ещё нет.
В общем, основная платформа с колесами - детская игрушечная машинка на радиоуправлении с бесколлекторным двигателем масштаба 1/18.
С этой машинки поснимал всё лишнее - корпус, р/у управление, антенну, и оставил только шасси с мотором и контроллер для б/к мотора.
Сверху платформы укрепил блок Li-Po аккумуляторов, разводку питания, usb-хаб ... и над всем этим - Raspberry Pi.
Помимо всего перечисленного имеется:

- гироскоп, акселерометр, барометр, температурный датчик, модуль Wi-Fi (для связи), модуль GPS, модуль GPRS (обмен sms-ками прием/передача), web-камера, освещение, узел поворота для камеры и освещения, дальномер, модуль управления двигателями Pololu Mini Maestro, укрепление пружинных подвесок.

На текущий момент подхожу к изготовлению внешнего корпуса для модельки.

Всё работает и всё настроено, за некоторыми исключениями.

Все команды основаны на выполнении bash-скриптов.

Фотки пока выложить не могу.

Может быть многие из Вас уже держали в руках платы управления сервомашинками серии Pololu Maestro Mini, на которых есть выход PWM.
Решил "поиграться" с подключением маломощных лампочек.
При управлении с компьютера при помощи программы Maestro Control Center определил параметры: время включения 12, период 108 - при таких параметрах лампочка светится. Изменением периода от 12 до 108 можно управлять освещением от минимума к максимуму.
Теперь вопрос в том, как всё тоже самое переделать в командный набор параметров.
Написал вот такую последовательность, согласно документации на устройство Pololu:

Pololu protocol: 0xAA, device number, 0x0A, on time low bits, on time high bits, period low bits, period high bits

{
byte 0xAA                    #Start Byte
byte 0x01                    #Device ID = 1
byte 0x0A                    #Command = Set PWM
byte $((TARGET1 & 0x7F))      #On time low bits
byte $((TARGET1 >> 7 & 0x7F)) #On time high bits
byte $((TARGET2 & 0x7F))      #Period low bits
byte $((TARGET2 >> 7 & 0x7F)) #Period high bits
} > $DEVICE

TARGET1 - время включения
TARGET2 - период

В качестве входных параметров использую: TARGET1=12 и TARGET2=108 , но ничего не происходит.
Помогите решить проблему.

Попутно подскажите, как можно включать и выключать PWM?
Reply all
Reply to author
Forward
0 new messages