Добър ден на всички! Тази статия ще бъде посветена на любителите на електрониката, роботиката, както и на хората с нестандартен поглед към околните неща!
Затова сега ще се опитам да опиша процеса на създаване, сглобяване възможно най-ясно роботът с електронен плънка, а именно, на Arduino! Да вървим!
От какво се нуждаем:
Трижилен контур (3 броя). Препоръчително е да вземете по-автентични.
Обикновени проводници
потенциометри
резистори (220 ома)
бутон
Отделение за батерията
прототипи борда
Е, разбира се, себе си arduinka
А също и разширителен съвет към него - нещо като MultiservoShieldза контрол на голям брой сервомери
И още дизайнер, което ще бъде основата на нашия робот, така че е препоръчително да изберете "силен"
От инструментите, от които ще се нуждаете:
Комплект отвертки, ключове и т.н.
Както и поялник, спойка и флюс
Е, да започнем!
Стъпка №1. Изработка на основната рамка
За начало съберете "две букви Н" Изглежда така:
Тогава някаква конструкция, върху която нашите роботът ще стои. Това изобщо не е необходимо, както на снимката - по ваша преценка. Оказа се така:
Инсталираме нашето „N“ върху поддръжката
Отдолу затягаме болтовете
На другия "Н" поправяме първия серво, който е отговорен за завъртането на главите на бъдещия ни робот
Оказва се нещо като следното:
Почти рамката е готова! Остава да закрепите тези две конструкции с метални пластини и да придадете височина на робота!
Стъпка # 2: Изработка на рамка за бъдещи уши на роботи
За да направите това, трябва да сглобим две подобни структури и да фиксираме сервовете върху тях, както е показано на фигурата:
След това с помощта на болтове и гайки се свържете към основната рамка. Ще се окаже следното:
Изглед отгоре:
Е, определен прототип на робота е почти готов! Напред ..
Стъпка №3. Да направим очи и цялата глава на нашия робот!
За това използвах стария телефон от домофона. Лично тя ми напомня за лице! Виж повече ..
Правим два отвора и закрепваме рокадата за сервото към тръбата
Веднага лепим светодиодите отстрани и спояваме проводниците към тях
Използвах тънки:
Стъпка # 4 Осъществяване на уши
Ще използваме обикновени капачки от малки кутии
Също така закрепете люлеещите се столове за серв
Сега смело фиксираме частите от тялото на робота върху сървърите
Ето така:
Изглед отгоре:
задната част:
По принцип можете да се насладите на робота сега, но ние ще усложним задачата. Ще обърнем очите и ушите на робота с помощта на потенциометри и нашата ардуинка
Стъпка № 5 Електроника
Комбинирайки ардуино с мултисервис щит, ние вмъкваме трижилен контур от всеки сервозащит към щифтовете 9, 10, 11 (ляво ухо, дясно ухо, цент, ако поставите робота с лице към нас)
След това на дъската инсталираме потенциометър, бутон, резистори .. Ще изглежда така, грозно е разбира се, но основното работи)
Повече подробности!
Как да инсталирате бутона:
Когато бялата жица е захранваща, червеният е цифров вход на микроконтролер № 6, а резисторът отива на земята (жълт проводник)
Как да инсталирате потенциометър:
Червен проводник - захранване, жълто - заземяване, бял - аналогов вход на микроконтролер № 0 (свързваме друг потенциометър по същия начин, само аналогов вход на контролер № 1)
Инсталираме и резистори за светодиоди на платката:
ток ще се подава от 3 и 5 пина на ардуино и ще излезе през жълтите и черните проводници и през резисторите отиде към земята (GND на контролера)
Е, по принцип всичко, ние сме готови с електроника! Остава само да изтеглите следващото скица и играйте с робота !!
#include
#include
Multiservo myservo1;
Мултисерво мисерво2;
Multiservo myservo3;
int b, k1, p1, p2;
int A = 0;
int i = 0;
неподписан дълъг m2 = 0;
неподписан дълъг m1 = 0;
int r1 = 70;
int r2 = 110;
int r3 = 70;
int h1 = 0;
int h = 0;
настройка за невалидност ()
{
myservo1.attach (9); // ляво ухо
myservo2.attach (10); // дясно ухо
myservo3.attach (11); // очи
pinMode (6, INPUT); // бутон
pinMode (3, изход); // светлини за очи PWM
pinMode (5, изход);
}
void loop ()
{
докато (A == 0) // цикъл за ръчно управление на робота
{
b = digitalRead (6);
ако (! b) k1 = 1;
ако (b == 1 && k1 == 1)
{
забавяне (10);
b = digitalRead (6);
ако (b == 1 && k1 == 1)
{
А е 1;
k1 = 0;
}
}
p1 = int (analogRead (A0) / 6);
p2 = int (analogRead (A1) / 6);
myservo1.write (p1);
myservo2.write (p1);
myservo3.write (p2);
analogWrite (3, i);
analogWrite (5, i);
ако (millis ()> = m1 + 70 && h1 == 0)
{
i = i + 4;
m1 = millis ();
ако (i> 250) h1 = 1;
}
ако (millis ()> = m1 + 70 && h1 == 1)
{
i = i-4;
m1 = millis ();
ако (i == 0) h1 = 0;
}
}
докато (A == 1) // автономен работен цикъл на робота
{
digitalWrite (13.0);
b = digitalRead (6);
ако (! b) k1 = 1;
ако (b == 1 && k1 == 1)
{
забавяне (10);
b = digitalRead (6);
ако (b == 1 && k1 == 1)
{
А е 0;
k1 = 0;
}
}
analogWrite (3, i);
analogWrite (5, i);
ако (millis ()> = m1 + 70 && h1 == 0)
{
i = i + 4;
m1 = millis ();
ако (i> 250) h1 = 1;
}
ако (millis ()> = m1 + 70 && h1 == 1)
{
i = i-4;
m1 = millis ();
ако (i == 0) h1 = 0;
}
ако (millis ()> = m2 + 15 && h == 0)
{
myservo1.write (r1);
myservo2.write (r2);
myservo3.write (r3);
r1 = r1 + 1;
r2 = r2-1;
r3 = r3 + 1;
ако (r1 == 110) h = 1;
m2 = millis ();
}
ако (millis ()> = m2 + 15 && h == 1)
{
myservo1.write (r1); // 110
myservo2.write (r2); // 70
myservo3.write (r3); // 110
r1 = r1-1;
r2 = r2 + 1;
r3 = r3-1;
ако (r1 == 70) h = 0;
m2 = millis ();
}
}
}
Кодът е доста голям, но повярвайте ми, струва си!
Накратко, какво прави тази програма:
Имаме бутон, който отговаря за 2 състояния на системата: или ръчно управляваме робота, или той извършва движенията, които вече са регистрирани предварително. При натискане на бутон състоянията се променят за нас и в кода се променят 2 цикъла помежду си, в които се регистрират съответните команди. Очите на нашия робот постепенно светят, стават все по-ярки и ярки и след това избледняват. ето защо сме нарекли светодиодите на щифтовете, поддържащи PWM - импулсна ширина модулация.
Снимки на робота:
малък видео запис, как и какво в крайна сметка се превръща:
В заключение искам да кажа, че, разбира се, този робот може да бъде приведен в съзнание за дълго време, но това е вкусът на всеки човек. Направете го! Измисли! Порасна! Успех на всички!