Не то, что бы я решил изобрести велосипед и показать как это клёво, примеров ездящих шасси управляемых пультом от телевизора в и-нете дофигась. Просто вырвался наконец-то на берег и купил желанных четыре пальчиковых аккумулятора для шасси. И в честь этого в ближайший свободный вечер было собрано из стандартных Blockduino'вских средств такое чудо. Конечно же без использования паяльника.
Итак в него входят:
- Blockduino
- BlockMotor
- PlugDIO
- CleClo:LED - 2 шт
- CleClo:IR
- Трехжильные провода - 3 шт
Пульт можно использовать практически любой из тех что под рукой, у меня оказался такой:
|
|
- Берем BlockMotor и втыкаем в BlockDuino, в винтовой зажим подключаем проводки от моторчиков, один моторчик к [M1+, M1-], второй в [M2+, M2-]. Где тут плюс, а где минус сразу разобраться будет не легко, просто когда шасси по команде вперед поедет не туда, из-за крутящейся гусеницы не в ту сторону, проводки от того моторчика надо будет поменять местами.
- Затем в BlockDuino подключаем PlugDIO и в него втыкаем провода, в порта D10, D11 и D12. Не забываем про стандарт [G V S] - Groud Volt Signal, т.е. если по русски, то - Земля Напряжение Сигнал. Сигнал (зеленый проводок) смотрит в сторону платы BlockDuino.
- К проводам подключаем платки CleClo: в порта D10 и D11 по светодиоду CleClo:LED, а в порт D12 инфракрасный приемник CleClo:IR.
- Далее загружаем библиотеку IRremote и загружаем в микроконтроллер такой код:
И нажимая интересные нам кнопки смотрим в мониторе серийного порта какой код им соответствует. В моем случае это следующие коды:#include <IRremote.h> int RECV_PIN = 12; IRrecv irrecv(RECV_PIN); decode_results results; void setup(){ Serial.begin(9600); irrecv.enableIRIn(); } void loop() { if (irrecv.decode(&results)) { Serial.print(" 0x"); Serial.println(results.value, HEX); delay(100); irrecv.resume(); } }
0x1CE358A7 - Стоп / StopА так как для каждой кнопки последний байт кода не повторяется, то одним байтом я и решил ограничиться:
0x1CE330CF - Вперед / Forward
0x1CE3C837 - Вперед и вправо / FRight
0x1CE3708F - Вперед и влево / FLeft
0x1CE36897 - Раворот по часовой / Clocwise
0x1CE3E817 - Разворот против часовой / Contrclockwise
0x1CE3B04F - Назад / Back
0x1CE3F00F - Назад и вправо / BRight
0x1CE38877 - Назад и влево / BLeft
0xA7 - Стоп / Stop
0xCF - Вперед / Forward
0x37 - Вперед и вправо / FRight
0x8F - Вперед и влево / FLeft
0x97 - Раворот по часовой / Clocwise
0x17 - Разворот против часовой / Contrclockwise
0x4F - Назад / Back
0x0F - Назад и вправо / BRight
0x77 - Назад и влево / BLeft
- Далее нужные коды прописуем в нужные места в скетче:
Код под спойлером:
- И загружаем обновленный скетч в микроконтроллер, подключаем питание и жмем на кнопки на пульте.
Должно получиться что-то типа этого (небольшой видео-отчет):
ps Снимал снаружи, где нет отраженного сигнала от стен и потолка - машинка плохо управлялось издалека. В помещении таких проблем не наблюдалось.
pss Во время съемки села батарейка и поэтому видео такое короткое и резко обрывается.
Ссылки:
Комментариев нет:
Отправить комментарий