Arduino/App kontrollerade skrivbord ljus (3 / 6 steg)
Steg 3: App Inventor
Skapa App används jag MIT App Inventor, dess fri och ganska lätt att lära sig/använda. Jag hade först att skapa App skärmar/grafik - detta kan göras i photoshop etc. Det gör det lättare i App Inventor om du har alla komponenter som utgör skärmarna som separata bilder/filer.
App uppfinnare har två vyer, theres fliken "Designer" för fronten visuella grejer och fliken "Block" för koden.
Med fliken "Designer" byggt jag upp app skärmarna. En fråga jag hittade att komponenten bluetooth inte fungerar över mångfaldig skärmen så efter skärmen "Välkommen" är alla andra (anslutning, RGB, färg temp, alarm) alla skapas i samma skärm - effektivt lager att jag slå på/av.
De viktigaste verktygen är för "layout/justering" och "duk". En duk är en touch känsliga område som du kan visa som en bild.
När visuella är setup, det är dags att växla till fliken "Block" och skriva koden. Jag ska beskriva det i kort, men det är förmodligen lättare om du importera min fil till App Inventor och har en leka själv...
Dessa första block är för anslutning skärmarna. För att tillåta att appen försöker automatiskt ansluta till bluetooth-modulen Arduinos jag skapa och ange en variabel till adressen för min HC06. Jag använder en timer för att ändra bakgrundsbild medan det ansluter. Om anslutningen lyckas sedan laddas upp färg temp skärmen. Om bluetooth inte ansluta automatiskt, måste du trycka på knappen "ansluta till enheten". Detta kommer att ta upp en lista över alla bluetoothenheter telefonen kan se. Kommandot "bluetoothclient1.connect" använder enheten adressen du väljer från listan att ansluta med.
Dessa block styra vad som händer när du touch var och en av menyknapparna - ändra mellan RGB, färg temp och larm. Som de är berört vänds de tillämpliga visuella lagrarna på och av. Dvs när du trycker på knappen RGB meny växlar den bakgrundsbilden för knappar duken till ikonen mörka släcks på RGB-skärm och den andra.
Makt och ljusstyrkan kontrollen är delat mellan RGB och färg temp skärmarna. För Arduino veta vilken LED's till kontroll, måste jag berätta den vilken skärm är laddad. En textsträng i formatet (skärm)? skickas av din bluetooth-telefoner med hjälp av kommandot BluetoothClient1.SendText.
Detta block skickar strängen (Power)? när strömbrytaren tappas.
Dessa block styra färgtemperatur. När du pekar på duken, används Y-koordinaten för din touch punkt för att ange variabeln "cool". Y-värde drivs av pixel storleken på duken, så i mitt fall ett värde mellan 0 och 450. Jag använder multiplikatorn för att konvertera det till ett användbart PWM-värde (0-255). Jag skickar sedan en sträng med detta värde och en identifierare i form (Tempvalue)?.
Liknande block som ovan men för ljusstyrkan kontrollen. Använda X-koordinaten denna tid och olika multiplikatorer för att ange variabeln "Bright" till ett värde mellan 10 och 100.
Dessa block är för RGB kontroll. Det finns ett kommando som kallas "GetPixelColor" som kan användas för att få ett RGB-värde av pixel fingret är rörande. Det utgångar värdet med en extra 255 i slutet av någon anledning så jag göra lite arbete att få värdet i formatet (RGBredvalue.greenvalue.bluevalue.)? Detta är igen sedan skickas till Arduino, men med RGB som identifierare i strängen.
I nästa avsnitt av block är för larminställningarna. Det första blocket styr vad som händer när du touch/dra solen upp och ner. Igen, kommandona "get nuvarande X och Y" används för att få ett värde för där ditt finger och ändra bakgrundsbilden beroende på höjden av solen. Solens position också drivrutiner om larmet är aktiverad eller inaktiverad, skicka via bluetooth.
När du knackar eller avsluta flytta solen ger den upp den tid picker tillåter att du anger en alarmtid. Huvuddelen av detta nästa block använder aktuell tid för att räkna ut hur många millisekunder det finns fram till alarm inställning. Detta värde skickas sedan till Arduino
I nästa steg jag att täcka hur Arduino läser och använder strängar...