Sadržaj:

Upravljajte RC ravninom pomoću akromerometra telefona: 15 koraka (sa slikama)
Upravljajte RC ravninom pomoću akromerometra telefona: 15 koraka (sa slikama)

Video: Upravljajte RC ravninom pomoću akromerometra telefona: 15 koraka (sa slikama)

Video: Upravljajte RC ravninom pomoću akromerometra telefona: 15 koraka (sa slikama)
Video: Remote Identification u Hrvatskoj za dronove 2024 RID 2024, Novembar
Anonim
Image
Image
Upravljajte RC ravninom pomoću akromerometra na telefonu
Upravljajte RC ravninom pomoću akromerometra na telefonu

Jeste li ikada poželjeli kontrolirati svoj RC avion naginjanjem objekta? Uvijek mi je ideja bila iza glave, ali nikad je nisam proradio do prošle sedmice. Moje početne misli su bile da koristim troosni akcelerometar, ali tada sam imao ideju…

Većina vas ima pametne telefone, zar ne? Još jedna velika većina vas elektronskih ljudi koristi Android zbog svoje fleksibilnosti. Mislim da volim iPhone, ali nije toliko svestran u pogledu povezivanja putem Bluetootha ili hardwarea na Arduino ili drugi mikrokontroler. Pa zašto ne samo mjerač ubrzanja na telefonu? Pa sam uzeo ideju i trčao s njom. Dve nedelje kasnije predstavljam vam ovaj projekat!

Nažalost IOS korisnici, ovaj projekt se odnosi samo na Android korisnike.

Sada ovaj projekt nema kontrolu nad kormilom ili gasom. Ako primijetite da sam dodao kôd da upotrijebite potenciometar na pinu A1 za kontrolu gasa, iako ga ja sam neću koristiti. Ja ću samo koristiti gas svog predajnika.

Ako želite dovršiti ovaj projekt, predlažem da prije početka rada pogledate cijeli video. Elektronske vještine potrebne za ovaj projekt su minimalne, ali težak dio je rad s kodom. Zato uzmite lemilicu i Arduino i krenimo.

Cijena projekta: (besplatno, nisko, srednje, gore, ozbiljno?)

Teškoće projekta: (Lako, Lako, Srednje, Teško, Stručnjak, Majstor)

Vrijeme projekta: (Preko šolje kafe, srednje, preko šoljice kafe, nekoliko dana)

Ispod je brzi let koji sam imao ranije kad je bilo malo vjetrovito!

Korak 1: Pogledajte cijeli video

Image
Image

Video i tekst pokrivaju gotovo iste stvari, osim što tekst ne uključuje postupak korak po korak za izgradnju projekta i povezivanje svega. U tekstu je malo manje pismeno o nekim kodiranjima.

Korak 2: VAŽNO AŽURIRANJE [7/16/18]

Zapravo sam počeo stvarati ovaj projekt nekoliko godina kasnije i morao sam se vratiti na ovo kako bih dobio neke informacije: D

U svakom slučaju otkrio sam da postoji mala greška u kodu, i pokazat ću vam da to riješite za samo nekoliko sekundi. Ako preuzmete kôd, on se neće kompajlirati. Morate ući i promijeniti mali red.

Prilikom kompajliranja, red 20 daje grešku.

int ppm [chanAmount];

Jednostavno ga promijenite u:

int ppm [2];

Evo ga! Uživajte u ostatku vodiča, a ako ste slučajno napravili ovaj projekt, pomaknite se do dna i'blea i kliknite gumb "Uspio sam" i postavite sliku!

Korak 3: Sastojci:

Preuzimanja
Preuzimanja

Šta treba svakom dobrom receptu? Sastojci. Nažalost, možda ćete za ovo morati otići negdje drugdje osim u svoju trgovinu.

Sastojci:

  • Android telefon
  • Arduino (Uno, Nano, Micro, nije važno)
  • Izvor napajanja za Arduino. Koristit ću mali 2 -ćelijski 500mAh LiPo.
  • HC - 05 ili HC -06 Bluetooth modul
  • FTDI Breakout Board (može se učiniti s Arduinom, ali neću vam pokazati kako)
  • 3.5 mm Mono muški audio utikač. Stereo priključak NEĆE raditi! Pokušao sam!
  • 2x LED diode i odgovarajući otpornici
  • Ograđivanje projekta
  • 2-žilna žica (žica zvučnika odlično funkcionira ili dugačak USB kabel)
  • Termoskupljajuća ili električna traka
  • Ženski pin headeri (za Arduino štit ako ga odlučite napraviti)
  • Perf ploča (za Arduino Shield ako izaberete da je napravite).

Alati:

  • Lemilica
  • Strojevi za skidanje žice
  • Makaze
  • Bušite raznim burgijama
  • Pištolj za vruće ljepilo

Korak 4: Preuzimanja

Ako želite preuzeti.zip datoteku sa svime što vam je potrebno za ovo, to možete pronaći ovdje. Inače pročitajte u nastavku.

Prije svega morate preuzeti aplikaciju Amarino i Amarino Toolkit i postaviti ih na svoj telefon. To možete učiniti s mikro SD -om ili jednostavno upotrijebiti svoju omiljenu web stranicu za hosting datoteka, poput Google diska.

Drugo, morate preuzeti MeetAndroid biblioteku za Arduino IDE. Da biste instalirali biblioteku, pažljivo slijedite ove korake.

ZA PC:

  1. Zatvorite Arduino IDE.
  2. Raspakirajte mapu MeetAndroid. Sada biste trebali imati raspakiranu mapu MeetAndroid_4. Otvorite ovu fasciklu i izrežite je iznutra pod nazivom MeetAndroid.
  3. Idite na C: / Program Files (x86) Arduino / libraries i zalijepite u MeetAndroid. Ako ste sve uradili ispravno, to bi trebalo izgledati kao prva slika.
  4. Ponovno otvorite Arduino IDE i trebali biste vidjeti u bibliotekama u odjeljku "Doprinos" MeetAndroid lib.

ZA MAC

  1. Zatvorite Arduino IDE.
  2. Raspakirajte mapu MeetAndroid. Sada biste trebali raspakirati fasciklu MeetAndroid_4. Otvorite ovu mapu i kopirajte mapu iznutra pod nazivom MeetAndroid.
  3. Idite do aplikacije Arduino, desnim klikom miša pokažite sadržaj paketa, a zatim Sadržaj/Java/biblioteke i zalijepite u mapu MeetAndroid.
  4. Ponovno otvorite Arduino IDE i trebali biste vidjeti u bibliotekama pod "Doprinos" MeetAndroid lib.

Na kraju preuzmite obje moje Arduino skice koje su priložene na dnu ovog koraka (uključene u.zip).

Korak 5: Konfiguriranje HC-06

Konfiguriranje HC-06
Konfiguriranje HC-06
Konfiguriranje HC-06
Konfiguriranje HC-06
Konfiguriranje HC-06
Konfiguriranje HC-06

Vaš HC-06 Bluetooth modul nije samo izašao iz kutije spreman za upotrebu u ovom projektu. Moramo promijeniti samo jednu jednostavnu stvar: brzinu prijenosa. Ovisno o tome od koga kupujete svoj, može se postaviti na različite brzine prijenosa. Dobio sam dva HC-06 od dva različita prodavača, a svaki je radio različitom brzinom prijenosa. Moramo ga promijeniti na 115200 bita u sekundi. Uspostavite sljedeće veze:

HC-06 ------- Odbojna ploča FTDI-ja

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

GND ----- GND

VCC ------ 3.3v

TX -------- RX (ili DRX)

RX -------- TX (ili DTX)

  1. Priključite FTDI prekidač u računar.
  2. Otvorite Arduino IDE. Odaberite koji god port je dostupan. (provjerite da li su računari priključeni na Arduino ili bilo šta drugo).
  3. Otvorite serijski monitor (nema potrebe za kodom!)
  4. Odaberite 9600 za brzinu prijenosa u donjem desnom kutu prozora com. Upišite "AT" (mora biti velika slova) i pritisnite send. Ako ništa ne dobijete nazad, u redu je. To znači da je vaš uređaj konfiguriran s drugom brzinom prijenosa. Isprobajte brzinu prijenosa od 115200 i upišite "AT". Ako i dalje ne dobijete ništa, isprobajte svaku brzinu prijenosa i unesite "AT" na sve dok ne dobijete odgovor. Ako ne dobijete odgovor, najvjerojatnije niste pravilno povezali HC-06. Proverite veze.
  5. Ako dobijete odgovor "OK", onda je sjajno! Ako dobijete taj odgovor na bilo kojoj drugoj brzini prijenosa onda 115200, morate je promijeniti na 115200. Da biste to učinili, upišite "AT+BUAD8". Dobit ćete odgovor "OK115200". Morat ćete promijeniti brzinu prijenosa na 115200 da biste nastavili razgovarati s Bluetoothom. Tada možete učiniti stvari poput promjene imena upisivanjem "AT+NAMERANDOM" nasumično imena koje želite. Sada možete zatvoriti serijski monitor.

Korak 6: Nepotpuni krug za testiranje

Ovo kolo je prilično jednostavno. Morate napajati Arduino (putem USB-a jer ćemo na njega morati prenijeti neke stvari), a zatim spojiti HC-06. Samo se povežite i slijedite donje veze.

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

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

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

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

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

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

Korak 7: Instalirajte Amarino i Amarino Toolkit

Instaliranje Amarina i Amarino alata
Instaliranje Amarina i Amarino alata
Instaliranje Amarina i Amarino alata
Instaliranje Amarina i Amarino alata
Instaliranje Amarina i Amarino alata
Instaliranje Amarina i Amarino alata

Trebali ste do sada preuzeti i prenijeti svoju Amarino aplikaciju i komplet alata na svoj telefon. Ali prije nego što ga instalirate morate promijeniti postavku na telefonu. Vaš telefon vam neće dopustiti da prvo instalirate aplikaciju jer nije certificirana aplikacija iz Android playstorea. Zato ćemo morati dozvoliti telefonu da instalira nesertifikovane aplikacije. Ovo je sasvim jednostavno.

  1. Idite na Postavke/Sigurnost i pomaknite se prema dolje. Trebali biste vidjeti okvir s natpisom Nepoznati izvori i mali okvir pored njega. Dodirnite okvir i omogućite. Otvorit će okvir za dijalog koji vam govori koliko je ovo rizično; zvuči dobro zar ne? Zato dodirnite to dugme U redu. Pogledajte slike 1, 2 i 3.
  2. Sada možete otvoriti aplikaciju Amarino i slijediti upute na ekranu. Nije previše teško, samo pritisnite da.
  3. Instalirajte Amarino Toolkit. Nije ni teško.

Korak 8: Postavljanje Bluetootha

Postavljanje Bluetootha
Postavljanje Bluetootha
Postavljanje Bluetootha
Postavljanje Bluetootha
Postavljanje Bluetootha
Postavljanje Bluetootha

S uključenim projektom (Bluetooth čip je uključen) pronađite Bluetooth postavke telefona. Morate upariti telefon sa Bluetooth čipom. Dodirnite skeniranje za uređaje i vaš bi se uređaj trebao pojaviti kao HC-05 ili HC-06, osim ako ste ga ranije imenovali. Tražit će PIN, a bit će 1234. (Znam da sam genij za hakiranje uređaja i pronalaženje uber-tajne lozinke). Pogledajte slike 1, 2 i 3. Provjerite jeste li upareni s uređajem i jeste li spremni za sljedeći korak. NAPOMENA: svjetlo na Bluetooth uređaju neće upaliti stalno kada uparite telefon! Otkrio sam da sam ga na ovom telefonu morao ponovno pokrenuti nakon ovog procesa da bi se pojavio u aplikaciji Amarino, pa nastavite i ponovo pokrenite telefon.

Korak 9: Amarino

Amarino
Amarino
Amarino
Amarino
Amarino
Amarino

Vrijeme je da otvorimo Amarina. Dobit ćete napomene o izdanju i dodirnite U redu. Hvala Bonifaz Kaufman što ste stvorili ovu divnu aplikaciju. Brojevi ispod odgovaraju broju slike, npr. korak 1 = slika 1.

  1. Ekran dobrodošlice. Dodirnite "Dodaj uređaj".
  2. Vaš uređaj bi sada trebao biti na listi; dodirnite ga. Ako se ne pojavi, pokušajte ponovo pokrenuti telefon i provjerite je li Bluetooth uređaj povezan s telefonom.
  3. Sada biste trebali doći na ovaj ekran. Dodirnite "Poveži se". Ovo može potrajati nekoliko sekundi.
  4. Ako se poveže, lampica na Bluetooth uređaju će zasvijetliti i na vrhu ćete vidjeti "Aktivne veze: 1. Sada dodirnite naziv uređaja i NE prekidajte vezu.
  5. Dodirnite "Prikaži događaje".
  6. Ne bi trebalo biti nikakvih događaja. Dodirnite "Dodaj događaj".
  7. Pojavit će se popis i htjet ćete odabrati mjerač ubrzanja. Imajte na umu ove druge senzore koji su ugrađeni u vaš telefon. Možda će im jednog dana dobro doći za kasniji projekat!
  8. Evo samo nekoliko postavki za mjerač ubrzanja. Uvjerite se da je klizač uključen "vrlo brzo" i da je vizualizator podataka na "Tekst". Zatim dodirnite sačuvaj.
  9. Ako vidite brojeve desno od "Senzora akcelerometra", onda ste dobri. Sada možete ostaviti telefon na miru. Ako ne vidite brojeve, dugo pritisnite sivu zonu da otvorite meni.
  10. Odaberite "Prisilno omogući".
  11. Bingo! Brojevi! Nagnite telefon i osjetite kako se brojevi podudaraju s mjeračem ubrzanja.
  12. Sada možete postaviti telefon na ravnu površinu i pripremiti se za početak kodiranja!

Korak 10: Preskakanje koda

Preskakanje koda
Preskakanje koda

Dakle, ako ne želite uprljati ruke kodom, a samo želite učitati i otići, možda ćete biti u maloj nevolji. Do sada sam koristio samo svoj telefon pa ne znam da li su telefoni drugih ljudi isti. Ako preuzmete aplikaciju SensoDuino i kliknete na karticu "Ugrađeni senzori", trebali biste pronaći svoj mjerač ubrzanja. Ako je akcelerometar MPU6050, to je isti senzor koji ja imam, i vjerovatno ne morate uređivati kôd. Ako imate isti senzor, samo isprobajte kôd postavljen na ovaj korak.

U suprotnom ćete vjerojatno morati slijediti sljedeće korake.

Korak 11: Dodjela podataka akcelerometra

Dodela podataka akcelerometra
Dodela podataka akcelerometra
Dodela podataka akcelerometra
Dodela podataka akcelerometra
Dodela podataka akcelerometra
Dodela podataka akcelerometra
Dodela podataka akcelerometra
Dodela podataka akcelerometra

Sada prelazimo na zabavni dio, petljajući se sa Arduino skicom! Ako se vaša skica ne sastavlja, pogledajte posljednji korak ovog uputstva.

U ovom trenutku trebali biste svoj Arduino ispravno povezati s HC-06, a Amarino bi trebao slati brojeve na vaš Arduino putem Bluetootha. Dvaput provjerite je li HC-06 još uvijek vezan i postavite sljedeću skicu na Arduino. (U prilogu ovog koraka).

NAPOMENA: Prilikom postavljanja skica na Arduino morat ćete isključiti TX i RX HC-06 iz Arduina. Arduino se ne može učitati dok su RX i TX na nešto povezani.

Nakon što otpremite ovu skicu na Arduino, otvorite serijski monitor. Trebali biste vidjeti tri broja spojena zajedno odvojena kutijom (□). Primjer: [0,01 □ 0,02 □□ 9,21] Prva dva broja su roll and pitch. Nisam ni pokušao da shvatim šta je treće: D. Vaš telefon može ili ne mora biti sličan ovom. Slijedite ove korake da biste saznali koji su brojevi u redu, a koji u visini.

  1. Postavite telefon na ravnu površinu. Okrenite telefon tako da kamera/zvučnik za uho bude usmjeren nalijevo, a mikrofon na desnu stranu. (slika 2).
  2. Nagnite lijevu stranu telefona prema gore (slika 3) (duž osi Z, pogledajte sliku 1 za os) do 45 stepeni. Zapazite koji se broj drastično mijenja na serijskom monitoru. Ovaj broj će biti vaš.
  3. Nagnite telefon prema sebi (slika 4) (duž osi X, pogledajte sliku 1 za osu) do 45 stepeni.. Koji god se broj drastično promijenio, to je visina. Snimite ovo.

Sada kada znamo koja su dva skupa brojeva roll and pitch možemo ići promijeniti kôd. Bacićemo pogled na odeljak 2.

pitch = podaci [0];

roll = podaci [1];

Ako ste ranije pogledali kôd, primijetit ćete da se podaci akcelerometra stavljaju u niz. Niz "podaci" ima tri "tačke" koje se nazivaju "indeksi" za brojeve, indeks 0, indeks 1 i indeks 2. Sada kada znate koji brojevi predstavljaju visinu tona i rola, možete dodijeliti cijeli broj "visinu" i "rolanje" tačne brojeve u nizu. Primjer: ako se treći skup brojeva promijenio kada ste nagnuli telefon ulijevo/udesno, što je okrenuto, tada bismo kôd promijenili u ovaj:

roll = podaci [2];

I tako je jednostavno. Ako je vaš telefon sličan mom, tada će prvi broj biti glasan, drugi će se okretati, a treći broj ćemo biti neki drugi aspekt tri dimenzije.

Korak 12: Mapiranje podataka akcelerometra

Mapiranje podataka akcelerometra
Mapiranje podataka akcelerometra

Nakon što dodijelite "roll and" pitch "ispravnim brojevima u podacima polja, možemo krenuti dalje. Pogledajte sliku 1 skroz lijevo. Ovo su sirovi podaci s vašeg akcelerometra. Ali ne možemo koristiti ove brojeve moramo izravno preslikati na vrijednost između 1000 i 2000 sa srednjom točkom 1500. Za skaliranje brojeva pomnožit ćemo "roll" i "pitch" sa 1000. Time ćete se riješiti svih decimala i bit će dajte nam pristojnu rezoluciju. Sada ako pogledate brojeve u drugoj koloni možete vidjeti 'nove' brojeve. Postavimo neke ulazne i izlazne tačke!

  1. Nagnite telefon ulijevo za 45 stepeni (okretanje) i snimite ovaj broj.
  2. Nagnite telefon udesno za 45 stepeni (okretanje) i snimite ovaj broj.
  3. Nagnite telefon prema naprijed za 45 stepeni (visina) i zabilježite ovaj broj.
  4. Nagnite telefon unatrag za 45 stepeni (visina) i zabilježite ovaj broj.

Ako su dva broja otprilike isti, kada ste telefon nagnuli za 45 stepeni u oba smjera, možete odbaciti drugi broj i koristiti samo prvi. Kreirajte drugi broj uzimajući negativ prvog broja.

Primjer: Nagnite telefon za 45 stepeni udesno. Broj prikaza za roll je 5500. Za drugi broj samo upotrijebite -5500. Ovo će biti naše ulazne i izlazne tačke. Ne želimo da naš TX registrira ništa više od tih bodova. Zatim moramo te vrijednosti ponovno premjestiti na 1000-2000. U mom slučaju -5500 do 5500 su bili brojevi koje sam dobio prilikom naginjanja telefona za 45 stepeni i prilikom okretanja telefona za 45 stepeni. Stoga sam upotrijebio sljedeći kôd: NAPOMENA: Vrijeme je da izbrišete / * i * / u odjeljku 4 da biste omogućili ovaj kôd. Izbrišite i cijeli odjeljak 3.

pitchval = karta (pitch, -5500, 5500, 1000, 2000) -12;

rollval = mapa (roll, -5500, 5500, 1000, 2000) + 7;

Sada su -12 i +7 podešavanja kako bi se "pitchval" i "rollval" doveli do središta 1500. Uvjerite se da je vaš telefon na ravnoj površini kada izvršite ova podešavanja. Ako vaš centar nije na 1500, vaš avion može skrenuti u smjeru iako imate nivo telefona.

Moramo ograničiti rollval i pitchval. Ne želimo da idu više od 2000 ili manje od 1000 ili će stvari početi da se kvari! Pa otkucamo ovo…

pitchval = ograničenje (pitchval, 1000, 2000);

rollval = ograničiti (rollval, 1000, 2000);

Zadnja stvar koju trebamo učiniti s ovim brojevima je da provjerimo odgovaraju li oni u skladu s načinom naginjanja telefona. Provjerite je li vaš telefon okrenut prema gore s kamerom na lijevoj strani i mikrofonom na desnoj strani.

  • Kada okrenete telefon ulijevo, rollval bi se trebao smanjiti na 1000.
  • Kada okrenete desno, trebalo bi se povećati na 2000.
  • Kada okrenete telefon unatrag, pitchval bi se trebao smanjiti na 1000.
  • Kada preusmjerite telefon prema naprijed, trebao bi se povećati na 2000.
  • Oba centra bi trebala biti na 1500 kada postavite telefon na ravnu površinu.

Ako kada okrenete telefon ulijevo i rollval se povećava, a ne smanjuje, promijenite 1000 koji ste pomnožili "roll" sa -1000 (u odjeljku 2). Isto vrijedi i za "pitch" ako su brojevi obrnuti.

Primjer koda za fiksiranje role u gornjem primjeru.

pitch = (pitch * -1000); // pomnožite sa 1000 da biste se riješili decimala

roll = (roll * -1000);

Dakle, ako sve radi dobro, ovo možemo dodati konačnom kodu!

  1. Otvorite ReadRawAccel skicu. Kopirajte sve ispod proizvođača stranice 1.
  2. Otvorite TiltTX_Finalnu skicu. Pomaknite se do dna gdje piše "zalijepite stranicu 1 ovdje" i zamijenite sav kôd ispod njega.
  3. Prenesite TiltTX_Finalnu skicu na svoj arduino.

Korak 13: Vrijeme kruga

Circuitry Time!
Circuitry Time!
Circuitry Time!
Circuitry Time!
Circuitry Time!
Circuitry Time!
Circuitry Time!
Circuitry Time!

Sada kada smo završili s teškim dijelom, vrijeme je da napravimo krug. Možete izabrati da ne napravite štit da biste uštedjeli vrijeme i dijelove, ali ja uvijek volim svoje projekte stvarati sa štitovima u slučaju da moram koristiti taj Arduino s drugim projektom. Za ovaj projekt koristit ću svoj Arduino Nano jer želim da sve ovo stane u malu kutiju. Ali mogli biste koristiti bilo koji drugi Arduino, od Mega do LilyPada. Zato proučite shemu, pogledajte video i počnite s lemljenjem! Ovdje neću objaviti cijelu sliku jer vam u videu korak po korak pokazujem kako to napraviti.

Korak 14: Postavljanje trenera

Sada kada ste završili s uključivanjem strujnog kola, povežite se sa telefonom i priključite mono utičnicu u priključak za obuku na stražnjoj strani radija. Postavite množitelj na 1,3 i postavite telefon na ravnu površinu. Zatim kalibrirajte.

Napomena 0, kanal 0 je prigušivač, kanal 1 je rola, a kanal 2 je visina.

Ako želite promijeniti ovo, unesite kôd ovdje:

ppm [0] = gas;

ppm [1] = rollval; ppm [2] = pitchval;

Korak 15: Zaključak

Neki ljudi su imali problem sa kompiliranjem koda. Zašto ne znam jer mi dobro radi na obje moje platforme, ali ako dobijete poruku o grešci (greška nije definirana u ovom opsegu), tada vam je potreban red 1 nakon petlje greške void.

1. MeetAndroid meetAndroid (greška); // Android bluetooth stvari. Ne dirajte this.void error (zastavica uint8_t, vrijednosti uint8_t) // više stvari o bluetoothu. {Serial.print ("Greška:"); Serial.println (zastava); }

Kada završite, to bi trebalo izgledati ovako:

greška void (zastavica uint8_t, vrijednosti uint8_t) // više bluetooth stvari.

{Serial.print ("Greška:"); Serial.println (zastava); } MeetAndroid meetAndroid (greška); // Android bluetooth stvari. Ne diraj ovo.

Zaista se nadam da vam je ovo uputstvo bilo zanimljivo i svježe. Pokušao sam osigurati da je lako slijediti. Ako vas bilo što zbuni, videozapis ide u malo više detalja nego što to čini instruktor. Ako naiđete na bilo koji problem, kontaktirajte me i rado ću vam pomoći sve dok je vaše pitanje relevantno. Dajte ovom instruktoru glas i postavite sliku ispod svoje replikacije, a ako ste snimili video, postavite vezu! Ostavite povratne informacije ispod!

HavocRC, ~ AJ

Preporučuje se: