Indholdsfortegnelse:

Styr dit RC -fly med din telefons acclerometer: 15 trin (med billeder)
Styr dit RC -fly med din telefons acclerometer: 15 trin (med billeder)

Video: Styr dit RC -fly med din telefons acclerometer: 15 trin (med billeder)

Video: Styr dit RC -fly med din telefons acclerometer: 15 trin (med billeder)
Video: Как тушить капусту, чтобы всё съели. Тушёная капуста, пошаговый рецепт 2024, Juli
Anonim
Image
Image
Styr dit RC -fly med din telefons acclerometer
Styr dit RC -fly med din telefons acclerometer

Har du nogensinde ønsket at styre dit RC -fly ved at vippe et objekt? Jeg har altid haft ideen i baghovedet, men jeg har aldrig forfulgt den før i den sidste uge. Mine første tanker var at bruge et tredobbelt akse accelerometer, men så havde jeg en idé…

De fleste af jer har smart -telefoner, ikke? Og et andet stort flertal af jer elektroniske fyre derude bruger Androids på grund af dets fleksibilitet. Jeg mener, jeg elsker iPhone, men den er ikke så alsidig med hensyn til at forbinde den via Bluetooth eller hardwire til en Arduino eller anden mikrokontroller. Så hvorfor ikke bare telefonens accelerometer? Så jeg tog ideen og løb med den. To uger senere præsenterer jeg dig dette projekt!

Beklager IOS -brugere, dette projekt vedrører kun Android -brugere.

Nu har dette projekt ikke kontrol over roret eller gashåndtaget. Hvis du vil bemærke, at jeg tilføjede kode, så du kunne bruge et potentiometer på pin A1 til at kontrollere gashåndtaget, selvom jeg ikke selv vil bruge det. Jeg vil bare bruge min senders gas.

Hvis du gerne vil fuldføre dette projekt, foreslår jeg, at du ser hele videoen, før du begynder at arbejde. De elektroniske færdigheder, der kræves til dette projekt, er minimale, men den hårde del er at arbejde med koden. Så tag dit loddejern og Arduino og lad os komme i gang.

Projektomkostninger: (gratis, lav, medium, deroppe, seriøst?)

Projektproblem: (Breezy, Easy, Medium, Hard, Expert, Master)

Projekttid: (Over en kop kaffe, medium, over en gryde kaffe, flere dage)

Nedenfor er en hurtig flyvning, jeg havde tidligere, da det var lidt blæsende!

Trin 1: Se hele videoen

Image
Image

Videoen og teksten dækker stort set de samme ting undtagen teksten inkluderer ikke trin for trin processen med at bygge projektkassen og forbinde alt. Teksten analfabeterer lidt mere om nogle af de involverede kodninger.

Trin 2: VIGTIG OPDATERING [7/16/18]

Jeg begyndte faktisk at lave dette projekt et par år senere, og jeg var nødt til at vende tilbage til dette, for at få nogle oplysninger: D

Under alle omstændigheder opdagede jeg, at der er en lille fejl med koden, og det viser jeg dig rette på bare et par sekunder. Hvis du downloader koden, kompileres den ikke. Du skal gå ind og ændre en lille linje.

Når du kompilerer, giver linje 20 dig en fejl.

int ppm [chanAmount];

Du skal bare ændre det til:

int ppm [2];

Og der går du! Nyd resten af selvstudiet, og hvis du tilfældigvis lavede dette projekt, skal du rulle ned til bunden af filen og klikke på knappen "Jeg klarede det" og uploade et billede!

Trin 3: Ingredienser:

Downloads
Downloads

Hvad har enhver god opskrift brug for? Ingredienser. Desværre skal du muligvis gå et andet sted end din hjørnebutik for disse.

Ingredienser:

  • Android -telefon
  • Arduino (Uno, Nano, Micro, gør ikke rigtig noget)
  • Strømkilde til Arduino. Jeg vil bruge en lille 2 -cellet 500mAh LiPo.
  • HC - 05 eller HC -06 Bluetooth -modul
  • FTDI Breakout Board (kan gøres med Arduino, men jeg viser dig ikke hvordan)
  • 3,5 mm mono hanstik. Et stereostik virker IKKE! Jeg har prøvet!
  • 2x LED'er og tilsvarende modstande
  • Projektbilag
  • 2-leder ledning (højttalerledning fungerer godt eller et langt USB-kabel)
  • Varmekrymp eller elektrisk tape
  • Kvinde Pin Headers (til Arduino -skjoldet, hvis du vælger at lave et)
  • Perf board (til Arduino Shield, hvis du vælger at lave et.

Værktøjer:

  • Loddekolbe
  • Wire Strippers
  • Saks
  • Bor med forskellige bor
  • Varm limpistol

Trin 4: Downloads

Hvis du gerne vil downloade en.zip -fil med alt, hvad du skal bruge til denne i'ble, kan du finde det her. Ellers læs herunder.

Først skal du downloade Amarino -appen og Amarino Toolkit og hente den på din telefon. Du kan gøre dette med et micro SD eller bare bruge dit foretrukne filhostingswebsted, f.eks. Google Drive.

For det andet skal du downloade MeetAndroid -biblioteket til Arduino IDE. Følg trinene omhyggeligt for at installere biblioteket.

TIL PC:

  1. Luk Arduino IDE.
  2. Udpak MeetAndroid -mappen. Du skal nu have en udpakket MeetAndroid_4 -mappe. Åbn denne mappe, og skær den mappe inde, der hedder MeetAndroid.
  3. Naviger til C: / Program Files (x86) Arduino / libraries og indsæt i MeetAndroid. Hvis du gjorde alt korrekt, skulle det ligne det første billede.
  4. Åbn Arduino IDE igen, og du bør se i bibliotekerne under 'Bidraget' MeetAndroid lib.

TIL MAC

  1. Luk Arduino IDE.
  2. Udpak MeetAndroid -mappen. Du skal nu pakke MeetAndroid_4 -mappen ud. Åbn denne mappe, og kopier den mappe, der hedder MeetAndroid.
  3. Naviger til Arduino -programmet, højreklik med Vis pakkeindhold og derefter Indhold/Java/biblioteker og indsæt i MeetAndroid -mappen.
  4. Åbn Arduino IDE igen, og du bør se i bibliotekerne under 'Bidraget' MeetAndroid lib.

Hent endelig begge mine Arduino -skitser, der er knyttet til bunden af dette trin (inkluderet i.zip).

Trin 5: Konfiguration af HC-06

Konfiguration af HC-06
Konfiguration af HC-06
Konfiguration af HC-06
Konfiguration af HC-06
Konfiguration af HC-06
Konfiguration af HC-06

Dit HC-06 Bluetooth-modul kommer ikke bare ud af kassen klar til brug i dette projekt. Vi skal bare ændre en enkelt ting: baudhastigheden. Afhængigt af hvem du køber din fra, kan den indstilles til forskellige baudhastigheder. Jeg fik to HC-06'er fra to forskellige sælgere, og hver kørte med en anden baudrate. Vi skal ændre det til 115200 bits i sekundet. Lav følgende forbindelser:

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

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

GND ----- GND

VCC ------ 3.3v

TX -------- RX (eller DRX)

RX -------- TX (eller DTX)

  1. Slut FTDI -breakout -kortet til din computer.
  2. Åbn Arduino IDE. Vælg, hvilken com port der er tilgængelig. (sørg for at der ikke er tilsluttet Arduino'er eller andet til computeren).
  3. Åbn den serielle skærm (ingen brug for kode!)
  4. Vælg 9600 for baudhastigheden nederst til højre i com -vinduet. Skriv "AT" (det SKAL være caps) og tryk Send. Hvis du ikke får noget tilbage, er det fint. Det betyder, at din enhed er konfigureret med en anden baudhastighed. Prøv en baudhastighed på 115200, og skriv "AT". Hvis du stadig ikke får noget, kan du prøve hver baudrate og skrive "AT" på dem alle, indtil du får et svar. Hvis du ikke får et svar, har du sandsynligvis ikke tilsluttet HC-06 korrekt. Kontroller forbindelser.
  5. Hvis du får svaret "OK" så fantastisk! Hvis du får det svar på en anden baudhastighed derefter 115200, skal du ændre den til 115200. For at gøre denne type "AT+BUAD8". Du får svaret "OK115200". Du bliver nødt til at ændre baudhastigheden til 115200 for at fortsætte med at tale til Bluetooth. Derefter kan du gøre ting som at ændre navnet ved at skrive "AT+NAMERANDOM" tilfældigt det navn, du ønsker. Du kan nu lukke den serielle skærm.

Trin 6: Det ufuldstændige kredsløb til test

Dette kredsløb er ret simpelt. Du skal forsyne Arduino (via USB, da vi skal uploade nogle ting til den), og tilslut derefter HC-06. Bare tilslut følg nedenstående forbindelser.

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

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

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

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

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

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

Trin 7: Installation af Amarino og Amarino Toolkit

Installation af Amarino og Amarino Toolkit
Installation af Amarino og Amarino Toolkit
Installation af Amarino og Amarino Toolkit
Installation af Amarino og Amarino Toolkit
Installation af Amarino og Amarino Toolkit
Installation af Amarino og Amarino Toolkit

Du skulle have downloadet og overført din Amarino -app og værktøjskasse til din telefon nu. Men før du installerer det, skal du ændre en indstilling på din telefon. Din telefon lader dig ikke installere appen i starten, fordi den ikke er en certificeret applikation fra Android playstore. Så vi bliver nødt til at tillade telefonen at installere ikke-certificerede apps. Dette er ganske enkelt.

  1. Naviger til Indstillinger/Sikkerhed, og rul ned. Du bør se en boks, der siger Ukendte kilder og en lille boks ved siden af. Tryk på boksen og aktiver. Det vil åbne en dialogboks, der fortæller dig, hvor risikabelt dette er; lyder godt ikke? Så tryk på den OK knap. Se billederne 1, 2 og 3.
  2. Nu kan du åbne din Amarino -app og følge vejledningen på skærmen. Ikke for svært bare slå ja.
  3. Installer Amarino Toolkit. Heller ikke for svært.

Trin 8: Opsætning af Bluetooth

Opsætning af Bluetooth
Opsætning af Bluetooth
Opsætning af Bluetooth
Opsætning af Bluetooth
Opsætning af Bluetooth
Opsætning af Bluetooth

Når dit projekt er drevet (Bluetooth -chippen er tændt), finder du telefonens Bluetooth -indstillinger. Du skal parre din telefon med Bluetooth -chippen. Tryk på scan efter enheder, og din enhed skal vises som HC-05 eller HC-06, medmindre du har navngivet den tidligere. Det vil bede om et pinkode, og det vil være 1234. (Jeg ved, jeg er et geni for at hacke enheden og finde den uber-hemmelige adgangskode). Se billederne 1, 2 og 3. Sørg for, at du er parret med enheden, og at du er klar til det næste trin. BEMÆRK: lyset på Bluetooth -enheden vil ikke lyse konstant, når du parrer med din telefon! Jeg fandt ud af, at jeg på min telefon var nødt til at genstarte den efter denne proces, for at den kunne vises i Amarino -appen, så fortsæt og genstart din telefon.

Trin 9: Amarino

Amarino
Amarino
Amarino
Amarino
Amarino
Amarino

Tid til at åbne Amarino. Du vil blive præsenteret for udgivelsesnotaterne, og tryk på OK. Tak Bonifaz Kaufman for at have oprettet denne vidunderlige app. Tallene herunder svarer til billednummeret f.eks. trin 1 = billede 1.

  1. Velkomstskærm. Tryk på "Tilføj enhed".
  2. Din enhed skal nu være på listen; tryk på den. Prøv at genstarte din telefon, hvis den ikke vises, og sørg for, at Bluetooth -enheden er forbundet til telefonen.
  3. Du skulle nu komme til denne skærm. Tryk på "Connect". Dette kan tage et par sekunder.
  4. Hvis den tilsluttes, bliver lyset på Bluetooth -enheden fast, og du vil se øverst "Aktive forbindelser: 1. Tryk nu på enhedsnavnet, og afbryd IKKE.
  5. Tryk på "Vis begivenheder".
  6. Der bør ikke være begivenheder. Tryk på "Tilføj begivenhed".
  7. En liste vil dukke op, og du vil vælge accelerometeret. Husk disse andre sensorer, der er indbygget i din telefon. De kan komme godt med en dag til et senere projekt!
  8. Her er blot et par indstillinger for accelerometeret. Sørg for, at skyderen er "meget hurtig", og at datavisualiseringen er på "Tekst". Tryk derefter på Gem.
  9. Hvis du ser tal til højre for "Accelerometer Sensor", så er du god. Du kan lade din telefon være i fred nu. Hvis du ikke kan se tal, skal du trykke længe på det grå område for at få vist en menu.
  10. Vælg "Force Enable".
  11. Bingo! Tal! Vip din telefon og få en fornemmelse af, hvordan tallene svarer til accelerometeret.
  12. Du kan nu placere din telefon på en flad overflade og gøre dig klar til at starte med kodning!

Trin 10: Springe over koden

Springe over koden
Springe over koden

Så hvis du ikke vil gøre dine hænder beskidte med koden, og du bare vil uploade og gå, kan du have lidt problemer. Jeg har kun brugt min telefon indtil videre, så jeg ved ikke, om andre menneskers telefoner er de samme. Hvis du downloader appen SensoDuino og klikker på fanen "Indbyggede sensorer", skal du kunne finde dit accelerometer. Hvis du accelerometer er en MPU6050, så er det den samme sensor, som jeg har, og du behøver sandsynligvis ikke at foretage nogen kode redigering. Hvis du har den samme sensor, skal du bare prøve koden, der er uploadet til dette trin.

Hvis ikke, skal du sandsynligvis følge de næste trin.

Trin 11: Tildeling af accelerometerdata

Tildeling af accelerometerdata
Tildeling af accelerometerdata
Tildeling af accelerometerdata
Tildeling af accelerometerdata
Tildeling af accelerometerdata
Tildeling af accelerometerdata
Tildeling af accelerometerdata
Tildeling af accelerometerdata

Nu kommer vi til den sjove del og roder rundt med Arduino -skitsen! Hvis din skitse ikke kompilerer, kan du se det sidste trin i denne instruktive.

På dette tidspunkt skal du nu have din Arduino tilsluttet korrekt til din HC-06, og du skal have Amarino til at skubbe numre ud til din Arduino via Bluetooth. Dobbelttjek for at sikre, at HC-06 stadig er bundet, og upload den følgende skitse til Arduino. (Vedlagt dette trin).

BEMÆRK: Når du uploader skitser til Arduino, skal du fjerne TX og RX for HC-06 fra Arduino. Arduino kan ikke uploades til, mens RX og TX er forbundet til noget.

Efter at have uploadet denne skitse til Arduino, åbn den serielle skærm. Du skulle se tre numre blandet sammen adskilt af en boks (□). Eksempel: [0.01 □ 0.02 □□ 9.21] De to første tal er rulle og pitch. Jeg prøvede ikke engang at finde ud af, hvad den tredje var: D. Din telefon ligner muligvis denne. Følg disse trin for at finde ud af, hvilke numre der er roll, og hvilke numre der er pitch for din telefon.

  1. Sæt din telefon på en plan overflade. Ret telefonen, så kameraet/øretelefonen peger mod venstre, og mikrofonen peger mod højre. (billede 2).
  2. Vip telefonens venstre side op (billede 3) (langs Z -aksen, se billede 1 for aksen) til 45 grader. Bemærk hvilket nummer der ændrer sig drastisk i den serielle skærm. Dette nummer bliver din rulle.
  3. Vip telefonen mod dig (billede 4) (langs X -aksen, se billede 1 for aksen) til 45 grader.. Uanset antallet ændrer sig drastisk er tonehøjde. Optag dette.

Nu hvor vi ved, hvilke to sæt tal der er rulle og tonehøjde, kan vi gå og ændre koden. Vi tager et kig på afsnit 2.

pitch = data [0];

roll = data [1];

Hvis du kiggede tidligere i koden, vil du bemærke, at accelerometerets data er sat i en matrix. Arrayen "data" har tre 'spots' kaldet 'indekser' for tal, indeks 0, indeks 1 og indeks 2. Nu hvor du ved, hvilke tal der repræsenterer tonehøjde og rulle, kan du tildele heltalet "tonehøjde" og "rulle" til de korrekte tal i arrayet. Eksempel: hvis det tredje sæt numre ændrede sig, da du vippede din telefon til venstre/højre, hvilket er roll, så ville vi ændre koden til dette:

roll = data [2];

Og det er så simpelt som det. Hvis din telefon ligner min, vil det første nummer være pitch, det andet nummer vil være roll, og det tredje nummer er vi et andet aspekt af de tre dimensioner.

Trin 12: Kortlægning af accelerometerdata

Kortlægning af accelerometerdata
Kortlægning af accelerometerdata

Når du har "roll og" pitch "tildelt de korrekte numre i array -dataene, kan vi gå videre. Se på billede 1 hele vejen til venstre. Dette er rådataene fra dit accelerometer. Men vi kan ikke bruge disse tal direkte skal vi omdanne dem til en værdi mellem 1000 og 2000 med et midtpunkt på 1500. For at skalere tallene op vil vi gange "rul" og "tonehøjde" med 1000. Dette vil slippe af med alle decimalerne, og det vil giv os en anstændig opløsning. Hvis du nu ser på tallene i den anden kolonne, kan du se de "nye" tal. Lad os sætte nogle ind- og udpunkter!

  1. Vip din telefon til venstre 45 grader (rul) og registrer dette nummer.
  2. Vip din telefon til den rigtige 45 grader (rulle) og registrer dette nummer.
  3. Vip din telefon fremad 45 grader (tonehøjde) og registrer dette nummer.
  4. Vip din telefon baglæns 45 grader (tonehøjde) og registrer dette nummer.

Hvis de to numre er omtrent de samme, da du vippede din telefon 45 grader i begge retninger, kan du droppe det andet nummer og bare bruge det første. Opret et andet tal ved at tage det negative af det første tal.

Eksempel: Vip telefonen 45 grader til højre. Nummeret for rulle er 5500. For det andet tal skal du bare bruge -5500. Dette vil være vores ind og ud punkter. Vi ønsker ikke, at vores TX registrerer noget mere end disse punkter. Derefter skal vi omlægge disse værdier til 1000-2000. I mit tilfælde -5500 til 5500 var de numre, jeg fik, når jeg satte min telefon 45 grader, og når jeg rullede min telefon 45 grader. Så jeg brugte følgende kode: BEMÆRK: Det er nu tid til at slette / * og * / i afsnit 4 for at aktivere denne kode. Slet også hele afsnit 3.

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

rollval = kort (rulle, -5500, 5500, 1000, 2000) + 7;

Nu er -12 og +7 justeringer for at bringe "pitchval" og "rollval" til et center på 1500. Sørg for, at din telefon er på en plan overflade, når du foretager disse justeringer. Hvis dit center ikke er på 1500, kan dit fly svinge afsted i en retning, selvom du har dit telefonniveau.

Vi er nødt til at begrænse rollval og pitchval. Vi vil ikke have dem til at køre mere end 2000 eller mindre 1000 eller ellers begynder tingene at rode op! Så vi skriver dette…

pitchval = begrænsning (pitchval, 1000, 2000);

rollval = begrænsning (rollval, 1000, 2000);

Den sidste ting, vi skal gøre med disse numre, er at sikre, at de stemmer overens med den måde, vi vipper vores telefon på. Kontroller, om din telefon vender opad med dit kamera til venstre og mikrofonen til højre.

  • Når du ruller din telefon til venstre, skal rollval falde til 1000.
  • Når du ruller til højre, skal den stige til 2000.
  • Når du lægger din telefon baglæns, bør pitchval falde til 1000.
  • Når du slår din telefon frem, skal den stige til 2000.
  • Begge centre skal være på 1500, når du placerer din telefon på en plan overflade.

Hvis når du ruller din telefon til venstre, og rollval stiger frem for at falde, skal du ændre den 1000, du multiplicerede "roll" med til -1000 (i afsnit 2). Det samme gælder "pitch", hvis tallene vendes.

Eksempelkode til fastgørelse af rulle i eksemplet ovenfor.

pitch = (pitch * -1000); // gang med 1000 for at slippe af med decimalerne

rulle = (rulle * -1000);

Så hvis alt fungerer fint, kan vi tilføje dette til den endelige kode!

  1. Åbn ReadRawAccel -skitsen. Kopier alt under side1 -maker.
  2. Åbn TiltTX_Final -skitsen. Rul til bunden, hvor der står "indsæt side 1 her", og udskift al kode under den.
  3. Upload TiltTX_Final -skitsen til din arduino.

Trin 13: Kredsløbstid

Kredsløbstid!
Kredsløbstid!
Kredsløbstid!
Kredsløbstid!
Kredsløbstid!
Kredsløbstid!
Kredsløbstid!
Kredsløbstid!

Nu hvor vi er færdige med den hårde del, er det tid til at lave kredsløbet. Du vælger måske ikke at lave et skjold for at spare tid og dele, men jeg kan altid lide at lave mine projekter med skjolde, hvis jeg skulle bruge den Arduino med et andet projekt. Til dette projekt vil jeg bruge min Arduino Nano, fordi jeg vil have alt dette til at passe i en lille kasse. Men du kan bruge enhver anden Arduino, fra en Mega til en LilyPad. Så studer skematikken, se videoen og begynd at lodde! Jeg lægger ikke alt billedet her, fordi jeg viser dig trin for trin, hvordan du laver det i videoen.

Trin 14: Opsætning af træneren

Nu hvor du er færdig med kredsløbet, skal du slutte til din telefon og tilslut mono -stikket til træningsporten bag på radioen. Indstil multiplikatoren til 1,3, og placer din telefon på en plan overflade. Kalibrer derefter.

Bemærk, kanal 0 er gas, kanal 1 er rulle, og kanal 2 er pitch.

Hvis du vil ændre disse, skal du gå ind i koden her:

ppm [0] = gas;

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

Trin 15: Konklusion

Nogle mennesker har haft problemet med at koden ikke kompilerede. Hvorfor ved jeg ikke, fordi det fungerer fint for mig på begge mine platforme, men hvis du får fejlmeddelelsen (fejl ikke defineret i dette omfang), skal du placere linje 1 efter tomrumsfejlsløjfe.

1. MeetAndroid meetAndroid (fejl); // Android bluetooth ting. Rør ikke ved denne. Ugyldige fejl (uint8_t flag, uint8_t værdier) // flere bluetooth ting. {Serial.print ("Fejl:"); Serial.println (flag); }

Når du er færdig, skal det se sådan ud:

ugyldig fejl (uint8_t flag, uint8_t værdier) // flere bluetooth ting.

{Serial.print ("Fejl:"); Serial.println (flag); } MeetAndroid meetAndroid (fejl); // Android bluetooth ting. Rør ikke ved dette.

Jeg håber virkelig, at du fandt dette instruerbart interessant og frisk. Jeg forsøgte at sikre, at det er let at følge. Skulle du blive forvirret med noget, går videoen lidt mere i detaljer, så gør det instruerbare. Hvis du støder på problemer, bedes du kontakte mig, så hjælper jeg dig gerne, så længe dit spørgsmål er relevant. Giv denne instruktive en stemme, og læg et billede herunder til din replikation, og hvis du har lavet en video, skal du sende et link! Sørg for at efterlade feedback herunder!

HavocRC, ~ AJ

Anbefalede: