понедельник, 25 ноября 2013 г.

Робот и 3d принтер: общий статус

На этих выходных был в одном большом строительном магазине. Из нужных железяк для принтера купил стержни с резьбой в общей сложности на 5 метров. Был удивлен, что ценник оказался меньше, чем я планировал - всего 15.000 бел.руб. (1,6$) за метр. Дома начал разрезать под нужные размеры, но немного не хватило. Нужно будет еще один метр купить. Также прикупил гаек, шайб. В отдельном доке записываю все расходы, чтобы потом посмотреть во сколько это выйдет.

Также в прошлую пятницу заказал с ebaу'я пластиковые части. Следующим серъезным приобретением должны стать 5 шаговых двигателей.

По роботу все собрал в кучу: ноги, плата, аккумулятор. Робот получается довольно тяжелым. И, честно говоря, мне это совсем не нравится. Видимо основная масса  это металлическое крепление сервомашинок. В ближайшее время буду делать первые простенькие тесты. Надеюсь, что робот сможет устоять под собственной тяжестью.

среда, 20 ноября 2013 г.

Текущий статус и размышления насчет 3d принтера

К настоящему моменту я наконец закончил отладку библиотеки для работы с ногой робота. Дело в том, что библиотека уже была как будто отлажена. Но получилось, что когда я поставил все 4-е ноги и захотел, чтобы они работали синхронно, получилось не совсем так, как хотелось. Это было связано с тем, что направление осей координат с одной стороны робота не совпадало с другой стороной. Поэтому получалось, что ноги, которые должны были двигаться синхронно, двигаются как в зеркальном отражение.

Задавать для каждой ноги свои точки совсем не серьезно, поэтому пришлось еще учитывать сторону и некоторые другие моменты. Но в результате все проблемы были решены. И 4-е ноги довольно бодро и синхронно зашагали.

пятница, 19 июля 2013 г.

Тестирование ног на 4-х ногом



Коротко о том, что было сделано:
- подготовлено все необходимое крепление для всех 6-и ног;
- собрано 4-е ноги у становлены для испытания;
- написана отдельная библиотека для работы с одной ногой;
- протестировано одновременная работа всех 4-х ног.

Коротко о том, что будет в следующем видео:
- собраны и установлены две ноги:
- сделана более или менее нормальная рама;
- докуплены аккумуляторы для нормальной работы всех 6-ти ног;
- первые шаги (уи-и-и...).

вторник, 2 июля 2013 г.

Скоро должен зашагать...



Итак, к настоящему моменту, как можно видеть, полностью готовы 4-е из 6-и ног робота. Крепление на остальные сервомашинки, которые вроде как должны вот-вот приехать по почте, тоже готовы. Честно говоря, с этим крепление наколупался я немного. С одной стороны это, конечно, удобно - разметил 16 одинаковых деталек и режь себе потихоньку. Но еще ведь нужно отверстий насверлить. А это примерно 150 штук... Но доделал все-таки.

В плане софта к настоящему моменту весь код для работы с одной ногой перенес в отдельную библиотеку. Таким образом итоговая программа выглядит аккуратно и читабельно.

И сейчас постепенно приближаюсь к очень интересному и волнительному моменту - первым шагам.

Конечно, 4-е ноги без контроля центра тяжести... Врятли это пойдет. Но посмотреть очень интересно.

В крайнем случае даже если не пойдет, то можно будет отработать синхронную работу ног. Это тоже должно выглядеть интересно. А еще прикупил вот такой джойстичек для таких целей:


среда, 8 мая 2013 г.

10 сервомашинок


Забрал с почты пару дней тому назад. 

Т.о. у меня на руках есть 14 серв. А нужно 3*6 = 18. Пока буду дожидаться еще четырех сделаю крепление для всех остальных ног и, наверное, попробую установить хотя бы четыре ноги и посмотреть, как он будет двигаться. 

пятница, 26 апреля 2013 г.

Плавное движение ноги: fail

Просидел, наверное, вечера три, реализовывая алгоритм плавного движения ноги.

Идея была в том, чтобы исходя из имеющихся данных (это четыре точки в каждую из которых перемещается нога) добавить еще дополнительные точки, которые должны были бы сгладить движение и сделать его более плавным. Как это ни странно, но движение наоборот получились более дерганные. Изменения параметров, которые можно было поменять, тоже не принесло результатов. Поэтому пока что реализовывать плавность движения не буду. Оставлю это на будущее.

Но назвать это полным fail'ом тоже нельзя. Я несколько переписал программу шагания и теперь она стала меньше по объему и более проста по пониманию. Чисто внешне это никак не отразилось на скорости шагания ноги. Но работать потом с этим исходным кодом будет легче.

Что дальше. Пока что жду когда приедут заказанные ранее 10 сервомашинок. И, кстати, нужно будет дозаказать еще несколько. Есть еще пара ультразвуковых датчиков. Наверное нужно будет с ними разобраться, чтобы потом закрепить на будущего робота. На  далекое будущее была идея организовать управления роботом с помощью джойстика от Playstation 3. Джойстики эти работают по bluetooth, а для ардуино как раз продаются такие относительно недорогие модули. Но до этого еще далековато. 

пятница, 19 апреля 2013 г.

Нога робота: полный цикл шага

Закончил разработку алогоритма шага для ноги робота.

Из плюсов реализации:
- движения ноги задается массивом точек конца ноги, т.е. можно добавить сколько угодно много точек и получить какое-нибудь хитрое движения;
- можно задать время движения между двумя точками;
- легко ввести параметр, который будет показывать с какой фазы движения цикла начинать сам процесс движения; это понадобится для того, чтобы перед тем, как робот начнет двигаться, каждую из ног расположить в нужной фазе.

Минусы реализации: пока не нашел. :) Наверняка что-то выяснится в процессе тестирования уже на самом роботе.

Что можно улучшить: добавить плавность в движения во время той фазы, когда нога не соприкосается с землей. Для этого планирую ввести дополнительные промежуточные точки. Насколько это поможет - покажут будущие испытания.

Ну и видео, как всегда:


Что еще забыл упомянуть в видео. Намечается одна проблемка. Для управления одной ногой нужно три сервомашинки, а значит три канала передачи сигнала. Т.е. для шестиного робота - 18 каналов. У Arduino Uno, который я использую, доступны только 14. Я вижу два пути решения этой проблемы.

1. Купить последнюю топовую плату Arduino DUE, которая кроме самых разных новоротов, имеет 54 канала для ввода/вывода. Плюс такого метода: все на одной плате, точно такая же среда разработки, как и на Uno, большое кол-во свободных пинов для расширения и подключения разных датчиков, гораздо больше памяти по сравнению с Uno (32 кБ против 512 кБ). Минус только один - цена в 50$. В то время, как Uno покупаю за 12$.

2. К первой плате Uno подключить вторую аналогичную и подружить их между собой. Плюс такого решения - это минус предыдущего, т.е. цена. Минусы - необходимо будет разрабатывать систему коммуникации между платами, возможно разделять функциональность (одна плата - отвечает за движение, вторая за датчики), возможно как-то дробить код программы, чтобы вписаться в отведенных 32 кБ.

Пока что останавливаюсь на втором варианте. Тем более, что на днях как раз должны приехать две платы Uno.

В планах на будущее: сделать движения более плавными, возможно сделать новые крепления для сервомашинок или же начать делать точно такие же (что более вероятно) для будущих ног. 

пятница, 12 апреля 2013 г.

Прототип ноги робота: обратная кинематика

Просидел над этим примерно четыре вечера, но все-таки сделал то, что хотел.

Теперь конец ноги способен правильно позиционироваться относительно начала ноги зная координаты конца ноги. Не очень красиво звучит. :) Ну, в общем, на видео, наверное, будет понятнее:

понедельник, 8 апреля 2013 г.

Прототип ноги робота. Первое тестирование.

Буквально на следующий же вечер после того поста сделал все крепления для сервомашинок. На следующий день собрал ногу и начал все это дело тестировать.

Сначала сервомашинки питал от трех батареек ААА. При работе сразу трех напряжение падало до 3,6 - 3,8 вольта и сервоприводы начинали вести себя не адекватно. Поэтому начал питать все от 4-х аккумуляторов типа АА. Стало намного веселее.

По началу движение сервоприводов контролировал сразу из контроллера. Но хотелось большей интерактивности. А то получается, что задал какую-ту последовтельность движений и все на этом, ничего изменить нельзя. Поэтому решил, что было бы интересно управлять положением сервоприводов с помощью мыши. На arduino.cc нашел все необходимые примеры и ссылку на processing.org, с помощью последнего можно тоже писать простенькие программки, которые как раз могут посылать данные на arduino. Но там у меня возникли проблемы с правильной передачей данных и поэтому пришлось немного покалупаться. В конце концов все получилось и сервоприводы управлялись с помощью мыши. На видео можно глянуть:


Дальше, как уже сказал в видео, стоит задача в том, чтобы конец ноги робота в горизонтальной плоскости в точности повторял движения мыши. И это уже не просто привязать одну координату к одной машинке, а другую - к другой, а нужно правильно преобразовать две координаты в углы трех сервомашинок. Тут уже нужна теорема Пифагора и тригонометрические функции. К настоящему моменту всю математику уже вроде рассчитал. Осталось это все проверить и потом закодировать.

И,  наверное, уже буду заказывать остальные 14 сервомашинок, потомучто добираться до меня будут они не меньше месяца.

четверг, 4 апреля 2013 г.

Крепление сервомашинки

Что-то долговато я думал, как сделать это крепление. Хотел, чтобы было простым, надежным и с возможностью сборки/разборки. Т.е. никаких клеев.

Первая версия крепления была металлическая, но кривая и относительно трудоемкая в изготовление. Вторую больше для интереса сделал из картона. Но, понятное дело, крепление оказалось хлюпеньких и болты особо сильно на картоне не зажмешь. А третья версия уже получилась более или нормально:


Далее, как уже сказано в видео, планирую сделать еще два таких крепления и сделать из всего этого одну ногу.

Тут стоить сказать, что данное крепление нужно фактически только для разработки. Когда  дойдет дело до финальной версии робота - тогда уже буду делать с учетом всех нюансов. Ну а пока буду делать крепление и собирать ногу, должны уже будут дойти более удобные провода со штырьками на конце. А то с проводами из витой пары работать крайне не удобно - постоянно ломаются, иногда выскакивают.

Еще прочитал почти все уроки на сайте arduino.cc. Просто поражаюсь, насколько широкий спектр применения может быть у этого контроллера в союзе с разными платами расширения. Тут действительно ограничением будет только фантазия. 

вторник, 2 апреля 2013 г.

Еще один шестиногий робот

Вот еще один завершенный проект шестиногого робота.


Автор этого чуда - Matt Denton.

Как не трудно догадаться это его не первая работа. Мужик действительно помешен на шестиногих роботах.

Страница в Facebook'е посвященная именно этому двухтонному монстру - facebook.com/mantisrobot

среда, 27 марта 2013 г.

Текущий статус

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

Пока искал в сети, как делают остальные, напоролося на довольно интересный блог, в котором автор точно так же делает шестиного робота. И при этом не просто делает, а уже успешно сделал. Причем первый шестиногий как раз с использованием тех же сервомашинок как и у меня. Робот называется Samsa:

воскресенье, 17 марта 2013 г.

Что мы имеем в начале

На этой неделе ко мне наконец приехали посылочки из Китая:


Слева в пакетиках - серво-машинки под названием Micro 9G. Маленькие, простенькие, дешевенькие. Мне на первое время точно хватит.

Вверху в лентах - резисторы разных номиналов.

Внизу белое - монтажная плата, с помощью которой очень удобно соединять разные элементы цепи. 

Ну и наконец справа внутри кольца USB-кабеля - плата Arduino Uno. Как читал, на данный момент самая распространенная.

Еще очень не хватает наличия проводков с удобными штырьками (заказал буквально пару дней назад) для коммутации всего этого. Поэтому для проверки работоспособности серво-машинок, пришлось вытягивать провода из витой пары. Кстати, там проводки совсем хлюпенькие - очень легко ломаются в местах, где нет изоляции.

Серво-машинки проверил. Все работает. Заодно посмотрел как теперь, с использование предварительно написанных библиотек, очень просто заставить что-нибудь двигаться. Просто красота.



четверг, 14 марта 2013 г.

Первый пост

Здравствуйте.

Меня зовут Рожков Алексей. Мне 30 лет.

Данный блог будет посвящен постройке робота.

Примерно 9 лет назад я заинтересовался постройкой роботов. Нашел в сети неплохой сайт на русском (к сожалению, адрес уже не вспомню) и начал делать что-то свое. К сожалениею, не много я тогда сделал. Дело остановилось на создание шасси для самого простого робота, который должен был просто кататься по комнате и при столконовении с препятствием отъезжать назад, немного поворачивать и ехать вперед. Но электронную часть я тогда все-таки сделал. И таким образом получил базовые понятия о микроконтроллерах и их программирование. Да, кстати, сам я программист, поэтому с этим проблем не возникло.

Кроме этого проекта, еще начинал строить что-то вроде электронного лица. Задумка была такая, чтобы из шариков для пинг-понга собрать глаза, которые повторяли бы движения мышки. И в этот раз дело остановилось на создание всей маханики. Что-то было сделано, но, насколько я сейчас помню, последнее, что я сделал это был редуктор.

В то время у меня еще не было возможности заказывать электронику и прочие детали на каких-нибудь сайтах. Поэтому все приходилось покупать на местном радиорынке (я живу в Минске, Беларусь, если что). Естественно ни о каком использовании сервомашинок не было и речи - имевшиеся в Минске в наличие было слишком дороги для меня. Поэтому приходилось самому делать редуктора, к которым, как я планировал, приделывать колесико от мышки (в то время практически все мышки были с шариком и внутри было два колесика с прорезями, благодаря которым определялось направление движения шарика). Также помню, что приходилось самому паять программатор для контроллера и подключать его к LPT порту (старый порт, к нему раньше обычно подключали принтер). И вот в конечном итоге я забросил все это дело.

Но спустя 9 лет совершенно как-то случайно попал на сайт dx.com. В принципе, ничего особенного - приятный на вид китайский сайт по продаже всякого барахлишка (хотя на самом деле, там продаются не только всякая дешевка по несколько долларов, но и довольно неплохие и не дешевые вещи). А на этом сайте уже напоролся на раздел посвященный arduino и все, что с этим связано. И вот тут-то нахлынули воспоминания и захотелось опять что-нибудь такое соорудить. Тем более, что сейчас возможностей для этого - хоть отбовляй.

Спустя месяца три-четыре окончательно убедился, что желание собирать не прошло и решил сделать шагающего шестиного робота. Т.е. нечто похожее на жука. Почему именно шестиного жука, а не, например, что-нибудь на гусеницах? Сам точно не знаю. Может быть потому, что когда-то в детстве смотрел сериал "Электронные жучки", где в одной из серий были такие роботы-жуки, которые очень быстро бегали, настигали цель и вкалывали ей дозу яда. Вот почему-то быстро бегающие жучки мне и понравились. :)

На настоящий момент цель у меня примерно такая: сделать пока-что просто шасси, которое смогло бы передвигаться в разном направление. Как это сделать - я примерно представляю. Для начала кое-что уже купил. Но это этом в следующем посте.

Да, кстати, как-то так получилось, что очень мне нравится делать что-нибудь руками. Поэтому кроме этого проекта я еще делаю одноместный самолет и делал велик-кастом. Но этот проект пока заморозил. Общую информацию про меня, если интересно, можно найти на просто огромнейшом сайте - barr82.com.

Если заинтересовались блогом, то можно подписаться на новые посты - справа есть соотвествующее поле.

Всем спасибо. :)