Indholdsfortegnelse:

Guino: Dashboard til din Arduino: 4 trin (med billeder)
Guino: Dashboard til din Arduino: 4 trin (med billeder)
Anonim
Guino: Dashboard til din Arduino
Guino: Dashboard til din Arduino
Guino: Dashboard til din Arduino
Guino: Dashboard til din Arduino
Guino: Dashboard til din Arduino
Guino: Dashboard til din Arduino
Guino: Dashboard til din Arduino
Guino: Dashboard til din Arduino

Dette projekt er en del af eksperimenter, der blev udført, mens man lavede en artist in residence på Instructables. Du kan se de andre projekter her. Det kan være en vanskelig opgave at fejlsøge og visualisere data i realtid på Arduino -kortet. Du sidder normalt fast med standard seriel output, da kompleksiteten af din Arduino -kode vokser, gør det det umuligt at forstå, hvad der egentlig foregår inde i tavlen. For at løse dette har jeg oprettet et lille bibliotek, der giver dig mulighed for at oprette din egen brugerdefinerede GUI til dine Arduino -projekter. Se denne video for at få en demonstration af en grundlæggende hejverden med et potmeter og en diode: Fra nu af har programmet følgende muligheder og funktioner: Tilpasset design din grænseflade fra Arduino -kortet Du definerer hvilke skydere, grafer og knapper du har brug for til din grænseflade. Du gør dette i din Arduino -skitse, hvilket betyder, at gui -programmet fungerer som slave til skitsen. Alle oplysninger gemmes på dit bord. Visualiser og manipuler realtidsdata Uanset om du laver en RGB -lyscontroller eller en robotarm, er det afgørende at få en grafisk feedback for at forstå, hvad der foregår inde i tavlen. Dette giver dig mulighed for at forstå, om det er din hardware eller koden, der forårsager et problem. Sliderne og knapperne giver dig også mulighed for at justere de enkelte parametre i realtid. På denne måde kan du se, hvilken effekt forskellige tærskler har på interaktionen. Gem parametrene i kortets hukommelse Når du har justeret parametrene, kan du gemme dem på EEProm på tavlen. Parametrene indlæses automatisk, næste gang du tænder for kortet, selvom computeren ikke er tilsluttet. Brug den samme app til alle dine Arduino -projekter, jeg har lavet masser af små apps til forskellige projekter. Mit problem er altid at finde dem igen et år senere. Fordi vi gemmer alt i Arduino, behøver jeg kun at beholde en app omkring Arduino, der automatisk konfigurerer appen til det aktuelle projekt. Prototype grænsefladen, før du tænder loddejernet Fordi du kan designe gui, som du kan lide den (inden for rimelig tid) grænser), kan du prototype grænsefladen, før du har lavet en fysisk grænseflade. Dette giver dig også mulighed for at opdele opgaverne mellem flere personer f.eks. en person arbejder på hardwaren, og en anden person arbejder på koden. Når du har lavet den fysiske grænseflade, integreres Guino problemfrit. Brug det som et dashboard i fuld skærm Du kan bruge det som et dashboard i fuld skærm ved at trykke på F og trykke på T for at skifte indstillingspanelets synlighed. Du præsenterer hermed kun din brugerdefinerede grænseflade for verden omkring dig. Styr baggrundsfarven Baggrundsfarven kan styres fra Arduino, så du kan oprette forskellige farver til forskellige skitser. Det kan også bruges til at lave advarsler, når der er noget galt. Det kan være grønt, når alt er ok og rødt, når noget er galt. Hurtig og slank Jeg har været meget omhyggelig med at gøre fodaftrykket på Arduino så lille som muligt - Det gemmer kun en minimumsmængde data i hukommelsen (konkret en markør liste over 100 varer). Denne indstilling kan ændres til lavere eller højere afhængigt af mængden af gui -emner, du agter at have i din grænseflade. Systemet er desuden afhængigt af EasyTransfer -biblioteket, der overfører oplysningerne i binær form. Hver pakke består af en byte til kommando, en byte for element # og et helt tal for værdien. Ideelt set bør alle dine data normaliseres til et 16 bit signeret heltalsområde. Dette betyder optimal brug af den serielle port, når du arbejder med heltal (teknisk set bruger vi lidt ekstra plads til en checksum). God til instruktioner GUI'en giver dig mulighed for at lave instruktioner, der kun kræver kernekomponenter. Ekstra komponenter som potmetre osv. Kan laves stort set via gui. Begrænsninger og fremtidige planer Lige nu er appen blevet kompileret til Mac OSX og Windows platformen. Det er skrevet i Openframeworks, så det burde også kunne køre på andre platforme. Da appen bruger den serielle port, kan du ikke slutte andre programmer til Arduino. Dette vil blive løst i en fremtidig udgivelse, som vil omfatte en åben lydkontrol og en Midi -bro. Kreditter: Programmering og idé af: Mads Hobye Easytransfer -bibliotek af: Bill Porter GUI -bibliotek af: Reza Ali

Trin 1: Kom godt i gang

Kom godt i gang
Kom godt i gang
Kom godt i gang
Kom godt i gang
  • Download og pak ud GUINO -pakken.
  • Hent Arduino
  • Kopiér biblioteksmappen til din Arduino biblioteksmappe (hvordan her)
  • Genstart Arduino.
  • Åbn et af eksemplerne i Arduino. (Menu: Filer -> Eksempler -> Guino -> vælg en)
  • Hvis du bruger det enkle eksempel, skal du lave et kredsløb som vist ovenfor.
  • Upload eksemplet.
  • Kør Guino -appen.
  • Vælg den serielle port (normalt den sidste)
  • Tryk på tilslut.

Kilden kan findes her.

VIGTIGT: Når du bruger den på Windows -platformen, skal du bruge en com -port, der er lavere eller lig med 10. Hvis du bruger en port, der er 10 eller derover, fungerer systemet ikke. Dette er en fejl i openframeworks.

Trin 2: Sådan ændres koden

Sådan ændres koden
Sådan ændres koden

For at biblioteket kan fungere med din skitse, har du brug for et par ekstra metoder. Jeg har beskrevet dem herunder: gInit () det er her du definerer dit layout Denne metode definerer layoutet ved at tilføje komponenter i rækkefølge. Komponenter, der kan ændres (skyderen, knapper osv.) Har en variabel knyttet til den. & Foran variablen betyder, at vi ikke ønsker at videregive værdien i variablen, men vi vil sende en reference (markør) til variablen. På denne måde opdaterer Guino -systemet dem automatisk, når der sker ændringer i GUI. void gInit () {gAddLabel ("SLIDERS", 1); gAddSpacer (1); gAddSlider (3, 200, "WIDTH" og bredde); gAddSlider (3, 200, "HEIGHT", & height); gAddSlider (0, 255, "LED BRIGHTNESS", & ledLight); // De roterende skydere gAddLabel ("ROTARY SLIDERS", 1); gAddSpacer (1); [………….] GAddColumn (); // Tilføj flere ting her. gSetColor (r, g, b); // Indstil farven på gui -grænsefladen. } GButtonPressed (int id) dette kaldes, når der er trykket på en knap Generelt kan variabler opdateres automatisk, men i tilfælde af en knap skal det være en begivenhed, du tager dig af. I dette eksempel sætter vi højdevariablen til 100, når nogen trykker på knappen. void gButtonPressed (int id) {if (buttonId == id) {height = 100; gUpdateValue (& højde); }} gItemUpdated (int id) Dette kaldes, når og elementet er blevet opdateret Det er normalt ikke nødvendigt at bruge dette, da systemet opdaterer variablerne automatisk. Hvis du vil reagere på en ændring, kan du bruge den som sådan. I dette tilfælde opdaterer vi baggrundsfarven, når en af de 3 roterende skyder er blevet ændret. void gItemUpdated (int id) {if (rotaryRID = id || rotaryGID == id || rotaryBID == id) {gSetColor (r, g, b); }}

Trin 3: Et par hurtige tips

Husk at afbryde forbindelsen, når du uploader en ny skitse Du kan ikke have Guino kørende, mens du uploader en ny skitse til Arduino -kortet, fordi de bruger den samme serielle forbindelse. Dette kræver, at du afbryder forbindelsen, hver gang du uploader en ny skitse. Hvis du (og du vil) forsøge at uploade mens Guino er tilsluttet, kan brættet gå i en mærkelig tilstand, hvor det lidt kører, men ikke helt. På dette tidspunkt er din eneste mulighed at nulstille kortet ved at trykke på reset -knappen eller ved at afbryde og tilslutte usb -kablet. Kendte fejl Fra nu af fungerer systemet og er stabilt. Følgende er fejl, man bør være opmærksom på:

  • setMin fungerer ikke på en movingGraph (der ser ud til at være en fejl i GUI -biblioteket, der skal rettes). Så minimum forbliver på nul.
  • Serielisten indlæses, når programmet startes. Arduino skal tilsluttes, før programmet startes. Opdatering af serielisten, mens den kører, forårsager en dårlig begivenhed. Det mangler endnu at blive løst.
  • Fiddle med serielisten - får nogle gange programmet til at gå ned (samme gui -begivenhed som opdatering - skal finde kilden)
  • Toggle -knappernes baggrund bliver sort afhængigt af initialisering. Jeg skal indstille baggrunden manuelt.
  • På nogle Windows -platforme vises com -porten ikke. Det kan være et ftdi -driverproblem.

Trin 4: Brug sager

Brug sager
Brug sager

Hvis du vil se nogle brugssager med Guino -grænsefladen, skal du gå til denne Instructable.

Anbefalede: