Съдържание:

Контролирайте вашата RC равнина с акрометъра на телефона си: 15 стъпки (със снимки)
Контролирайте вашата RC равнина с акрометъра на телефона си: 15 стъпки (със снимки)

Видео: Контролирайте вашата RC равнина с акрометъра на телефона си: 15 стъпки (със снимки)

Видео: Контролирайте вашата RC равнина с акрометъра на телефона си: 15 стъпки (със снимки)
Видео: ΛΕΡΟΣ Επ.1 "Το κρυφό διαμάντι των Δωδεκάνησων" 👍LEROS ISLAND Ep.1 "The hidden gem of the Dodecanese" 2024, Ноември
Anonim
Image
Image
Контролирайте вашия RC самолет с акселерометъра на телефона си
Контролирайте вашия RC самолет с акселерометъра на телефона си

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

Повечето от вас имат смарт телефони, нали? Друго голямо мнозинство от вас, електронни момчета, използват Android поради гъвкавостта си. Искам да кажа, че обичам iPhone, но не е толкова универсален по отношение на свързването му чрез Bluetooth или хардуер към Arduino или друг микроконтролер. Така че защо не само акселерометърът на телефона? Затова взех идеята и се втурнах с нея. Две седмици по -късно ви представям този проект!

За съжаление потребители на IOS, този проект се отнася само за потребители на Android.

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

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

Цена на проекта: (безплатно, ниско, средно, горе, сериозно?)

Трудност на проекта: (Лек, Лесен, Среден, Труден, Експерт, Майстор)

Време на проекта: (Над чаша кафе, средно, над тенджера кафе, няколко дни)

По -долу е бърз полет, който имах по -рано, когато беше малко ветровито!

Стъпка 1: Гледайте цялото видео

Image
Image

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

Стъпка 2: ВАЖНО АКТУАЛИЗИРАНЕ [7/16/18]

Всъщност започнах да правя този проект няколко години по -късно и трябваше да се върна към това, за да получа малко информация: D

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

Когато компилирате, ред 20 ви дава грешка.

int ppm [chanAmount];

Просто го променете на:

int ppm [2];

И ето го! Насладете се на останалата част от урока и ако случайно сте направили този проект, превъртете надолу до дъното на i'ble и кликнете върху бутона „Аз го направих“и качете снимка!

Стъпка 3: Съставки:

Изтегляния
Изтегляния

От какво се нуждае всяка добра рецепта? Съставки. За съжаление може да се наложи да отидете някъде другаде, освен в ъгъла си.

Съставки:

  • Android телефон
  • Arduino (Uno, Nano, Micro, всъщност няма значение)
  • Източник на захранване за Arduino. Ще използвам малък 2 -клетъчен 500mAh LiPo.
  • HC - 05 или HC -06 Bluetooth модул
  • FTDI Breakout Board (може да се направи с Arduino, но няма да ви показвам как)
  • 3.5 мм Mono мъжки аудио щепсел. Стерео жак НЯМА да работи! Опитах!
  • 2x светодиоди и съответни резистори
  • Приложение на проекта
  • 2-жилен проводник (кабелът на високоговорителя работи чудесно или дълъг USB кабел)
  • Термосвиваема или електрическа лента
  • Женски заглавки за щифтове (за щита Arduino, ако решите да направите такъв)
  • Perf board (за Arduino Shield трябва да изберете да направите такъв.

Инструменти:

  • Поялник
  • Машини за сваляне на тел
  • Ножици
  • Пробийте с различни свредла
  • Пистолет за горещо лепило

Стъпка 4: Изтегляния

Ако искате да изтеглите.zip файл с всичко, от което се нуждаете, можете да го намерите тук. Иначе прочетете по -долу.

Първо трябва да изтеглите приложението Amarino и Amarino Toolkit и да ги изтеглите на телефона си. Можете да направите това с микро SD или просто да използвате любимия си уебсайт за хостинг на файлове, като Google Drive.

Второ, трябва да изтеглите библиотеката MeetAndroid за Arduino IDE. За да инсталирате библиотеката, следвайте стъпките внимателно.

ЗА ПК:

  1. Затворете Arduino IDE.
  2. Разархивирайте папката MeetAndroid. Сега трябва да имате разархивирана папка MeetAndroid_4. Отворете тази папка и изрежете папката вътре, наречена MeetAndroid.
  3. Придвижете се до C: / Program Files (x86) Arduino / libraries и поставете в MeetAndroid. Ако сте направили всичко правилно, трябва да изглежда като първата снимка.
  4. Отворете отново IDE на Arduino и трябва да видите в библиотеките под „Принос“на библиотеката MeetAndroid.

ЗА MAC

  1. Затворете Arduino IDE.
  2. Разархивирайте папката MeetAndroid. Трябва сега и да разархивирате папката MeetAndroid_4. Отворете тази папка и копирайте папката вътре, наречена MeetAndroid.
  3. Придвижете се до приложението Arduino, щракнете с десния бутон на мишката, за да покажете съдържанието на пакета и след това Съдържание/Java/библиотеки и поставете в папката MeetAndroid.
  4. Отворете отново IDE на Arduino и трябва да видите в библиотеките под „Принос“на библиотеката MeetAndroid.

Накрая изтеглете и двете ми скици на Arduino, които са приложени в долната част на тази стъпка (включени в.zip).

Стъпка 5: Конфигуриране на HC-06

Конфигуриране на HC-06
Конфигуриране на HC-06
Конфигуриране на HC-06
Конфигуриране на HC-06
Конфигуриране на HC-06
Конфигуриране на HC-06

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

HC-06 ------- FTDI Breakout Board

| -------------- |

GND ----- GND

VCC ------ 3.3v

TX -------- RX (или DRX)

RX -------- TX (или DTX)

  1. Включете платката за пробив на FTDI в компютъра си.
  2. Отворете Arduino IDE. Изберете наличния com порт. (уверете се, че няма Arduino или нещо друго, включено в компютъра).
  3. Отворете серийния монитор (няма нужда от код!)
  4. Изберете 9600 за скоростта на предаване в долния десен ъгъл на прозореца на com. Въведете „AT“(трябва да е с големи букви) и натиснете изпрати. Ако не получите нищо обратно, това е добре. Това означава, че вашето устройство е конфигурирано с различна скорост на предаване. Опитайте скорост на предаване 115200 и въведете "AT". Ако все още не получавате нищо, опитайте всяка скорост на предаване и въведете „AT“на всички, докато не получите отговор. Ако не получите отговор, най-вероятно не сте свързали HC-06 правилно. Проверете връзките.
  5. Ако получите отговора "ОК", тогава страхотно! Ако получите този отговор при която и да е друга скорост на предаване, тогава 115200, трябва да го промените на 115200. За да направите това, въведете „AT+BUAD8“. Ще получите отговора „OK115200“. Ще трябва да промените скоростта на обмен на 115200, за да продължите да говорите с Bluetooth. След това можете да правите неща като промяна на името, като въведете „AT+NAMERANDOM“произволно като желаното от вас име. Вече можете да затворите серийния монитор.

Стъпка 6: Непълната верига за тестване

Тази схема е доста проста. Трябва да захранвате Arduino (чрез USB, тъй като ще трябва да качим някои неща към него), след това да свържете HC-06. Просто се свържете, следвайте връзките по -долу.

HC-05/6 --------- Arduino

|=============|

GND ------------ GND

VCC ------------- 5v

TX -------------- RX

RX -------------- TX

Стъпка 7: Инсталиране на Amarino и Amarino Toolkit

Инсталиране на Amarino и Amarino Toolkit
Инсталиране на Amarino и Amarino Toolkit
Инсталиране на Amarino и Amarino Toolkit
Инсталиране на Amarino и Amarino Toolkit
Инсталиране на Amarino и Amarino Toolkit
Инсталиране на Amarino и Amarino Toolkit

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

  1. Придвижете се до Настройки/Защита и превъртете надолу. Трябва да видите поле с неизвестни източници и малко поле до него. Докоснете полето и активирайте. Ще се покаже диалогов прозорец, който ви казва колко рисковано е това; звучи добре нали? Така че докоснете бутона OK. Вижте снимки 1, 2 и 3.
  2. Сега можете да отворите приложението си Amarino и да следвате инструкциите на екрана. Не е твърде трудно, просто натиснете да.
  3. Инсталирайте Amarino Toolkit. Също не е твърде трудно.

Стъпка 8: Настройване на Bluetooth

Настройка на Bluetooth
Настройка на Bluetooth
Настройка на Bluetooth
Настройка на Bluetooth
Настройка на Bluetooth
Настройка на Bluetooth

С включен проект (Bluetooth чипът е включен) намерете настройките за Bluetooth на телефона си. Трябва да сдвоите телефона си с Bluetooth чип. Докоснете сканиране за устройства и вашето устройство трябва да се покаже като HC-05 или HC-06, освен ако не сте го кръстили по-рано. Той ще поиска пин номер и ще бъде 1234. (Знам, че съм гений за хакване на устройството и намиране на паролата на uber-secret). Вижте снимки 1, 2 и 3. Уверете се, че сте сдвоени с устройството и сте готови за следващата стъпка. ЗАБЕЛЕЖКА: светлината на Bluetooth устройството няма да свети постоянно, когато сдвоите телефона си! Открих, че на телефона си трябва да го рестартирам след този процес, за да се покаже в приложението Amarino, така че продължете и рестартирайте телефона си.

Стъпка 9: Амарино

Амарино
Амарино
Амарино
Амарино
Амарино
Амарино

Време е да отворите Амарино. Ще ви бъдат представени бележките за изданието и докоснете OK. Благодаря ви Бонифаз Кауфман за създаването на това прекрасно приложение. Цифрите по -долу съответстват на номера на картината, напр. стъпка 1 = снимка 1.

  1. Екран за добре дошли. Докоснете „Добавяне на устройство“.
  2. Вашето устройство вече трябва да е в списъка; докоснете го. Ако не се появи, опитайте да рестартирате телефона си и се уверете, че Bluetooth устройството е свързано към телефона.
  3. Сега трябва да отидете на този екран. Докоснете „Свързване“. Това може да отнеме няколко секунди.
  4. Ако се свърже, светлината на Bluetooth устройството ще свети постоянно и в горната част ще видите „Активни връзки: 1. Сега докоснете името на устройството и НЕ прекъсвайте връзката.
  5. Докоснете „Показване на събития“.
  6. Не трябва да има събития. Докоснете „Добавяне на събитие“.
  7. Ще се появи списък и ще искате да изберете акселерометъра. Имайте предвид тези други сензори, които са вградени във вашия телефон. Те може да са полезни един ден за по -късен проект!
  8. Ето само няколко настройки за акселерометъра. Уверете се, че плъзгачът е на "много бързо" и че визуализаторът на данни е на "Текст". След това докоснете запазване.
  9. Ако виждате цифри отдясно на "Сензор за акселерометър", значи сте добре. Вече можете да оставите телефона си сам. Ако не виждате числа, натиснете продължително сивата зона, за да изведете меню.
  10. Изберете „Принудително активиране“.
  11. Бинго! Числа! Наклонете телефона си и почувствайте как числата съответстват на акселерометъра.
  12. Вече можете да поставите телефона си на равна повърхност и да се приготвите да започнете кодиране!

Стъпка 10: Пропускане на кода

Пропускане на кода
Пропускане на кода

Така че, ако не искате да си изцапате ръцете с кода и просто искате да качите и отидете, може да имате малко проблеми. Досега съм използвал само телефона си, така че не знам дали телефоните на други хора са същите. Ако изтеглите приложението SensoDuino и кликнете върху раздела „Вградени сензори“, трябва да можете да намерите своя акселерометър. Ако акселерометърът е MPU6050, тогава това е същият сензор, който имам аз, и вероятно няма нужда да редактирате код. Ако имате същия сензор, просто опитайте кода, качен на тази стъпка.

Ако не, тогава вероятно ще трябва да следвате следващите стъпки.

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

Присвояване на данни за акселерометър
Присвояване на данни за акселерометър
Присвояване на данни за акселерометър
Присвояване на данни за акселерометър
Присвояване на данни за акселерометър
Присвояване на данни за акселерометър
Присвояване на данни за акселерометър
Присвояване на данни за акселерометър

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

В този момент вече трябва да свържете вашия Arduino правилно към вашия HC-06 и трябва да накарате Amarino да изпраща номера към вашия Arduino чрез Bluetooth. Проверете два пъти, за да се уверите, че HC-06 все още е обвързан и качете следната скица в Arduino. (Приложен към тази стъпка).

ЗАБЕЛЕЖКА: Когато качвате скици в Arduino, ще трябва да изключите TX и RX на HC-06 от Arduino. Arduino не може да се качва, докато RX и TX са свързани с нещо.

След като качите тази скица в Arduino, отворете серийния монитор. Трябва да видите три числа, събрани заедно, разделени с кутия (□). Пример: [0.01 □ 0.02 □□ 9.21] Първите две числа са рол и пич. Дори не се опитах да разбера какво е третото: D. Вашият телефон може или не може да бъде подобен на този. Следвайте тези стъпки, за да разберете кои номера са ролкови и кои номера са за вашия телефон.

  1. Поставете телефона си върху равна повърхност. Насочете телефона си така, че камерата/високоговорителят да е насочен наляво, а микрофонът - надясно. (снимка 2).
  2. Наклонете лявата страна на телефона нагоре (снимка 3) (по оста Z, вижте снимка 1 за оста) до 45 градуса. Забележете кой номер се променя драстично в серийния монитор. Този номер ще бъде вашата ролка.
  3. Наклонете телефона към вас (снимка 4) (по оста X, вижте снимка 1 за оста) до 45 градуса.. Каквото и число да се промени драстично е терена. Запишете това.

Сега, когато знаем кои два набора от числа са roll and pitch, можем да отидем и да променим кода. Ще разгледаме раздел 2.

височина = данни [0];

roll = данни [1];

Ако погледнахте по -рано в кода, ще забележите, че данните за акселерометъра се поставят в масив. Масивът "данни" има три "петна", наречени "индекси" за числа, индекс 0, индекс 1 и индекс 2. Сега, когато знаете кои числа представляват височина и ролка, можете да присвоите на цяло число "височина" и "ролка" на правилните числа в масива. Пример: ако третият набор от числа се промени, когато наклоните телефона си наляво/надясно, което е превъртано, тогава ще променим кода на следния:

roll = данни [2];

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

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

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

След като зададете „roll and“pitch “на правилните числа в данните от масива, можем да продължим. Погледнете снимка 1 докрай вляво. Това са необработените данни от вашия акселерометър. Но не можем да използваме тези числа трябва директно да ги пренасочим до стойност между 1000 и 2000 със средна точка 1500. За да мащабираме числата нагоре, ще умножим „roll“и „pitch“по 1000. Това ще премахне всички десетични знаци и ще дайте ни прилична разделителна способност Сега, ако погледнете числата във втората колона, можете да видите „новите“числа.

  1. Наклонете телефона си наляво 45 градуса (превъртете) и запишете този номер.
  2. Наклонете телефона си надясно на 45 градуса (завъртете) и запишете този номер.
  3. Наклонете телефона си напред 45 градуса (стъпка) и запишете този номер.
  4. Наклонете телефона си назад на 45 градуса (стъпка) и запишете този номер.

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

Пример: Наклонете телефона 45 градуса надясно. Показването на номера за ролка е 5500. За втория номер просто използвайте -5500. Това ще бъдат нашите точки за влизане и излизане. Не искаме нашият TX да регистрира нещо повече от тези точки. След това трябва да пренасочим тези стойности към 1000-2000. В моя случай -5500 до 5500 бяха числата, които получих, когато накланях телефона си на 45 градуса и когато търкалих телефона си на 45 градуса. Затова използвах следния код: ЗАБЕЛЕЖКА: Време е да изтриете / * и * / в раздел 4, за да активирате този код. Също така изтрийте целия раздел 3.

pitchval = карта (стъпка, -5500, 5500, 1000, 2000) -12;

rollval = карта (ролка, -5500, 5500, 1000, 2000) + 7;

Сега -12 и +7 са корекции, за да приведат "pitchval" и "rollval" до центъра на 1500. Уверете се, че телефонът ви е на равна повърхност, когато правите тези корекции. Ако вашият център не е на 1500, тогава самолетът ви може да се отклони в посока, въпреки че имате ниво на телефона си.

Трябва да ограничим rollval и pitchval. Не искаме да отидат повече от 2000 или по -малко от 1000 или иначе нещата започват да се объркват! Затова въвеждаме това…

pitchval = ограничение (pitchval, 1000, 2000);

rollval = ограничаване (rollval, 1000, 2000);

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

  • Когато завъртите телефона наляво, rollval трябва да намалее до 1000.
  • Когато завъртите надясно, трябва да се увеличи до 2000.
  • Когато насочите телефона си назад, височината на тона трябва да намалее до 1000.
  • Когато насочите телефона си напред, той трябва да се увеличи до 2000.
  • И двата центъра трябва да са на 1500, когато поставите телефона си на равна повърхност.

Ако когато завъртите телефона си наляво и ролвалът се увеличава, а не намалява, променете 1000, който сте умножили „хвърляне“на -1000 (в раздел 2). Същото важи и за "височината", ако числата са обърнати.

Примерен код за фиксиране на ролка в горния пример.

стъпка = (стъпка * -1000); // умножаваме по 1000, за да се отървем от десетичните знаци

ролка = (ролка * -1000);

Така че, ако всичко работи добре, можем да добавим това към крайния код!

  1. Отворете скицата на ReadRawAccel. Копирайте всичко под производителя на страница 1.
  2. Отворете скицата на TiltTX_Final. Превъртете до дъното, където пише „поставете страница 1 тук“и заменете целия код под него.
  3. Качете TiltTX_Final скицата във вашия arduino.

Стъпка 13: Време за верига

Време за верига!
Време за верига!
Време за верига!
Време за верига!
Време за верига!
Време за верига!
Време за верига!
Време за верига!

Сега, когато приключихме с трудната част, е време да направим веригата. Можете да изберете да не правите щит, за да спестите време и части, но аз винаги обичам да правя проектите си с щитове, в случай че трябва да използвам този Arduino с друг проект. За този проект ще използвам моя Arduino Nano, защото искам всичко това да се побере в малка кутия. Но можете да използвате всеки друг Arduino, от Mega до LilyPad. Така че изучете схемата, гледайте видеото и започнете да запоявате! Няма да публикувам цялата снимка тук, защото ви показвам стъпка по стъпка как да я направите във видеото.

Стъпка 14: Настройване на инструктора

След като приключите с включването на веригата, свържете се с телефона си и включете моно жака в порта за обучение на гърба на радиото. Задайте множителя на 1,3 и поставете телефона си върху равна повърхност. След това калибрирайте.

Обърнете внимание, че канал 0 е дросел, канал 1 е ролка, а канал 2 е височина.

Ако искате да промените това, влезте в кода тук:

ppm [0] = дроселна клапа;

ppm [1] = rollval; ppm [2] = височина на терена;

Стъпка 15: Заключение

Някои хора са имали проблем с кода, който не се компилира. Защо не знам, защото ми работи добре и на двете ми платформи, но ако получите съобщение за грешка (грешка не е дефинирана в този обхват), тогава трябва да поставите ред 1 след цикъла за грешка на void.

1. MeetAndroid meetAndroid (грешка); // Android неща за Bluetooth. Не докосвайте this.void error (uint8_t флаг, uint8_t стойности) // още неща за bluetooth. {Serial.print ("Грешка:"); Serial.println (флаг); }

Когато приключите, трябва да изглежда така:

void error (uint8_t флаг, uint8_t стойности) // още неща за bluetooth.

{Serial.print ("Грешка:"); Serial.println (флаг); } MeetAndroid meetAndroid (грешка); // Android неща за Bluetooth. Не пипайте това.

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

HavocRC, ~ AJ

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