Искате ли да научите как да направите свой собствен робот? Има много различни видове роботи, които можете да създадете сами. Повечето хора искат да видят как роботът се справя лесно с придвижването от точка А до точка В. Можете да изградите робот изцяло от аналогови компоненти или да си купите стартов комплект. Създаването на собствен робот е чудесен начин да научите електроника и компютърно програмиране.
Стъпка
Част 1 от 5: Сглобяване на робота
Стъпка 1. Сглобете компонентите си
За да изградите основен робот, ще ви трябват няколко прости компонента. Можете да намерите повечето или всички тези компоненти в местния магазин за електротехника или в някои онлайн търговци на дребно. Някои комплекти включват всички тези компоненти. Този робот не изисква запояване:
- Arduino Uno (или друг микроконтролер)
- 2 сервосистеми на 360 градуса
- 2 колела, съответстващи на серво
- 1 безплатно колело
- 1 тестова платка (дънна платка или проектна дъска), която не е запоена (потърсете тестова дъска, която има два положителни и отрицателни реда от всяка страна)
- 1 сензор за близост (с четири пинов съединителен кабел)
- 1 превключвател с бутон
- 1 резистор 10kΩ
- 1 USB A към B кабел
- 1 комплект чупливи заглавки
- 1 6 x AA държач за батерия с 9V DC захранващ контакт
- 1 пакет от 22. джъмперни кабели или единичен кабел
- Изолация напред -назад (двойна лента) или пистолет за лепило
Стъпка 2. Завъртете отделението за батерии, така че плоският му гръб да е обърнат нагоре
Ще изградите тялото на робота, като използвате батерийното отделение като основа.
Стъпка 3. Подредете два сервомотора, обърнати в една и съща посока в края на отделението за батерията
Този край е краят, където кабелът излиза от батерията. Сервомоторите трябва да докосват дъното, а механизмът на въртене на всяко серво трябва да е обърнат навън от страните на отделението за батерии. Важно е тези сервоустройства да са подредени правилно, така че колелата да са прави. Кабелите за серво трябва да излизат от задната страна на отделението за батерии.
Стъпка 4. Залепете сервомоторите с вашата изолация или лепило
Уверете се, че сервото е здраво прикрепено към отделението за батерии. Задната част на сервото трябва да бъде подравнена със задната част на отделението за батерии.
Сега сервомоторите трябва да заемат половината място в задната част на отделението за батерията
Стъпка 5. Прикрепете тестовата платка перпендикулярно на оставащото място в отделението за батерии
Тази тестова платка ще виси леко над предната част на отделението за батерии и ще се простира от двете страни. Преди да продължите, уверете се, че тестовата платка е стегната. Редът „А“трябва да е най -близо до сервото.
Стъпка 6. Прикрепете микроконтролера Arduino към горната част на сервото
Ако правилно свържете сервото, трябва да има плоска част от двата сервопривода, които да се допират помежду си. Прикрепете платката Arduino към това плоско място, така че USB и Arduino захранващите конектори да са обърнати надолу (далеч от тестовата платка). Предната част на Arduino ще се припокрива с тестовата платка.
Стъпка 7. Инсталирайте колелата на сервомоторите
Натиснете здраво колелата върху въртящия се серво механизъм. Това може да изисква значителна сила, тъй като колелата са проектирани да имат отвори, които точно съответстват на формата на върха на серво.
Стъпка 8. Инсталирайте свободното колело в долната част на тестовата платка
Ако обърнете робота с главата надолу, ще видите малка тестова платка, висяща от отделението за батерии. Прикрепете свободното колело към тази висяща част. Използвайте клин, ако е необходимо. Свободното колело служи като предно колело, което позволява на робота да се завърта с лекота във всяка посока.
Ако сте закупили комплект, свободното колело може да има някои клинове, които можете да използвате, за да сте сигурни, че колелото е свободно да докосва земята
Част 2 от 5: Окабеляване на робота
Стъпка 1. Изрежете две 3-пинови заглавки
Ще използвате това, за да свържете серво към тестовата платка. Натиснете щифтовете надолу през заглавките, така че да излязат на еднакво разстояние от двете страни.
Стъпка 2. Поставете двата заглавия в щифтове 1-3 и 6-8 в ред E на тестовата платка
Уверете се, че са поставени здраво или здраво.
Стъпка 3. Свържете серво проводниците с хедера, с черния проводник от лявата страна (щифтове 1 и 6)
Това ще свърже серво с тестовата платка. Уверете се, че лявото серво е свързано към лявата заглавка, а дясното серво е свързано към дясното заглавие.
Стъпка 4. Свържете червения проводник от щифтове C2 и C7 към щифта на червената шина (положителен)
Уверете се, че използвате червената шина на гърба на тестовата платка (по -близо до останалата част от тялото на робота).
Стъпка 5. Свържете черния джъмпер проводник от щифтове В1 и В6 към синия релсов щифт (маса)
Уверете се, че използвате синята релса на гърба на тестовата платка. Не прикрепяйте кабела към щифта на червената шина.
Стъпка 6. Свържете белите джъмперни проводници от щифтове 12 и 13 на Arduino към A3 и A8
Това ще позволи на Arduino да контролира серво и да завърти колелото.
Стъпка 7. Прикрепете сензора към предната част на тестовата платка
Сензорът не е монтиран към външната захранваща шина на тестовата платка, а към първите два реда щифтове с букви (J). Уверете се, че го поставяте точно в средата с равен брой празни щифтове от всяка страна.
Стъпка 8. Свържете черния джъмпер проводник от щифт I14 към първия син щифт от лявата страна на сензора
Това ще заземи сензора.
Стъпка 9. Свържете червения джъмпер проводник от щифт I17 към първия червен щифт отдясно на сензора
Това ще осигури захранване на сензора.
Стъпка 10. Свържете белите джъмперни проводници от щифт I15 към щифт 9 на Arduino и от I16 към щифт 8
Това ще предостави информация от сензора към микроконтролера.
Част 3 от 5: Инсталиране на захранващия кабел
Стъпка 1. Обърнете робота, за да можете да видите отделението за батерии вътре
Подредете отделението за батерията така, че кабелът да излиза през долния ляв ъгъл.
Стъпка 2. Свържете червения проводник с втората пружина отляво в долната част
Уверете се, че отделението за батерията е правилно подравнено или обърнато в правилната посока.
Стъпка 3. Свържете черния проводник с последната пружина в долния десен ъгъл
Тези два проводника ще ви помогнат да осигурите правилното напрежение на Arduino.
Стъпка 4. Свържете червените и черните проводници към червените и сините щифтове, които са от дясната страна на гърба на тестовата платка
Черният проводник трябва да отиде към синия релсов щифт на щифт 30. Червеният проводник трябва да отиде към червения щифт на щифт 30.
Стъпка 5. Свържете черния проводник от щифта GND на Arduino към задната част на синята релса
Свържете проводника към щифт 28 на синята шина.
Стъпка 6. Свържете черния проводник от задната страна на синята шина към предната част на синята релса на щифт 29 за двете релси
Не свързвайте червената шина, тъй като може да повредите Arduino.
Стъпка 7. Свържете червения проводник от предната страна на червената шина на щифт 30 към 5V щифта на Arduino
Това ще осигури захранване на Arduino.
Стъпка 8. Поставете превключвателя с бутон в пространството между щифтове 24-26
Този ключ ще ви позволи да изключите робота, без да се налага да изключвате захранването.
Стъпка 9. Свържете червения проводник от H24 към червената шина на следващия празен щифт отдясно на сензора
Това ще осигури захранване на бутона.
Стъпка 10. Използвайте резистор, за да свържете H26 към синята шина
Свържете го към щифта директно до черния проводник, който току -що сте свързали в предишните стъпки.
Стъпка 11. Свържете белия проводник от G26 към щифт 2 на Arduino
Това ще позволи на Arduino да открие бутони.
Част 4 от 5: Инсталиране на софтуера Arduino
Стъпка 1. Изтеглете и извлечете Arduino IDE
Тук е разработен Arduino и ви позволява да програмирате инструкции, които след това можете да качите на вашия микроконтролер Arduino. Можете да го изтеглите безплатно от arduino.cc/en/main/software. Разархивирайте изтегления файл, като щракнете двукратно върху файла и преместите папката, която съдържа, на лесно достъпно място. Всъщност няма да инсталирате програмата, а просто ще я стартирате от папка, която е извлечена чрез двукратно щракване върху arduino.exe.
Стъпка 2. Свържете отделението за батерията към Arduino
Поставете задния гнездо на батерията в конектора на Arduino, за да го захранвате.
Стъпка 3. Поставете Arduino във вашия компютър чрез USB
Шансовете са, че Windows няма да разпознае устройството.
Стъпка 4. Натиснете
Win+R. и тип devmgmt.msc.
Тази команда ще отвори диспечера на устройствата.
Стъпка 5. Щракнете с десния бутон върху Неизвестно устройство под Други устройства и изберете Актуализиране на софтуера на драйвера
Ако не виждате тази опция, щракнете върху Свойства, изберете раздела Драйвер и след това щракнете върху Актуализиране на драйвера.
Стъпка 6. Изберете Преглед на моя компютър за софтуер за драйвери
Това ще ви позволи да изберете вградените драйвери, доставени с Arduino IDE.
Стъпка 7. Щракнете върху Преглед, след което отворете папката, която сте извлекли по -рано
В него ще намерите папката с драйвери.
Стъпка 8. Изберете папката с драйвери и щракнете върху OK
Потвърдете, че искате да продължите, ако сте предупредени за неизвестен софтуер.
Част 5 от 5: Програмиране на роботи
Стъпка 1. Отворете Arduino IDE, като щракнете двукратно върху файла arduino.exe в папката IDE
Ще бъдете посрещнати с празен проект.
Стъпка 2. Поставете или поставете следния код, за да направите вашия робот напреднал
Кодът по -долу ще поддържа вашия Arduino работещ.
#include // това добавя библиотеката „Servo“към програмата // следната команда създава два серво обекта Servo leftMotor; Servo rightMotor; void setup () {leftMotor.attach (12); // ако случайно смените пиновите номера за вашето серво, можете да размените номерата тук rightMotor.attach (13); } void loop () {leftMotor.write (180); // с въртене на 360 градуса (непрекъснато въртене), числото 180 инструктира сервопривода да се движи „напред“с пълна скорост. rightMotor.write (0); // ако и двете стойности са 180, роботът ще се върти в кръг, защото сервото е обърнато. „0“казва на робота да се движи „назад“с пълна скорост. }
Стъпка 3. Създайте и качете програмата
Щракнете върху бутона със стрелка надясно в горния ляв ъгъл, за да създадете и качите програма на свързания Arduino.
Може да искате да вдигнете робота от повърхността, тъй като роботът ще продължи да върви напред след качването на програмата
Стъпка 4. Добавете функция превключвател за спиране (превключвател за убиване)
Добавете следния код към раздела "void loop ()" на кода си, за да добавите функция стоп превключвател върху функцията "write ()".
if (digitalRead (2) == HIGH) // тази команда се изпълнява, когато бутонът е натиснат върху щифт 2 Arduino {while (1) {leftMotor.write (90); // "90" е неутралната позиция на серво, което казва на серво да спре да завива надясноMotor.write (90); }}
Стъпка 5. Качете и проверете кода си
С вече добавения код на превключвателя за спиране можете да качите кода и да тествате робота. Роботът трябва да продължи напред, докато не натиснете бутона за спиране, което ще доведе до спиране на робота. Пълният код ще изглежда така:
#include // следната команда създава два Servo leftMotor серво обекта; Servo rightMotor; void setup () {leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) {while (1) {leftMotor.write (90); rightMotor.write (90); }} leftMotor.write (180); rightMotor.write (0); }
Пример
Следният код ще използва сензори, инсталирани на робота, за да го накара да завие наляво, когато роботът срещне препятствие. Погледнете коментарите в кода за подробности как да използвате всяка част. Кодът по -долу е цялата програма.
#include Servo leftMotor; Servo rightMotor; const int serialPeriod = 250; // този код дава забавяне на изхода на конзолата на всеки 1/4 секунда (250 ms) без знак дълго времеSerialDelay = 0; const int loopPeriod = 20; // този код задава честотата на четене на сензора на 20 ms, което е 50 Hz unsigned longtimeLoopDelay = 0; // този код присвоява функциите TRIG и ECHO на щифтовете на Arduino. Коригирайте числата тук, ако ги свържете по различен начин const int ultrasonic2TrigPin = 8; const int ultrasonic2EchoPin = 9; int ultrasonic2Distance; int ultrasonic2Duration; // този код дефинира две възможни състояния на робота: продължете напред или завийте наляво #define DRIVE_FORWARD 0 #define TURN_LEFT 1 int state = DRIVE_FORWARD; // 0 = продължаване напред (DEFAULT), 1 = завъртане наляво void setup () {Serial.begin (9600); // този сензор определя конфигурацията на щифта pinMode (ultrasonic2TrigPin, OUTPUT); pinMode (ултразвуков2EchoPin, INPUT); // това присвоява двигателя към щифтовете на Arduino leftMotor.attach (12); rightMotor.attach (13); } void loop () {if (digitalRead (2) == HIGH) // този код открива '' stop '' {while (1) {leftMotor.write (90); rightMotor.write (90); }} debugOutput (); // този код отпечатва съобщения за отстраняване на грешки към серийна конзола if (millis () - timeLoopDelay> = loopPeriod) {readUltrasonicSensors (); // този код инструктира сензора да чете и съхранява данни за измереното разстояние stateMachine (); timeLoopDelay = millis (); }} void stateMachine () {if (state == DRIVE_FORWARD) // ако не е открито препятствие {if (ultrasonic2Distance> 6 || ultrasonic2Distance <0) // ако няма нищо пред робота. ultrasonicDistance ще бъде отрицателно за някои ултразвуци, ако няма пречки {// карайте напред rightMotor.write (180); leftMotor.write (0); } else // ако пред нас има обект {state = TURN_LEFT; }} иначе ако (състояние == TURN_LEFT) // ако бъде открито препятствие, завийте наляво {unsigned long timeToTurnLeft = 500; // отнема около 0,5 секунди, за да се завърти на 90 градуса. Може да се наложи да регулирате тази стойност, ако колелата ви се различават по размер от размера в примера без подпис дълъг turnStartTime = millis (); // запазваме състоянието, когато роботът започне да се върти, докато ((millis ()-turnStartTime) <timeToTurnLeft) // поддържа този цикъл, докато timeToTurnLeft (500) премине {// завийте наляво, не забравяйте, че когато и двата са "180", роботът ще се завърти. rightMotor.write (180); leftMotor.write (180); } състояние = DRIVE_FORWARD; }} void readUltrasonicSensors () {// това е за ултразвук 2. Може да се наложи да промените тази команда, ако използвате различен сензор. digitalWrite (ultrasonic2TrigPin, HIGH); delayMicroseconds (10); // дръпнете високо щифта TRIG за поне 10 микросекунди digitalWrite (ultrasonic2TrigPin, LOW); ultrasonic2Duration = pulseIn (ultrasonic2EchoPin, HIGH); ултразвукова2разстояние = (ултразвукова2 продължителност/2)/29; } // следното е за отстраняване на грешки в конзолата. void debugOutput () {if ((millis () - timeSerialDelay)> serialPeriod) {Serial.print ("ultrasonic2Distance:"); Serial.print (ultrasonic2Distance); Serial.print ("cm"); Serial.println (); timeSerialDelay = millis (); }}