Stap 11: De versnellingsmeter-gegevens wilt toewijzen
Als u eenmaal "rol en"pitch"toegewezen aan de juiste getallen in de matrix-gegevens, we kunnen gaan. Kijk naar foto 1 helemaal aan de linkerkant. Dit is de ruwe data van uw versnellingsmeter. Maar we mogen deze getallen niet gebruiken rechtstreeks erom te remap hen op een waarde tussen 1000 en 2000 met een middelpunt van 1500. Als u wilt schalen van de nummers van zullen we "broodje" en "pitch" vermenigvuldigen door 1000. Dit zal ontdoen van alle decimalen en het geeft ons een goede resolutie. Nu als je kijkt naar de getallen in de tweede kolom ziet u de 'nieuwe' nummers. Laten we enkele in- en uitpunten ingesteld!
- Kantelen van de telefoon links 45 graden (roll) en noteer dit nummer.
- Kantelen van de telefoon naar rechts 45 graden (roll) en noteer dit nummer.
- Kantelen van de telefoon aan de forwards 45 graden (pitch) en noteer dit nummer.
- Uw telefoon op de achteruit 45 graden kantelen (pitch) en noteer dit nummer.
Als de twee getallen rond hetzelfde voor wanneer u uw telefoon gekanteld 45 graden in beide richtingen kan u sloot het tweede getal en gewoon gebruik maken van de eerste. Maak een tweede getal door het nemen van de negatieve van het eerste getal.
Voorbeeld: Tilt telefoon 45 graden naar rechts. De nummer show voor roll is 5500. Voor het tweede nummer gewoon gebruik maken van-5500. Dit zal onze in- en uitpunten. We willen niet dat onze TX te registreren om het even wat meer dan deze punten. Dan moeten we aan remap die waarden naar 1000-2000. In mijn geval waren-5500 tot 5500 de getallen die ik kreeg wanneer mijn telefoon 45 graden pitching en rollend mijn telefoon 45 graden. Dus ik de volgende code gebruikte: Opmerking: het is nu tijd om te verwijderen de / * en * / in sectie 4 om deze code. Ook Verwijder alle sectie 3.
pitchval = map(pitch,-5500, 5500, 1000, 2000) -12 ; rollval = map(roll, -5500, 5500, 1000, 2000) + 7;
Nu zijn de -12 en de HALSLENGTE + 7 aanpassingen om een centrum van 1500 "pitchval" en "rollval" te brengen. Zorg ervoor dat uw telefoon op een vlakke ondergrond is wanneer u deze wijzigingen aanbrengen. Indien uw center niet op 1500 dan uw vliegtuig kan veer af in een richting ook al uw niveau van uw telefoon.
We moeten beperken, rollval en pitchval. We niet willen dat ze gaan meer dan 2000 of minder de 1000 of anders dingen beginnen verpesten! Dus typen wij dit...
pitchval = constrain(pitchval, 1000, 2000); rollval = constrain(rollval, 1000, 2000);
Laatste wat die we moeten doen met deze nummers is om ervoor te zorgen dat zij overeenstemmen met de manier waarop die we onze telefoon kantelen. Controleer als uw telefoon gezicht met uw camera aan de linkerkant, en de microfoon aan de rechterkant is.
- Wanneer u uw telefoon naar links rolt, moet de rollval dalen tot 1000.
- Wanneer u het recht rolt, moet het oplopen tot 2000.
- Wanneer u uw telefoon achteruit toonhoogte, moeten pitchval dalen tot 1000.
- Wanneer u de toonhoogte van uw telefoon naar voren, het moet oplopen tot 2000.
- Beide centra moet op 1500 wanneer u uw telefoon op een vlakke ondergrond plaatst.
Als wanneer u uw telefoon naar links rolt en rollval verhoogt in plaats van afneemt, de 1000 wijzigen vermenigvuldigd u "roll" door naar-1000 (in sectie 2). Hetzelfde geldt voor de "pitch" als de nummers worden teruggedraaid.
Voorbeeldcode voor het oplossen van rollen in het bovenstaande voorbeeld.
pitch = (pitch * -1000); // multiply by 1000 to get rid of the decimals roll = (roll * -1000);
Dus als alles boete werkt dan we dit aan de definitieve code toevoegen kunnen!
- Open de schets van de ReadRawAccel. Kopieer alles onder de Pagina1 maker.
- Open de schets van de TiltTX_Final. Schuif naar de onderkant, waar het zegt: "plakken als pagina 1 hier" en vervang alle code onder it.
- Het uploaden van de schets van de TiltTX_Final aan uw arduino.