Indholdsfortegnelse:
2024 Forfatter: John Day | [email protected]. Sidst ændret: 2024-01-30 08:28
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
- 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
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
Hvis du vil se nogle brugssager med Guino -grænsefladen, skal du gå til denne Instructable.
Anbefalede:
Steam Punk din UPS for at få timers oppetid til din Wi-Fi-router: 4 trin (med billeder)
Steam Punk din UPS for at få timers oppetid til din Wi-Fi-router: Der er noget fundamentalt ubehageligt ved at få din UPS til at konvertere sin 12V DC-batteristrøm til 220V vekselstrøm, så transformerne, der kører din router og fiber ONT, kan konvertere den tilbage til 12V DC! Du er også oppe imod [typisk
Sådan laver du din egen WIFI -gateway til at forbinde din Arduino til IP -netværk?: 11 trin (med billeder)
Sådan laver du din egen WIFI -gateway til at forbinde din Arduino til IP -netværk?: Som så mange mennesker synes du, at Arduino er en meget god løsning til hjemmeautomatisering og robotik! Men når det kommer til kommunikation, kommer Arduinos bare med serielle links. Jeg arbejder på en robot, der skal være permanent forbundet med en server, der kører ar
Tips til at gøre din projektidé til virkelighed: 6 trin (med billeder)
Tips til at gøre dit projektidé til virkelighed: Den mest kritiske del af et vellykket projekt er at have en virkelig god idé, men nogle gange er ideen den lette del! Derefter kommer det hårde arbejde med at gøre et tilfældigt genialt glimt til noget, som folk " ooh " og "ah" ov
CityCoaster - Byg din egen Coaster for augmented reality til din virksomhed (TfCD): 6 trin (med billeder)
CityCoaster - Byg din egen Augmented Reality Coaster for din virksomhed (TfCD): En by under din kop! CityCoaster er et projekt, der tænker på et produkt til Rotterdam i Haag Lufthavn, som kunne udtrykke byens identitet og underholde klienterne i loungeområdet med augmented reality. I et miljø som sådan
Sådan gør du din LG EnV 2 -mobiltelefon til et bærbart opkaldsmodem til din bærbare computer (eller skrivebord): 7 trin
Sådan gør du din LG EnV 2 -mobiltelefon til et bærbart opkaldsmodem til din bærbare computer (eller skrivebord): Vi har alle på et tidspunkt haft brug for at bruge internettet, hvor det bare ikke har været muligt, f.eks. I bilen , eller på ferie, hvor de opkræver et dyrt beløb i timen for at bruge deres wifi. endelig har jeg fundet på en simpel måde at få