Главная > Роботы

Проекты балансирующих лего-роботов

(Сенокосова Ирина | 2012-05-03)

Балансирующий на двух колесах робот - довольно сложная в реализации конструкция - таково распространенное мнение. 


 

Балансирующий лего-робот Стива Хассенплуга LegWay

Балансирующий на двух колесах робот - довольно сложная в реализации конструкция - таково распространенное мнение. Отчасти это так. Для изготовления такого робота требуются акселерометры, гироскопы и сложное программное обепечение. Но простого балансирующего робота можно построить даже из деталей ЛЕГО с применением достаточно простых датчиков и набора Lego Mindstorms. Именно такого лего-робота построил в 2003 году Стив Хассенплуг (Steve Hassenplug). 

Стив назвал своего лего-робота LegWay и использовал два оптических датчика расстояния EOPD (ElectroOptical Proximity Detector) от HiTechnic

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



Расположение датчиков на роботе Джеймса Мафиуса 



Более стабильную конструкцию предложил Джеймс Мафиус (James Matthews) в ноябре 2004 года. Он использовал стандартные ЛЕГО-датчики, реагирующие на отраженный свет, расположив их спереди и сзади робота. Такая конструкция лего-робота позволяет сделать балансирование более устойчивым, но для того, чтобы бегать по линии, лучше использовать дополнительные сенсоры. 

Код, управляющий роботом, очень простой. Джеймс Мафиус написал его на NQC, используя программную средуBricxCC. Возможно, при использовании этого кода вам понадобится индивидуальная калибровка датчиков. 

#define SENSOR_3_THRESHOLD 49

#define SENSOR_1_THRESHOLD 45

 

task main ()

{

  // Setup everything

  SetSensor(SENSOR_1, SENSOR_LIGHT);

  SetSensor(SENSOR_2, SENSOR_TOUCH);

  SetSensor(SENSOR_3, SENSOR_LIGHT);

  SetPower(OUT_A+OUT_C, OUT_FULL);

 

  // Now balance!

  until(false) {

    if (SENSOR_1 >= SENSOR_1_THRESHOLD) {

      OnFwd(OUT_A);

      OnRev(OUT_C);

      Wait(1);

    }

    if (SENSOR_3 >= SENSOR_3_THRESHOLD) {

      OnRev(OUT_A);

      OnFwd(OUT_C);

    }

  }

}



Балансирующего лего-робота можно построить и из набора Mindstorms NXT. Филипп Харбейн (Philippe Hurbain) предложил конструкцию робота с использованием всего одного датчика. Своего робота Филипп назвал NXTway

 



Для написания программы использовались NBC и среда программирования BricxCC. Код программы можно скачатьздесь, а готовую откомпилированную программу здесь. Для загрузки откомпилированной программы в NXT используйте кнопку загрузки на панели в стандартной среде программирования LEGO MINDSTORMS NXT. 

 




В феврале 2007 года Рё Ватанаби (Ryo Watanabe) из Waseda University, вдохновленный конструкциями лего-роботов Хассенплуга и Харбейна, создал свою продвинутую версию балансирующего робота с использованиемгиро-сенсора. Робот был назван NXTway-G


Метки: Лего, Роботы, Программирование


Возможно, вам будет интересно:

Марсоход «Spirit»

(Афанасьев Г. Николаев В.; 2015-03-20)

«Spirit» (англ. дух), или «MER-A»  — первый  марсоход космического агентства НАСА из двух запущенных США в рамках проекта Mars Exploration Rover. Старт миссии состоялся 10 июня2003 года[6]. Спускаемый аппарат с марсоходом совершил мягкую посадку на Марс 4 января 2004 года за три недели до прибытия его близнеца «Оппортьюнити» (MER-B), который был успешно доставлен в другой район Марса, смещенный по долготе на примерно 180 градусов. В конце 2009 года марсоход застрял в песчаной дюне. Последняя связь с Землей была 22 марта 2010 года.

Луноходы

(Сураев Дмитрий; 2015-03-31)

Луноход-1 — первый лунный самоходный аппарат. Он был доставлен на поверхность Луны 17 ноября 1970 года, советской межпланетной станцией Луна-17 и проработал на её поверхности до 4 октября 1971 года. Предназначался для изучения особенностей лунной поверхности, радиоактивного и рентгеновского космического излучения на Луне, химического состава и свойств грунта.