Hack-A-lampan eller hur man kontrollerar Arduino med din smartphone (4 / 5 steg)

Steg 4: Protocoder kod



Låt oss digg i Protocoder kod.

Detta kommer att hantera användargränssnitt, bluetooth-kommunikation, tolka färgdata från reglagen till heltal och visar färg innan det skickas till Arduino.

Först ändra vi inställningar för verktygsfält och skärm med:

UI.Toolbar.title ("Hack-A-lampa");
ui.toolbar.bgColor (55, 155, 155, 255);
UI.Toolbar.show(true);
ui.screenMode("fullscreen");
ui.screenOrientation("portrait"); < /p >< p > var hastighet = 25;
var btClient;
var sendString = "10,0,0,0", string = "0,0,0", hexString = "000";
var btStatus = false;
var marginal = 10;
var w = ui.screenWidth - 2 * marginal;
var h = 150;

h ska användas som höjd för knappar. Om du inte ser texten inuti knappar, försöka fixa det ändra detta värde.

Sedan sköter vi hur du ansluter och kopplar från en bluetooth-enhet. Observera att alla bluetooth-modul måste kopplas med Android bluetooth-menyn innan du försöker ansluta här, annars du kommer inte att se den i denna app.

var btnConnect = ui.addButton ("Anslut till bluetooth", marginal, 0, w, h).onClick(function() {
Om du vill använda Bluetooth-adress, använda:
network.bluetooth.connectSerial (macAddess, function(status) {});
btClient = network.bluetooth.connectSerial(function(status) {
Console.log ("connected" + status);
om (status === sant) {
btStatus = sant;
UI.toast("Connected!");
btnConnect.setAlpha(0);
btnDisconnect.setAlpha(255);
}
});
});
var btnDisconnect = ui.addButton ("Koppla" marginal, h, w, h).onClick(function() {
om (btStatus === sant) {
btClient.disconnect();
btStatus = false;
UI.toast("Disconnected!");
btnConnect.setAlpha(255);
btnDisconnect.setAlpha(0);
} annat {
UI.toast ("inte ansluten");
}
});

Som ni kan se här, har vi skapat knappar och inne i det vi hanterar all kommunikation.

De parametrar som vi behöver för att skapa en knapp är, från vänster till höger i funktion: Text som visas, x position, y-position, bredd och höjd.

Med btnConnect vi ansluta till bluetooth och bara med den här funktionen visar vi en listvy som visar alla tidigare ihopparade enheter. Då vi skriver ut bluetooth-status på protocoder web ide och, om status är lika med sant (är ansluten) ange btStatus, som vi använder som en flagga, true, då vi visar ett Android Toast säger den är ansluten och ändra alfa öppenhet för båda knapparna, roterande anslutningsknappen full insyn, och koppla ned till full ogenomskinlig.

Sedan med btnDisconnect vi bringa ur fattningen till bluetooth, en även vi återföra alla förändringar som vi har gjort efter Klicka på btnConnect.

Efter det ska vi skapa kort och skjutreglaget för varje färg (RGB). Varje kod är mestadels identiska, så jag ska förklara det för bara en av dem.

Först skapar vi en variabel med namnet på den färg, som det kommer att lagra värdet readed från slider med:

var röda = 0;

Efter det, vi skapar kortet att, i detta fall, det är som en liten markering som visar namnet på färgen. Skapa dem vi använder:

var cardRed = ui.addCard ("Röd", marginal, 2 * h, ui.screenWidth - marginalen, 100);

Vi kommer att skapa reglaget:

var sliderRed = ui.addSlider (marginal, 3 * h, w, 20, 0, 255).onChange(function(val) {
röd = Math.floor(val); < /p >< p > sträng = röd + "," + grön + "," + blå;
colourDec.setText(string);
hexString = red.toString(16) + green.toString(16) + blue.toString(16);
hexString = hexString.toUpperCase();
colourHex.setText(hexString);
Console.log(string);
});

De parametrar som vi behöver skapa ett reglage är, från vänster till höger i funktion: x-position, y-position, bredd, höjd, start av reglaget och slutliga värdet av reglaget.

När skapat dem, vi hanterar alla behövs för att göra vårt projekt arbeta:

Först vill vi bara använda heltal, så vi tolka värdet readed från reglaget från float att int.

Efter det, vi sammanfoga alla färger för att passa det format som Arduino räknar med att ta emot, lagra alla värden readed från färger till en sträng på sätt: röd, grön, blå

Efter att sätta vi värdet på colourDec, en variabel som visar den färg som vi ska skicka i en decimal "sätt".

Sedan vi göra samma sak för hexString, en variabel som visar den färg som vi kommer att skicka ett hexadecimalt "långt", och lägga den i versaler, ett vanligt sätt att Visa hexadecimala tal.

Då vi bara skriva ut strängen, som är den variabel som vi ska skicka till Arduino.

För att göra programmet Visa info om vilken färg vi ska skicka, vi drar en duk och vi visar den färg som vi ska skicka. Att åstadkomma att vi använda denna kod:

var duk = ui.addCanvas (marginal, 8 * h, w, h);
canvas.loopDraw (35, function() {
canvas.Fill(Red,Green,Blue,10);
canvas.rect (0, 0, ui.screenWidth, 500);
});

Efter det trycker vi decimal och hexadecimal värden av färg med:

var colourDecLabel = ui.addText ("Dec =", marginal, 9 * h, 2 * w, h);
var colourDec = ui.addText (h, 9 * h, 2 * w, h);
var colorHexLabel = ui.addText ("Hex =", marginal, 9,5 * h, 2 * w, h);
var colourHex = ui.addText (h, 9,5 * h, 2 * w, h);

Denna kod är ganska självförklarande, så jag går igenom.

Åtminstone nå vi till funktionen Skicka, som hanterar kommunikation med Arduino. Här är där vi överföra data till Arduino via bluetooth.

var btnSend = ui.addButton ("Skicka", marginal, 10 * h, w, h).onClick(function() {
om (btStatus === sant) {
UI.Jump(btnSend);
Console.log ("String =" + sträng);
btClient.send (string + \n");
UI.toast("sended!");
} annat {
UI.toast ("¡Not ansluten!");
}
});

I den här koden skapar vi en knapp, precis som vi gjorde innan, och kontrollera vilket värde har lagrats btStatus (bara för att komma ihåg, om den är ansluten kommer att vara sant, annars kommer att vara falskt). Om att btStatus är lika med sant, utför vi ett litet trick för att göra knappen att vara animerade med ui.jump(); funktion.

Då visar vi sträng data i konsolen, bara för felsökning förslag, skicka strängen och en linje hoppa (\n) genom bluetooth, så sänder vi: röd, grön, blue\n som är vad Arduino förväntar sig att få.

Då visar vi en Android toast säger data är avsändare.

I de fall btStatus flagga variabel är lika med falskt (inte ansluten) vi kommer att skicka en toast varning om detta.

Det är på Protocoder sida!

Se Steg
Relaterade Ämnen

Hur man kontrollerar Arduino med RC mottagare på 10 minuter

I denna tutorial kommer jag att visa dig hur du styr din Arduino med RC mottagare och sändare. Detta är ett mycket lätt upp och bara ta ca 10 minuter beroende på hur många saker du styr. I denna tutorial när rodret pinnen är vänster eller höger det g...

Tabellen cykel (aka Rackatabla) – eller hur man cykel tur med din vandring ryggsäck

Någonsin velat cykeltur men du inte har pengar att köpa dyra rack packväskor? Eller bättre, någonsin ville använda din cykel att transportera dig till basen av ett berg och ta din ryggsäck från rack och vandra? Eller kanske ännu bättre, någonsin miss...

Hur man kontrollerar lysdioder med bearbetning och Arduino

häromdagen jag konfronterades med ett intressant problem, jag behövde för att styra en serie lampor från växelverkan på en datorskärm och det skulle vara så billig som möjligt. Jag tänkte direkt på en Arduino. Den hade allt som jag behövde, mer än ti...

Hur man kontrollerar lysdioder med en fjärrkontroll

I ett tidigare instructable jag visade hur man får de HEX koderna för fjärrkontrollens knappar. Här är länken:Nu när vi har koderna, vi kan använda dem för att kontrollera vad vi önskar, i detta instructable jag kommer att visa dig hur att slå på och...

Hur man styr arduino med ett mail

Det finns många lösningar för att styra en Arduino ombord: web lösningar, desktopen applicering lösningar, lösningar. Men hur mail? Ja, du kan hitta något på nätet men de behöver ethernet sköldar och ofta är Arduino som skickar e-post. Jag kontroll A...

Hur man kontrollerar motor med SPDT reläer

Detta kommer att berätta hur man gör en DC motor gå klocka och motursSteg 1: delar1. 2 SPDT (Single pole Double kast) reläer2. 2 1K motstånd4. 2 dioder5. 2 transistorer (NPN)6. ledningar (alla manliga slutar)7. Arduino UNO8. små DC-motor9. 1 set av b...

Hur man kontrollerar GizDuino med bearbetning *

För några veckor sedan, har jag publicerat en Instructable om "Hur du styr GizDuino med Visual Basic" -.Jag kommer nu dokument ett annat sätt att kontrollera GizDuino med hjälp av open source bearbetning program som kan laddas ner från denna län...

Hur man sparar vatten med din luftfuktare.

En hela huset luftfuktare kan göra dig mer bekväm på vintern, och det kan hjälpa dig att vara lite grönare genom att göra ditt hus känns varmare, som låter dig skruva ner värmen. Men de flesta luftfuktare avfall en enorm mängd vatten. Här är hur man...

Hur man Ski Jour med din hund

ha lite kul samtidigt ge din hund lite motion-ha honom/henne dra dig på skidor! Detta instructable visar dig hur.Steg 1: Förbered dig Behöver du:1 hund seldon1 bungee rep1 hund koppel1 fanny pack eller bälte1 par nordic skidor och pjäxor1 par polacke...

Hur man kontrollerar arduino via bluetooth från (PC, pocket PC PDA)

Jag ville göra det möjligt att styra en arduino ombord från min telefon.Så att jag kunde styra andra enheter.Det enklaste sättet tycktes med bluetooth.men när jag fick de delar som behövs för jag vill ha riktigt så enkelt som jag hade hoppats.Och eft...

Upplåsning glödande kol för mer makt (eller hur man kontrollerar LED och Wintech projektorn via USB)

Wintech projektorn används i Ember skrivare maximal ljuseffekt varierar från enhet till enhet. På fabriken justeras projektorn i ett glödande kol skrivaren så att alla projektorer har samma produktion (ungefär 22,5 mW/cm2). Detta gör att samma skriva...

Hotel matlagning (eller hur man inte tömmer din plånbok äta ute)

gick jag till ett hotell för en konferens. Sporrade av det faktum att vi bara hade ätit ur och hade inget sätt att värma maten (ingen mikrovågsugn, spis, etc) jag fick en idé: Hur kan du laga mat på ett hotellrum?Så i ett försök att bevisa det gick,...

Hur man kontrollerar GizDuino med Visual Basic

Detta vägleder dig till uppsättningen upp, elkablar den yttre kretsen och kodning GizDuino och VBA i att kontrollera 4 lysdioder.Instructables delas in i 3:1. skiss för GizDuino2. VBA-kod och design3. ledningar för den yttre kretsen.* GizDuino är en...

Kryddig, Cheesy Tortilla Chips (eller: hur man bli av med Pizza Extras)

detta recept föddes som jag var hungrig.Allt jag behövde var några tortillas. Och sedan, i köket, jag hittade lite olivolja och en massa parmesan och röd paprika paket som var kvar från när min kontor beställde pizza förra veckan. Så jag gick på Inst...

Hur man har kul med din Trebuchet

du har byggt din 860 pund kontra vägda trebuchet, nu vad gör du med det? (Sorry vi inte ta bilder som vi byggde!) Förmodligen är den bästa aktiviteten att hitta en gammal campingvagn som ingen vill, bjuda in alla dina vänner över, och spendera helgen...

Arduino Universal Bluetooth Anslut - kontroll din Arduino med din Android-enhet

Jag ville alltid enkelt styra min Arduino med min Smartphone, men jag hittat aldrig den perfekta lösningen för att göra. Jag vill inte säga att detta är perfekt, men det gör vad jag vill att det ska do...well inte helt men jag är nära... Jag tror.I d...

Hur man kod Arduinos del 2

Har du någonsin undrat hur man kod Arduinos, väl din på rätt plats. Detta är en andra del till min hur kod Arduinos Instructable att visa dig några fler Arduino-kommandon. så luta dig tillbaka, koppla av och njuta av att lära. Läs lär hur man kod Ard...

Hur man programmerar Arduino marker under LPT med c ++ kod?

Hej igen!Idag Visa jag dig hur man programmerar Arduino chip(like ATtiny85) med c ++-koden (aka i Arduino IDE)Eftersom du inte kan använda BSD(aka LPT) programmerare med Arduino IDE, gjorde jag denna tutorital :)Obs: Denna tutorital beror på min en a...

Hur man kontrollerar din strömbrytare från din smartphone?

Vanligtvis när beslutsfattare väljer att konvertera sina hus från vanliga hus till smart kära, de köper vissa reläer för att styra lamporna men detta äventyr kommer att leda till en ful förpackning med hemsk röra av ledningar som vi inte älskar att l...