Проект Robotomia. Из чего сделан робот и как это работает.
Мир сегодня находится в ожидании новых продуктов, которые способны продвинуть вперёд новые технологии и поддержать спрос. Во второй половине прошлого века и в начале нынешнего было не мало таких продуктов. Можно отметить ядерную энергетику, космонавтику, полупроводниковую технику, лазеры, компьютеры, Интернет, сотовые телефоны, персональные компьютеры…
Пробуксовывающей глобальной экономике просто необходим новый импульс. На мой взгляд, таковым может стать прорыв в области робототехники. Сегодня сложились все предпосылки – за последнее время существенно продвинулась вперёд точная механика, появились платформы для построения высокопроизводительных вычислительных систем с низким энергопотреблением и себестоимостью, существенно шагнули вперёд программные продукты. Осталось объединить всё это в единое целое и мы получим необъятный рынок – начиная от военных и заканчивая одинокими стариками.
Уже более десяти лет я занимаюсь разработкой различных встраиваемых систем на основе микроконтроллеров и сегодня, чтобы не отстать от времени, хочется самому поучаствовать в захватывающем процессе создания роботизированных платформ, а заодно поделится накопленным опытом с другими.
Для популяризации робототехники я собираюсь начать проект Роботомия (Robotomia). Это проект для новичков, делающих первые шаги в программировании, но всё-таки уже знакомыми с основами языка Си. Задумка следующая – выбрать какую-либо платформу для построения робота, подобрать под неё управляющую плату, комплектующие и шаг за шагом показать каким образом можно объединить их в единое целое и заставить функционировать. Что такое сервомашинка, как работает ультразвуковой датчик приближения, почему двигателями управляют с помощью ШИМ и что вообще значат эти три буквы. На все эти и многие другие вопросы даст ответ проект Robotomia.
По началу я хотел выбрать в качестве основы одну из многочисленных плат управления получившего сегодня самое широкое распространения стандарта Arduino, но меня смутил тот факт, что он основан на безнадёжно устаревшем сегодня семействе 8 битных микроконтроллеров AT Mega. Поэтому мой выбор пал на современное ядро ARM. Покопавшись немного по просторам Интернета удалось найти очень интересную платку на основе микроконтроллера фирмы NXP c ядром ARM Cortex 3 – “Simplecortex V1.3 (ARM3)” На мой взгляд, ресурсов этой платы вполне достаточно, чтобы управлять обширной периферией и осуществлять обмен с внешним миром. Сравнительная таблица возможностей нашей платы и клонов Arduino приведена на Рис. 1.
Рис. 1. Сравнительная таблица возможностей платы Simplecortex и клонов Arduino.
А вот и фото нашей красавицы.
Рис. 2. Внешней вид платы Simplecortex.
Есть ещё несколько причин, которые окончательно убедили меня в правильности моего выбора.
Во первых, данная плата по конструктиву и распиновке разъёмов совместима с платами на основе Arduino. А это значит, что в нашей разработки мы легко сможем использовать огромное количество разработанных в рамках проекта Arduino перефирийных устройств, которые принято именовать шилдами, от английского Shields. Возможно, самим придётся написать или подправить некоторые драйвера и библиотеки, но поскольку наш проект носит обучающий характер это даже полезно!
Рис. 3. Внешней платы Simplecortex с установленным на ней шилдом от Arduino.
Во вторых наша плата имеет встроенный отключаемый отладчик с помощью которого можно отлаживать написанный код прямо не в программном эмуляторе, а на живом устройстве. Вам не придётся тратиться на покупку какого нибудь дешёвого клона J-Link, а потом долгие часы проводить в попытках прикрутить его к вашей среде, как у меня было в своё время с MT-Linkом. Поверьте, часто это дорогого стоит и может существенно ускорить разработку новых драйверов и упростить поиск ошибок, особенно когда речь идёт об обмене данными с внешними устройствами.
Ну и наконец, данная плата поддерживается бесплатной средой разработки с открытым исходным кодом – CoCos. Лично сам я до последнего времени работал на Keil. В целом и общем меня эта среда вполне устраивала, однако её стоимость неподъёмна не только для новичка, но и для многих профессиональных разработчиков, а использование ломаных версий не самый лучший путь как для публичного проекта, так и для начинающего программиста.
Осталось решить, какого будем строить робота? Хотелось чтобы он был интересен как взрослым, так и подросткам. Пока я вижу его так: хорошо зарекомендовавшая себя четырёхколёсная платформа с “танковым” управлением. Поворотная в двух плоскостях башня, на которой имеется место для установки смартфона, снабжённая системой освещения и оружием – лазерной указкой. Для возможности ведения боевых действий предусмотрим крепление фотодиодных панелей, которые будут играть роль мишеней. Связь со смартфоном, либо компьютером, скорее всего имеет смысл наладить посредством Bluetooth. Наша платка будет управлять механикой, снимать показания с датчиков, обрабатывать простейшие ситуацию.
В ближайшей публикации я видимо расскажу об установке CoCos и запуске первого проекта на нашей плате.
Если для Вас подобный проект кажется интересным буду рад ознакомиться с предложениями и пожеланиями.
Автор: progchip666