Съдържание:

Лек и избягващ робот, базиран на Arduino: 5 стъпки
Лек и избягващ робот, базиран на Arduino: 5 стъпки

Видео: Лек и избягващ робот, базиран на Arduino: 5 стъпки

Видео: Лек и избягващ робот, базиран на Arduino: 5 стъпки
Видео: Lesson 29: Car-7 Controlling SunFounder Smart Car using Remote Controller | Robojax 2024, Декември
Anonim
Лек следващ и избягващ робот на базата на Arduino
Лек следващ и избягващ робот на базата на Arduino

Това е прост проект, който следва или избягва светлината.

Направих тази симулация в Proteus 8.6 pro. Необходими компоненти: -1) Arduino uno.

2) 3 LDR.

3) 2 Dc Gear двигателя 4) Един серво 5) Три 1k резистора 6) един H-Bridge l290D7) Един превключвател за включване и изключване [за промяна на състоянието на програмата]

8) 9v и 5v Battry

Стъпка 1: Код на Ardunio

Кодът на Arduino е променен на малка битова дата 23 февруари 2016 г.]

Този код е силно коментиран, не искам да обяснявам, но ако имате нужда от помощ, не се колебайте да се свържете с мен на ([email protected])

Забележка: -Използвам две условия в тази програма 1-во за Следване на светлината. 2-ро едно за избягване на Светлината.

Доколкото тези условия са изпълнени, роботът ще следва или избягва светлината. [Това е минималната стойност на LDR, която избирам. При нормална светлина обхватът му е 80 до 95, но с увеличаване на интензивността му все повече и повече индуцирани напрежения, докато работи по принципа на делителя на напрежение int a = 400; // Стойност на толерантност]

Стъпка 2: Файлове на Proteus

За Arduino Library изтеглете от тази връзка

Стъпка 3: Как работи вашият H-мост

Как работи вашият H-мост
Как работи вашият H-мост
Как работи вашият H-мост
Как работи вашият H-мост

L293NE/SN754410 е много основен H-мост. Той има два моста, един от лявата страна на чипа и един отдясно, и може да управлява 2 двигателя. Той може да управлява до 1 ампер ток и да работи между 4.5V и 36V. Малкият DC мотор, който използвате в тази лаборатория, може да работи безопасно от ниско напрежение, така че този H-мост ще работи отлично. H-мостът има следните щифтове и функции: Pin 1 (1, 2EN) позволява и деактивира нашия двигател независимо дали е дал HIGH или LOWPin 2 (1A) е логически щифт за нашия двигател (входът е или HIGH или LOW) Pin 3 (1Y) е за един от терминалите на двигателя Pin 4-5 са за заземяване Pin 6 (2Y) е за другия терминал на двигателя Pin 7 (2A) е логически щифт за нашия двигател (входът е ВИСОК или НИСКИ) Пин 8 (VCC2) е захранването за нашия двигател, трябва да се вземе предвид номиналното напрежение на вашия мотор. Пинове 9-11 са несвързани, тъй като използвате само един двигател в тази лаборатория. свързан към 5V. По-горе е диаграма на H-моста и кои щифтове правят какво в нашия пример. Включена в диаграмата е таблица на истината, показваща как двигателят ще функционира според състоянието на логическите щифтове (които са зададени от нашия Arduino).

В този проект щифтът за активиране се свързва с цифров щифт на вашия Arduino, така че можете да го изпратите или НА ВИСОК, или НА НИСКО и да включите или изключите двигателя. Логическите щифтове на двигателя също са свързани към определени цифрови щифтове на вашия Arduino, така че можете да го изпращате ВИСОКО и НИСКО, за да завъртите двигателя в една посока, или НИСКО и ВИСОКО, за да го завъртите в другата посока. Захранващото напрежение на двигателя се свързва към източника на напрежение за двигателя, който обикновено е външно захранване. Ако вашият двигател може да работи на 5V и по -малко от 500mA, можете да използвате 5V изхода на Arduino. Повечето двигатели изискват по -високо напрежение и по -голям ток от този, така че ще ви трябва външно захранване.

Свържете двигателя към H-моста Свържете двигателя към H-моста, както е показано на втората снимка.

Или, ако използвате външно захранване за Arduino, можете да използвате щифта Vin.

Стъпка 4: Как работи LDR

Сега първото нещо, което може да се нуждае от допълнително обяснение, е използването на светлинно зависими резистори. Светлозависимите резистори (или LDR) са резистори, чиято стойност се променя в зависимост от количеството на околната светлина, но как можем да открием съпротивление с Arduino? Е, не можете наистина, но можете да откриете нива на напрежение с помощта на аналоговите щифтове, които могат да измерват (при основна употреба) между 0-5V. Сега може би се питате „Ами как да преобразуваме стойностите на съпротивлението в промени в напрежението?“, Просто е, правим делител на напрежение. Делителят на напрежение приема напрежение и след това извежда част от това напрежение, пропорционално на входното напрежение и съотношението на двете стойности на използваните резистори. Уравнението, за което е:

Изходно напрежение = Входно напрежение * (R2 / (R1 + R2)) Където R1 е стойността на първия резистор и R2 е стойността на втория.

Това все още поражда въпроса „Но какви стойности на съпротивлението има LDR?“, Добър въпрос. Колкото по -малко е околната светлина, толкова по -голямо е съпротивлението, повече околната светлина означава по -ниско съпротивление. Сега за конкретните LDR използвах техния диапазон на съпротивление от 200 - 10 кило ома, но това се променя за различните, така че не забравяйте да потърсите откъде сте ги купили и да се опитате да намерите лист с данни или нещо подобно. Сега в това случай R1 всъщност е нашият LDR, така че нека да върнем това уравнение и да направим малко математическа е-магия (математическа електрическа магия). Сега първо трябва да преобразуваме тези стойности на килоома в ома: 200 кило-ома = 200, 000 ома 10 кило-ома = 10, 000 ома Така че, за да разберем какво е изходното напрежение, когато сме в черно стъкло, включваме следните числа: 5 * (10000 / (200000 + 10000)) Входът е 5V, тъй като това получаваме от Arduino. Горното дава 0.24V (закръглено). Сега откриваме какво е изходното напрежение в пикова яркост, като използваме следните числа: 5 * (10000 / (10000 + 10000)) И това ни дава точно 2.5V. Това са стойностите на напрежението, които ще получим в аналоговите щифтове на Arduino, но това не са стойностите, които ще се видят в програмата „Но защо?“може да попитате. Arduino използва аналогов към цифров чип, който преобразува аналоговото напрежение в използваеми цифрови данни. За разлика от цифровите щифтове на Arduino, които могат да четат само ВИСОКО или НИСКО състояние, което е 0 и 5V, аналоговите щифтове могат да четат от 0-5V и да преобразуват това в числов диапазон от 0-1023. Сега с още малко математическа е-магия. всъщност можем да изчислим какви стойности всъщност ще прочете Arduino.

Тъй като това ще бъде линейна функция, можем да използваме следната формула: Y = mX + C Където; Y = цифрова стойност Където; m = наклон, (изкачване / движение), (цифрова стойност / аналогова стойност) Където; C = Y прихващане Y прихващането е 0, така че получаваме: Y = mXm = 1023 /5 = 204.6 Следователно: Цифрова стойност = 204,6 * Аналогова стойност Така че в черния тон цифровата стойност ще бъде: 204,6 * 0,24 Което дава приблизително 49. И в пикова яркост ще бъде: 204.6 * 2.5 Което дава приблизително 511. Сега с две от тях, настроени на два аналогови пина, можем да създадем две целочислени променливи, за да съхраняваме стойностите им две и да правим оператори за сравнение, за да видим коя от тях има най -ниската стойност, завъртане на робота в тази посока.

Препоръчано: