Как да си направим радиоуправляем танк: шпионка с дистанционно управление и камера. Ние изграждаме робот танк с Wifi управление, камера, пистолет, блекджек и др. Arduino резервоар с bluetooth управление - сглобяване

Роботът се състои от шаси от RC танк и няколко други компонента, чийто списък е даден по-долу. Това е първият ми проект на , и ми хареса платформата Arduino. При създаването на този робот използвах материали от книги и интернет.

Необходими материали
1. Шаси от радиоуправляем резервоар.
2. Arduino Uno.
3. Бредборд и джъмпери.
4. Интегриран моторен драйвер SN754410NE.
5. Стандартно серво задвижване.
6. Ултразвуков далекомер.
7. Батерия 9V и конектор за нея.
8. 4 D батерии и конектор за тях.
9. USB A-B кабел.
10. Основа 6" x 6".

Инструменти
1. Комплект отвертки.
2. Пистолет за горещо лепило.
3. Спойка и поялник.

шаси

Взех шасито от танк, който купих за 10$. Основата може да се закрепи навсякъде, но аз я закрепих в средата.

Драйвер за мотор SN754410NE

За управление на двигателите използвах драйвера SN754410NE. Използвах го, защото го имах, но можете да използвате друг, като L293.

Сега относно свързването на драйвера към Arduino Uno. Свържете всички GND щифтове (4,5,12,13) ​​към GND на макетната платка. Свържете щифтове 1 и 16 на драйвера към щифтове 9 и 10 на Arduino. Свържете драйверни щифтове 2 и 7 към щифтове 3 и 4 на Arduino, това са контролните щифтове на левия двигател. Свържете драйверни щифтове 10 и 15 към щифтове 5 и 6 на Arduino, това са контролните щифтове на десния двигател. Свържете контакти 3 и 6 към левия мотор, а контакти 14 и 11 към десния. Щифтове 8 и 16 трябва да бъдат свързани към захранването на макетната платка. Източник на захранване: 9V батерия.

Ултразвуков далекомер помага на робота да избягва препятствия по време на движение. Разположен е на стандартно серво, което се намира отпред на робота. Когато роботът забележи обект на 10 см разстояние, сервото започва да се върти, търсейки път, а след това Arduino решава коя страна е най-приятна за движение.
Прикрепете конектор към него. Ограничете сервото така, че да не може да се завърти на повече от 90 градуса във всяка посока.

Сензорът е с три контакта GND, 5V и сигнал. Свържете GND към GND, 5V към 5V Arduino и свържете сигнала към пин 7 на Arduino.

Хранене

Arduino се захранва от 9V батерия през съответния конектор. За захранване на двигателите използвах батерии с размер 4 D и съответния конектор. За да захраните двигателите, свържете проводниците от държача към платката с SN754410NE.

Сглобяване

След като всички части са готови, е време да ги сглобите. Първо трябва да прикрепим Arduino към основата. След това с помощта на горещо лепило прикрепяме далекомера със серво задвижване към предната част на робота. След това трябва да поставите батериите. Можете да ги поставите където желаете, но аз ги поставих до Arduino. Когато всичко е готово, можете да включите робота, за да се уверите, че Arduino работи.

програма

И така, след сглобяването на робота е време да напишем програма за него. След няколко дни го написах.
Роботът ще се движи по права линия, докато обектът е на повече от 10 см. Когато забележи обекта, той започва да върти сензора, търсейки път. Когато сканирането приключи, програмата избира оптималната страна за движение. Ако роботът е в задънена улица, той се обръща на 180 градуса.
Програмата може да бъде изтеглена по-долу. Можете да го променяте и допълвате.


В предишни материали прегледахме видеоклипове за правене на различни радиоуправляеми играчки. Да продължим тази тема. Този път ви каним да се запознаете с процеса на производство на радиоуправляем танк.

Ще ни трябва:
- готово шаси;
- Arduino Nano;
- 3 сервомашини;
- ротационна система;
- играчка пистолет;
- PS2 джойстик;
- приемник към джойстик;
- акумулаторна кутия;
- презареждащи се батерии;
- проводници;
- лазер.

Готовото шаси, връзката за закупуване на което е предоставено в края на материала, има два двигателя, две скоростни кутии, превключвател и отделение за батерии. Според автора на идеята закупуването на готово шаси ще струва по-малко, отколкото да го направите сами. Ако батериите, които планирате да използвате, не се побират в отделението на шасито, както в случая на автора, можете да скриете драйвера на двигателя там.

Първата стъпка е да прикрепите приемника на джойстика към шасито. За да направите това, отстранете капака от него.

Отстраняваме и капака от скоростната кутия.

Правим два отвора на капака, които ще се използват за закрепване на капака с винтове.

Напълнете гайките, които държат винтовете с лепило, за да не се развият по време на движение и да паднат в скоростната кутия.

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

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

Сглобяване на ротационната система обратно.

Инсталираме системата върху корпуса на резервоара.

Трябва да направите 3 допълнителни дупки в корпуса. Два от тях са необходими за кабелите на двигателя, а широкият отвор е необходим за шината в управлението на драйвера на двигателя.

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

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

В горната част на ротационната система трябва да направите два проходни отвора, които също трябва да минават през цевта на пистолета. Тези отвори ще се използват за монтиране на муцуната на ротационната система.

Нека да преминем към програмирането на платката Arduino Nano.

Сглобяваме останалите компоненти според диаграмата по-долу.

В горната част на шасито инсталираме парчета владетели, които ще служат като крила. Инсталираме отделения за батерии на крилата.

Залепваме лазера към цевта с горещо лепило.

Нашите радиоуправляем танкготов.

Основната част на робота е шасито от радиоуправляемия резервоар и други компоненти, техният списък ще бъде написан по-долу. Този резервоар е първият проект на автора на платформата Arduino и той беше доволен, че го използва. Авторът е използвал материали и книги от Интернет.

Материали и инструменти:
- Шаси на танк
- Arduino Uno
- Джъмпери и макет
- Интегриран моторен драйвер SN754410NE
- Конвенционално серво задвижване
- Ултразвуков далекомер
- 9V батерия с конектор за нея
- D-тип батерии
- USB кабел за Arduino
- Основа за шаси
- Отвертки
- Термопистолет и лепило за него
- Поялник и спойка

Първа стъпка. Шаси на танк.
Авторът е взел шасито от старото танк Ейбрамскупен на битпазар. Полученият резервоар беше разглобен, за да може да се свали шасито от него. Изобщо не е необходимо да използвате един и същ резервоар; всеки радиоуправляем е подходящ. Освен това оригиналният двигател остави много да се желае, така че трябваше да сглобя своя собствена; След като подготви шасито, авторът прикрепи основата към тях с горещо лепило. Няма значение къде ще бъде фиксиран, но беше решено да се залепи в центъра.

Стъпка втора. Машинист.
За управление на двигателя се използва драйверът SN754410NE, авторът го е използвал, защото е бил наличен, можете да вземете всеки подобен.
Свързването на драйвера към Arduino е както следва:

Всички GND щифтове са свързани към GND щифтовете на макетната платка.
- Задвижващи щифтове 1 и 16 до 9 и 10 на Arduino.
- Щифтове 2 и 7 на драйвера са свързани с щифтове 3 и 4 на Arduino (те са отговорни за управлението на левия мотор).
- Задвижващи щифтове 10 и 15 са свързани към Arduino щифтове 5 и 6 (те са отговорни за управлението на десния мотор).
- Изводи 3 и 6 са свързани към левия двигател, а 14 и 11 към десния двигател.
- Пинове 8 и 16 трябва да бъдат свързани към захранването на Bredboard, източникът на захранване е 9V батерия.

Стъпка трета. Инсталиране на далекомер.
Ултразвуковият сензор позволява на робота да избягва препятствията по пътя си, докато се движи. Сензорът е разположен на стандартно серво и ще бъде монтиран отпред на робота. В момента, в който роботът забележи препятствие в рамките на 10 см, сервото ще започне да се върти в двете посоки, като по този начин търси проход. Arduino чете информация от сензора и решава коя страна е по-благоприятна за по-нататъшно движение.
На първо място, към сензора е прикрепено серво задвижване. Авторът закрепва серво задвижването, така че да може да се върти само на 90 градуса във всяка посока, с други думи, пълен оборотсервото ще бъде на 180 градуса.

Сензорът има три контакта GND, сигнал и 5V. 5V захранването е свързано към 5V захранване на Arduino, GND към GND, а сигналът към пин 7 на Arduino.

Стъпка четвърта. Хранене.
Arduino получава захранване чрез 9V батерия, свързана към съответния конектор. Моторите се захранват от четири D-тип батерии, които са монтирани в държача на батерията. За да получат захранване към двигателите, проводниците на държача са свързани към платката, на която вече е инсталиран драйверът на двигателя SN754410NE.

Стъпка пета. Сглобяване на роботи.
След като завършите всички предишни стъпки, е време да съберете всички части заедно. Първо, Arduino е прикрепен към основата на резервоара. След това към предната част на робота се закрепва ултразвуков далекомер с помощта на горещо лепило. След това авторът прикрепя батериите до Arduino. Батериите могат да се монтират на всяка част от резервоара. След инсталирането на всички компоненти, всички кабели бяха издърпани нагоре и захранването беше подадено към платката, за да се гарантира правилното сглобяване.

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

Тази публикация ще бъде първият тест, за да видим дали това е интересно за някой друг освен мен. Ще опиша в него обща структура, използвани технологии и устройства.

UPD:добавен видеоклип.


Първо, кратко видео за привличане на вниманието. Звукът идва от високоговорителя на резервоара.

Където започна всичко

Преди много време имах мечта да направя робот на верижно шаси, който да може да се управлява дистанционно. Основният проблем беше липсата на директно верижно шаси. В крайна сметка вече бях решил да си купя радиоуправляем танк за разглобяване, но имах късмет в магазина, сред боклука намерих Snow Leopard (Pershing) - USA M26 с изгоряла електроника, но един; напълно изправна механична част. Точно това беше необходимо.

В допълнение към шасито бяха закупени два стабилизатора на напрежението за четкови мотори, статив за камера от две серво, уеб камера с хардуерна поддръжка на mjpeg и външна WiFi карта TP-LINK TL-WN7200ND. Малко по-късно към списъка с устройства бяха добавени преносим високоговорител, USB аудио високоговорител Creative SoundBlaster Play и обикновен микрофон, както и няколко USB хъба за свързване на всичко това към контролния модул, който стана Raspberry Pi. Кулата от резервоара беше демонтирана; управлението беше много неудобно, тъй като цялата стандартна механика беше изградена на конвенционални двигатели без обратна връзка.

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

Захранване и окабеляване


Напълних най-голямата Li-Po батерия, която можеше да се побере в отделението за батерии. Оказа се двуклетъчна 3300 mAh батерия в твърд корпус, която обикновено се използва в модели автомобили. Бях твърде мързелив да запоявам, така че за всички превключвания използвах стандартен макет със стъпка 2,54. По-късно се появи втори на горния капак и кабел, който ги свързваше. За всеки от двата двигателя имах собствен регулатор на напрежението, който като бонус осигурява стабилизирана мощност от около 5,6 волта. Raspberry и WiFi картата се захранваха от един регулатор, захранването от втория отиваше към серво и USB хъб с периферни устройства.

Трябва да го накарам да се движи

Трябваше да се започне по някакъв начин. Малина не е избрана случайно. Първо, той ви позволява да инсталирате нормален пълноправен Linux, и второ, той има куп GPIO крака, които, наред с други неща, могат да генерират импулсен сигнал за серво и контролери на скоростта. Можете да генерирате такъв сигнал с помощта на помощната програма ServoBlaster. След стартиране той създава файл /dev/servoblaster, в който можете да запишете нещо като 0=150, където 0 е номерът на канала, а 150 е дължината на импулса в десетки микросекунди, тоест 150 е 1,5 милисекунди (повечето сервомеханизмите имат диапазон от стойности 700-2300 ms).
И така, свързваме регулаторите към 7 и 11 GPIO пина и стартираме сервобластера с командата:

# сервод --min=70 --max=230 --p1pins=7.11
Сега, ако напишете редовете 0=230 и 1=230 в /dev/servoblaster, резервоарът ще се втурне напред.

Вероятно достатъчно за първия път. Ако ви харесва статията, бавно ще пиша подробности в следващите публикации. И накрая още малко снимки, както и едно прясно заснето видео. Вярно, качеството не беше много добро, така че предварително се извинявам на естетите.

Arduino резервоар с bluetooth управление е чудесен пример за това колко лесно е да се направи специални знанияможете да превърнете обикновен радиоуправляем танк в страхотна играчка, управлявана от android устройства. Освен това дори не е нужно да редактирате кода; специализиран софтуер ще направи всичко. Може би сте чели моята предишна статия за превръщането на модел на радиоуправляема кола в контролна. С танка всичко е почти същото, само че може да върти купола и да променя ъгъла на повдигане на цевта.

Като начало представям кратък прегледвъзможности на моя занаят:

Сега нека вземем всичко по ред.

Arduino резервоар с bluetooth управление - хардуер.

Най-важното нещо в хардуера е шаси, тоест тяло. Без самия резервоар нищо няма да ни се получи. Когато избирате кутия, обърнете внимание на свободното пространство вътре. Там ще трябва да поставим внушителен брой компоненти. Попаднах на този вариант и ще работим с него.

Дарител за нашия проект.

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

Размери: 330х145х105 милиметра без цевта. Корпусът е оборудван с четири двигателя: два за задвижване, един за купола и един за цевта. Първоначално танкът можеше да стреля с гумени куршуми, но механизмът беше счупен, така че просто го отрязах от цевта. След това имаше достатъчно място за поставяне на пълнежа.

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

FLProg интерфейс

ArduinoIDE ще се отвори, но вие знаете как да работите в него 😀 .

Arduino резервоар с bluetooth управление - схема на свързване

Към платката свързваме периферни елементи, в нашия случай bluetooth, мостове и светодиоди, според проекта.

Списък на използваните щифтове

Списъкът показва номерата на пиновете на Arduino и тяхното предназначение. Всичко се коментира. Контактите за управление на движението и купола с цевта са свързани директно от мостовете, не е необходим допълнителен комплект за тяло. Свързването на аналоговия вход за измерване на напрежението трябва да се извърши чрез резистивен делител, тъй като напрежението на платката на arduino е ПЕТ ВОЛА!!! Това е много важно, когато праговото напрежение на микросхемата бъде превишено, контролерът се изпраща в друг свят. Така че внимавай. В моя случай бяха използвани две литиево-йонни батерии от формат 18650, разделител с резистори 1 KOhm и 680 Ohm. Ако вашето работно напрежение е различно от моето, отидете на всеки онлайн калкулатор, за да изчислите резистивния делител и го изчислете сами, въз основа на факта, че изходното му напрежение трябва да бъде равно на пет волта. Ако се съмнявате в способностите си, тогава изобщо не е нужно да използвате измерване на напрежението на батерията; Спрях да карам така - време е за презареждане.

Светодиодите, ако има такива, трябва да бъдат свързани чрез резистори за ограничаване на тока.

Arduino резервоар с bluetooth управление - програма за таблет или смартфон.

Както и в предишния модел, ще използваме програма за Android устройства, наречена HmiKaskada. Публикувам безплатна версия на тази програма, която можете да изтеглите от YandexDisk. Проектът ми е направен в платена версия и не е съвместим с безплатната версия на програмата. Така че допълнителният материал е посветен на създаването на проект в безплатната версия.

Контролен интерфейс

IN готов проектНа таблета има и индикатор за нивото на батерията и това е основа за проекта. Така че да започваме...

Първо, нека създадем проект с един работещ екран; След това ще свържем нашия bluetooth модул към таблета. За да направите това, отидете на редактиране на списъка със сървъри и щракнете върху плюса в горния десен ъгъл. Избираме нашия bluetooth от списъка и му даваме име. Сега е настроен и готов за работа. Следващата стъпка е да инсталирате подложката за работната зона. За да направите това, отидете в менюто „други - фон“ на основното работно пространство и заредете изображението на интерфейса. Можете да използвате моя или да създадете свое собствено изображение. Всъщност ще работи без настройка на фона, това е само за красота.

Сега нека да преминем към поставянето на контролите. Отидете в менюто „setters“ и плъзнете бутона в работната зона. В менюто с бутони щракнете върху адреса и въведете например 1#0.12. Където 1 е адресът на платката Arduino, а 12 е адресът на променливата от проекта. Променливите, използвани в проекта, могат да се видят в дървото на проекта.

Списък с флаг адреси

Настройката на индикатора за зареждане на батерията е абсолютно същата. Създаваме регистър за съхранение във формат Integer в проекта Arduino и присвояваме адреса му на индикатора. Например 1#10, персонализирайте индикатора по ваш вкус.

Когато всички контроли са създадени, конфигурирани и разположени на местата си, щракнете върху стартиране на проекта. Android ще се свърже с резервоара и можете да се насладите на свършената работа.

Arduino резервоар с bluetooth управление - сглобяване.

Сглобяването на занаята отне около два часа от времето ми, но резултатът надмина всички очаквания. Танкът се оказа доста пъргав и реагира мигновено на команди. Трябваше да се поправя със скоростната кутия, която задвижва верижите на танка. Разпадна се, но за мое щастие скоростите не бяха повредени и малко лепило, грес и прави ръце го върнаха в действие. Стандартната батерия трябваше да бъде заменена с две литиево-йонни батерии 18650, свързани последователно в държач. Крайното захранващо напрежение беше 6 - 8,4 волта, в зависимост от нивото на заряд на батерията. Също така трябваше да сменим двигателя, задвижващ купола; той имаше късо съединение.

Смених диодите на фаровете на моята играчка. Жълтите със слаб ток не бяха абсолютно приятни и бяха запоени върху ярко бели от запалки с фенерчета :) Сега това верижно чудо е удобно за шофиране дори в пълна тъмнина. Снимки преди и след:

Чудесен)

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

Ето как се получи "пълнежът".

Arduino резервоар с bluetooth управление - заключение.

Както се вижда от горния материал, няма миризма на копаене в кода при създаване на резервоар, управляван от Bluetooth. Също така не се нуждаем от разширени познания по електроника. Всички операции са интуитивни и са насочени към начинаещи. Първоначално програмата HMIKaskada беше разработена като алтернатива на скъпите индустриални HMI панели, но беше полезна и при създаването на играчка. Надявам се, че съм ви помогнал да разсеете мита за трудността при създаването на многозадачни проекти на Arduino.

Ще се радвам на всякакъв вид коментари по статията, както и коментари. Все пак и аз се уча с вас...

моб_инфо