Stap 4: Protocoder Code
Laten we digg in Protocoder code.
Dit is gonna omgaan met gebruikersinterface, bluetooth communicatie, ontleden kleurgegevens van de schuifregelaars voor gehele getallen en weergegeven: kleur alvorens het aan de Arduino.
Eerst wijzigen we de instellingen van de werkbalk en scherm met:
ui.toolbar.title("Hack-A-Lamp "); ui.toolbar.bgColor(55, 155, 155, 255); ui.toolbar.show(true); //ui.screenMode("fullscreen"); ui.screenOrientation("portrait");</p><p>var speed=25; var btClient; var sendString= "10,0,0,0",string="0,0,0", hexString="000"; var btStatus = false; var margin = 10; var w = ui.screenWidth - 2*margin; var h = 150;
h's gonna worden gebruikt als hoogte voor knoppen. Als u de tekst in de knoppen niet ziet, probeer om het wijzigen van deze waarde te bevestigen.
Vervolgens behandelen we hoe aansluiten en loskoppelen met een bluetooth-apparaat. Opmerking dat elke bluetooth-module moet worden gekoppeld met Android bluetooth menu vóór trying voor verbinden hier, anders gaat u niet te zien in dit app.
var btnConnect = ui.addButton("Connect to bluetooth", margin,0,w, h).onClick(function() { //if you want to use the Bluetooth Address, use: //network.bluetooth.connectSerial(macAddess, function(status) {}); btClient = network.bluetooth.connectSerial(function(status) { console.log("connected " + status); if (status === true){ btStatus = true; ui.toast("Connected!"); btnConnect.setAlpha(0); btnDisconnect.setAlpha(255); } }); }); var btnDisconnect = ui.addButton("Disconnect",margin,h, w, h).onClick(function() { if (btStatus === true ) { btClient.disconnect(); btStatus = false; ui.toast("Disconnected!"); btnConnect.setAlpha(255); btnDisconnect.setAlpha(0); }else{ ui.toast("Not Connected"); } });
Zoals u kunt zien hier, we knoppen hebt gemaakt en de binnenkant van het behandelen we alle communicatie.
De parameters die we nodig hebben om een knop te maken zijn, van links naar rechts in de functie: tekst getoond, x positie, y-positie, breedte en hoogte.
Met btnConnect wij verbinden met bluetooth, en alleen met deze functie wij tonen een lijstweergave tonen alle eerder gekoppelde apparaten. Vervolgens drukken we bluetooth-status op protocoder web ide en, als de status gelijk is aan true (is aangesloten) Stel btStatus, die we gebruiken als een vlag op true, dan zijn we tonen een Android Toast gezegde die is aangesloten en alpha transparantie van beide knoppen wijzigen, draaien verbinden knop om volledige transparantie, en verbreken tot volledig ondoorzichtig.
Klik vervolgens met de btnDisconnect wij onthutsen met bluetooth, een ook wij omkeren, alle veranderingen die we hebben gedaan nadat de Klik op btnConnect.
Na dat, we gonna wenskaarten en schuifregelaar voor elke kleur (RGB) maken. Elke code is meestal identiek zijn, dus ik ga om het te verklaren voor slechts een van hen.
Eerst maken we een variabele met de naam van de kleur, dat het gaat om op te slaan van de waarde van de slider met readed:
var red = 0;
Daarna maken we de kaart die, in dit geval, het is als een klein teken dat de naam van de kleur wordt weergegeven. Om ze te maken we gebruiken:
var cardRed = ui.addCard("Red", margin, 2*h, ui.screenWidth - margin , 100);
Dan gaan we de schuifregelaar te creëren:
var sliderRed = ui.addSlider(margin, 3*h, w, 20, 0, 255).onChange(function(val) { red = Math.floor(val);</p><p> string = red +","+ green +","+ blue; colourDec.setText(string); hexString = red.toString(16) + green.toString(16) + blue.toString(16); hexString = hexString.toUpperCase(); colourHex.setText(hexString); console.log(string); });
De parameters moeten we een schuifregelaar te creëren zijn, van links naar rechts in de functie: x positie, y-positie, breedte, hoogte, beginnend van de waarde van de schuifregelaar en definitieve waarde van de schuifregelaar.
Nadat ze zijn gemaakt, we omgaan met alles wat nodig is om ons project werken:
Ten eerste willen wij enkel gebruik van gehele getallen, zodat we de waarde van de schuifregelaar van zweven naar int. readed parse
Na dat we samenvoegen alle kleuren aanpassen aan het formaat dat Arduino verwacht te ontvangen, alle waarden readed van kleuren in een tekenreeks op te slaan in de manier waarop: rood, groen en blauw
Na dat zetten we de waarde van colourDec, een variabele die de kleur die we gaan om te sturen in een decimale notatie "manier" zichtbaar is.
Dan we hetzelfde voor hexString, een variabele die de kleur die we gaan om te sturen in een hexadecimale "weg", zichtbaar maken en zet het in hoofdletters, een gemeenschappelijke manier om hexadecimale getallen te tonen.
Dan afdrukreeks we gewoon, die is de variabele die we gaan naar de Arduino te sturen.
Om het programma Toon info over welke kleur we gonna sturen, we trekken een doek en wij tonen de kleur die we gonna verzenden. Om te bereiken dat we deze code gebruiken:
var canvas = ui.addCanvas(margin, 8*h, w, h); canvas.loopDraw(35, function() { canvas.fill(red,green,blue,10); canvas.rect(0, 0, ui.screenWidth, 500); });
Na dat drukken wij decimale en hexadecimale waarden van de kleur met:
var colourDecLabel = ui.addText("Dec = ", margin, 9*h, 2*w, h); var colourDec = ui.addText(h, 9*h, 2*w, h); var colorHexLabel = ui.addText("Hex = ", margin, 9.5*h, 2*w, h); var colourHex = ui.addText(h, 9.5*h, 2*w, h);
Deze code is vrij zelf verklarend, ja, ik ga door.
Ten minste, bereiken we de functie verzenden, die omgaan met communicatie met Arduino. Hier is waar we gegevens overbrengen naar de Arduino via bluetooth.
var btnSend = ui.addButton("Send", margin, 10*h, w, h).onClick(function() { if (btStatus === true){ ui.jump(btnSend); console.log("String = "+string); btClient.send(string +\n"); ui.toast("Sended!"); }else{ ui.toast("¡Not connected!"); } });
In deze code we maken een knop, net als wij vóór, en na wat waarde heeft opgeslagen btStatus (gewoon om te onthouden, als het aangesloten gaat om waar te zijn, anders is gonna be valse). In het geval dat btStatus gelijk is aan true, voeren wij een trucje om de knop wordt geanimeerd met ui.jump(); functie te maken.
Dan we tekenreeks tonen gegevens in de console, alleen voor debugging voorstel, verzenden de tekenreeks en een lijnsprong (\n) Trough bluetooth, dus we sturen: rood, groen, blue\n, die wat Arduino verwacht is te ontvangen.
Vervolgens laten we zien een Android toast zeggen dat de gegevens is gestuurd.
In het geval dat btStatus vlag variabele gelijk is aan false (niet aangesloten) we gaan een toast waarschuwing over deze situatie te verzenden.
Dat is allemaal aan de kant van de Protocoder!