WALRUS (робот - морж)


12.07.2010, 19:54



Проект выходного дня. Робот- морж. Именно так будет на английском языке слово "walrus".

Этот проект я задумал давно, еще в июне, когда мы все обсуждали манипуляторы. Я тогда заказал за бугром 10 сервок.

Вкратце о проекте. Это робот с двумя "руками", которыми он пользуется как морж или пловец, который плывет "брасом" (не уверен, что правильно написал, я в плаванье не разбираюсь сильно). Он, по сути, тащит свое "тело".

Реализация интересна не как конечный робот, а как проверка теории на практике. Дело в том, что от начала и до конца работы прошло всего 2 часа.

Я спроектировал кинематику на бумаге, обмерил серву, на бумаге нарисовал основной элемент "корпуса", 2 соединительных элемента, вырезал из бумаги, повертел в руках и начал делать в металле.

Из инструментов использовал ножницы по металлу, дрель, сверло на 2.5 и 6 мм. Крепеж М2.5, изолента (как без неё :-) ).

Контроллер использовал старый. В нем предусмотрены выходы на датчики, на которые я поставил сервы. На контроллере осталось еще 4 свободных разъемов, один из них- I2C, и длинный разъем для LCD.

Вот что получилось:

320х200, GIF-анимация: walrus_motion1.gif (270 кБ)
640x400, MPEG: walrus1.mpg (2.8 МБ)

Программу писал на Бейсике. Она получилась настолько маленькая, что можно показать её здесь:

Config Servos = 4 , Servo1 = Portd.2 , Servo2 = Portd.3 , Servo3 = Portd.0 , Servo4 = Portd.4 , Reload = 10
Config Portd = Output

Dim Minimum As Byte
Dim Maximum As Byte
Dim N As Integer
Dim Center As Byte

Minimum = 80
Maximum = 180
Const Wait1 = 500
Center = Maximum - Minimum
Center = Center / 2
Center = Center + Minimum

Const Top = 50
Const Forward = 40
Const Back = 20

'finally we must turn on the global interrupt
Enable Interrupts

'the servo() array is created automatic. You can used it to set the
'time the servo must be on

' init
Servo(1) = Center
Servo(2) = Center
Servo(3) = Center
Servo(4) = Center
Waitms Wait1


Do
' top
N = Center - Top
Servo(1) = N
N = Center + Top
Servo(4) = N
Servo(2) = Center
Servo(3) = Center
Waitms Wait1
' forward
N = Center - Top
Servo(1) = N
N = Center + Top
Servo(4) = N
N = Center + Forward
Servo(2) = N
N = Center - Forward
Servo(3) = N
Waitms Wait1
' top
Servo(1) = Center
Servo(4) = Center
N = Center + Forward
Servo(2) = N
N = Center - Forward
Servo(3) = N
Waitms Wait1
Servo(1) = Center
Servo(2) = Center
N = Center - Back
Servo(2) = N
N = Center + Back
Servo(3) = N
Waitms Wait1

Loop

 

15.12.2005г.


Ключевые слова:
Servo
Center
Waitms
Wait1
Portd
Const
Forward
Maximum
Byte
Minimum
servo
бумага
Бейсик
Программа
WALRUS (робот - морж)
Робот своими руками
робот


Вернуться в рубрику:

Роботы своими руками


Хотите видеть на нашем сайте больше статей? Кликните Поделиться в социальных сетях! Спасибо!

Смотрите также:

Обратите внимание полезная информация.

Робототехника для каждого. 2024г.