Innehållsförteckning:

Styr ditt RC -plan med telefonens acclerometer: 15 steg (med bilder)
Styr ditt RC -plan med telefonens acclerometer: 15 steg (med bilder)

Video: Styr ditt RC -plan med telefonens acclerometer: 15 steg (med bilder)

Video: Styr ditt RC -plan med telefonens acclerometer: 15 steg (med bilder)
Video: ТЕПЕРЬ НЕ ПРОПАДУ 10-ть самоделок ВЫРУЧАТ ГДЕ УГОДНО! 2024, November
Anonim
Image
Image
Styr ditt RC -plan med telefonens acclerometer
Styr ditt RC -plan med telefonens acclerometer

Har du någonsin velat styra ditt RC -flygplan genom att luta ett objekt? Jag har alltid haft idén i bakhuvudet men jag har aldrig drivit den förrän den senaste veckan. Mina första tankar var att använda en trippelaxelaccelerometer men då hade jag en idé…

De flesta av er har väl smarta telefoner? Och en annan stor majoritet av er elektroniska killar där ute använder Androids på grund av dess flexibilitet. Jag menar att jag älskar iPhone, men den är inte lika mångsidig när det gäller att ansluta den via Bluetooth eller hardwire till en Arduino eller annan mikrokontroller. Så varför inte bara telefonens accelerometer? Så jag tog idén och sprang med den. Två veckor senare presenterar jag detta projekt för dig!

Tyvärr IOS -användare, det här projektet gäller bara Android -användare.

Nu har detta projekt inte kontroll över rodret eller gasreglaget. Om du märker att jag har lagt till kod för att du ska kunna använda en potentiometer på stift A1 för att styra gasen, även om jag själv inte kommer att använda den. Jag ska bara använda min sändares gasreglage.

Om du vill slutföra detta projekt föreslår jag att du tittar på hela videon innan du börjar arbeta. De elektroniska färdigheter som krävs för detta projekt är minimala men det svåra är att arbeta med koden. Så ta tag i ditt lödkolv och Arduino och låt oss komma igång.

Projektkostnad: (gratis, låg, medium, där uppe, på allvar?)

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

Projekttid: (Över en kopp kaffe, medium, över en kopp kaffe, flera dagar)

Nedan är en snabb flygning som jag hade tidigare när det blåste lite!

Steg 1: Se hela videon

Image
Image

Videon och texten täcker i stort sett samma saker förutom att texten inte inkluderar steg -för -steg -processen för att bygga projektfallet och ansluta allt. Texten analfabeterar lite mer om några av de inblandade kodningarna.

Steg 2: VIKTIG UPPDATERING [7/16/18]

Jag började faktiskt göra det här projektet några år senare och jag var tvungen att återgå till detta för att få lite information: D

Hur som helst upptäckte jag att det finns ett litet fel med koden, och jag visar dig fixa det på bara några sekunder. Om du laddar ner koden kommer den inte att kompileras. Du måste gå in och ändra en liten rad.

När du kompilerar ger rad 20 dig ett fel.

int ppm [chanAmount];

Ändra det helt enkelt till:

int ppm [2];

Och där går du! Njut av resten av handledningen, och om du råkade göra detta projekt, rulla ner till botten av ikonen och klicka på "Jag klarade mig" och ladda upp en bild!

Steg 3: Ingredienser:

Nedladdningar
Nedladdningar

Vad behöver varje bra recept? Ingredienser. Tyvärr kan du behöva gå någon annanstans än din hörnhandlare för dessa.

Ingredienser:

  • Android telefon
  • Arduino (Uno, Nano, Micro, spelar egentligen ingen roll)
  • Strömkälla för Arduino. Jag ska använda en liten 2 -cell 500mAh LiPo.
  • HC - 05 eller HC -06 Bluetooth -modul
  • FTDI Breakout Board (kan göras med Arduino, men jag kommer inte att visa dig hur)
  • 3,5 mm mono hane ljudkontakt. Ett stereokontakt fungerar INTE! Jag har försökt!
  • 2x lysdioder och motsvarande motstånd
  • Projektbilaga
  • 2-ledarkabel (högtalarkabel fungerar bra eller en lång USB-kabel)
  • Värmekrympning eller eltejp
  • Kvinnliga stifthuvuden (för Arduino -skölden om du väljer att göra en)
  • Perf -bräda (för Arduino Shield om du väljer att göra en.

Verktyg:

  • Lödkolv
  • Wire Strippers
  • Sax
  • Borra med olika borr
  • Lim pistol

Steg 4: Nedladdningar

Om du vill ladda ner en.zip -fil med allt du behöver för detta kan du hitta det här. Annars läs nedan.

Först måste du ladda ner Amarino -appen och Amarino Toolkit och få den till din telefon. Du kan göra detta med ett micro SD eller bara använda din favoritwebbplats för filvärden, som Google Drive.

För det andra måste du ladda ner MeetAndroid -biblioteket för Arduino IDE. Följ stegen noggrant för att installera biblioteket.

FÖR PC:

  1. Stäng Arduino IDE.
  2. Packa upp MeetAndroid -mappen. Du bör nu ha en uppackad MeetAndroid_4 -mapp. Öppna den här mappen och klipp den mapp som heter MeetAndroid.
  3. Navigera till C: / Program Files (x86) Arduino / libraries och klistra in i MeetAndroid. Om du gjorde allt korrekt borde det se ut som den första bilden.
  4. Öppna Arduino IDE igen och du bör se i biblioteken under 'Bidraget' MeetAndroid lib.

FÖR MAC

  1. Stäng Arduino IDE.
  2. Packa upp MeetAndroid -mappen. Du bör nu och packa upp MeetAndroid_4 -mappen. Öppna den här mappen och kopiera mappen inuti MeetAndroid.
  3. Navigera till Arduino -programmet, högerklicka på visa paketinnehåll och sedan Innehåll/Java/bibliotek och klistra in i MeetAndroid -mappen.
  4. Öppna Arduino IDE igen och du bör se i biblioteken under 'Bidraget' MeetAndroid lib.

Slutligen ladda ner båda mina Arduino -skisser som är fästa längst ner i detta steg (ingår i.zip).

Steg 5: Konfigurera HC-06

Konfigurera HC-06
Konfigurera HC-06
Konfigurera HC-06
Konfigurera HC-06
Konfigurera HC-06
Konfigurera HC-06

Din HC-06 Bluetooth-modul kommer inte bara ur lådan redo att användas i detta projekt. Vi behöver bara ändra en enkel sak: överföringshastigheten. Beroende på vem du köper din från kan den vara inställd på olika överföringshastigheter. Jag fick två HC-06 från två olika säljare, och var och en körde med olika överföringshastighet. Vi måste ändra den till 115200 bitar per sekund. Gör följande anslutningar:

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

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

GND ----- GND

VCC ------ 3.3v

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

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

  1. Anslut FTDI -brytkortet till din dator.
  2. Öppna Arduino IDE. Välj vilken kom port som är tillgänglig. (se till att inga Arduino eller något annat är anslutet till datorn).
  3. Öppna Serial Monitor (inget behov av kod!)
  4. Välj 9600 för överföringshastigheten längst ned till höger i com -fönstret. Skriv "AT" (det måste vara caps) och tryck på skicka. Om du inte får tillbaka någonting är det bra. Det betyder att din enhet är konfigurerad med en annan överföringshastighet. Prova en överföringshastighet på 115200 och skriv "AT". Om du fortfarande inte får något, försök varje baud -hastighet och skriv "AT" på dem alla tills du får ett svar. Om du inte får något svar har du troligen inte kopplat upp HC-06 korrekt. Kontrollera anslutningarna.
  5. Om du får svaret "OK" då fantastiskt! Om du får det svaret på någon annan överföringshastighet sedan 115200, måste du ändra det till 115200. För att göra den här typen "AT+BUAD8". Du får svaret "OK115200". Du måste ändra överföringshastigheten till 115200 för att fortsätta prata med Bluetooth. Sedan kan du göra saker som att ändra namnet genom att skriva "AT+NAMERANDOM" slumpmässigt som namnet du vill ha. Du kan nu stänga seriell bildskärm.

Steg 6: Den ofullständiga kretsen för testning

Denna krets är ganska enkel. Du måste driva Arduino (via USB eftersom vi kommer att behöva ladda upp några saker till den) och anslut sedan HC-06. Anslut bara följ anslutningarna nedan.

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

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

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

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

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

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

Steg 7: Installera Amarino och Amarino Toolkit

Installera Amarino och Amarino Toolkit
Installera Amarino och Amarino Toolkit
Installera Amarino och Amarino Toolkit
Installera Amarino och Amarino Toolkit
Installera Amarino och Amarino Toolkit
Installera Amarino och Amarino Toolkit

Du borde ha laddat ner och överfört din Amarino -app och verktygslåda till din telefon nu. Men innan du installerar det måste du ändra en inställning på din telefon. Din telefon låter dig inte installera appen först eftersom det inte är ett certifierat program från Android playstore. Så vi måste låta telefonen installera ocertifierade appar. Detta är ganska enkelt.

  1. Navigera till Inställningar/Säkerhet och rulla nedåt. Du bör se en ruta med okända källor och en liten ruta bredvid. Klicka på rutan och aktivera. Det kommer att ta upp en dialogruta som berättar hur riskabelt detta är. låter bra va? Så tryck på den OK -knappen. Se bilderna 1, 2 och 3.
  2. Nu kan du öppna din Amarino -app och följa instruktionerna på skärmen. Inte för svårt bara slå ja.
  3. Installera Amarino Toolkit. Inte för svårt heller.

Steg 8: Konfigurera Bluetooth

Konfigurera Bluetooth
Konfigurera Bluetooth
Konfigurera Bluetooth
Konfigurera Bluetooth
Konfigurera Bluetooth
Konfigurera Bluetooth

Med ditt projekt påslaget (Bluetooth -chipet är på) hittar du telefonens Bluetooth -inställningar. Du måste koppla ihop din telefon med Bluetooth -chipet. Tryck på sök efter enheter och din enhet ska visas som HC-05 eller HC-06 om du inte namngav det tidigare. Det kommer att be om ett PIN-nummer, och det kommer att vara 1234. (Jag vet att jag är ett geni för att hacka enheten och hitta det uber-hemliga lösenordet). Se bilderna 1, 2 och 3. Se till att du är ihopparad med enheten och att du är redo för nästa steg. OBS: lampan på Bluetooth -enheten lyser inte fast när du parar med din telefon! Jag fann att på min telefon var jag tvungen att starta om den efter den här processen för att den skulle dyka upp i Amarino -appen, så fortsätt och starta om telefonen.

Steg 9: Amarino

Amarino
Amarino
Amarino
Amarino
Amarino
Amarino

Dags att öppna upp Amarino. Du kommer att presenteras med release -anteckningarna och trycka på OK. Tack Bonifaz Kaufman för att du skapade denna underbara app. Siffrorna nedan motsvarar bildnumret t.ex. steg 1 = bild 1.

  1. Välkomstskärm. Klicka på "Lägg till enhet".
  2. Din enhet ska nu finnas i listan; tryck på den. Om den inte dyker upp, försök starta om telefonen och se till att Bluetooth -enheten är ansluten till telefonen.
  3. Du bör nu komma till den här skärmen. Klicka på "Anslut". Detta kan ta några sekunder.
  4. Om den ansluts lyser lampan på Bluetooth -enheten fast och du kommer att se högst upp "Aktiva anslutningar: 1. Klicka nu på enhetsnamnet och koppla INTE bort.
  5. Klicka på "Visa evenemang".
  6. Det ska inte finnas några evenemang. Klicka på "Lägg till händelse".
  7. En lista dyker upp och du vill välja accelerometer. Tänk på dessa andra sensorer som är inbyggda i din telefon. De kan komma till nytta en dag för ett senare projekt!
  8. Här är bara några inställningar för accelerometern. Se till att reglaget är på "mycket snabbt" och att datavisualiseraren är på "Text". Tryck sedan på spara.
  9. Om du ser siffror till höger om "Accelerometer Sensor" är du bra. Du kan lämna telefonen ensam nu. Om du inte ser siffror, tryck länge på det grå området för att få fram en meny.
  10. Välj "Tvinga till".
  11. Bingo! Tal! Luta din telefon och få en känsla för hur siffrorna överensstämmer med accelerometern.
  12. Du kan nu placera din telefon på en plan yta och göra dig redo att börja koda!

Steg 10: Hoppa över koden

Hoppar över koden
Hoppar över koden

Så om du inte vill göra dina händer smutsiga med koden och du bara vill ladda upp och gå kan du ha lite problem. Jag har bara använt min telefon hittills så jag vet inte om andra telefoner är desamma. Om du laddar ner appen SensoDuino och klickar på fliken "Inbyggda sensorer" borde du kunna hitta din accelerometer. Om din accelerometer är en MPU6050 så är det samma sensor som jag har, och du behöver förmodligen inte göra någon kodredigering. Om du har samma sensor, prova bara koden som laddades upp till det här steget.

Om inte så måste du förmodligen följa nästa steg.

Steg 11: Tilldela accelerometerdata

Tilldela accelerometerdata
Tilldela accelerometerdata
Tilldela accelerometerdata
Tilldela accelerometerdata
Tilldela accelerometerdata
Tilldela accelerometerdata
Tilldela accelerometerdata
Tilldela accelerometerdata

Nu kommer vi till den roliga delen och bråkar med Arduino -skissen! Om din skiss inte kompilerar se det sista steget i denna instruerbara.

Vid denna tidpunkt bör du nu ha din Arduino ansluten ordentligt till din HC-06 och du bör få Amarino att trycka ut nummer till din Arduino via Bluetooth. Dubbelkolla för att se till att HC-06 fortfarande är bunden och ladda upp följande skiss till Arduino. (Bifogat till detta steg).

OBS: När du laddar upp skisser till Arduino måste du koppla bort TX och RX för HC-06 från Arduino. Arduino kan inte laddas upp till medan RX och TX är anslutna till något.

Efter att ha laddat upp denna skiss till Arduino öppnar du seriemonitorn. Du bör se tre siffror sammanblandade åtskilda av en ruta (□). Exempel: [0.01 □ 0.02 □□ 9.21] De två första siffrorna är roll och pitch. Jag försökte inte ens ta reda på vad den tredje var: D. Din telefon kanske liknar den här. För att ta reda på vilka nummer som är roll och vilka nummer som är pitch för din telefon, följ dessa steg.

  1. Ställ telefonen på en plan yta. Rikta telefonen så att kameran/öronhögtalaren pekar åt vänster och mikrofonen pekar åt höger. (bild 2).
  2. Luta telefonens vänstra sida uppåt (bild 3) (längs Z -axeln, se bild 1 för axeln) till 45 grader. Observera vilket nummer som ändras drastiskt i seriemonitorn. Detta nummer kommer att bli din roll.
  3. Luta telefonen mot dig (bild 4) (längs X -axeln, se bild 1 för axeln) till 45 grader.. Oavsett antal förändringar drastiskt är tonhöjd. Spela in detta.

Nu när vi vet vilka två uppsättningar nummer som är roll och pitch kan vi gå och ändra koden. Vi kommer att titta på avsnitt 2.

tonhöjd = data [0];

roll = data [1];

Om du tittade tidigare i koden märker du att accelerometerdata läggs in i en array. Arrayen "data" har tre "fläckar" som kallas "index" för tal, index 0, index 1 och index 2. Nu när du vet vilka siffror som representerar tonhöjd och rulle kan du tilldela heltalet "tonhöjd" och "rulla" till rätt siffror i matrisen. Exempel: om den tredje uppsättningen siffror ändrades när du lutade din telefon åt vänster/höger, vilket är rulle, skulle vi ändra koden till detta:

roll = data [2];

Och det är så enkelt som det. Om din telefon liknar min kommer det första numret att vara tonhöjd, det andra numret kommer att vara roll, och det tredje numret är vi en annan aspekt av de tre dimensionerna.

Steg 12: Kartläggning av accelerometerdata

Kartläggning av accelerometerdata
Kartläggning av accelerometerdata

När du har tilldelat "rulla och" tonhöjd "till rätt siffror i arraydata kan vi gå vidare. Titta på bild 1 hela vägen till vänster. Detta är rådata från din accelerometer. Men vi kan inte använda dessa siffror direkt måste vi göra om dem till ett värde mellan 1000 och 2000 med en mittpunkt på 1500. För att skala upp siffrorna multiplicerar vi "rulla" och "tonhöjd" med 1000. Detta kommer att bli av med alla decimaler och det kommer ge oss en anständig upplösning. Om du nu tittar på siffrorna i den andra kolumnen kan du se de "nya" siffrorna. Låt oss ställa in några in- och utpunkter!

  1. Luta telefonen åt vänster 45 grader (rulla) och spela in detta nummer.
  2. Luta telefonen till höger 45 grader (rulla) och spela in detta nummer.
  3. Luta telefonen framåt 45 grader (tonhöjd) och spela in detta nummer.
  4. Luta telefonen bakåt 45 grader (tonhöjd) och spela in detta nummer.

Om de två numren är ungefär samma för när du lutade telefonen 45 grader i båda riktningarna kan du släppa det andra numret och bara använda det första. Skapa ett andra tal genom att ta det negativa av det första talet.

Exempel: Luta telefonen 45 grader åt höger. Talet som visas för rullen är 5500. För det andra numret är det bara att använda -5500. Detta kommer att vara våra in- och utpunkter. Vi vill inte att vår TX ska registrera något mer än dessa punkter. Då måste vi göra om dessa värden till 1000-2000. I mitt fall -5500 till 5500 var de siffror som jag fick när jag lade telefonen 45 grader och när jag rullade min telefon 45 grader. Så jag använde följande kod: OBS: Det är nu dags att radera / * och * / i avsnitt 4 för att aktivera denna kod. Ta också bort hela avsnitt 3.

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

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

Nu är -12 och +7 justeringar för att få "pitchval" och "rollval" till ett centrum på 1500. Se till att telefonen är på en plan yta när du gör dessa justeringar. Om ditt centrum inte är på 1500 kan ditt plan svänga i en riktning trots att du har din telefonnivå.

Vi måste begränsa rollval och pitchval. Vi vill inte att de ska gå längre än 2000 eller mindre än 1000 eller så börjar saker och ting störa! Så vi skriver det här…

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

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

Det sista vi behöver göra med dessa nummer är att se till att de överensstämmer korrekt med hur vi lutar vår telefon. Kontrollera om telefonen är vänd uppåt med kameran till vänster och mikrofonen till höger.

  • När du rullar telefonen till vänster bör rollval minska till 1000.
  • När du rullar höger bör den öka till 2000.
  • När du ställer din telefon bakåt bör pitchval minska till 1000.
  • När du sätter telefonen framåt bör den öka till 2000.
  • Båda centren bör ligga på 1500 när du placerar din telefon på en plan yta.

Om när du rullar telefonen åt vänster och rollvalet ökar snarare än minskar, ändra 1000 du multiplicerade "roll" med till -1000 (i avsnitt 2). Detsamma gäller "tonhöjden" om siffrorna är omvända.

Exempelkod för fixering av rulle i exemplet ovan.

tonhöjd = (tonhöjd * -1000); // multiplicera med 1000 för att bli av med decimalerna

rulle = (rulle * -1000);

Så om allt fungerar bra kan vi lägga till detta i den slutliga koden!

  1. Öppna ReadRawAccel -skissen. Kopiera allt under page1 maker.
  2. Öppna TiltTX_Final -skissen. Bläddra till botten där det står "klistra in sida 1 här" och ersätt all kod under den.
  3. Ladda upp TiltTX_Final -skissen till din arduino.

Steg 13: Circuitry Time

Krets tid!
Krets tid!
Krets tid!
Krets tid!
Krets tid!
Krets tid!
Krets tid!
Krets tid!

Nu när vi är klara med den svåra delen är det dags att göra kretsen. Du kan välja att inte göra en sköld för att spara tid och delar men jag gillar alltid att göra mina projekt med sköldar om jag skulle behöva använda den Arduino med ett annat projekt. För det här projektet kommer jag att använda min Arduino Nano eftersom jag vill att allt ska passa i en liten låda. Men du kan använda vilken annan Arduino som helst, från en Mega till en LilyPad. Så studera schemat, titta på videon och börja lödning! Jag kommer inte att lägga upp hela bilden här eftersom jag visar dig steg för steg hur du gör det i videon.

Steg 14: Konfigurera tränaren

Nu när du är klar med kretsen slå på den, anslut till din telefon och anslut monojacket till träningsporten på baksidan av radion. Ställ in multiplikatorn på 1,3 och placera telefonen på en plan yta. Kalibrera sedan.

Observera, kanal 0 är gasreglage, kanal 1 är rulle och kanal 2 är tonhöjd.

Om du vill ändra dessa gå in i koden här:

ppm [0] = gasreglage;

ppm [1] = rollval; ppm [2] = tonhöjd;

Steg 15: Slutsats

Vissa människor har fått problemet med att koden inte kompilerar. Varför jag inte vet eftersom det fungerar bra för mig på båda mina plattformar, men om du får felmeddelandet (fel inte definierat i detta omfång) behöver du platsrad 1 efter void error loop.

1. MeetAndroid meetAndroid (fel); // Android bluetooth -grejer. Rör inte vid detta. Ogiltigfel (uint8_t flagga, uint8_t -värden) // fler Bluetooth -grejer. {Serial.print ("Fel:"); Serial.println (flagga); }

När du är klar ska det se ut så här:

void -fel (uint8_t flagga, uint8_t -värden) // fler bluetooth -saker.

{Serial.print ("Fel:"); Serial.println (flagga); } MeetAndroid meetAndroid (fel); // Android bluetooth -grejer. Rör inte detta.

Jag hoppas verkligen att du tyckte detta var intressant och fräscht. Jag försökte se till att det är lätt att följa. Skulle du vara förvirrad med någonting går videon in lite mer detaljerad än det instruerbara gör. Kontakta mig om du stöter på problem så hjälper jag dig så länge din fråga är relevant. Vänligen ge denna instruerbara en röst och lägg upp en bild nedan till din replikering, och om du gjorde en video, lägg upp en länk! Lämna gärna feedback nedan!

HavocRC, ~ AJ

Rekommenderad: