На днях мне пришлось в очередной раз рассказывать об Ардуино человеку, хорошо знакомому с электроникой вообще и с микроконтроллерами в частности. Здесь, естественно, нужен совсем другой подход к описанию любимой платформы, ведь говорить о том, «как все просто и как все круто» просто несолидно.
Итак, что же представляет собой Ардуино с точки зрения специалиста?
Решил, тут, построить что-нибуть роботовское из . Долго думать не пришлось – давно хотел манипулятор=)
Сразу оговорюсь — решил ПОЛНОСТЬЮ отказаться от продумывания и делать всё от балды. Чистая импровизация и полнейшее прототипирование мыслепотока=)
Поплатился. И не единажды=\.
Расскажу всё как было со всеми граблями и промахами.
Далее ЗДОРОВЕННЫЙ, ПОДРОБНЫЙ фотоотчёт о постройке + видео испытаний
В данной статью я расскажу вам о том как повысить точность периодов выполнения участков кода программы. Для реализации материала статьи вам потребуется совершенно любая плата Arduino и больше ничего.
Перед рассмотрением материала позволю себе небольшое лирическое отступление. С платформой Arduino, я пока что знаком, можно сказать, по наслышке, но для Windows программирую много и давно, так же имею техническое образование по радиоэлектронике, по сему особых преград для освоения данной области не вижу. Первым своим роботехническим проектом решил сделать восьминогого робота паука, для создания которого мной были приобретены сервоприводы НК151138 фирмы HobbyKing и специализированная плата формфактора-Arduino, на базе контроллера ATMega1280, с возможностью удобного подключения большоего числа сервоприводов. Вот эта плата.
В мы настроили IDE, и теперь просто обязаны испытать STM32 в деле. Этот урок будет служить этаким трамплином для программерского прыжка в STM32: помигаем светодиодами, поиграемся с таймером — легко и непринуждённо, без копошения в несущественных сейчас деталях. Цель урока — дать общее представление о том, как программируются эти МК.
Итак, Скорпионоид или что я сотворил из чудо пластика, и набора Starter kit + сервы… получилось простенько, но как говорится — со вкусом. Самое сложное в нашем деле — как всегда — идея!
Совсем скоро наступит Новый 2012-й год!
Считается, что Новый Год прекрасно подходит для подведения итогов прошедшего года и составления планов на год новый.
Что ж, попробуем…
GPIO (General Purpose Input-Output) — это выводы общего назначения, ноги микроконтроллера, доступные для прямого управления. Это обычно довольно дефицитный ресурс во многих популярных МК, но с STM32 эта проблема теряет актуальность: в самом мелком корпусе (LQFP48) доступно 37 GPIO, а в самом большом (LQFP176) — 140 GPIO. И всё это богатство ещё и настраивается вдоль и поперёк. Но, обо всём по порядку.
При работе с микроконтроллерами STM32, и не только с ними, часто нужно заглядывать в документацию, чтобы найти какие-либо сведения (captain mode on). Для продуктивной работы с ней нужно хорошо представлять себе, где её найти, а также где в ней найти нужную информацию. Вот об этом я вам и расскажу.
Про мы уже не раз — какой это крутой, гибкий и безотходный материал, пришло время вдохнуть конкретики в эти слова. На днях мы закончили — обросли толстым слоем экспириенса и сейчас начнём им активно делиться =)
Лепить и гнуть это ещё не всё — можно не только это, не только руками и не только ажурные формы и плавные линии – листы, пластины, уголки, трубы, оси, валы, подшипники скольжения, шестерни и прочие индустриально технологичные вещи можно изготовить — прям на столе используя абсолютный минимум инструментов.
После прохождения прошлогоднего курса (Stanford Machine Learning class от ), David Singleton решил создать какой-нибудь интересный проект с использованием полученных знаний. В качестве такого проекта он выбрал проект, который приводился в качестве примера на лекциях по машинному обучению — машину, управляемую при помощи .
Но так как хаммера под рукой не оказалось — он взял за основу простую радиоуправляемую машинку, смартфон под управлением Android и, разумеется, , которая использовалась для передачи команд с ПК на пульт управления машинкой.
Сегодня я расскажу, как подготовить рабочую среду для разработки под ARM Cortex-M3 микроконтроллеры STM32F10x. Среда должна в себя включать компилятор, редактор кода, отладчик, прошивалку микроконтроллера, а также должна быть удобна для использования. Ну и должна дружить с платами и STM32L-Discovery, само собой.
Думаю, ни для кого не секрет, что первоначально программу в микроконтроллер заливают при помощи специального устройства — программатора. Конечно, ардуинщикам обычно не нужно об этом беспокоиться — у них есть bootloader (загрузчик), заранее прошитый в микроконтроллер, и прошивку он забирает по UART через COM-порт или через USB. Но чтобы прошить этот загрузчик или другую прошивку в «чистый» МК, нужен программатор.
Но в этой статье мы не будем рассматривать сборку и пайку с нуля, а воспользуемся возможностями Arduino. Дело в том, что на большинстве плат Arduino до версии Uno есть микросхема FT232RL компании FTDI.
Стандартная / имеет 20 цифровых пинов (6 из них — ещё и аналоговые входы), что бывает недостаточно для решения некоторых задач: тот же требует минимум 6 пинов. Для подключения нескольких устройств, не требующих двунаправленной передачи данных, вполне подойдут сдвиговые регистры.
При работе с Arduino иногда возникает необходимость вывести какие-либо данные на дисплей, но передавать для этого данные на ПК имеет смысл только если устройство будет использоваться в связке с ПК. А как же быть с автономными устройствами? Тут на помощь придут LCD-дисплеи.
Рассмотрим LCD-дисплеи на базе контроллера HD44780 на примере WH1602B-YYK-CTK.
Введение в робототехнику
перевод лекций профессора Стенфордского университета Осамы Кхатиба (Oussama Khatib), 2008 год
Лекция 2
Пространственное описание, обобщенная система координат, переходные системы координат (от базы к клешне), матрица поворота, пример матрицы поворота, преобразование из одной системы координат в другую, образец гомогенного преобразования, операторы преобразования.
Здравствуйте!
Сегодня мы с вами начнем рассматривать базовые преобразования необходимые для кинематических расчетов. Как я упомянул на прошлой лекции — описание взаимосвязи локальных систем отсчета (имеется ввиду системы привязанные к звеньям, далее проясниться) и преобразований между ними является важным аспектом. Мы начинаем с преобразований которые позволят нам рассчитывать положение «клешни» относительно базы робота (базовой системы координат).
Очевидно, что когда мы определяем расположение следующего звена, нам нужно уметь преобразовывать из исходной системы координат, иными словами описывать позицию и ориентацию звена относительно текущего звена. Нам с вами потребуется обсудить каким образом представлять координаты объекта и его ориентацию в пространстве, выбрать из существующих способов.
Так же я собираюсь описать в некоторой мере объект управления, манипулятор, и что представляют его звенья, что такое степени свободы манипулятора, как мы можем представлять себе позицию манипулятора в пространстве. Итак манипулятор представляет из себя набор звеньев (также links — связей), связанных между собой кинематических пар. Начальное звено зафиксировано – оно называется базой. А последнее звено именуется клешней (gripper – хвататель, кому знакомо точное название поправьте меня). Главная задача, суть манипулятора – это управление и перемещение этой клешни, которая, в свою очередь, выполняет прикладные задачи.
Для меня, — это, в первую очередь, интересный датчик для роботов. И хотя, с ним можно работать напрямую из-под или , но больший интерес представляет работа с Kinect из-под операционной системы для роботов — .
Уважаемые посетители robocraft, для вас, как и для себя, я решился на перевод одного хорошего курса по нашей с вами любимой теме – робототехнике. Возможно вам знаком курс видеолекций на английском языке прочтенный в 2008 году в Стенфордском университете профессором Осамой Кхатибом (introduction to robotics). Этот ресурс в количестве 16 лекций доступен на youtube. Тем же из вас, кто английский язык знает недостаточно хорошо даже по американским меркам (обращаю внимание, поскольку курс читается на достаточно доступном языке) я и адресую этот материал. Надеюсь, что он подтолкнет вас на постижение новых знаний и расширение своего кругозора. За кривость перевода не судите строго старался не потерять стиль речи лектора.
С уважением, aivanov.
Введение в робототехнику
перевод лекций профессора Стенфордского университета Осамы Кхатиба (Oussama Khatib), 2008 год
Лекция №1. Вступление
В данном курсе мы планируем рассмотреть основы робототехники. Нам потребуется рассмотреть математические модели которые описывают робототехнические системы в различных их проявлениях.
Если мы рассмативаем математическую модель, которую будем использовать для симуляции, нам необходимо хорошо представлять себе её кинематику. Так же от нас требуется хорошо рассчитывать усилия, производимые приводами, необходимые для движения робота.
Энкодер — это устройство преобразующее линейное или угловое перемещение в последовательность сигналов, позволяющих определить величину перемещения.
Т.о. можно выделить линейные и поворотные энкодеры.