Пример виртуальной машины
Автор DI HALT
Опубликовано 28 июля 2010
Рубрики: AVR. Учебный курс, Робототехника
Метки: RTOS, Программирование, Трюки
Как то раз я описывал концепцию создания языка программирования для устройства. Который бы позволил запихать сложнейший алгоритм или последовательность действий в виде компактного скрипта.
Простой пример для чего это нужно — фрезерный станок с ЧПУ. И надо на нем выточить голову Сократа из цельного куска металла. Задача, на самом деле, не шибко сложная.
Но попробуйте написать прошивку, двигающую резцом, в виде классического конечного автомата — двигающую резцом в зависимости от условий или состояний. Да вы сдохнете раньше чем это сможете сделать.
Другое дело если разбить программу на элементарные операции, вроде “Резец вверх”, “резец вниз”, “шаг на n мм”, а прошивке скормить последовательность этих микроопераций в виде байт-кода или текстового скрипта. Как все серьезно упрощается. Да и попутно можно нашинковать Платона с Гераклом, было бы желание, да образец для копирования.
Т.е. у нас появился свой язык устройства, полностью отвязанный от аппаратной реализации и оперирующий только органами устройства. И вот тут, главное, не впасть в высокоуровневую прелесть и не начать изобретать универсального интерпретируемого языка аля JAVA для микроконтроллеров. В условиях ограниченных ресурсов это полный бред.
Наоборот, этот язык нужно максимально упрощать за счет усложнения процедур машины, затачивая их строго под текущую задачу, а не делая нечто универсальное. Тогда можно выжать максимум из контроллера.
Ну, хватит воды, приведу пример того, что у меня получилось за вечерок курения в код. Код рабочий, но я там ничего не оптимизировал. Так, накидал чтоб работало, до ума доведете сами. Сделано все на базе ядра диспетчера. Я его уже описывал, поэтому работу его функций пояснять не буду
Читать полностью
Колеса… колеса… Ноги! Во!
Автор DI HALT
Опубликовано 11 июля 2010
Рубрики: Робототехника
Метки: Видео, Робот
Главное его не красить в зеленый цвет, а то монтировками загасят.
Кибергусеница
Автор Serafim
Опубликовано 03 июля 2010
Рубрики: Робототехника
Дабы отдать дань уважения сайту решил написать данную статью о своем роботе-самоделке. Это была моя магистерская и инженерная работа и теперь хочется поделиться ею со всем просвященным миром)
Итак, несколько слов об устройстве. Ниже приведена 3d моделька девайсины.
![]() |
В основе робота сервомашинки Futaba S3003 - самые простые и дешевые, что удалось раздобыть на нашей кафедре (кафедра ТМ и М ЮЗГУ(КурскГТУ)). О том, что такое сервомашинка и как она работает у Вас есть отдельная статья на данном сайте, поэтому останавливаться на этом я не буду.
Читать полностью
Робоконструктор Velleman Robotic Arm KSR10
Автор DI HALT
Опубликовано 22 июня 2010
Рубрики: Робототехника
Метки: Манипулятор, Механика, Робот
Наши дружеские посиделки, хоть и малым составом, но состоялись. Кроме обсуждения ряда технических задач и возможного сотрудничества просто классно и плодотворно пообщались. Андрей натащил кучу разных прикольных штуковин одну из которых я вам сейчас и покажу.
![]() |
Это очередной робоконструктор — механическая рука с пятью степенями свободы. Velleman Robotic Arm KSR10
Штука довольно редко встречающася, т.к. на Ebay я нашел всего одного продавца и в exUSSR эта редиска слать не желает. Встречается в нескольких буржуйских магазинах и вроде бы была в ЧиД, но оттуда была выкуплена нами :) Цена вопроса от 60…100 баксов.
Сам агрегат это очередная продвинутая игрушка, но для баловства и отработки алгоритмов нам больше и не требуется. Читать полностью
Контроллер маломощного униполярного шагового двигателя
Автор dzed
Опубликовано 26 марта 2010
Рубрики: Робототехника
Метки: Шаговый двигатель, Электропривод
Предыстория
Понадобилось мне прошлой осенью восстановить измерительный стенд. Одна из главных частей стенда — система протяжки лески с закрепленной на ней трубочке сквозь СВЧ-резонатор (это такая медная банка весом 20-30 кг). Причем протяжка должна осуществляться периодически с фиксацией положения (на 1мм подвинул, остановился, подождал секунду, ещё на 1мм подвинул, и так далее). Естественно сразу возникла мысль о шаговом двигателе (ШД). Но как им управлять? Разобрался. Начал искать схемные решения - биполярными двигателями сложно управлять, поэтому выбор пал на униполярный. Был приобретён кЫтайский моторчик под названием
MOTS1 (ST28), который в России продаётся Velleman`ом
![]() |
Купленный моторчик оказался без какой-либо документации. В интернете — тоже почти ничего. Позже экспериментально нашёл необходимую последовательность управляющих сигналов.
Читать полностью
Виртуальная машина и байт код
Автор DI HALT
Опубликовано 19 Фев 2010
Рубрики: Робототехника
Метки: Алгоритм, Программирование, Робот
Часто требуется делать большие последовательности сложных операций — например полетное задание для робота. Да, можно запихать все это дело в основную программу, но вдруг что то пойдет не так как надо и алгоритм надо будет переделать — придется переделывать всю программу.
Тут на помощь придет виртуальная машина. Суть в чем — в памяти контроллера, в основную программу, занесены основные процедуры управления устройством. Если это робот, то это могут быть такие простые команды как “вперед”, “назад”, “повернуть” и так далее.
Дальше мы увязываем это все в таблицу переходов, где у каждой команды будет номер-смещение.
Потом нам нужен обработчик скриптов, который бы брал откуда нибудь, нашу последовательность действий — скрипт и преобразовывал это в вызовы реальных кусков кода -микрооперации.
Обработчик скриптов может быть той же самой задачей диспетчера, запущенной фоном. А откуда он будет брать данные неважно. Их вполне можно засасывать по usart или тащить из EEPROM памяти. А можно загнать на IIC память и получится сменный картридж :)
Читать полностью
Робоконструктор POP-BOT
Автор DI HALT
Опубликовано 01 Ноя 2009
Рубрики: Робототехника
Метки: МК, Программатор, Робот
Снова Элемент порадовал новым робоконструктором. Опять от Innovative Experiments. На этот раз это POP-BOT.
![]() |
Выглядит почти точно также как и MICROCAMP и шасси сходное, а вот начинка несколько иная. Читать полностью
Мотор-редукторы IE-BO2-120M и IE-BO2-48M
Автор DI HALT
Опубликовано 19 Окт 2009
Рубрики: Робототехника
Метки: Механика, Робот, Электропривод
Фирма Inex Global кроме робоконструкторов барыжит еще и прикольными мотор-редукторами. Теми самыми, что стоят в Robopica и Microcamp. В Челябинск их периодически таскает Элемент. Я прикупил парочку на пробу, есть у меня одна задумка на их счет, но об этом несколько позже ;)
Пока же расскажу о самом движке. Бывают они двух моделей IE-BO2-120M и IE-BO2-48M, отличаются друг от друга передаточным отношением редуктора 1:120 и 1:48.
![]() |
Больше ничем, отличить 120 от 48 визуально можно только по цвету кожуха. У 120 кожух черного цвета, у 48го белый. У меня сейчас в наличии только два 48ых.
Читать полностью
Робоконструктор MicroCamp
Автор DI HALT
Опубликовано 06 Сен 2009
Рубрики: Робототехника
Метки: AVR, Начинающим, Робот, Электропривод
![]() |
В Элементе появилась очередная игрушка, так что я не устоял и подорвался туда с фотиком.
Итак, это робоконструктор, подобный RoboPICA, но на этот раз на ATmega8 и колесном шасси. Этакая вертлявая каракатица на двух колесах и двух шариках, поворачивает по тракторному — реверсом колес. Проходимость у ней, конечно, не танковая, но зато по маневрености она гусеничному шасси огромную фору даст. Читать полностью
Вот жеж нифига себе! Пора готовиться к войне?
Автор DI HALT
Опубликовано 31 Авг 2009
Рубрики: Новости, Робототехника
Интересно какой момент развивают привода? Видно что там конические шестерни и скорей всего малоинерционные роторы. А также любопытно сколько это все жрет тока.
З.Ы.
В свободное время потихоньку крою план для лазерной нарезки частей манипулятора о 6 степенях свободы. Будет у моей платформы клешня =)
Русская инструкция на робоконструктор RoboPica
Автор DI HALT
Опубликовано 26 Авг 2009
Рубрики: Начинающим, Робототехника
Метки: PIC, Робот
Помните я обещал русский мануал к RoboPica? Так вот, я не успел и конструктор смели с прилавков быстрей чем я договорился выцыганить книжку на сканирование. Однако Bschepan, один из довольных обладателей этой игрушки, сделал доброе дело и выложил скан упиханый в DejaVu.
Рекомендую всем кто начинает раскуривать контроллеры PIC. Там все довольно подробно расписано на примере компилятора MicroC от Микроэлектроники.
Сервомашинка HS-311
Автор DI HALT
Опубликовано 08 Авг 2009
Рубрики: Робототехника
Метки: Видео, Механика, Робот, Электропривод
PLC похачил, защита там оказалась даже не детской — идиотской, пароль шел от PLC в комп открытым текстом и сверялся с введеным уже в софте. Так что RS232 сниффер это наше все :) Рубанул капусты и решил ее куда нибудь потратить. На глаза попалась сервомашинка HS-311. Вот и прикупил ее показать что это за зверь.
Серва это краеугольный камень механики радиоуправляемых моделей, а последнее время и домашней робототехники. Представляет собой небольшой блок с двигателем, редуктором и схемой управления. На вход сервомашинки подается питалово и управляющий сигнал, задающий угол на который надо выставить вал сервы.
В основном все управление тут стандартизировано (если есть тут RCшники, то может добавите свои пять копеек?) и сервомашинки, по большей части, различаются усилием на валу, быстродействием, точностью управления, габаритами, весом и материалом изготовления шестеренок. Цена колеблется от 200-300 рублей за самую дешевую и до бесконечности за ультрамегатехнологичные девайсы. Как и в любой фанатской области, верхняя планка цен тут не ограничена и наверняка под потолком в ход идут какие нибудь шестерни из перфорированного титана и карбоновые корпуса с обратной связью через миллионимпульсный оптический энкодер =) В общем, всегда можно чем нибудь померяться.
Я же не стал выпендриваться и взял пока самую дешевую, самую распространенную HS-311. Тем более у меня уже есть планы по ее переделке.
Характеристики HS-311
- Момент на валу: 3кг*см
- Размеры: 41×20x37 мм
- Вес: 44.5 гр
- Скорость поворота вала на 60 градусов: 0.19 сек
- Управление импульсное
- Цена: 350-450р
Робоконструктор Robo-PICA
Автор DI HALT
Опубликовано 10 июня 2009
Рубрики: Робототехника
Метки: PIC, Микроконтроллер, Робот
В Челябинском Элементе появилась прикольная вещь — робоконструктор Robo-PICA. Пользуясь моментом, пришел туда с фотиком и зафоткал все содержимое коробки, а потом выложил на всеобщее обозрение.
![]() |
| кликабельно — больший размер |
Дальше будут в основном фотки с моим кратким описанием.
Читать полностью
Робот на контроллере PIC от SWG. Часть 3
Автор DI HALT
Опубликовано 31 Окт 2008
Рубрики: Робототехника
Метки: Microchip, PIC, Датчик, Описание, Робот
О ходе работ можно почитать в записях ать и два и, главное комментариях к ним
Попутно скидывая мне мылом некоторые свои наработки.
Под бамперами будет крепиться пластина толщиной миллиметров 10 из довольноплотного поролона или даже микропористой резины, пока еще не решил, пробую разные материалы. Надо чтобы был мягкий, но не очень. Будет выступать запределы плат миллиметров на 10-15, защищая светодиоды подсветки и сами платы. Пока просто положил платы бамперов в коробку, чтобы показать общуюкомпоновку.
Определившись с размещением и креплением плат, сделаю соединительные шлейфики из МГТФ, оптимальной длины, чтобы зря не болтались,но и не в натяжку. Прикидываю также варианты, конструкцию и размещение датчиков одометров, и оборудования, которое будет установлено в будущем,чтобы по нескольку раз не переделывать.
На платах бамперов синие колодочки снизу - датчики пола с фоторезисторами ибелыми светодиодами подсветки. (Сделал из клеммников, слегка рассверлив их местами). Прозрачные светодиоды сверху - подсветка ИК локатора на TSOP(стоят посредине, вверх ногами).Черные кубики на внутренних углах - оптопары на отражение датчиков столкновения. Над ними к боковым стенкам будуткрепиться угольники - шторки с белой областью на черном фоне или отверстием определенной формы.
Когда уже платы были готовы, подумал, что можно было припаять оптопары не сверху, а снизу платы, и нарисовать нужные фигуры прямо на дне коробки. Вообще - то это и сейчас еще не поздно сделать, пока еще не решил. Тем более, что в библиотеку я по запарке тоже занес их зеркально, и при запайке пришлось загнуть ноги под ними для правильной распайки, а снизу они встанут правильно. В общем, накопилась куча мелочей, на обдумывание которых бесполезно уходит время. (”Тирания альтернатив”). С пересылкой состояния датчиков тоже вроде все просто, но когда начинаешь добавлять кучу всяких защит от всего, и проверок правильности функционирования, все обрастает, как снежный ком, постоянно приходится все проверять на возможные и невозможные ситуации, чтобы все нормально отрабатывало. Слишком велика будет цена падения, например, в открытый люк, а постоянно закрывать все дырки и двери - тоже не выход… Но и сильно перестраховавшись, можно вообще никогда не стронуться с места.
Ультразвуковой дальномер
Автор DI HALT
Опубликовано 24 Окт 2008
Рубрики: Робототехника
Метки: Датчик, Модуль, Сонар, Ультразвук
|
| Подключенный сонар |
Вот прикупил я для своего робота ультразвуковой дальномер — Maxbotix LV-MaxSonar EZ1. На днях ко мне пришла посылка из Терраэлектроники, где сей замечательный девайс был куплен. Сам сонар стоит под 750 рублей, доставка обошлась в 800 :) Но я заказывал кучу всего вкусного, так что оно того стоило. Несмотря на нехватку времени, не побаловаться этой игрушкой я не мог. Итак, встречайте краткий тест системы.
Описание:
Девайс представляет из себя головку излучателя с платой контроллера на заднице. Контроллер собран на базе PIC16F676 и микросхемы LM324. Схема сонара указана в даташите, а прошивку в итоге можно и самому написать, так что рано или поздно я повторю его на AVR :) Тем более где то я эту схему уже видел… Впрочем, схема тут не важна, УЗ сонаров как грязи разработано умельцами, самое главное тут это излучатель, вот его найти задачка та еще. Я применил MaxBotix’овский пьезоизлучатель. И если цена готового модуля почти 800рублей, то сама пищалка стоит всего 150 рублей.
Робот на контроллере PIC от SWG. Часть 2
Автор DI HALT
Опубликовано 01 Окт 2008
Рубрики: Робототехника
Метки: Pascal, PIC, Микроконтроллер, Программирование
|
| Предварительная версия схемы |
Хы, надо сказать я несколько отстаю в разработке :) Он уже за датчики взялся, а у меня пока только ходовая отлаживается… ничо ничо, вот щас с заказами разберусь и закажу себе УЗ сонары :)))) А там еще посмотрим кто первый в космос полетит :)
Бонусом в архиве идет доработанная программа ходового контроллера:
- Исходник на Pascal
- Cкомпилированные им ассемблерный листинг и HEX - код, а также
- Дизассемблерный из HEX-кода листинг. Получен программой из комплекта IC-Prog, которой я прошиваю PIC16F876).
Робот на контроллере PIC от SWG
Автор DI HALT
Опубликовано 17 Сен 2008
Рубрики: Робототехника
Метки: PIC, Печатная плата, Робот, Электропривод
…
Потребление от 12v: 33 мА при выкл. двигателях, при макс. скорости без нагрузки (колеса не касаются пола) = 103 мА вперед, 115 мА назад. При одном заклиненном колесе - 300 мА, при обоих заклиненных колесах = 500 мА.
L293DN чуть теплая. Будет греться - приклею радиатор. Да, частоту ШИМ взял пока 500 Гц. (период 2 мс). Померяю скорость нарастания тока в двигателях - определю более оптимальную (За самый короткий импульс ток в двигателе должен успеть достигнуть максимума).
Максимальная скорость движения по полу сейчас 15-20 см/сек. Больше мне пока ни к чему, слишком быстро будет комнату пробегать. Диаметр колес = 80мм (резиновые “бублики” вроде от какой-то сантехники, полно на базаре).
Честно говоря, я был сильно удивлен когда нагуглил характеристики движка ДПМ. Почти все они, несмотря на весьма брутальную конструкцию, жрут довольно мало. Так что даже L293 их спокойно тянет. При этом они отличаются вполне сносным моментом и оборотами.
Управление шаговым двигателем
Автор DI HALT
Опубликовано 10 Сен 2008
Рубрики: Робототехника
Метки: Шаговый двигатель, Электропривод
|
| Первая модификация силового блока. L293 вытащена. |
|
| Вид снизу |
Шаговый двигатель это, как понятно из его названия, двигатель который вращается дискретными перемещениями. Достигается это за счет хитрой формы ротора и двух (реже четырех) обмоток. В результате чего, путем чередования направления напряжения в обмотках можно добиться того, что ротор будет по очереди занимать фиксированные значения.
В среднем, у шагового двигателя на один оборот вала, приходится около ста шагов. Но это сильно зависит от модели двигателя, а также от его конструкции. Кроме того, существуют полушаговый и микрошаговый режим, когда на обмотки двигателя подают ШИМованное напряжение, заставляющее ротор встать между шагами в равновесном состоянии, которое поддерживается разным уровнем напряжения на обмотках. Эти ухищрения резко улучшают точность, скорость и бесшумность работы, но снижается момент и сильно увеличивается сложность управляющей программы - надо ведь расчитывать напряжения для каждого шага.
Один из недостатков шаговиков, по крайней мере для меня, это довольно большой ток. Так как на обмотки напруга подается все время, а такого явления как противоЭДС в нем, в отличии от коллекторных двигателей, не наблюдается, то, по сути дела, мы нагружаемся на активное сопротивление обмоток, а оно невелико. Так что будь готов к тому, что придется городить мощный драйвер на MOSFET транзисторах или затариваться спец микросхемами.
Типы шаговых двигателей
Если не углубляться во внутреннюю конструкцию, число шагов и прочие тонкости, то с пользовательской точки зрения существует три типа:
- Биполярный - имеет четыре выхода, содержит в себе две обмотки.
- Униполярный - имеет шесть выходов. Содержит в себе две обмотки, но каждая обмотка имеет отвод из середины.
- Четырехобмоточный - имеет четыре независимые обмотки. По сути дела представляет собой тот же униполярник, только обмотки его разделены. Вживую не встречал, только в книжках.
Где взять шаговый двигатель.
Вообще шаговики встречаются много где. Самое хлебное место - пятидюймовые дисководы и старые матричные принтеры. Еще ими можно поживиться в древних винчестерах на 40Мб, если, конечно, рука поднимется покалечить такой антиквариат.
А вот в трехдюймовых флопарях нас ждет облом - дело в том, что там шаговик весьма ущербной конструкции — у него только один задний подшипник, а передним концом вал упирается в подшипник закрепленный на раме дисковода. Так что юзать его можно только в родном креплении. Либо городить высокоточную крепежную конструкцию. Впрочем, тебе может повезет и ты найдешь нетипичный флопарь с полноценным движком.
Схема управления шаговым двигателем
Я разжился контроллерами шаговиков L297 и мощным сдвоенным мостом L298N.
Контроллер шасси
Автор DI HALT
Опубликовано 24 Авг 2008
Рубрики: Робототехника
Метки: Двигатели, Печатная плата, Робот, Шасси
|
| Шасси в сборе |
Блок питания.
У нас же стоит свинцовый аккумулятор на 12 вольт, а контроллеру нужно 5 вольт. Вот я и сварганил импульсный блок питания. Можно было, конечно, поставить какой нибудь LM7805 (как у меня на макетке) и на нем сбросить напряжение, но это тупой метод. Дело все в том, что разницу напряжений LM7805 отрыгнет в виде тепла. Так что КПД данного девайса будет ниже 50%, а питание у нас батарейное. Так что выход один — это DC-DC преобразование. В качестве контроллера взял проверенный временем, популярный, доступный и дешевый MC33063A. Изобретать ничего не стал и взял типовую понижающую схему (Step - Down) из его даташита. Как работает схема этого блока питания я расскажу несколько позже, отдельным постом. После выхода статьи в “Хакер”, где я толкнул статью про источники питания.
It’s a live!!! It’s a live!!!
Автор DI HALT
Опубликовано 22 Авг 2008
Рубрики: Робототехника
Метки: Видео, Микроконтроллер, Робот, Шасси
Пока же можете полюбоваться на работу монстра в деле. Прога из второго примера - едем до касания передними датчиками, потом сдаем назад на 30 оборотов редуктора. Правда не работает одометр поэтому спустя 30 оборотов колеса он не останавливается. Но это мелочи, поправлю. Заранее извиняюсь за отвратное качество видео. В таком формате пишет моя говномыльница.
Может кто посоветует еще прогу которой можно пережать видео в два клика? Просто сделать размер поменьше, может формат сменить. Что нибудь тупое и простое, разбираться в тонкостях мега софта мне сейчас совершенно некогда.











