Reverse Engineering = Uzzors2k = blåttBilen Android App. Amarino grejer också. (2 / 3 steg)

Steg 2: BluCar



När jag först började försöka använda Uzzor's app, jag försökte läsa bluetooth data via min dator och Visa den på en terminal. Det fungerade inte. Och jag förstod inte varför det inte fungerade under en tid. Men vad som hände var, min terminal inrättades endast att läsa ASCII-tecken. Och typ av förstod jag varför det inte fungerade ett tag tillbaka, eftersom jag listat ut att Uzzor's app bara skickat ett 8-bitars binärt tal som höll alla data för framåt/bakåt vänster/höger blinkrar/strålkastare. Men även med att listat ut, jag kunde inte riktigt kontrollera min teori eftersom jag kunde inte läsa data från min telefon, till min dator det var rotvälska och den kod som jag skrev att läsa data fungerade inte. Och ett tag sedan, jag var inte så bekväm som jag är nu med bitmasker.

Jag tyckte också att arduino som standard, med Serial.read() endast läsa ASCII-tecken. (Jag var fel naturligtvis)

Men det är därför Uzzor är cool: Amarino med en 3 karaktär matris för att skicka accelerometer data, som är 3 byte. De tre byte motsvarar bara en variabel. En byte för framåt, andra för styrning, tredje för vad du vill.
Uzzor skickar en byte, som innehåller alla instruktioner för framåt, bakåt, vänster, höger, strålkastare, blinkrar. ganska coolt.

Detta är de arrangemang som jag hittade:

| 7: strålkastare | 6: blinkrar | 5: omvänd | 4: fram | 3:Right | 2: vänster | 1: oanvända | 0: oanvända |

Du lagrar Serial.read() som en int och skapa bitmasker för att läsa de bitar som du behöver kontroll.

Här är ett exempel:
Jag får denna binärt tal från Serial.read()
10010100 / = 148
Strålkastarna är på, bilen går framåt och roterande kvar.
Om jag vill läsa status för framåt/bakåt:
skapa en bitmask: 00110000 & 10010100
vilket resulterar i 00010000
Och jag kan skriva kod för att förstå som nummer och utför en uppgift.
Jag kan göra en fel metod eller något, men det sätt jag gjorde det fungerade för mig, om du har några andra metoder, lägga upp dem!
==============================================================
Typ av off topic
men hur Uzzor använder hans seriella data är ganska fricken classy. Som när jag äntligen förstått vad som var på jag var som woah!, det är ganska smidigt!

Allt han gör är rakt upp skriva sin 8-bitars nummer till DDRB (ATTINY, som har 8 portar, så varje port motsvarar direkt till varje funktion, strålkastare LED är ansluten till sjunde (åttonde pin) mest betydande hamn). Så när han skriver en hög i bromsljus position, motsvarar det direkt till hamnen som ansluter till den bromsljus led.
8 bit serienummer -> DDRB -> maskinvara

Han skapar också en bitmask för att ignorera de sista fyra bitarna (0 och 1 är oanvända 2 och 3 styrning) och han gör detta eftersom styrningen är kontrolleras av ett servo och gjorde en annan funktion för att konvertera data till en servo PPM signal.

Cool va? Jag tänker så.
--------------------------------------------------------------------------------------------------------------------------------
När jag först började försöka test/läsa datan från Uzzor's android app, var jag med eget kapital operatören, vilket inte fungerade. Men jag antar att det är dålig planering... Jag har inte raffinerade min kod, men vad jag gör söker ball park spänner. Jag rensa bitarna runt de data jag vill läsa. Om jag ville läsa motor staten, läste jag påstår framåt och bakåt
0001 0000 //serial verkliga tidsdata
0011 0000 & //mask så att jag bara läst data som framåt/bakåt
--------------------
0001 0000 //forward

0010 0000 //same men för omvänd
0011 0000 &
-------------------
0010 0000

Så jag kan få antingen värden 32 eller 16. (0010 0000 eller 0001 0000)
och jag & med nummer 48 eftersom 48 i binär är 0011 0000.
Så hur jag skrev min kod var
int x;
x = Serial.read(); Att vara säker kan prova int x = Serial.read();
omvänd:
x & = 48. x = följetong & 0011 0000
om (x > 24) servo.write(30); Ball park rad mål omvänd kommandot som ska vara 32
annars om (x < 24 & & x > 15) servo.write(180); Ball park rad mål framåt kommandot som bör vara 16
annat servo.write(90);
--------------------------------------------------------------------------------------------------------------
Så det är det, är här några kod att använda Uzzor's app med arduino:

#include < Servo.h >
Servo servo;
Servomotor;
void setup()
{
servo.attach(9);
motor.attach(8);
Serial.BEGIN(9600);
pinMode (13, OUTPUT); Detta är min "strålkastare"
}

void loop()
{//start viktigaste
int x;
int y;
int z;

om (Serial.available() > 0)
{//start om 1
x = Serial.read(); x har deklarerade en Serial.read() här av någon anledning
y = x;
z = x;
y & = 48. bitars masker y söker framåt/revers
x & = 12. ser för vänster/höger
z & = 128; ser för strålkastare inget bromsljus ännu
om (x < 6 & & x > 3)
{
servo.write(80); vänster unika till mitt projekt
}
annars om (x > 6)
{
servo.write(120); rätt unik för mitt projekt
}
annat servo.write(105); Center unikt för mitt projekt

om (y > 24)
{
motor.write(30); omvänd
}
annars om (y < 24 & & y > 15)
{
motor.write(150); framåt
}
annat motor.write(90); Flytta inte

om (z > 0) digitalWrite (13, hög). strålkastare
annat digitalWrite (13, låg).
} //end om 1
} //end viktigaste

------------------------------------------------------------------------------------------------------
Låt mig veta om du har några råd eller förbättringar.

Se Steg
Relaterade Ämnen

Android App kontrollerade ATR (alla terrrain racer)

Bluetooth kontrolleras alla terräng Racer (BCATR) är en smidig blandning av intelligens och robusthet.Det är en 4 hjulsdrift drivs av ett par 12v 2200 mAh Li-Po batterier. 4 höga vridmoment DC motorer ger den en topphastighet på 900 RPM och 12 Kg/cm...

Reverse engineering: USB kontrollerade hemautomation hacka

hacka ett trådlöst hem automationssystem för att vara USB kontrolleras med hjälp av två AVR microcontrollers!Kolla in videon! Systemet är verkligen mer lyhörd, men webbläsaren på min telefon är långsam.Om du gillar detta, kanske du också gillar detta...

Styra tangentbord & mus w / Android app via Arduino

detta instructable visar dig hur du kan styra datorns tangentbord och mus med en Android app via bluetooth till en Arduino.BAKGRUNDNågonsin velat styra datorns mus/tangentbord funktionalitet utan att faktiskt sitta framför den? Jag gör hela tiden. Ti...

Arduino Bluetooth Garage dörrkontroll med sensorer och anpassningsbara Android App

Använda en arduino till aktivera reläer för att öppna garageportar och elektriska dörrlås.En anpassningsbar Android App, ansluter till arduino via lösenordsskyddade bluetooth-ihopparningen.En bluetooth hc-05 modul tar emot kommandon från en android-t...

Skapa en Android app med Ionic

Ionic är ett ramverk som gör skriva apps för nästan alla plattformar extremt enkelt. Om du vet lite css, js och html kan du skapa en Android / iOS eller Windows app.Detta instructable kommer att fokusera på hur man skapar en Android app på en Linux e...

Bygga din Android Apps för övervakning IoT enheter med REST API

För några veckor sedan, har jag genomfört resten web service bibliotek för WIZwiki-W7500ECO styrelse. Postat på Instructables Ive ', (med innehåll!)Jag bestämde mig att skapa mina egna Apps för att övervaka min bräda med resten API: er. Mina Apps ska...

Android APP att styra en 3DPrinted Robot

Detta instructables görs att förklara hur man kontrollerar en av mina EEZYbotARM eller EEZYbotDELTA med en Smartphone (eller en tablett). Detta görs via Arduino ombord en bluetooth-modul och en Android app med MIT App inventor 2.Video:I videon jag an...

Att skapa Android Apps-för nybörjare

Om du äger en AndroidTM telefon eller tablett och du är sorteringen person som gillar att göra saker för sig (Varför annars skulle du titta på en Instructable?), har du förmodligen tänkt på att ta reda på hur man kan utveckla din egen apps en dag. Ka...

Hur att köra android apps på din dator

jag kommer att visa dig hur köra android apps på din pc utan programmering, med hjälp av koder eller nedladdning android emulatorer som inte fungerar! Allt du behöver för att hämta programvaran kallas bluestacks, och söka för app du vill ladda ner.Ja...

Reverse Engineering ett elstängsel laddare

Reverse engineering något kan vara en bra form av både underhållning och utbildning. Jag har ofta köpt något bara för att tillgodose demontera dem för att avgöra hur de fungerar och hur de är utformade. Längs vägen kan du lära dig en hel del, förbätt...

Arduino NodeMCU ESP8266 baserade WIFI Smart Strip 4 Relay Switch Board med Raw TCP/IP, Mqtt & Android App

Nod MCU är en öppen källkod ESP8266 baserade Wifi aktiverat IoT plattform för alla. Vad vi har gjort skapas en fyra relay board för det och det coolaste är att styrelsen också har en 100-240V-AC till 5V DC strömförsörjning ombord så du kommer att kun...

Live Reverse Engineering

Jag började i elektronik före tillkomsten av internet och mest solida state komponenter, så får datablad och scheman inte var lätt för mig. Idag med tillverkar att göra anpassade ICs och LCD-skärmar för allt från telefoner till TV-spel, tinkers att b...

Reverse Engineering

många av ledamöterna här på Instructables fråga om datablad eller pin outs av en enhet eller display-svar, tyvärr du skränande alltid få ett datablad och scheman, i dessa fall du har bara ett val bakåtkompilering.Reverse engineering är en färdighet s...

Quadcopter med hjälp av Intel Galileo och Android App

För en drönare att flyga autonomously, måste alla nödvändiga sensorer, processorkraft, och kommunikation marker vara inbyggda. Även om det inte kanske verkar så mycket, det faktiskt eliminerar många befintliga kommersiella civila drönare tillgänglig...

Köra Android Apps på Windows 10

Hur att köra Android Apps på Windows 10 pc. Vill du köra din favorit Android apps på din Windows 10 stationär eller bärbar?Detta är en snabb guide om hur du installerar androids app på windows 10.Steg 1: Titta på Video på hur man kör Android Apps på...

Hur man styr servomotor från android app

Om du vill göra Android app att styra en servomotor, detta är en perfekt instructable för dig, här kan du följa en steg för steg förfarande video för att veta hur man gör en android app som använder MIT app inventor och styra en servomotor.Steg 1: Ko...

Arduino/Android - BLUETOOTH RGB ledde kontroll ANDROID APP

Hej världen! Idag har jag gjort en app för att styra en RGB Led-modul med en Android-enhet. Kontakta mig för den öppna källkoden av APP.Obs: Om du köpt en gemensam anod LED ansluter du den till 5vJag använde en gemensam katod ledde som måste anslutas...

Linkit en - hem Automation med Bluetooth ledaren Android App

Alla alternativ är kommer med smarta telefoner. Smarta telefoner gör vårt arbete mycket lätt och gör oss lata. Slå på och av hushållsmaskiner med smart telefon med blå tand är i marknaden, men kostnaden hög. Så DIY Blue tooth hem koppla Automation me...

Hur: Skapa en Android App med Android studion att styra LED

Detta är en steg för steg handledning för att göra en android apk via bluetooth.Innan start kodning,Ladda ner Android Studio IDE och uppdatera Java. Java och C kunskaper i programmering hjälper. Denna ska tutorial förklarar inte Java programmering. O...