Android-styrda pneumatiska kanon drivs av Arduino (7 / 11 steg)
Steg 7: Soppa upp telefonen
Om du är intresserad att lära sig hur appen fungerar, Läs vidare. När programmet startar, kommer den omedelbart försöker ansluta till kanonen. För enkelhetens skull hårdkodade vi MAC-adressen för våra BlueSmirf modem istället för att utveckla en plockare. Denna metod fungerar, men det innebär att du måste koppla ihop med modemet innan du startar app.
För att koppla ihop med BlueSmirf från din Android-telefon, gå till Inställningar >> trådlös & nätverk >> Bluetooth-inställningar, och kontrollera att Bluetooth är aktiverat. Sedan, tryck på "Sök efter enheter" och välj BlueSmirf modemet när det dyker upp (vår fick namnet RN42-07EA). Som standard kommer lösenordet att antingen "1234" eller "0000".
Nu, tillbaka i Android app, om anslutningsförsöket gånger ut, då knapparna förblir inaktiverad. Att trycka på menyknappen tar upp alternativet att återansluta. Detta är bekvämt för när du testar spänna av din setup. Observera också att det är viktigt att se till att alla Bluetooth-kommunikation sker i en separat tråd. Som de flesta nätverksåtgärder har inte Bluetooth-kommunikation många timing garantier. På en typisk mikrokontroller, kan du vanligtvis garantera att en instruktion ska köras i en klockcykel. Dock i detta fall, hur länge tagit den upprätta en anslutning och skicka data beror på en mängd olika faktorer, inklusive fysiska egenskaper som avståndet mellan sändaren och mottagaren, radiostörningar i rummet (som BlueSmirf hanterar genom en teknik som kallas hoppfrekvens )
För att få tillgång till Android's SPP gränssnitt, vi var tvungna att använda lite Java reflektion för att hämta en medlemsfunktion. Ytterligare information om detta hacka kan hittas i den här detaljerade StackOverflow konversation , som vi dragit nytta av men som inte deltog i. Om du kommer med en bättre strategi genom att analysera BluetoothSocket dokumentation bättre än vi gjorde, då gärna lämna en kommentar som låter oss veta vad du gjorde.
När anslutningen har upprättats aktiveras knapparna. När en knapp tappas, försökte en byte skickas över nätverket. Knappen rödbruna skickar ett ASCII-tecken '1' (0x31 om man tittar på de enskilda bitarna), och den orangea knappen skickar '2' (0x32). Detta kan mycket väl vara det enklaste protokoll du någonsin kommer att se i ditt liv. Om en dataöverföring någonsin misslyckas, knapparna är inaktiverade och användaren får ett meddelande via en Toast meddelande .