imadeself.com! » електроника » Arduino »Танчик управлява лазерен показалец

Танчик управлява лазерен показалец

Танчик управлява лазерен показалец

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

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

- двойна предавка Tamiya 70168
- Tamiya 70100 комплект ролки и писти
- Тамия 70157
- Шперплат 10 мм (малко парче)
- Arduino Pro Mini 5V AtMega 328
- DRV 8833
- Фоторезистори 5506 4 бр.
- USB-UART за фърмуер на Arduino
- правоъгълни червени и зелени светодиоди
- Бели светодиоди 5 мм 2бр.
- Резистори 3x 150 Ома
- Li-ion 18650 батерии
- Съединители на татко-мама Dupont
- Проводници с различни цветове
- спойка
- Розин
- поялник
- Болтове 3х40, 3х20, гайки и шайби за тях
- 2x10 винтове за дърво
- Свредла за дърво 3 мм и 6 мм
- Електрически трион
- Акрилна боя

Стъпка 1 Производство на резервни части.
подробно процес на производство на резервоара описано в домашно приготвено.

Повтарянето няма смисъл. Следователно първата и втората стъпка от горното домашно приготвено завършено.

Стъпка 2 Монтаж на фоторезистори.
Ще се нуждаем от най-често срещаните фоторезистори, те са лесни за закупуване в магазина за радио:


На следващо място, преди да инсталирате пистите, трябва да подготвите места за фоторезисторите и да ги поставите там. И така, имаме четири фоторезистора, два отпред, два отзад. Всички те ще бъдат разположени в долната част на кутията, в ъглите. Отдръпвайки се на 5 мм от всяка страна, направете два отвора за краката на фоторезистора. Разстоянието между отворите е 4 мм. Можете да използвате тренировката с най-малък диаметър или просто да пробиете фурнира с шил. След като направите това, поставете фоторезисторите. Нека започнем с предната част:


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


А отзад също правим:


По-долу ще изглежда така:


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


По този начин ще увеличим чувствителността на сензорите към червената точка на лазера.

Стъпка 3 Електротехник.
На четвъртата стъпка инструкциите за изработка на резервоара описват подробно какво и как да свържете. Правим всичко според него, с изключение на свързването на Bluetooth модула. Нямаме нужда от него. Свързваме един от контактите на фоторезисторите към GND. Вторият е свързан с Arduino по схемата:

Отпред вдясно към A0 (Pin14)
Преден ляв към A1 (Pin15)
Отзад отляво до A2 (Pin16)
Задно вдясно към A3 (Pin17)

Като инструмент за контрол ще използваме обичайния китайски лазерен указател с червен лъч:


Стъпка 4 Редактиране на скица.
За да редактирате и попълните скицата, трябва да изтеглите Arduino IDE. Отиваме при официалното сайт на проекта и изтеглете най-новата версия.

Не са необходими допълнителни библиотеки.
Фоторезисторите далеч не са най-точното измервателно устройство. Характеристиките му на практика зависят от голям брой фактори. Следователно, за правилна работа е необходимо да настроите всеки фоторезистор. Ние ще коригираме показанията, като редактираме скицата с помощта на Arduino IDE и монитора на портове. Отворете скицата:
unitank_laser.rar [1.01 Kb] (изтегляния: 76)


Нека започнем с предните фото резистори. Отдолу коментирайте трите линии за предните сензори:

//Serial.print(senLF); // Uncomment to Adjust Front Photoresistors
//Serial.print ("");
//Serial.println(senRF);


И също така трябва да добавите пауза, за да имате време да ги прегледате. Следователно, коментирайте и тази линия:

// забавяне (500);

Попълнете скицата. Слагаме резервоара на масата, когато осветяваме стаята с обикновен полилей, настолната лампа не трябва да се включва. И отворете монитора на порта на Arduino IDE. При нормално осветление показанията трябва да са по-големи от 500 и в същото време приблизително еднакви и за двата сензора. Нека се опитаме да преместим лазерния показалец пред носа на резервоара. Показанията трябва да варират. Колкото по-близо е точката, толкова по-малки трябва да са числата. Те трябва да са в диапазона от 80 (при максимална близост до точката) до 500 (на разстояние около 2-3 см.).
За да коригирате, използвайте променливите в скицата:

int corLF = 0; // Коригиращи променливи, отпред вляво
int corRF = 30; // Преден десен


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

Сега направете същото с задните фоторезистори. За целта коментирайте линиите за предните сензори и коментирайте следните редове:

//Serial.print(senLB); // Некомментиране за настройка на задните фоторезистори
//Serial.print ("");
//Serial.println(senRB);


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

int corLB = 0; // Заден ляв
int corRB = 35; // Заден десен


За да стане ясно как работи всичко. Левият преден сензор управлява движението на десния път напред, а десният преден сензор управлява левия път напред и т.н. Показанията на сензора се настройват според следните формули:

senLF = (analogRead (senLFPin) + corLF); // предна лява
senRF = (analogRead (senRFPin) + corRF); // Преден десен
senLB = (analogRead (senLBPin) + corLB); // Заден ляв
senRB = (analogRead (senRBPin) + corRB); // Заден десен


Къде, senLF, senRF, senLB, sen RB - коригирани показания
analogRead (senLFPin), (analogRead (senRFPin), (analogRead (senLBPin), (analogRead (senRBPin) - "чисти" показания на сензора
colLF, colRF, corLB, corRB - променливи за корекция.

След това показанията се превеждат в скоростта на въртене на противоположната писта:

walRF = карта (senLF, 80, 500, 100, 255);
walLF = карта (senRF, 80, 500, 100, 255);
walRB = карта (senLB, 80, 500, 100, 255);
walLB = карта (senRB, 80, 500, 100, 255);


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

След като приключите всички процедури, коментирайте всички тези редове и попълнете скицата. Сега резервоарът ще се вози зад червената точка на лазерния показалец.

Точка за езда
Общо избиратели: 53
9
7.9
8.1

Добавете коментар

    • усмихвамусмивкиxaxaдобреdontknowYahooНеа
      шефдраскотинаглупакдаДа-даагресивентайна
      съжалявамтанцувамdance2dance3извинениепомощнапитки
      спиркаприятелидобърgoodgoodсвиркаприпадамезик
      димплясканеCrayдеклариратподигравателендон-t_mentionизтегляне
      топлинасърдитlaugh1MDAсрещаmoskingотрицателен
      not_iпуканкинаказвамчетаплашаплашитърсене
      присмехthank_youтоваto_clueumnikостърСъгласен
      лошоbeeeblack_eyeblum3изчервяванесамохвалствоскука
      цензурираншегаsecret2заплашвампобедаюsun_bespectacled
      ShokРеспектхахаprevedдобре дошълkrutoyya_za
      ya_dobryiпомощникne_huliganne_othodifludзабранаблизо
6 коментар
Олег Олегов
не, не много спретнато. добре
пуснете сателит с лазер в орбита
И каква е тази тема, сключваме многостранно международно споразумение за единни софтуерни стандарти и се разрязваме на резервоари в световен мащаб! усмихвам
Авторът
Безбрачна ръка и без измама!
По дяволите, вече се плашим тук, с теб в квартала-)))) ne_huligan
пуснете сателит с лазер в орбита, преоборудвайте всички танкове и айда
По дяволите внимателно направено, уважение!

Съветваме ви да прочетете:

Предайте го за смартфона ...