После активной учёбы в универе: лаб, курсовых, экзаменов — летом испытываю ломку чего-нибудь поделать такого интересного,
Вот и в этот раз не обошлось — решил сделать какого-нибудь прикольного робота. Всякие машинки мне уже надоели, до мультироторных систем я еще не дорос. Решил сделать гуманоида:) Гуманоида не получилось…
Но, конечно, зажегся идеей, вспомнил детские просмотры «Терминатора» и «Звездных воин» и начал работу.
И вот что получилось:
В посте опишу процесс создания этой штуковины по прозвищу Тимми(иногда называю его Хромой Вася — в конце в видео будет понятно почему)
Буду вести описание в том виде, в каком это все придумывалось. Сразу оговорюсь, ни к каким дополнительным источникам и примерам я не прибегал, все сделал и придумал сам, так сказать… зачем изобретать колесо? а чтобы научиться его изобретать!
Итак, в качестве «мышц» я решил использовать сервомашинки, и заказал 8 микросерв TowerPro, еще у меня оставались 2 микросервы Fliec, но они мне понравились меньше, так как сильно греются (на картинке на голове радиатор как раз на такой серве).
А пока шли сервы, решил сделать «мозги». Оставался один микроконтроллер Atmega168 и, как мне показалось, его вполне хватит.
Быстро нарисовал дорожки для ЛУТ:
Сорри, не спец в оформлении. Плату сделал ЛУТом, залудил сплавом Розе, просверлил дырочки, все спаял и вот что получилось:
(за качество фото даже прощения просить не буду, все равно не простите, а вот пооправдываться могу — дома темно и фоткать не умею совсем)
Яркий светодиод — извещение о работоспособности, синий можно подключать к любому пину и повесить на него задачу индикации чего-либо. Пищалка так же может подключаться к любому пину.
Для питания используется простой LM7805, импульсных преобразователей под рукой не нашел. Тут на него прикручен небольшой радиатор, так как токи текут достаточно серьезные от нескольких серв и греется он неплохо.
Итак, сервы пришли, «мозги» готовы (правда, в голове опилки)… настала пора задуматься о том, как и из чего делать скелет… тут на помощь пришел материал под названием Поликапролактон. Это медицинский пластик, биологически разлагающийся, безвредный, с температурой плавления около 60 градусов. Расплавил — и лепи руками:) Единственный минус — изделие не должно подвергаться нагреванию до 50-60 градусов, и я сначала опасался, что сервы сыграют со мной злую шутку. Но оказалось, что опасаются они, так как они грелись лишь спустя 10 минут активной работы и то градусов до 40.
В голове нарисовал себе примерную схему скелета и решил решать проблемы по мере их поступления.
Расплавив в микроволновке погруженный в воду полиморф, раздавил из него лист между двумя отрезками стеклами. Затем разрезал на части, сгибал и спаивал детали паяльным феном. Таким образом все и получилось. Легко и просто. Лишние обрезки можно вновь и вновь переплавять — безотходное производство.
Затем закрепил плату и дальномер с микрофоном также на сервомоторе.
После всех этих приключений настала пора программирования. Программу писал на ассемблере. Итог программы — движение можно задавать матрицей вида
act: .db 0x3c,0x2a,0x3c, 0x2e,0x42,0x30, 0x36,0x36 ;1
.db 0x3e,0x24,0x42, 0x20,0x40,0x39, 0x36,0x36 ;2
.db 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 ;заглушка
где одна строка задает углы для каждой из 8 сервомоторов, 0x16 — 0 градусов, 0x56 — 180 градусов. Строки меняются по прерыванию 16 разрядного таймера. Если нужно контролировать скорость движения — нужно уменьшить коэффициент предделителя и увеличивать количество строк матрицы. У меня же пока стоит квантование по полсекунды и он дергается как сумасшедший каждые полсекунды.
Вот пример работы этих двух строк с квантованием в полсекунды. Всего две строки и Вася уже хромает!
Автор: allswell