Какви роботи могат да бъдат сглобени от arduino. Как да направите робот на Arduino със собствените си ръце: домашен робот Arduino у дома

В тази статия ще изградим нашия робот от нулата. Какво получаваме, вижте снимката по-долу. Роботът ще шофира както самостоятелно, така и под контрола на смартфон. Ще разгледаме и изграждането на собствен мобилен робот от нулата.

3 дПринтер

Ако искам да построя робот, трябва да реша платформата, на която ще монтирам двигатели, платки, батерии. Разбира се, мога да си купя готова версия, но е по-интересно да направите платформата сами. Такава платформа определено ще отговори на вашите изисквания. Платформата може да бъде направена от орг. Стъкло, шперплат и ще го направя от пластмаса.

Можете да кажете, че е неудобно да направите платформа сами и ще ви трябват много инструменти, от централен перфоратор до мелница. И казвам, че имаме нужда от въображение и 3D принтер.

3D принтер? Вероятно всеки е запознат с обикновен офис принтер, който може да отпечата текста, от който се нуждаем, на А4. И така, 3D принтерът е принтер, който може да отпечата желаната част. Има различни 3D принтери. Имам принтер с FDM технология (отлагане на слой по слой). Какви други технологии за 3D печат са налични, можете да намерите в интернет.

Много 3D принтери работят на Arduino. Ако желаете, можете да изградите свой собствен 3D принтер. Основната идея на 3D принтера е, че можете да отпечатате абсолютно всяко нещо, но ние ще отпечатаме тяло за робот.

Първо, нека дефинираме описанието на платформата. Искам платформата да е с 2 колела и трябва да се побере Arduino, мощност, двигатели и някои сензори.

Сега трябва да нарисувате оформлението на платформата на хартия и да поставите необходимите компоненти върху нея. Например, така.

Когато оформлението е готово, ще трябва да направите 3D модел на платформата. Има много програми за това. Обикновено използвам. Няма да уча как се работи с компаса, но ако се интересувате, можете да погледнете в интернет или да попитате в коментарите да направите урок по компаса.

Това е платформата, която измислих.

След това трябва да конвертирате 3D модела в G-код, разбираем за 3D принтера. За това има специални програми - резци. Използвам програмата Repetier-Host със Sli3er slicer. Ето как изглежда частта, готова за отпечатване.

А ето и печатния модел.

Едва наскоро ни хрумна идея, а готовата част вече е пред нас. С помощта на 3D принтер можете да създавате уникални неща в единични екземпляри. 3D принтерът е страхотен. Съветвам всички!

Двигатели

Сега трябва да помислим как ще се движи нашият мобилен робот. Първото нещо, което идва на ум, са колелата. Така че нека го направим.

Ако някой си спомня, вече се опитахме да свържем мотора към Arduino. Който не помни, не знае или не е чел - вижте. Има значителни недостатъци при свързването на двигател с помощта на MOSFET - невъзможно е бързо да се промени скоростта и посоката на въртене. Време е да научите Arduino как да управлява моторите наистина!

За да направите това, можете да използвате чипа L293D. L293D ви позволява да управлявате два двигателя наведнъж, с ток от 600 mA на канал и пиков ток до 1000 mA, а ако комбинирате каналите, тогава до 1200 mA и 2000 mA пиков ток. Ще говоря за асоциацията по-долу.

Като за начало, както винаги, трябва да погледнете листа с данни, за да разберете къде и какво да свържете. Ако не знаете за микросхемите, тогава си струва да прочетете статията.

Да започваме. Нека да съберем проста схема с един двигател и да я управляваме. Обърнете внимание на монтажната схема.

Ако не знаете английски или просто не разбирате листа с данни, ето описание на връзката. Надявам се, че всеки знае номерацията на микросхемите или е научил от статия за микросхемите.

  • Пин 1 - Отговаря за скоростта на въртене на двигателя. Подобен е на пин 9. Приема стойности от 0 до 255, които могат лесно да бъдат организирани с помощта на ШИМ. Свързах EN към петия пин на Arduino, който поддържа PWM.
  • Щифтове 2 и 7 - Отговарят за посоката на движение на двигателя. Подобни са на щифтове 10 и 15. Прилагането на логически към един от тези изводи ще накара двигателя да се върти в една посока (в зависимост от връзката на двигателя), прилагането на логически един към другия ще накара двигателя да се върти в противоположна посока.
  • щифтове 3 и 6 - Трябва да свържете двигателя към тях. Полярността не е важна, само посоката на въртене ще зависи от връзката. Подобно - на щифтове 11 и 14.
  • Щифтове 4 и 5 са ​​смлени. Не мисля, че има нужда от обяснение. Подобни - 12 и 13.
  • Пин 8 - Мощност за двигателите. Трябва да се захранва в диапазона от 4,5 до 36 волта.
  • Пин 16 - към него се доставя логическа единица от Arduino. 5 волта, ако има нещо.

Глоба! Двигателят е свързан. Сега можете да кодирате.

#define FRW_BUT 7 //Бутон напред #define BCW_BUT 6 //Бутон за връщане /...посока на въртене (назад) #define SPD_POT A5 int xspeed = 0; //Променлива за определяне на скоростта на въртене на двигателя int frw_move = 0; //Променлива за команда "напред" int bcw_move = 0; //Променлива за командата "назад" void setup() ( //Дизайн извежда pinMode(SPD, OUTPUT); pinMode(FRW, OUTPUT); pinMode(BCW, OUTPUT); pinMode(SPD_POT, INPUT); pinMode(FRW_BUT, INPUT_PULLUP ); pinMode(BCW_BUT, INPUT_PULLUP); ) void loop() ( //Прочетете показанията от потенциометъра // и ги доведете до желания диапазон - от 0 до 255 //След това - го прехвърлете на щифта за контрол на скоростта xspeed = analogRead(SPD_POT); constrain(xspeed, 0, 1023); xspeed = map(xspeed, 0, 1023, 0, 255); //Определете бутона за напред, натиснете if(!digitalRead(FRW_BUT)) ( frw_move = 1; ) else ( frw_move = 0; ) //Определете натискането на бутона "назад" if(!digitalRead(BCW_BUT)) ( bcw_move = 1; ) else ( bcw_move = 0; ) //Извикайте функцията за изпращане на данни до L293D motor(); ) void motor() ( //Изпращане на данни към L293D analogWrite(SPD, xspeed); digitalWrite(FRW, frw_move); digitalWrite(BCW,bcw_move); )

Как работи? Работи просто. Когато натиснете левия бутон, колелото се върти в една посока, а когато натиснете десния бутон, то се върти в другата посока. Чрез завъртане на копчето на потенциометъра можете да регулирате скоростта на въртене на двигателя. Работата на нашия уред за тестване на двигателя е показана във видеото.

Z.Y. Да, знам, че качеството на видеото не е страхотно, но ще се опитам да намеря приличен фотоапарат и да уредя място за снимане възможно най-скоро.

Сега за свързването на L293 канали. Ако искате да свържете по-мощен двигател, можете да комбинирате каналите.

Първият начин е да свържете аналоговите изходи на микросхемата паралелно, което ще увеличи максималната сила на тока с два пъти. Минус - само един двигател може да бъде свързан към една микросхема.

Вторият начин е да запоявате друг L293 върху L293. Взимаме и запояваме щифт 1 към щифт 1, щифт 2 към щифт 2 и така нататък. Този метод също така дава увеличение на силата на тока два пъти, но за разлика от първия оставя възможността за управление на два двигателя наведнъж. Може би имате идея - трябва ли да запоя още няколко L293? За съжаление, последващото запояване на микросхеми няма да доведе до увеличаване на силата на тока с още 600 mA. Увеличението ще е малко.

„Ех, ще трябва да почистя 12-волтовия си мотор…“ Не се разстройвайте. За по-мощни двигатели е подходящ по-големият брат L293 - L298, но сега няма да го разглеждаме. Ще направим това малко по-късно.

Мотор щит

Съгласете се, че с такъв сноп проводници всичко изглежда не много добре. За да се отървете от него, можете да запоявате веригата с L293 на печатна схема или на печатна платка, но какво ще стане, ако не искате да запоявате или не знаете как? За това има готови решения под формата на щитове за Arduino, например. Ще говоря за един от тях - Motor Shield V1 от DK Electronics.

Ето всъщност снимка на щита.

Този щит има два L293D, което ви позволява да управлявате четири двигателя наведнъж. Има и два контакта за серводвигатели. Захранването се подава или към клемния блок, или, с инсталиран джъмпер, от захранването на Arduino. Джъмперът също ви позволява да вземете захранването за Arduino от щита. Има специална библиотека за работа с този щит. Можете да го изтеглите.

Към минусите на дъската. Почти всички цифрови изводи се използват за работа с щита, с изключение на 0, 1, 2, 13. Както знаем, щифтове 0 и 1 се използват от Arduino за фърмуер, така че е по-добре да не ги използвате.

Има и добра страна. Ако не свържете серво, например, щифтове 9 и 10 се освобождават и ако не използвате нито един от двигателите, тогава щифтове 3, 5, 6, 11 ще бъдат освободени, в зависимост от неизползвания двигател. И по-нататък. Все още разполагаме с шест аналогови изхода, които могат да се използват като цифрови, ако желаете.

Нека започнем да свързваме двигателите. За експеримента ще направим робот, който се движи напред, назад и също така се върти около собствената си ос. Като платформа взех собствената си разработка, описана по-горе. Можете да вземете всичко, което сърцето ви желае, основното е, че е подходящо по отношение на характеристиките.

ще ни трябва

  • Arduino UNO - Може да се използва всеки друг форм-фактор на Arduino UNO. Леонардо или Искра, например.
  • Motor Shield - Други версии на този щит ще работят.
  • Двигатели за 6V - Можете да вземете всякакви, които са подходящи за характеристиките на Motor Shield.
  • 42 мм колела – колела, подходящи за двигатели и платформа
  • Монтажни елементи на двигателя - Двигателите трябва да бъдат прикрепени към платформата. Вземете този, който подхожда на вашия.
  • Захранване - взех батерия и излязох около 5 волта, което не е достатъчно за захранване на двигателите и Arduino, така че свързах DC/DC преобразувател и вдигнах напрежението до 9V. Ако няма преобразувател, тогава можете да използвате обичайната корона, като я свържете към захранването на Arduino.

Време е да сглобим нашия робот.

Етап 1

Свързваме Arduino и Motor Shield.

Стъпка 2

Сглобяваме двигателите и ги закрепваме към платформата.

Стъпка 3

Събираме мощност чрез усилващ преобразувател.

За тези, които имат Crona. Не забравяйте джъмпера!

Стъпка 4

Закрепваме двигателите към моторния щит с Arduino.

Стъпка 5

Добавяме храна.

Стъпка 6 (По избор)

Прикрепете капака - за естетика.

Имаме готов робот. Сега е време да го програмирате. Нека разгледаме кода.

//Включете библиотеката за работа с Motor Shield #include //Определете левия двигател на клемния блок номер 2 AF_DCMotor l_motor(2); //Определете десния двигател към клемния блок номер 3 AF_DCMotor r_motor(3); //Променливи за определяне на скоростта //и времето на движение int spd = 50; inttime(1000); void setup() ( //Задайте началната скорост и изключете двигателите l_motor.setSpeed(spd); l_motor.run(RELEASE); r_motor.setSpeed(100); r_motor.run(RELEASE); ) void loop() ( // Каране напред l_motor.run(НАПРЕД); r_motor.run(НАПРЕД); l_motor.setSpeed(spd); r_motor.setSpeed(spd); забавяне(време); // Каране назад l_motor.run(BACKWARD); r_motor. run(НАЗАД ); l_motor.setSpeed(spd); r_motor.setSpeed(spd); забавяне(време); // Завъртете обратно на часовниковата стрелка l_motor.run(НАПРЕД); r_motor.run(НАЗАД); l_motor.setSpeed(spd); r_motor setSpeed(spd); delay(time); // Завъртане по посока на часовниковата стрелка r_motor.run(FORWARD); l_motor.run(BACKWARD); l_motor.setSpeed(spd); r_motor.setSpeed(spd); delay(time); )

Глоба! Време е за проверка. Ето едно видео от моя тест. Ами ти?

„Казахте ли нещо за дъските за роботика?“ - могат да кажат тези, които са прочели уводния урок на част 2 от курса. Да, има такива такси. Помислете за роботизираната платформа Стрела.

Мечта на роботиката. (Почти). Описах предимствата на дъската. Направо по въпроса.

На него е инсталиран по-големият брат L293 - L298. И щифтовете се показват в тройки, което е точно за свързване на много сензори.

Тази платка може да бъде свързана вместо Arduino UNO и Motor Shield. Освен това момчетата от Amperka написаха библиотека за работа със Arrow, което прави управлението на двигателите доста тривиална задача.

За тези, които не знаят, да ви кажа. Всяка нормална библиотека има примери как да се използва и библиотеката Arrow не е изключение. За да ги намерите, отидете в раздела Файл -> Примери -> Стрела. Там избираме примера StrelaMotors, където се изпълнява скица, подобна на скицата с помощта на Motor Shield. Между другото, има и примери за Motor Shield. При интерес разгледайте.

Какво още можете да правите със стрелката - вижте по-долу И преминаваме към безжична комуникация чрез Bluetooth.

Bluetooth

Робот, който се движи сам из стаята е, разбира се, добър, но бих искал да управлявам самия робот. За да направите това, трябва да организирате връзка между Arduino и управляващото устройство.

Като устройство за управление избрах смартфон. Ще организираме комуникацията чрез Bluetooth протокола, така че е време да се запознаем.

Това е модулът HC-06. Няма да навлизам в подробности, но ако се интересувате, нека продължим. Нашата цел е да управляваме робота от смартфон. Да започнем, може би.

Първо трябва да свържете HC-06 към Arduino. Ще се свържем с помощта на Software Serial. Тази библиотека ви позволява да емулирате серийния порт на щифтовете, от които се нуждаем. В името на експеримента, нека се опитаме да направим това на щифтове A0(RX) и A1(TX). За какво? Спомнете си какво казах за Motor Shield.

Свързваме се така:

  • Vcc - до 5V
  • GND към GND
  • RX към TX
  • TX към RX

Ще свържа HC-06 към робота, който изградихме по-горе. За да направим това, ще използваме трите ивици на моторния щит.

Роботът е готов. Остава да се програмира.

Преди да прочетете кода, трябва да знаете няколко неща. Моторите не са перфектни, както всичко останало на този свят. Дори два двигателя от една и съща партида, следващи един друг, ще се различават малко, което ще повлияе на разликата в броя на оборотите при едно и също напрежение. Ако двигателите са просто свързани към щита на двигателя и им се даде същата скорост и това е същото напрежение, тогава роботът няма да върви направо, а малко или много встрани. Това може да се види във видеото по-горе.

За да избегнем това, ще приложим коригиращи фактори. Лявото ми колело се върти много по-бързо от дясното, така че поставих коефициент 0,62, за да компенсирам. Стойността на коефициента се избира експериментално.

// Включете библиотеки за работа с Motor Shield и Software Serial #include #включи //Определяне на щифтове за емулация на SoftwareSerial mySerial(A0, A1); // RX, TX //Определете левия двигател към клема номер 2 AF_DCMotor l_motor(2); //Определете десния двигател към клемния блок номер 3 AF_DCMotor r_motor(3); //Променливи за определяне на скоростта //и регулиране на въртене float spd = 70.0; float corr_l = 0,62; float corr_r = 1; floatrot = 50,0; void setup() ( //Задайте начална скорост и изключете двигателите l_motor.setSpeed(spd); l_motor.run(RELEASE); r_motor.setSpeed(spd); r_motor.run(RELEASE); //Установете връзка с HC-06 mySerial .begin(9600); ) void loop() ( //Ако има данни, //извикайте контролната функция if (mySerial.available()) ( drive(); ) ) void drive() ( //Променлива за входящи данни char control = mySerial.read(); // Първо задайте скоростта, ако (((контрол - "0") >= 0) && ((контрол - "0")<= 9)) { spd = (control - "0") * 25.0; //сохраняем новое значение скорости } else if (control == "q") { spd = 255.0; } //Сравниваем команды, пришедшие со смартфона else if (control == "S") //Если пришла команда "S", стоим { l_motor.run(RELEASE); r_motor. run(RELEASE); } else if (control == "F") //Если пришла команда "F", едем вперед { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r); r_motor.run(FORWARD); l_motor.run(FORWARD); } else if (control == "B") //Если пришла команда "B", едем назад { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r); r_motor.run(BACKWARD); l_motor.run(BACKWARD); } else if (control == "I") //Если пришла команда "I", едем вперёд и направо { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r + rot); r_motor.run(FORWARD); l_motor.run(FORWARD); } else if (control == "J")//Если пришла команда "J", едем назад и направо { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r + rot); r_motor.run(BACKWARD); l_motor.run(BACKWARD); } else if (control == "G") //Если пришла команда "G", едем вперёд и налево { l_motor.setSpeed(spd * corr_l + rot); r_motor.setSpeed(spd * corr_r); r_motor.run(FORWARD); l_motor.run(FORWARD); } else if (control == "H") //Если пришла команда "H", едем назад и налево { l_motor.setSpeed(spd * corr_l + rot); r_motor.setSpeed(spd * corr_r); r_motor.run(BACKWARD); l_motor.run(BACKWARD); } else if (control == "R") //Если пришла команда "R", крутимся вправо { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r); r_motor.run(FORWARD); l_motor.run(BACKWARD); } else if (control = "L") //Если пришла команда "L", крутимся влево { l_motor.setSpeed(spd * corr_l); r_motor.setSpeed(spd * corr_r); l_motor.run(FORWARD); r_motor.run(BACKWARD); } }

Попитаха робота. Сега нека вземем смартфон.

RC контролер

Има много различни приложения за свързване на Arduino и смартфон чрез Bluetooth. При търсенето ключовите думи ще бъдат: Arduino, Bluetooth, RC.

Избрах приложение, наречено Bluetooth RC Controller. Той е идеален за нашата цел. Когато бутонът е натиснат, приложението изпраща стойност на char към HC-06, който от своя страна предава входящата стойност на Arduino. Стойността, изпратена при щракване върху бутона, се задава самостоятелно.

За да установите връзка с робота, трябва да щракнете върху зъбното колело и да изберете елемента „Настройки“ В „Настройки“ трябва да се уверите, че бутоните съответстват на тези изпратени знаци или да промените кода на Arduino.

След като зададете символите, можете да установите връзка с HC-06. Кликнете върху предавката и отидете на „Свързване с колата“ Отваря се прозорец със сдвоени устройства. В него избираме HC-06. Ако го няма, тогава го търсим с помощта на „Сканиране за устройства“. Ако устройството бъде намерено, но не иска да се сдвои, отидете на Bluetooth на вашия смартфон и сдвоете както обикновено. Паролата по подразбиране е 1234. След това отидете на „Сканиране за устройства“ и се свържете.

Когато връзката бъде установена, зелената светлина отгоре ще светне и HC-06 ще спре да мига. Можете да започнете да шофирате. Лентата отгоре е отговорна за скоростта на движение.

Да се ​​върнем към Стрелката. Друго предимство на Arrow е възможността за инсталиране на Bluetooth XBee формат, а хубавото е, че другите щифтове остават безплатни. И тъй като има готова библиотека за Arrow, която помага за намаляване на кода за управление на двигателите, много си струва да използвате Arrow за управление на робота чрез Bluetooth.

За да направите това, трябва да свържете XBee към Strela, да го флашнете със скицата от примерите, наречени „ArduinoBluetoothRCCarOnStrela“ и да се свържете с XBee чрез RC контролера.

Съвети

Моят робот е готов и дори кара по команда от смартфон. Но не всичко може да върви гладко. Ще говоря за някои проблеми и техните решения, както и ще дам няколко съвета на начинаещи роботици.

Колелата се въртят в грешна посока- този проблем лесно се елиминира чрез пренареждане на проводниците в клемните блокове или програмно.

Bluetooth модулът не работи- трябва да проверите наличието на горящ червен светодиод на модула. Ако не свети, проверете дали Bluetooth модулът е свързан правилно. Ако светодиодът свети, но връзката е установена, трябва да се уверите, че RX на модула е свързан към TX на платката и обратно, както и да опитате метода за сдвояване на модула с Arduino чрез стандарта Bluetooth интерфейс.

Роботът не кара направо- Описах този проблем малко по-нагоре, когато говорих за Bluetooth и Motor Shield.

По време на шофиране роботът внезапно спира и губи връзка сHC-06- Има проблем със захранването. Знаем, че Arduino се нуждае от поне 7V за стабилна работа, а също така знаем, че двигателите се хранят много добре. Ако донесете сондите на мултиметъра до клемите за захранване на напрежението и измерите напрежението при изключени двигатели и след това ги включите, можете да видите, че напрежението на мултиметъра ще спадне. Освен това напрежението може да падне по различни начини.

Ако е свързано захранване, което не може да осигури достатъчно ток за двигателите, тогава напрежението може да падне много, от 9 до 5 волта, например, и 5V вече няма да са достатъчни за Arduino и той ще се рестартира. Решението е да свържете по-мощно захранване. Как да изчислим, ще кажа по-долу.

Ако свържете по-мощен източник на захранване, тогава спадът на напрежението може да бъде само за няколко милисекунди, но може да са достатъчни за рестартиране на контролера. Решението е да инсталирате кондензатор от най-малко 1000 uF успоредно със захранващите проводници, като капацитетът може да се определи експериментално. Сложих кондензатора на 3300 uF и на 16V. Не забравяйте да погледнете максималното напрежение на кондензатора.

Когато захранването е достатъчно мощно, спадът на напрежението е не повече от 0,2V.

Няколко съвета за начинаещи роботика

Започвайки оформлението на робота, първото нещо, което трябва да направите, е да се погрижите за изчисляването на мощността на захранващия блок и избора на подходящия източник на захранване. Ще бъде жалко, ако 4 батерии AAA не захранват вашите 4 6V мотора и няма място за повече захранване.

За да изчислим мощността, търсим характеристиките на двигатели, платки, сензори. От курса по физика знаем, че мощността може да се изчисли по формулата P = IU, където I е силата на тока, U е напрежението. Използвайки тази формула и характеристики, е лесно да се изчисли консумацията на енергия на готовото устройство и знаейки консумацията на енергия и работното напрежение на захранването, можете да разберете оптималната сила на тока, необходима за работата на устройството, като знаете тока сила, можете да определите необходимия капацитет на батерията и времето за работа на устройството от избраната батерия.

Както казах, винаги трябва да си поставяте конкретна цел, при достигане на която проектът може да се счита за завършен. Има нюанси в тази мисъл. Ако проектът е достатъчно голям, тогава достигането до целта не е толкова лесно, особено при писане на код. След като написах голям код, си помислих - „Сега ще напиша всичко и ще го проверя! ' при опит да компилира кода, той не се компилира веднага, тъй като имаше няколко грешки. Премахнах грешките, но само кодът не работи както исках. Трябваше да пренапиша всичко почти от нулата, постепенно добавяйки код и проверявайки получения код за работоспособност. Затова ви съветвам да направите същото.

Ако имате цел да направите "парола" от три знака, тогава не трябва да програмирате и трите наведнъж. По-добре е да направите парола от един знак, да я проверете, след това от два и след проверка - от три. Помага ми.

Роботът е създаден чрез проба и грешка. Няма да е възможно да се програмира веднъж, така че действието да се извърши перфектно. Същите коефициенти за настройка са на колелата, така че не трябва да се отказвате, ако нещо не се получи, а ако изобщо не се получи, тогава можете да се обърнете към мили хора във форумите или да ми пишете, ние определено ще помогне!

Заключение

Роботиката е страхотна! Скоро, мисля, роботите ще вземат и дори вече са се появили в живота на хората. Направихме най-простия робот-автомобил, управляван от смартфон, по-късно ще се занимаваме с по-сериозни проекти, но засега - до скоро!

Последната част на статията е за малък робот, който сглобяваме на шаси – капак от пластмасов контейнер за храна. Мозъкът на нашия робот е платката Arduino UNO, платката Driver Motor Shield управлява моторите и серво задвижването, сензорът за препятствия - Ултразвуков сонар - очи като Wally (от анимационния филм) - "HC-SR04 Ultrasonic Sensor". , . Как да създадете робот на Arduino?

9. Свързване на акумулатора и двигателите

Когато свързвате батерията, трябва да сте абсолютно сигурни, че полярността е правилна, както се казва, измервайте 7 пъти, включете веднъж. Опитайте се да следвате това правило - червеният проводник винаги е към + захранване, черният проводник е заземен, това е минус, това е GND. Производителите се опитват да спазват същите правила. Следователно свързваме проводниците, идващи от отделението за батерията, към блока + M и GND, на таблото за управление на двигателя. Свързваме проводниците от задвижващите двигатели към блоковете M1, M2 на таблото за управление на двигателя. Лявата страна, по посока на движение, е свързана към блока M1, дясната страна към блока M2. Все още не трябва да се притеснявате за полярността на двигателите, тя може да бъде променена, ако нещо се обърка по време на теста.

10. Проверете полярността и правилното свързване на модулите

Много важен и решаващ момент при сглобяването на микроробот е да се провери правилната инсталация, връзки, модули според блоковата схема, да се разгледат маркировките на платките, да се провери с тестер, полярността на захранването, кой има тестер .

11. Стъпка за програмиране на Arduino

Програмата се качва в микроконтролера Arduino от компютър, като се използва USB кабел и специална програма - средата за програмиране и редактиране на скици (програми) - Arduino IDE. Можете да получите програмата от уебсайта arduino.cc, раздел Изтегляне, където винаги можете да изтеглите най-новата, най-новата версия на програмата. След като средата за програмиране бъде инсталирана, остава само да изберете от менюто на програмата на драйвера за коя платка искате да използвате - в нашия случай Arduino UNO и COM порта, през който Arduino е свързан чрез USB емулация. Има много всякакви ръководства по тази тема, така че пропускаме този етап (за всеки случай - меню Инструменти > Сериен порт).

Програмата за микроробота е достъпна от нашия уебсайт, но само след регистрация, шега Mini Robot на Arduino. За да работи програмата, са необходими допълнителни библиотеки - AFMotor.h, Sevo.h, NewPing.h, всички те са в архива, трябва да разопаковате архива в папката на инсталираната програма Arduino IDE. За мен това е директорията c: Program Files (x86) Arduino, библиотеките трябва да бъдат поставени в папката c: Program Files (x86) Arduino libraries. След това отидете в директорията c:Program Files (x86)ArduinolibrariesAPC_4_ROBOT и щракнете двукратно върху APC_4_ROBOT.ino това е самата скица, след което средата за програмиране ще стартира. Свързваме голата платка Arduino Uno (това означава без свързани модули) чрез USB кабела към компютъра, натискаме бутона със стрелката вдясно, програмата ще започне да се качва в контролера. Целият процес отнема няколко секунди и ако всичко е свързано правилно, тогава не трябва да светят червени надписи, а индикаторът в долния десен ъгъл ще завърши движението си на 100%. Програмата за Arduino е инсталирана в контролера Atmega328.

12. Стартиране на робота

Мини робот на Arduino - готов за движение. Робот Уоли

Възможно е да се извърши първото, но пробно стартиране на нашия робот. Нашият робот не вървеше правилно, едното колело се въртеше правилно, а другото в обратната посока. Трябваше да сменя полярността на проводниците на двигателя на блока M2. Но тогава нашият малък робот се справи с чест с всички ъгли и препятствия на стаята.

Посвещавам тази статия на всички начинаещи, които решат да научат Arduino. По-нататъшното обучение може да продължи от първия урок - мигане на светодиода. Материалът с робота е много интересен и за да ви заинтригувам, реших да започна с това как точно да изградя робот, който обикаля препятствия. Останалото ще бъде много по-лесно и ще върви като по часовник. Този робот наистина работи. Успех на всички!

P.S. Това беше доста безплатен превод на статия, намерена някога в огромните простори на Интернет, по-скоро, разбира се, гав, защото всичко беше направено по нов начин, чертежите бяха финализирани, нямаше препратки към източника , тъй като документът беше документ на Word.

Скъпи наши читатели, отваряме поредица от статии за създаване на робот на базата на Arduino. Предполага се, че читателят е начинаещ и има само основни познания по темата. Ще се опитаме да изложим всичко възможно най-подробно и разбираемо.

И така, въведение в проблема:

Нека започнем с концепцията: искаме робот, който може да се движи сам из стаята, като същевременно избягва всички препятствия, които среща. Задачата беше поставена.

Сега нека да разберем от какво се нуждаем:

  1. Платформа (кейс). Тук има опции: направете всичко сами, купете части и ги сглобете или купете готови. Изберете това, което харесвате

Комплектът обикновено идва с платформа и един двигател за две задвижващи колела (катерпилър) и отделение за батерии. Има опции за задвижване на всички колела - на 4-колесен мотор. За начинаещи препоръчваме да вземат платформи от танков тип

Две задвижващи колела и трета опора.

  1. След това се нуждаем от далекомер. Сонар (известен още като далекомер, известен още като ултразвуков модул) Като далекомер, първоначално изборът беше между ултразвуков и инфрачервен. Тъй като характеристиките на ултразвука са много по-добри (максималният обхват е около 4-5 метра срещу 30-60 см), а цената е приблизително същата, изборът падна върху Ultrasonic. Най-разпространеният модел е HC-SR04.

  1. Машинист.

Как да бъде? Първото нещо, което идва на ум е да поставите транзистор на изхода на микроконтролера и да захраните двигателите от него. Това със сигурност е добре, но няма да работи, ако искаме да стартираме двигателя в другата посока ... Но H ще свърши добре работата - мост, който е малко по-сложна схема от чифт транзистори. Но в случая ги има в изобилие под формата на готови интегрални схеми, така че смятам, че няма нужда да преоткриваме колелото - ще си купим готов. Освен това цената е изгодна – 2-3 долара... Да продължим. За тези цели ще закупим чип L293D или още по-добре, моторен щит, базиран на него.

Щит на двигателя на чипа L298N

  1. Генериране на звук - Piezo Buzzer

Най-простият вариант за генериране на звук е използването на пиезо емитер.

Пиезокерамичните излъчватели (пиезоелектрични излъчватели) са електроакустични устройства за възпроизвеждане на звук, които използват пиезоелектричния ефект. (ефектът от възникването на диелектрична поляризация под действието на механични напрежения (директен пиезоелектричен ефект). Съществува и обратен пиезоелектричен ефект - възникване на механични деформации под въздействието на електрическо поле.

Директен пиезо ефект: в пиезо запалките, за получаване на високо напрежение на искровата междина;

Обратен пиезоелектричен ефект: в пиезоелектрични излъчватели (ефективни при високи честоти и имат малки размери);)

Пиезо излъчвателите намират широко приложение в различни електронни устройства - будилници, телефони, електронни играчки, домакински уреди. Пиезокерамичният емитер се състои от метална пластина, върху която е отложен слой от пиезоелектрична керамика, имаща проводимо покритие от външната страна. Плочата и покритието са два контакта. Пиезо зумерът може да се използва и като пиезоелектричен микрофон или сензор.

Това е всичко, което ни трябва за първи път. Като начало ще разгледаме под формата на отделни уроци как да сглобим и накараме тези части да работят отделно.

Урок 2

Урок 3. Arduino и моторен щит на базата на L298N

Урок 4

Урок 5

Здравейте. Тази статия е кратка история за това как направиробот техен ръце. Защо история, ще попитате? Всичко се дължи на факта, че за производството на такива занаятинеобходимо е да се използва значително количество знания, което е много трудно да се представи в една статия. Ще преминем през процеса на изграждане, ще надникнем в кода и в крайна сметка ще оживим създаването на Силиконовата долина. Съветвам ви да гледате видеото, за да имате представа какво трябва да се случи в крайна сметка.

Преди да продължите, моля, обърнете внимание на следното, което е в производството занаятиизползвал лазерен нож. Можете да откажете лазерен нож, ако имате достатъчно опит в работата с ръцете си. Точността е ключът към успешното завършване на проекта!

Стъпка 1: Как работи?

Роботът има 4 крака, с 3 сервопривода на всеки от тях, които му позволяват да движи крайниците си в 3 степени на свобода. Движи се с "пълзяща походка". Нека да е бавно, но едно от най-плавните.

Първо трябва да научите робота да се движи напред, назад, наляво и надясно, след това да добавите ултразвуков сензор, който ще помогне за откриване на препятствия / препятствия, а след това Bluetooth модул, благодарение на който управлението на робота ще достигне ново ниво.

Стъпка 2: Необходими части

скелетизработен от плексиглас с дебелина 2 мм.

Електронната част на домашния продукт ще се състои от:

  • 12 сервопривода;
  • arduino nano (може да бъде заменен с всяка друга arduino платка);

  • Щит за серво управление;
  • захранване (в проекта е използван захранващ блок 5V 4A);

  • ултразвуков сензор;
  • hc 05 bluetooth модул;

За да направите щит, ще ви трябва:

  • платка (за предпочитане с общи линии (шини) на захранване и заземяване);
  • междуплаткови щифтови съединители - 30 бр.;
  • гнезда на платка - 36 бр.;

  • проводници.

Инструменти:

  • Лазерен нож (или сръчни ръце);
  • Супер лепило;
  • Горещо лепило.

Стъпка 3: Скелет

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

След това по всеки наличен начин изрязахме 30 части от бъдещия робот.

Стъпка 4: Сглобяване

След изрязване отстранете защитното хартиено покритие от плексигласа.

След това преминете към сглобяването на краката. Крепежни елементи, вградени в части от скелета. Всичко, което остава да се направи, е да се сглобят парчетата. Връзката е доста стегната, но за по-голяма надеждност можете да нанесете капка суперлепило върху крепежните елементи.

След това трябва да модифицирате сервоприводите (залепете винт срещу валовете на серво).

С това усъвършенстване ще направим робота по-стабилен. Усъвършенстването трябва да се извърши само за 8 сервопривода, останалите 4 ще бъдат прикрепени директно към тялото.

Прикрепяме краката към свързващия елемент (извита част), а той от своя страна към сервото на тялото.

Стъпка 5: Изработване на щита

Изработката на дъската е доста проста, ако следвате снимките, представени в стъпката.

Стъпка 6: Електроника

Фиксирайте серво щифтовете на arduino дъската. Щифтовете трябва да бъдат свързани в правилната последователност, в противен случай нищо няма да работи!

Стъпка 7: Програмиране

Време е да съживим Франкенщайн. Първо, заредете програмата legs_init и се уверете, че роботът е в позицията, показана на снимката. След това заредете quattro_test, за да видите дали роботът реагира на основни движения като напред, назад, наляво и надясно.

ВАЖНО: Трябва да добавите допълнителна библиотека към arduino IDE. Връзката към библиотеката е дадена по-долу:

Роботът трябва да направи 5 стъпки напред, 5 стъпки назад, да завие наляво на 90 градуса, да завие надясно на 90 градуса. Ако Франкенщайн прави всичко правилно, ние се движим в правилната посока.

П. С: монтирайте робота на чашата като стойка, така че всеки път да не го поставя в първоначалната точка. След като тестовете покажат нормалната работа на робота, можем да продължим тестването, като го поставим на земята/пода.

Стъпка 8: Обратна кинематика

Обратната кинематика е това, което всъщност управлява робота (ако не се интересувате от математическата страна на този проект и бързате да завършите проекта, можете да пропуснете тази стъпка, но знаейки какво задвижва робота, винаги ще бъде полезно).

С прости думи, обратната кинематика или накратко IK е „частта“ от тригонометричните уравнения, които определят позицията на острия край на крака, ъгъла на всяко серво и т.н., които в крайна сметка определят няколко предварителни настройки. Например дължината на всяка стъпка на робота или височината, на която ще се намира тялото по време на движение / почивка. Използвайки тези предварително дефинирани параметри, системата ще извлече количеството, с което всяко серво трябва да бъде преместено, за да управлява робота с дадени команди.

Те започват да изучават arduino, като създават прости роботи. Днес ще говоря за най-простия робот на arduino uno, който като куче ще следва ръката ви или всеки друг обект, който отразява инфрачервената светлина. Освен това този робот ще забавлява децата. Моят 3-годишен племенник с желание си играеше с робота :)

Ще започна с изброяване на частите, които ще са необходими при изграждането - Arduino UNO;

Инфрачервени далекомери;

- 3-волтови двигатели със скоростни кутии и колела;

- конектори за 3А батерии;

-батерия (ако няма достатъчно батерии);

- Реле за управление на двигатели;

Е, и други материали, които ще са необходими в процеса на създаване.
Първо правим основата. Реших да го направя от дърво. Изрязах дървена дъска по такъв начин, че моторите да седят перфектно в процепите


След това затягам двигателите с дървена дъска, завинтвайки тази шина

По-нататък в кутията поставих arduino, реле, мозъчна платка, далекомери и под основата на шасито въртящо се

Сега свързваме всичко според схемата

В края зареждаме следната скица в arduino:

Const int R = 13; // щифтове, към които са свързани IR далекомери const int L = 12; int двигател L = 9; // щифтове, към които е свързано релето int motorR = 11; int buttonState = 0; void setup() ( pinMode(R,INPUT); pinMode(L,INPUT); pinMode(motorR,OUTPUT); pinMode(motorL,OUTPUT); ) void loop() (( buttonState = digitalRead(L); if (buttonState) == HIGH)( digitalWrite(motorR,HIGH); ) else ( digitalWrite(motorR,LOW); ) ) (( buttonState = digitalRead(R); if (buttonState == HIGH)( digitalWrite(motorL,HIGH); ) else ( digitalWrite(motorL, LOW); ) ) ) )

Принципът на действие е много прост. Левият далекомер е отговорен за дясното колело, а десният за лявото

За да стане по-ясно, можете да гледате видео, което показва процеса на създаване и действието на робота

Този робот е много прост и всеки може да го направи. Това ще ви помогне да разберете как работят модули като релета и IR далекомери и как най-добре да ги използвате.

Надявам се, че ви е харесал този занаят, не забравяйте, че занаятите са готини!