1i7 (1i7) wrote,
1i7
1i7

Программирование микроконтроллеров для управления роботами

Занятие 2 про знакомство с программированием микроконтроллерных плат ChipKIT для управления роботами из серии занятий по популярной робототехнике СБИ НГТУ и ДОСААФ отдельным постом.


На слайдах:
- Плата ChipKIT WF32 - совместима с платформой Arduino, но с pic32 всё быстрее и лучше
- Мигаем лампочкой
- Крутим моторчиком с драйвером-усилителем L293D
- Крутим сервомоторчиком с библиотекой Servo.h
- Реагируем на звук с датчиком звука


Исходники уроков:
https://github.com/1i7/lessons/tree/master/chipkit-robot-intro/sketches

Платы
ChipKIT Wi-FIRE (аналог WF32 с процессором PIC32MZ 200МГц $80): http://digilentinc.com/Products/Detail.cfm?NavPath=2,892,1266&Prod=CHIPKIT-WIFIRE

Установка среды разработки MPIDE
Скачать среду разработки MPIDE, адаптированную для работы с платами серии ChipKIT (Linux, Mac, Windows):
http://chipkit.net/started/
Для ее работы потребуется установить платформу Java SE:
http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

Инструкции: для Linux, Mac, Windows

Общий смысл:
1) Запустить среду mpide (скачать архив - исполняемый файл внутри).

Перед запуском исполняемого файла из архива, требуется установить Java (в Linux - еще одну библиотеку rxtx).

В Mac
также потребуется в настройках системы разрешить запускать приложения из недоверенных источников.

2) Установить драйверы для плат, чтобы они определялись в системе как COM-порт и MPIDE их видела для прошивки.

В Linux все необходимые драйверы уже есть в ядре, но может потребоваться поиграть с настройками доступа к устройству /dev/ttyUSB0 (индекс на конце может быть любой), под видом которого появляется подключенная к системе плата. Инструкции могут отличаться от дистрибутива к дистрибутиву (может потребоваться добавить пользователя в нужную группу; в крайнем случае выполнить "sudo chmod 777 /dev/ttyUSB0" или запустить MPIDE от рута, но так лучше не делать).

В Mac драйвер есть внутри архива и ставится без проблем.

В Windows драйвер тоже есть внутри архива MPIDE, но с его установкой на новую систему у меня обычно начинается какая-то чехарда (некоторые нюансы ниже могут требовать перепроверки):
- В Windows 7 обычно подходит драйвер из архива с mpide - при подключении устройства нужно указать системе путь к каталогу с распакованной MPIDE и она должна найти в ней нужный драйвер (там их два и нужно обязательно выбрать не FTDI, а второй; с FTDI подключенная плата не появляется в виде COM-порта - вот здесь могу наврать, т.к. под рукой нет Windows7, но пару раз кажется было именно так)
- В Windows 8 драйверы из архива с MPIDE системой не распознаются - при подключении платы нужно поймать диалог подключения нового устройства и разрешить ему найти драйверы в интернете (если вы находитесь далеко от нормального интернета, например проводите демо-занятие в Ждановце, это проблема).
- В Windows 8.1 по отзыву одного из студентов, драйвер уже встроен в систему (сам не проверял).

В случае успеха, подключенная к компьютеру плата должна появиться в меню MPIDE Tools/Serial Port.

Дополнительно
Мотор с пластиковым редуктором:
http://www.robotshop.com/en/solarbotics-gm7-gear-motor-7.html
Серво-машинки (для примера, их разных можно найти и у нас): http://www.robotshop.com/en/dfrobot-micro-servo-motor.html
Магазин хобби-сервис в Печерах рядом с 6м корпусом (там есть моторчики, аккумуляторы и много еще полезного, но раза в 3 дороже, чем в интернете):
www.hobby-service.ru/shops.html

Магазин ArduNN.ru: платы Arduino, датчики, запчасти для 3д-принтеров и т.п. в Нижнем Новгороде.
chipnn.ru - разные электронные компоненты в Нижнем Новгороде (в основном не для Ардуино), есть драйвер L293D
fixled.ru - хороший интернет-магазин в Санкт-Петербурге, много всего совместимого с экосистемой Ардуино, в частности разные датчики.
Tags: arduino, chipkit, компоненты, популярная робототехника, роботы, типовые задачи

Posts from This Journal “популярная робототехника” Tag

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

  • 7 comments

h2010

June 20 2014, 17:19:01 UTC 2 years ago Edited:  June 20 2014, 17:22:25 UTC

Очень интересно! Давно хотелось с чего-то начать.
А бывают ли аналогичные chipKIT WF32 платы, но более компактные?
Простой вариант поменьше размером - это ChipKIT Uno32 или лучше сразу uC32 (улучшенная Uno32)
http://digilentinc.com/Products/Detail.cfm?NavPath=2,892,1035&Prod=CHIPKIT-UC32 с WiFi-шилдом http://digilentinc.com/Products/Detail.cfm?NavPath=2,892,1037&Prod=CHIPKIT-WIFI-SHIELD

Она будет короче, но чуть выше из-за шилда. Минусы по сравнению с WF32/WiFIRE - шилд займет на плате несколько рабочих пинов и на нем не будет модуля USB Host, без которого например не получится соединяться со смартфоном Андроид напрямую через провод.


Можно еще погулять по сайту Digilent по разделу ChipKIT Boards - есть еще компактнее:

ChipKIT Cmod выглядит довольно компактно:
http://digilentinc.com/Products/Detail.cfm?NavPath=2,892,1196&Prod=CHIPKIT-CMOD

На DP32 вообще стоит PIC в dip-корпусе, хотя большая площадь отведена под встроенную макетную плату:
http://digilentinc.com/Products/Detail.cfm?NavPath=2,892,1174&Prod=CHIPKIT-DP32


Для моторчиков и датчиков любой из них должно хватить с головой, но только стандартные шилды с расширениями, которые одеваются на Uno32 или Max32, на эти платы не встанут. Можно попробовать посмотреть нужные внешние устройства в виде отдельных маленьких платок на этом же сайте digilentinc.com в разделе Peripherial Modules - вот например модуль WiFi: http://digilentinc.com/Products/Detail.cfm?NavPath=2,401,884&Prod=PMOD-WIFI . Но лично я не знаю, заработают ли они с этими платами в режиме совместимости с Arduino (скорее всего заработают, но лично я не пробовал).



Вообще PIC32 есть отдельно в DIP-корпусе:
http://ramlamyammambam.livejournal.com/184017.html?thread=1540817&

Выглядит очень круто - можно воткнуть прямо в макетку рядом с тем же драйвером L293D, но в этом случае (скорее всего) не будет совместимости с экосистемой Arduino - придется программировать на голом Си с библиотеками pic32xxx.h, в среде MPLABX (это скорее плюс) и для прошивки потребуется специальный программатор-дебаггер типа PICkit3. (Хотя, на плате DP32 тоже PIC32 в dip-корпусе, возможно при должном умении получится их совместить).

Тоже самое касается других плат от других разработчиков, которые не декларируют совместимость с платформой Arduino. С моей точки зрения, прелесть плат серии ChipKIT заключается в том, что на них можно быстро начать в режиме совместимости с Arduino (с точки зрения программного кода - запустится большинство примеров Arduino из интернета), а дальше, при желании, можно переключиться на более профессиональные инструменты разработки.
Спасибо
Да, солидарен...

h2010

June 20 2014, 21:50:35 UTC 2 years ago Edited:  June 21 2014, 00:56:26 UTC

Вот это здорово. Я хочу для интереса попробовать приделать небольшое устройство на квадрокоптер (мне пришла модель dji P2V+), в перспективе чтобы с модулем 3G для связи.
Пользователь nicolas1973 сослался на вашу запись в своей записи «Сами делайте своих роботов» в контексте: [...] роботами (Arduino на ChipKIT с pic32, моторчики и датчики): http://1i7.livejournal.com/29185.html [...]