Искуство стварања првог робота на Ардуину (робот "ловац")

Здраво

У овом чланку желим да опишем процес склапања мог првог робота користећи Ардуино. Материјал ће бити користан другим почетницима попут мене који желе да направе некакву „колица која се самопокрећу“. Чланак је опис фаза рада са мојим додацима на различитим нијансама. Веза до коначног кода (највероватније не најидеалнијег) је дата на крају чланка.

Искуство стварања првог робота на Ардуину (робот "ловац")

Кад год је било могуће, укључио сам свог сина (8 година) у учешће. Шта је тачно радило са њим, а шта није - посветио сам део чланка овоме, можда ће некоме бити од користи.

Општи опис робота

Прво, неколико речи о самом роботу (идеју). Нисам баш желео да саставим нешто стандардно на почетку. Истовремено, сет компоненти је био сасвим стандардан - шасија, мотори, ултразвучни сензор, линијски сензор, ЛЕД диоде, високотонац. У почетку је из овог „сета за супу“ измишљен робот који чува своју територију. Вози ка прекршиоцу који је прешао линију круга, а затим се враћа у центар. Међутим, ова верзија је захтевала нацртану линију, плус додатну математику да остане у кругу све време.

Стога сам, након мало размишљања, донекле променио идеју и одлучио да направим робота „ловца“. У старту се окреће око своје осе, бирајући оближњу мету (особу). Ако се открије „плен“, „ловац“ укључује трепћуће светла и сирену и почиње да се креће ка њему. Када се особа удаљи/побегне, робот бира нову мету и следи је, итд. Таквом роботу није потребан ограничен круг и може радити на отвореним површинама.

Као што видите, ово личи на игру сустизања. Иако се на крају показало да робот није довољно брз, он искрено комуницира са људима око себе. Деца га посебно воле (понекад, међутим, изгледа да ће га згазити, срце им поскочи...). Мислим да је ово добро решење за популаризацију техничког дизајна.

Структура робота

Дакле, одлучили смо се за идеју, идемо даље распоред. Листа елемената се формира од онога што робот треба да може да уради. Овде је све сасвим очигледно, па погледајмо одмах нумерацију:

Искуство стварања првог робота на Ардуину (робот "ловац")

„Мозак“ робота је ардуино уно плоча (1); био у комплету наручен из Кине. За наше потребе, то је сасвим довољно (фокусирамо се на број употребљених пинова). Из истог комплета узели смо готову шасију (2), на коју су причвршћена два погонска точка (3) и један задњи (слободно ротирајући) (4). Комплет је такође укључивао готов одељак за батерије (5). Испред робота се налази ултразвучни сензор (ХЦ-СР04) (6), позади моторни драјвер (Л298Н) (7), у средини је ЛЕД трептач (8), а мало за са стране се налази високотонац (9).

У фази изгледа посматрамо:

- тако да све стане
- бити уравнотежен
- да буду рационално постављени

Наше кинеске колеге су то већ делимично урадиле за нас. Дакле, одељак за тешку батерију је постављен у центар, а погонски точкови се налазе приближно испод њега. Све остале плоче су лагане и могу се поставити на периферију.

Нијансе:

  1. Шасија из комплета има доста фабричких рупа, али још увек нисам схватио која је логика у њима. Мотори и батерија су без проблема учвршћени, а затим је почело „подешавање“ бушењем нових рупа за причвршћивање ове или оне плоче.
  2. Месингани регали и други причвршћивачи из складишта били су од велике помоћи (понекад смо морали да их извадимо).
  3. Провукао сам сабирнице са сваке плоче кроз стезаљке (опет сам их нашао у складишту). Веома згодно, све жице лепо леже и не висе.

Појединачни блокови

Сада ћу проћи блокова и рећи ћу вам лично о сваком од њих.

за батерију

Јасно је да робот мора имати добар извор енергије. Опције се могу разликовати, изабрао сам опцију са 4 АА батерије. Укупно дају приближно 5 В, а овај напон се може директно применити на 5В пин ардуино плоче (заобилазећи стабилизатор).

Наравно, био сам опрезан, али ово решење је прилично изводљиво.

Пошто је струја потребна свуда, ради практичности направио сам два конектора у центру робота: један "распоређује" земљу (десно), а други - 5 В (лево).

Искуство стварања првог робота на Ардуину (робот "ловац")

Мотори и возач

Прво, о монтажи мотора. Носач је фабрички направљен, али са великим толеранцијама. Другим речима, мотори могу да се клате пар милиметара лево и десно. За наш задатак ово није критично, али на неким местима може имати ефекта (робот ће почети да се помера у страну). За сваки случај, поставио сам моторе стриктно паралелно и поправио их лепком.

Искуство стварања првог робота на Ардуину (робот "ловац")

За контролу мотора, као што сам горе написао, користи се драјвер Л298Н. Према документацији има по три клина за сваки мотор: један за промену брзине и пар пинова за смер ротације. Овде постоји једна важна тачка. Испоставља се да ако је напон напајања 5 В, онда контрола брзине једноставно не ради! Односно, или се уопште не окреће, или се окреће на максимум. Ово је карактеристика због које сам „убио“ неколико вечери. На крају сам негде на једном од форума нашао помињање.

Уопштено говорећи, била ми је потребна мала брзина ротације приликом окретања робота - тако да је имао времена да скенира простор. Али, пошто ништа није произашло из ове идеје, морао сам то да урадим другачије: мало окретање - стани - скретање - стани, итд. Опет, не тако елегантно, али изводљиво.

Овде ћу такође додати да након сваке потјере робот бира насумични правац за ново скретање (казаљке на сату или супротно од казаљке на сату).

Ултразвучни сензор

Искуство стварања првог робота на Ардуину (робот "ловац")

Још један комад хардвера где смо морали да тражимо компромисно решење. Ултразвучни сензор производи нестабилне бројеве на стварним препрекама. У ствари, ово се очекивало. Идеално, ради негде на такмичењима где су глатке, равне и окомите површине, али ако нечије ноге „бљесну” испред њега, потребно је увести додатну обраду.

Као такву обраду сам поставио средњи филтер за три тачке. На основу тестова на стварној деци (ниједно дете није повређено током тестирања!), показало се да је сасвим довољно да се подаци нормализују. Овде је физика једноставна: имамо сигнале који се рефлектују од неопходно објеката (дајући потребну удаљеност) и рефлектоване од удаљенијих, на пример, зидова. Ово последње су случајне емисије у мерењима облика 45, 46, 230, КСНУМКС, КСНУМКС, КСНУМКС, КСНУМКС, 310, 46... То је оно што средњи филтер пресече.

После све обраде добијамо растојање до најближег објекта. Ако је мањи од одређене граничне вредности, онда укључујемо аларм и возимо право ка „уљезу“.

Блиц и сирена

Можда најједноставнији елементи од свега наведеног. Могу се видети на фотографијама изнад. Овде нема шта да се пише о хардверу, па сада пређимо на код.

Контролни програм

Не видим смисао у детаљном описивању кода, коме треба - линк је на крају чланка, тамо је све прилично читљиво. Али било би лепо објаснити општу структуру.

Прва ствар коју смо морали да схватимо је да је робот уређај у реалном времену. Тачније, да се сетим, јер и раније и сада и даље радим у електроници. Дакле, одмах заборављамо на изазов кашњење (), коју воле да користе у примерима скица и која једноставно „замрзава“ програм на одређени временски период. Уместо тога, као што саветују искусни људи, уводимо тајмере за сваки блок. Прошао је потребан интервал - акција је извршена (повећана осветљеност ЛЕД-а, укључен мотор и тако даље).

Тајмери ​​могу бити међусобно повезани. На пример, високотонац ради синхроно са бљескачем. Ово мало поједностављује програм.

Наравно, све делимо на засебне функције (трепћуће светла, звук, окретање, кретање напред итд.). Ако то не урадите, нећете моћи да схватите шта долази одакле и одакле.

Нијансе педагогије

Све што је горе описано радио сам у слободно време увече. На лежеран начин, провео сам око три недеље на роботу. Ово је могло да се заврши овде, али сам обећао и да ћу вам рећи о раду са дететом. Шта се може учинити у овом узрасту?

Радите према упутствима

Прво смо проверавали сваки детаљ посебно – ЛЕД диоде, високотонце, моторе, сензоре итд. Постоји велики број готових примера – неки у развојном окружењу, други се могу наћи на интернету. Ово ме свакако чини срећним. Узимамо код, повезујемо део, уверавамо се да ради, а затим почињемо да га мењамо како би одговарао нашем задатку. Дете врши везе према шеми и под неким мојим надзором. Ово је добро. Такође морате бити у стању да радите стриктно према упутствима.

Редослед рада („од посебног ка општем“)

Ово је тешка тачка. Морате научити да се велики пројекат („направи робота“) састоји од малих задатака („повезивање сензора“, „повезивање мотора“...), а они се, пак, састоје од још мањих корака („пронађи програм,” „повежи плочу.” „, „преузми фирмвер”...). Обављањем мање-више разумљивих задатака нижег нивоа „затварамо” задатке средњег нивоа и из њих се формира укупан резултат. Објаснио сам, али мислим да до реализације неће доћи ускоро. Негде, вероватно, до адолесценције.

Инсталација

Бушење, навоји, шрафови, навртке, лемљење и мирис колофонија – где бисмо били без тога? Дете је добило основну вештину „Рад са лемилом“ - успео је да залеми неколико веза (мало сам помогао, нећу то сакрити). Не заборавите на безбедносно објашњење.

Рад на рачунару

Написао сам програм за робота, али сам ипак успео да постигнем неке повољне резултате.

Прво: енглески. Они су то тек почели у школи, па смо се мучили да схватимо шта су писхалка, мигалка, јаркост и друге транслитерације. Бар смо ово разумели. Намерно нисам користио матерње енглеске речи, пошто још нисмо достигли овај ниво.

Друго: ефикасан рад. Учили смо комбинације интервентних тастера и како брзо извести стандардне операције. Периодично, када смо писали програм, син и ја смо мењали места, а ја сам говорио шта треба да се уради (замена, претрага итд.). Морао сам да понављам изнова и изнова: „двоструки клик на избор“, „држи Схифт“, „држи Цтрл“ и тако даље. Процес учења овде није брз, али мислим да ће се вештине постепено депоновати „у подкортексу“.

Скривени текстМожете рећи да је горе наведено скоро очигледно. Али, искрено, ове јесени сам имао прилику да предајем информатику у 9. разреду у једној школи. То је страшно. Ученици не знају такве основне ствари као што су Цтрл + З, Цтрл + Ц и Цтрл + В, бирање текста држећи Схифт или двоструки клик на реч и тако даље. И то упркос чињеници да су били на трећој години студија информатике... Извуците сами закључак.

Треће: куцање додиром. Детету сам поверио коментаре у коду да укуца (нека вежба). Одмах смо правилно поставили руке тако да су наши прсти постепено запамтили локацију кључева.

Као што видите, тек почињемо. Наставићемо да усавршавамо своје вештине и знања, биће корисни у животу.

Иначе, о будућности...

Даљи развој

Робот је направљен, вози, трепће и пишти. Шта сад? Инспирисани оним што смо постигли, планирамо да то додатно усавршавамо. Постоји идеја да се направи даљински управљач - као лунарни ровер. Било би занимљиво, седећи за даљинским управљачем, контролисати кретање робота који се вози на сасвим другом месту. Али то ће бити друга прича...

И на крају, у ствари, јунаци овог чланка (видео кликом):

Искуство стварања првог робота на Ардуину (робот "ловац")

Спасибо за внимание!

Веза кода

Извор: ввв.хабр.цом

Додај коментар