Добър ден, продължаваме да правим роботи и играчки. Днес следващата стъпка е модификацията на моя модел резервоар. Четени инструкции за производство тук
Същността на модификацията е в промяна на начина на управление. Този път за контрол ще използваме лазерен показалец. По-точно, резервоарът ще се вози зад лазерната точка. Резервоарът ще определи местоположението на точката чрез фоторезистори. Списъкът с необходимите е подобен на списъка от горното домашноно не съвсем:
- двойна предавка 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 и монитора на портове. Отворете скицата:
Нека започнем с предните фото резистори. Отдолу коментирайте трите линии за предните сензори:
//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 в линиите за преобразуване, написани по-горе.
След като приключите всички процедури, коментирайте всички тези редове и попълнете скицата. Сега резервоарът ще се вози зад червената точка на лазерния показалец.