Reginald: en UDP-övervakning bot; kontroll via Internet (6 / 26 steg)
Steg 6: Reginalds kod
Sammanfattning; för att framgångsrikt driva koden för Reginald, måste du utföra följande:
- Ladda ner allt som krävs. (Arduino och bearbetning IDE, zip-filen på denna Instructable sida och bibliotek)
- Konfigurera bearbetning genom att placera biblioteken i rätt katalog i mappen bearbetning
- Konfigurera skissen för GUI
- Att kunna ladda upp koden till Arduino
För GUI, du kommer att kräva bearbetning IDE (det ser bekant, Arduino IDE baseras på bearbetning IDE), den ControlP5 och Hypermedia biblioteket.
Jag antar att du redan har Arduino IDE, hämta zip i denna instructable sida och följ länkarna för att hämta lämpliga SW:
Bearbetar IDE:
http://Processing.org/download/
ControlP5 bibliotek:
http://www.sojamo.de/libraries/controlP5/
Hypermedia bibliotek (Klicka på "Processing library"):
http://ubaa.net/Shared/Processing/UDP/
Om bearbetning och bibliotek:
Behandlingen är ett bra sätt att enkelt skapa program som öppnar oberoende windows för att fånga användarhändelser. När ett program är klar, är det en struntsak att exportera programmet i en körbar fil. Det finns många sätt att fånga användarinteraktion.
ControlP5 biblioteket hjälper till att skapa de olika knapparna och widgets används i GUI jag gjort. ControlP5 är en överlägsen bibliotek för GUI skapandet. Det är lätt att använda, mycket skarp och omfattande. Med bearbetning och ControlP5, du kan enkelt skapa en kraftfull och har rika användargränssnitt.
Hypermedia biblioteket hanterar all UDP-meddelanden.
Vad gör jag med biblioteken?
När du har laddat ner allt, måste du placera de två biblioteken på rätt plats så att behandling kan hitta dem. Packa upp arkiven (Hypermedia kommer att hämta som en "udp.zip" fil) och Följ vägen:
processing-X.X.X\modes\java\libraries
inom bearbetning mappen i dina nedladdningar. Den "x representerar versionsnumret för bearbetning du har laddat ner. Placera mapparna för biblioteken här.
Nu konfigurera skissen för GUI:
För att konfigurera skissen för GUI, allt man behöver göra är att ta tag i mappen: "GUIClient" från .zipen fil och sätta det någonstans på sin dator.
Inom bearbetning IDE, välja att öppna en skiss och bläddra till mappen "GUIClient". Ange mappen och välj skissen inuti. Ett nytt fönster för bearbetning bör ladda upp med kod. Kör programmet.
Efter att ha valt "Kör", kan ett fel visas inom bearbetning konsolen om programmet inte kan öppna uttaget korrekt. Detta kan förväntas; sedan rätt IP-adress och port sannolikt har inte angetts ännu.
Kryptera Reginald:
Reginald vill inte styras av vem som helst, så han är krypterad med sitt eget lösenord. Se bilderna 4 och 5 för att se en demonstration av detta.
När du skickar kommandot "vakna", ser Reginald detta som en begäran om tillgång. Vid den tidpunkten, finner han din IP-adress och portnummer som du har skickat och skickar en hälsning till dig. Vid denna punkt, kommer han att begära ett lösenord för åtkomst. In i rätt lösenord och du kan ha kontroll. Blir du nekad men om lösenordet är felaktigt.
Om du försöker kontrollera Reginald från en fjärrplats, kanske Tänk på att du inte får Reginalds hälsning och bekräftelse av tillgång. Detta beror på om du är ansluten till wifi för en skola eller ett företag, brandväggen för det wifi kan blockera meddelanden Reginald försöker skicka dig. Men detta påverkar inte funktionaliteten. Om du anger helt enkelt i "vakna" följt av ditt lösenord, får du tillgång inom 15 sekunder. Reginald kommer helt enkelt anta att du har fått paketen. Detta är en av nackdelarna med att UDP i stället för TCP. TCP ser till att paketet tas emot UDP helt enkelt skickar paketet och inte oroa sig för. Men denna brist på kontroll gör UDP mycket snabbare och lätt, vilket jag gillar.
Tider som dessa är där "Låsa Switch" är praktiskt. Om jag skulle skicka "vakna" med "Låsa Switch" oduglig, sedan trycka på tangenterna "w" och "a" skulle skicka kommandon. Detta kan förvirra Reginald, och du skulle nekas försöker skriva in ditt lösenord.
Redigera den 6: e mars, 2013 ***
Bearbetning har sedan dess uppdaterat deras SW från 1.5.1 till Beta 2.0. Om du har version 2.0 eller högre, använda GUIClient2.0 inom zip-filen. Den enda skillnaden är nyckeln fånga metod, du kan läsa om det här:
http://Processing.org/reference/Key.html