Kontroll ditt RC plan med telefonens Acclerometer (11 / 14 steg)
Steg 11: Datamappningen Accelerometer
När du har "rulle och"pitch"tilldelats rätt nummer i matrisen uppgifter, kan vi gå vidare. Titta på bilden 1 hela vägen till vänster. Detta är rådata från din accelerometer. Men vi kan inte använda dessa nummer direkt vi behöver och mappa dem till ett värde mellan 1000 och 2000 med en mittpunkt på 1500. Om du vill skala numrerar kommer vi multiplicera "rulle" och "Beck" med 1000. Detta kommer att bli av med alla decimaler och det kommer att ge oss en anständig upplösning. Nu om man tittar på siffrorna i den andra kolumnen kan du se de "nya" nummer. Kan ställa några in och ut poäng!
- Luta telefonen till vänster 45 grader (rulle) och spela in detta nummer.
- Luta telefonen till höger 45 grader (rulle) och spela in detta nummer.
- Luta telefonen till framlänges 45 grader (pitch) och spela in detta nummer.
- Luta telefonen för att de bakåt 45 graderna (pitch) och spela in detta nummer.
Om två tal är ungefär samma för när du lutar telefonen 45 grader i båda riktningarna kan dike det andra talet och använder bara först. Skapa en andra rad med negationen för den första siffran.
Exempel: Luta telefonen 45 grader åt höger. Nummer showen för rulle är 5500. För det andra talet bara använda-5500. Detta blir vår i och utgångspunkter. Vi vill inte våra TX att registrera något mer än dessa punkter. Måste vi lägga om dessa värden till 1000-2000. I mitt fall var-5500 till 5500 siffrorna som jag fick när pitching min telefon 45 grader och när rullande min telefon 45 grader. Så använde jag följande kod: Obs: det är nu dags att ta bort den / * och * / i avsnitt 4 för att aktivera denna kod. Också ta bort alla avsnitt 3.
pitchval = karta (Beck,-5500, 5500, 1000, 2000) -12;
rollval = karta (rulle,-5500, 5500, 1000, 2000) + 7;
Nu är 12 och de + 7 justeringar att få "pitchval" och "rollval" till ett centrum för 1500. Se till att telefonen är på en plan yta när du gör justeringarna. Om ditt center inte är på 1500 sedan ditt plan kan svänga ut i en riktning även om din har din telefon nivå.
Vi måste begränsa rollval och pitchval. Vi vill inte de går längre än 2000 eller mindre 1000 annars saker börjar stöka! Så skriver vi här...
pitchval = begränsa (pitchval, 1000, 2000);
rollval = begränsa (rollval, 1000, 2000);
Sista vi skall göra med dessa nummer är att se till att de motsvarar korrekt med hur vi luta vår telefon. Kontrollera om din telefon är ansikte upp med din kamera 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 rätt, borde det öka till 2000.
- När du pitch telefonen bakåt, bör pitchval minska till 1000.
- När du pitch telefonen framåt, det bör öka till 2000.
- Båda centra bör vid 1500 när du placerar din telefon på en plan yta.
Om när du slår din telefon till vänster och rollval ökar snarare än minskar, ändra 1000 multiplicerade du "rulla" genom att-1000 (i avsnitt 2). Detsamma gäller för den "pitch" om siffrorna är omvända.
Exempelkod för fastställande rulle i exemplet ovan.
pitch = (pitch *-1000); multiplicera med 1000 bli av decimaler
rulle = (rulle *-1000);
Så om allt fungerar bra kan vi lägga detta till den final koden!
- Öppna den ReadRawAccel skissen. Kopiera allt under sida1 maker.
- Öppna den TiltTX_Final skissen. Bläddra längst ned där det står "klistra in sidan 1 här" och ersätta all kod under den.
- Ladda upp TiltTX_Final skissen till din arduino.