Gör en lätt knappen Wireless (6 / 6 steg)

Steg 6: programmering



Det enklaste sättet att ansluta till XBee är via en seriell-till-USB-omvandlare. Den döda enklaste är en USB-XBee Explorer som bärs av SparkFun, Adafruit och de vanliga misstänkta. Nästa enklaste är en FTDI breakout, som Adafruit's "FTDI vän." Jag har gjort det båda hållen. För alla dem med en Arduino liggande, kan du vända det till en seriell-till-USB-konverterare ganska lätt samt (fram till Leonardo, som är--dra inte mer chip så att åtkomst till FTDI, eftersom det finns ingen mer FTDI på Leonardo!) Du kan dock använda seriella portar eller mjukvaran följetong, och skickar AT-kommandon från en Arduino. Jag råkar bara gillar att göra det i en terminal på min laptop.

Kan du prata med en med ett vanligt terminalprogram, men det är jobbigt på OS-X eftersom XBee inte skickar tillbaka kommandot rätt nya linje och alla svar få rörig tillsammans. Lyckligtvis Tom Igoe har klivit in i en enkel terminal program skrivet i bearbetning (och olika personer har utökat det sedan). Jag använder en modifierad version av Toms ursprungliga program, som jag kom in för hand ur texten i sin bok "Att göra saker Talk."

Här är den aktuella versionen av koden jag använder:

import processing.serial.*;
Seriella myPort;
Sträng portnum;
String outString = "";
InString sträng = "";
int receivedLines = 0;
int bufferedLines = 8;

void setup()
{
storlek (400, 300);
PFont myFont = createFont(PFont.list() [3], 14);
textFont(myFont);
println(Serial.list());
portnum = Serial.list() [3].
myPort = ny följetong (denna, portnum, 9600);
}

void draw()
{
Background(0);
text ("seriell port:" + portnum, 10, 20);
text ("skrivit:" + outString, 10, 40);
text ("fick:" + inString, 10, 80);
}

void keyPressed()
{
Switch (nyckel)
{
fallet "\n":
myPort.write (outString + "\r");
outString = "";
bryta;

mål 8:
outString = outString.substring (0, outString.length() -1);
bryta;

fall 65535:
bryta;

fallet "+":
myPort.write(key);
outString += nyckel;
bryta;

standard:
outString += nyckel;
bryta;

}
om (outString == "+++")
{
Delay(2000);
outString = "/ n";
}
}

void serialEvent(Serial myPort)
{
inString = "Serial händelse nyinkomna!";
Delay(2000);
int inByte = myPort.read();
inString += char(inByte);
om (inByte == '\r')
{
inString += "\n";
receivedLines ++;
om (receivedLines > bufferedLines)
{
deleteFirstLine();
}
}
}

void deleteFirstLine()
{
int firstChar = inString.indexOf('\n');
inString = inString.substring(firstChar + 1);
}

Kort stavelse bildar här. Du använder kommandon som börjar med en uppmärksamhet koden (+++, inget vagnretur) att få chip's uppmärksamhet, då en serie kommandon varje efterföljt av "AT". De är alla dokumenterade i manualen för XBee och om du inte vill gå så långt, grundläggande kommandon för att inrätta en linjen passerar läge kopieras på flera ställen på webben-- här, till exempel.

Som jag minns, var det enda jag var tvungen att ställa in på sändaren slutet:

+++ //gets nodens uppmärksamhet, det kommer att svara med "OK"
ATMY2 //this är nodens egen identitet
ATDL3 //this är den låga byten av adressen noden vill prata med
ATID5555 //this är PAN-ID; ID för det nätverket båda enheterna är på
ATD03 //this ställer in stift 20--Digital i/o 0, som en digital ingång
ATICFF / / övervakar alla I/O stift och skickar en överföring när någon av dem ändrar. Detta är ett bitfält, om du inte vill ha dem alla.
ATWR / / Glöm inte detta kommando! Det skriver inställningarna i minnet


ATAC / / detta kommando orsakar noden för att börja använda de nya inställningarna (och nära kommando-läge).

Du kan också tvinga prov mellanrum med hjälp av det och IR-kommandon, samt--genom att använda den rätta PIN-kod--har nod sömnen när det finns ingen ingång närvarande.

Min recieiver behövs för att de ömsesidiga ID: n och ställas in för pin utdata:

+++
ATRE / / återställa fabriksinställda - låt oss vara säkra här!
ATMY3
ATDL2
ATID5555
ATD05 / / nu stift 20 är sätta till ändra tillstånd beroende på data som tas emot från sändaren
ATWR
ATAC

Som ni kanske har märkt, finns det inget som tvingar överföring för att endast vara enkelriktad. Noderna kommunicerar gärna bidirectionally med de seriella linjerna (som inte har påverkats av denna linjen passerar läge, låt mig Obs!) och de kommer gärna upprepa I/O linjer i båda riktningarna.

Jag rekommenderar starkt att få XBee noderna talar på skärbräda innan du börjar skruva din knapp tillbaka tillsammans.

Åh; och den andra änden? Upptäcka ett "drog låg" är lika enkelt som att köra en tråd från lämplig i/o pin på XBee till en öppen I/O stift på Arduino och skrift;

CONST int xbeePin = 8;
CONST int ledPin = 13.

void setup()
{
pinMode (xbeePin, ingång);
pinMode (ledPin, produktionen);
}

void loop()
{
om (digitalRead(xbeePin) == låg)
{
digitalWrite (ledPin, hög);
}
annat
{
digitalWrite (ledPin, låg);
}
}

(Ovanstående kod ska fungera men jag skrev det med ögat här i Instructable. Jag har fått mycket brukade ha den Arduino- eller bearbetning - IDE checken min syntax för mig!)

Första gången jag satte min lätt knappen till är att ansluta mottagaren XBee till en Arduino som jag redan hade satt upp till spottar ut en MIDI-not meddelande när det såg rätt utlösa signalen. Vi använde nästan det som spelet Visa-typ summern för den musikaliska "Lucky Duck." Lite senare jag ansluten MIDI-kabel till vår belysning konsolen och kunde köra lätta signaler från utanför ljus montern på en show där tech var short-handed.

Fruktansvärda röran i den andra bilden är jag med knappen för att ändra program på BlinkM jag ändra (aka anslutit den till min Adafruit ISP och skrev nya program inom Arduino IDE). Det senare kan vara lite slöseri av en $20 radio, men det visar flexibiliteten i en fristående trådlös knapp.

Se Steg
Relaterade Ämnen

Ställa in en MAC-Filter

detta instructable visar dig hur man ställer in ett säkert trådlöst nätverk med en MAC-adress filter. Jag har aldrig haft några säkerhetsproblem, och det visas som ett oskyddat trådlöst nätverk, vilket innebär att du kan stöta bort en hänsynslös rums...

Knappen aktiveras... Något!

Har du någonsin velat ha en knapp för att utlösa något på din dator? Tja, är här hur du kan göra det.Steg 1: Material och verktyg Här är vad du kommer att behöva göra denna enkla rigg:•PS/2 eller USB-tangentbord (wireless kan fungera) beroende på vad...

Xbox 360 Wireless + Arduino

Syfte:Snabb installation att få dina robotic projekttrådlöst kontrolleras med en Xbox 360-handkontroll* Uppdatera (11 / 24 / 2015):Om användande pc och har problem (särskilt med kortet inte känns igen eller att ha ett grönt fast sken) prova följande:...

Root Verizon Wireless Samsung Fascinate telefonen och installera Froyo

Denna uppsättning instruktioner gör att du kan "root" telefonen Verizon Wireless Samsung Fascinate och installera Froyo (Android 2.2). Rooting telefonen kan du installera och använda tredje parts programvara som du inte kan använda med telefoner...

Wireless Shutter Remote

På ett infall beslutat jag att leta efter en fjärrkontroll för min trogna Panasonic FZ100. Visar sig, fjärrkontrollen är trådbundna och kostar $50! Jag bestämde mig att göra mig en fjärrkontroll av min egen, men jag skulle göra ett bättre, billigare...

Wireless Halloween ljudeffekter

Det var 2:00 på eftermiddagen före Halloween och jag ville dåligt lägga till rörelse utlöses ljudeffekter till trick-or-treat erfarenhet. Inte vill trotsa publiken att göra en sista minuten dash för Halloween leveranser, jag på väg till min projekt l...

Wireless Power med UMK8

Ok, detta projekt är inte någon forskning för allvarliga Wireless driver, med hög effektivitet, det är bara några fritid Microcontroller projekt, och samtliga variabel och inställningen i detta projekt är att få genom försök och misstag och det inte...

Arduino Wireless SD sköld handledning

som namnet antyder, Arduino Wireless SD sköld har två funktioner. Främst tillåter denna sköld dig att enkelt gränssnitt med Xbee transceiver moduler att skapa mesh-nätverk och andra trådlösa enheter. För det andra, mikro SD uttaget kan du lagra och f...

Lägga till knappen Spela/hoppa över din fristående CD-ROM-enhet

om du vill göra en CD-spelare från en gammal CD-ROM enhet (Visa här) men den enhet du har inte har en PLAY/hoppa över knapp på framsidan... Dont vemod, kan du lägga till en till de flesta CD-enheter, >>>> läsa påSteg 1: Verktyg n StuffVerktyg:...

Amazon Dash knappen hacka

Den 31 mars 2015 lanserade Amazon Amazon Dash knappen i ett försök att ändra paradigm som vi regelbundet köper förbrukningsvaror.10 augusti, publicerar Ted Benson Detaljer för en ganska invecklade Amazon knappen hacka på medium.com26 augusti, en meda...

Knappen Cookies i en flaska

jag hålla dekorativa containrar runt så de är tillgängliga när någonsin jag bakar kakor och andra godsaker. Vi kan inte äta allt jag bakar, så ger jag alltid extra till mina vänner och familj. Dessa behållare erbjuder en trevlig presentation för någr...

Ginormous knappen kudde

kunde inte hjälpa men försöka göra min egen version av en stor knapp kudde jag såg online. Jag ändrade det med rött tyg markör på min naturliga twill tyg. Om du syr, är lika enkelt som det blir.Steg 1: Samla ditt material Symaskinsax3/4 gården av twi...

Knappen hårnål

Jag har nyligen köpt en stor behållare av knappar. Det finns många saker som jag lär mig att använda dessa knappar för och en craft har jag alltid velat prova är att dekorera ett hår hårspänne med knappar. Jag gillar att ha lite extra färg och stil a...

Knappen mania armband

DETTA ARMBAND ÄR MYCKET ENKEL ATT GÖRA OCH KRÄVER ENDAST HUSGERÅD. DESS TID KRAV ÄR OCKSÅ MYCKET MINDRE. SÅ SE TILL ATT PROVA UT DEN OCH ÖVERRASKA DINA VÄNNER MED DENNA UNIKA ARMBAND!!!Steg 1: kravTunn bambu pinnar att vi kan böja i form av en cirkel...

Ett jätte lapptäcke och knappen mosaik brev

Denna jätte inledande versal har en platt botten så att den kan sitta på en hylla men denna teknik är bara lämpligt att dekorera en stor bokstav. Med hjälp av en jätte bokstav snarare än ett hela namn har du mycket större utrymme för kreativitet!Steg...

Knappen blombukett

se till att du hoppa över till min blå sammet stol blogg om du gillar detta projekt och vill se mer intressant återanvända mönster.Även om tanken har funnits ett tag, jag kände mig helt vimmelkantig när jag plockade upp blombukett knappen jag satte i...

Amazon Kindle Fire knappen Protector

Jo jag har haft Amazon Kindle Fire sedan den kom ut och jag verkligen njuta av det utom 1 liten liten sak: The Power-knappen.Jag kan inte berätta hur många gånger jag har oavsiktligt stötte det och det visar off eller i vissa fall vänder på. Det är ö...

Svarta marknaden Mods DS4 ansikte knappen utlöser

VälkommenDetta är en handledning för att följa med Shapeways modellen erbjuds i min butik. Du kan hitta de tillgängliga här. Jag kom till denna design baserat på min erfarenhet med den nuvarande populära stilen av paddel design för ansikte knappar. J...

Closet ljus Arcade skåp knappen

Detta instructable är om att ta billiga garderob lampor och ändra dem för att skapa obnoxiously stora tryckknappar för spel eller andra interaktiva projekt. Jag hittade denna Tvåpack garderob lampor i impuls köp bin på väg till registret på Home Depo...