Reverse-Engineering = Uzzors2k = uitgesproken Android App. Amarino spul ook. (2 / 3 stap)

Stap 2: BluCar


Toen ik begon dat probeert te gebruiken Uzzor van app, ik heb geprobeerd om te lezen van de bluetooth-gegevens via mijn computer en weer te geven op een terminal. Het werkte niet. En ik begreep niet waarom het niet werkt voor enige tijd. Maar wat gebeurde was, mijn terminal is alleen opgezet om te lezen van ASCII-tekens. En ik soort van begrepen waarom het niet werkte een tijdje terug, omdat ik bedacht dat de Uzzor de app alleen een binair getal van 8 bits, die alle gegevens voor links/rechts vooruit-/ achteruitspoelen brakelights/koplampen verzonden. Maar zelfs met dat bedacht, kon niet echt controleer ik mijn theorie omdat ik kon niet lezen de gegevens uit mijn telefoon, mijn computer wartaal was en de code die ik aan het schrijven was om de gegevens te lezen niet werkte. En een tijdje terug, ik was niet zo comfortabel als ik nu ben met behulp van bits maskers.

Ik dacht ook dat de arduino, met behulp van de Serial.read() alleen standaard ASCII-tekens lezen. (Ik was verkeerd natuurlijk)

Maar dit is de reden waarom Uzzor cool is: Amarino maakt gebruik van een 3 karakter array versnellingsmeter-gegevens, dat 3 bytes verzendt. Die drie bytes corresponderen alleen met één variabele. Één byte voor forward, de tweede voor de stuurinrichting, de derde voor wat je wilt.
Uzzor stuurt één byte, die alle instructies voor vooruit, achteruit, links, rechts, koplampen, brakelights bevat. vrij koel.

Dit is de regeling die ik gevonden heb:

| 7: koplampen | 6: BrakeLights | 5: reverse | 4: vooruit | 3:Right | 2: links | 1: ongebruikte | 0: ongebruikte |

U de Serial.read() opslaat als een int en bitmaskers maken om te lezen van de stukjes die u bepalen moet.

Hier is een voorbeeld:
Ik krijg dit binaire getal van Serial.read()
10010100 / / = 148
De koplampen zijn op, de auto gaat vooruit, en draaien links.
Als ik wil om te lezen van de status van vooruit-/ achteruitspoelen:
Maak een bitmasker: 00110000 & 10010100
wat resulteert in 00010000
En ik kan code schrijven om te begrijpen dat nummer en uitvoeren van een taak.
Ik kan een verkeerde methode doen of iets, maar de manier waarop ik deed dat het werkte voor mij, hebt u andere methoden, post ze!
==============================================================
Soort van onderwerp
maar de manier die uzzor zijn seriële data gebruikt is mooie fricken chique. Net als wanneer ik eindelijk begreep wat was ik aan de hand was zoals woah!, dat is vrij glad!

Alles wat hij doet is rechtop schrijven zijn 8 bit nummer DDRB (ATTINY, die 8 poorten, dus elke poort heeft komt overeen rechtstreeks met elke functie, de koplamp LED is aangesloten op de zevende (achtste pin) belangrijkste haven). Dus wanneer hij een hoog in de brakelight positie schrijft, het komt overeen rechtstreeks op de poort die met de brakelight geleid verbindt.
8 bit serienummer -> DDRB -> hardware

Hij creëert ook een bitmasker om te negeren de laatste vier bits (0 en 1 zijn ongebruikte 2 en 3 zijn sturing) en hij doet dit omdat de besturing is gecontroleerd door een servo en gemaakt van een andere functie de gegevens converteren naar een servo PPM signaal.

Cool he? Me er zo over denkt.
--------------------------------------------------------------------------------------------------------------------------------
Toen ik begon eerst proberen te test/lezen de seriële data uit Uzzor de android app, was ik met behulp van de "equity"-operator, waarmee niet werkte. Maar ik denk dat dat is slechte programmering... Ik heb niet mijn code verfijnd, maar wat ik doe is op zoek naar bal park bereiken. Ik schakel de bits rond de gegevens die ik wil lezen. Als ik wilde om te lezen van de motor staat, lees ik de voorwaartse en omgekeerde Staten
0001 0000 //serial real time-gegevens
0011 0000 & //mask zodat ik alleen de vooruit-/ achteruitspoelen gegevens lezen
--------------------
0001 0000 //forward

0010 0000 //same maar voor omkeren
0011 0000 &
-------------------
0010 0000

Dus ik kan krijgen beide waarden 32 of 16. (0010 0000 of 0001 0000)
en ik & met het nummer 48 omdat 48 in binaire 0011 0000.
Dus de manier waarop ik schreef mijn code was
int x;
x = Serial.read();              Veilig kon proberen int x = Serial.read();
omgekeerde:
x & = 48;         x = Serial & 0011 0000
Als (x > 24) servo.write(30);                bal park bereik de doelgroep omgekeerde opdracht die 32 moet
anders als (x < 24 & & x > 15) servo.write(180);                       bal park bereik de doelgroep voorwaartse opdracht die 16 moet
anders servo.write(90);
--------------------------------------------------------------------------------------------------------------
Dus dat is het, is hier wat code te gebruiken Uzzor van app met arduino:

#include < Servo.h >
Servo de servo;
Servomotor;
VOID Setup
{
Servo.attach(9);
motor.attach(8);
Serial.begin(9600);
pinMode (13, OUTPUT); Dit is mijn "koplamp"
}

void loop
{//start belangrijkste
int x;
int y;
int z;

Als (Serial.available() > 0)
{//start als 1
x = Serial.read(); x heeft een Serial.read() hier om wat voor reden worden verklaard
y = x;
z = x;
y & = 48; bits maskers y zoekt vooruit/revers
x & = 12; zoekt naar links/rechts
z & = 128; zoekt koplamp geen remlicht nog
Als (x < 6 & & x > 3)
{
Servo.write(80); unieke links toe aan mijn project
}
anders als (x > 6)
{
Servo.write(120); direct unieke toe aan mijn project
}
anders servo.write(105); Centrum unieke toe aan mijn project

Als (y > 24)
{
motor.write(30); omgekeerde
}
anders als (y < 24 & & y > 15)
{
motor.write(150); voorwaarts
}
anders motor.write(90); niet verplaatsen

Als (z > 0) digitalWrite (13, hoge); koplampen
anders digitalWrite (13, laag);
} //end als 1
} //end belangrijkste

------------------------------------------------------------------------------------------------------
Laat me weten of u geen advies of verbeteringen hebt.

Gerelateerde Artikelen

Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

Reverse-engineering toepassen RF afstandsbediening Controller voor IoT!

In dit instructable, leert u hoe om te keren ingenieur radiofrequentie (RF) afstandsbedieningen en implementeren in een zeer goedkope WiFi toegelaten computer, het knooppunt MCU. Met deze techniek kunt u IoT inschakelen oudere toestellen en doelappar
Reverse-engineering: USB gecontroleerd huisautomatisering houwer

Reverse-engineering: USB gecontroleerd huisautomatisering houwer

Hack een draadloos domoticasysteem te USB gecontroleerd met behulp van twee AVR microcontrollers!Check de video! Het systeem is echt meer responsieve, maar de browser op mijn telefoon is traag.Als je dit leuk vindt, kan u ook als volgt:Stap 1: Vaardi
Android App gecontroleerd ATR (alle terrrain racer)

Android App gecontroleerd ATR (alle terrrain racer)

De Bluetooth gecontroleerde alle terrein Racer (BCATR) is een soepele mix van intelligentie en robuustheid.Het is dat een 4-wielaandrijving, aangedreven door een paar 12v 2200 mAh Li-Po batterijen. 4 hoog koppel gelijkstroommotoren geven het een tops
Controle toetsenbordmuis & w / Android app via Arduino

Controle toetsenbordmuis & w / Android app via Arduino

dit instructable zal u tonen hoe om te controleren van de computer toetsenbord en muis met een Android app via bluetooth aan een Arduino.ACHTERGRONDOoit wilde controleren van de computer muis/toetsenbord functionaliteit zonder te eigenlijk zitten voo
Bouwen van uw Android Apps voor de controle van IoT-apparaten met behulp van REST API

Bouwen van uw Android Apps voor de controle van IoT-apparaten met behulp van REST API

Een paar weken geleden, heb ik uitgevoerd REST web service bibliotheek voor WIZwiki-W7500ECO board. Ik heb gepost op Instructables, (Featured content!)Heb ik besloten om mijn eigen Apps voor de controle op mijn bord met REST API's. Mijn Apps gemaakt
Hoe maak je een Android App met Android Studio

Hoe maak je een Android App met Android Studio

Deze tutorial zal je leren de basisprincipes van het bouwen van een Android app met behulp van de Android Studio-ontwikkelomgeving. Als Android-apparaten steeds meer gemeengoed geworden, zal vraag naar nieuwe apps alleen maar toenemen. Android Studio
Android APP om te controleren van een Robot 3DPrinted

Android APP om te controleren van een Robot 3DPrinted

Deze instructables bestaat uit te leggen hoe de controle van een van mijn EEZYbotARM of de EEZYbotDELTA met behulp van een Smartphone (of tablet). Dit gebeurt via Arduino board uitgerust met een bluetooth-module en een Android app gemaakt met MIT App
Arduino Bluetooth Garage deur controle met sensoren en aanpasbare Android App

Arduino Bluetooth Garage deur controle met sensoren en aanpasbare Android App

Relais voor het openen garagedeuren en elektrische deursloten activeren via een arduino.Een aanpasbare Android App, verbindt met arduino via wachtwoordbeveiliging bluetooth koppeling.Een bluetooth-module voor hc-05 opdrachten ontvangt van een android
Reverse-Engineering

Reverse-Engineering

veel van de leden hier op Instructables vragen over gegevensbladen of pin-outs van een apparaat of de weergave in de antwoorden, helaas u cant altijd krijgen een gegevensblad en schema's, in deze gevallen heb je slechts één keuze hierop reverse-engin
Reverse-Engineering Live

Reverse-Engineering Live

Ik begon in elektronica vóór de komst van het internet en meest solide staat onderdelen, dus krijgen gegevensbladen en schema's niet makkelijk voor mij was. Vandaag met fabrikanten maken van aangepaste ICs en LCD-schermen voor alles van telefoons tot
Maken van Android Apps – voor volledige Beginners

Maken van Android Apps – voor volledige Beginners

Als u zelf een AndroidTM telefoon of tablet en je het soort persoon die graag dingen te doen voor hem/haarzelf (waarom anders zou u kijken naar een Instructable?), hebt je waarschijnlijk gedacht over het vinden dat het ontwikkelen van uw eigen apps o
Reverse Engineering een kleine versterker

Reverse Engineering een kleine versterker

Mijn andere Instructables op reverse-engineering is op onderdelen die je niet gegevensbladen en pinouts voor. Ik reverse-engineering die een paar circuit boards een week, kleintjes als deze neem me over een dag om te keren ingenieur en strip voor hun
LinKit one - Home Automation met Bluetooth Controller Android App

LinKit one - Home Automation met Bluetooth Controller Android App

Alle opties zijn voorzien van slimme telefoons. Slimme telefoons maken ons werk zeer gemakkelijk en maakt ons lui. Draai in- en uitschakelen met behulp van slimme telefoon met Blauwe tand huistoestellen is in de markt, maar de kosten hoog. Dus DIY Bl
Raspberry Pi Android App mededeling

Raspberry Pi Android App mededeling

Hallo iedereenOmdat de app bijna overal worden gebruikt, besloten heb ik om mijn eigen tutorial over het maken van een app en verbinding met een MySQL database gehost op een raspberry pi.Voor het uitwisselen van gegevens tussen de server en de client