Spisu treści:

Guino: Dashboard dla Twojego Arduino: 4 kroki (ze zdjęciami)
Guino: Dashboard dla Twojego Arduino: 4 kroki (ze zdjęciami)

Wideo: Guino: Dashboard dla Twojego Arduino: 4 kroki (ze zdjęciami)

Wideo: Guino: Dashboard dla Twojego Arduino: 4 kroki (ze zdjęciami)
Wideo: Спортивный Шаблон для Notion // План Тренировок // Трекер Привычек // Виджеты! 2024, Listopad
Anonim
Guino: deska rozdzielcza dla Twojego Arduino
Guino: deska rozdzielcza dla Twojego Arduino
Guino: deska rozdzielcza dla Twojego Arduino
Guino: deska rozdzielcza dla Twojego Arduino
Guino: deska rozdzielcza dla Twojego Arduino
Guino: deska rozdzielcza dla Twojego Arduino
Guino: deska rozdzielcza dla Twojego Arduino
Guino: deska rozdzielcza dla Twojego Arduino

Ten projekt jest częścią eksperymentów wykonywanych podczas pobytu artysty w Instructables. Możesz zobaczyć inne projekty tutaj. Debugowanie i wizualizacja danych w czasie rzeczywistym na płycie Arduino może być trudnym zadaniem. Zwykle utknąłeś ze standardowym wyjściem szeregowym, ponieważ złożoność kodu Arduino rośnie, co uniemożliwia zrozumienie, co faktycznie dzieje się na płycie. Aby rozwiązać ten problem, stworzyłem małą bibliotekę, która umożliwi ci stworzenie własnego niestandardowego GUI dla twoich projektów Arduino. Obejrzyj ten film, aby zobaczyć demonstrację podstawowego hello world z potencjometrem i diodą: Od teraz program ma następujące możliwości i funkcje: Zaprojektuj swój interfejs na zamówienie z płytki Arduino Sam określasz, które suwaki, wykresy i przyciski są potrzebne dla twojego interfejsu. Robisz to w swoim szkicu Arduino, co oznacza, że program gui działa jako niewolnik szkicu. Wszystkie informacje są przechowywane na tablicy. Wizualizuj i manipuluj danymi w czasie rzeczywistym Niezależnie od tego, czy tworzysz kontroler światła RGB, czy ramię robota, uzyskanie graficznej informacji zwrotnej ma kluczowe znaczenie dla zrozumienia, co dzieje się wewnątrz tablicy. Pozwala to zrozumieć, czy przyczyną problemu jest Twój sprzęt, czy kod. Ponadto suwaki i przyciski umożliwiają dostosowywanie poszczególnych parametrów w czasie rzeczywistym. W ten sposób możesz zobaczyć, jaki wpływ na interakcję mają różne progi. Zapisz parametry w pamięci karty Po dostrojeniu parametrów można je zapisać w pamięci EEProm karty. Parametry zostaną automatycznie załadowane przy następnym włączeniu płyty, nawet jeśli komputer nie jest podłączony. Użyj tej samej aplikacji do wszystkich projektów Arduino. Zrobiłem mnóstwo małych aplikacji dla różnych projektów. Mój problem polega na tym, że rok później znów je odnajdę. Ponieważ zapisujemy wszystko w Arduino Potrzebuję tylko jednej aplikacji wokół Arduino automatycznie skonfiguruje aplikację dla bieżącego projektu. Prototypuj interfejs przed włączeniem lutownicy Ponieważ możesz zaprojektować interfejs użytkownika tak jak chcesz (w rozsądnym zakresie ograniczenia), możesz stworzyć prototyp interfejsu, zanim stworzysz interfejs fizyczny. Umożliwia to również podział zadań między wiele osób, np. jedna osoba pracuje na sprzęcie, a druga nad kodem. Kiedy stworzysz fizyczny interfejs, Guino zintegruje się bezproblemowo. Używanie go jako pełnoekranowego pulpitu nawigacyjnego Możesz go używać jako pełnoekranowego pulpitu nawigacyjnego, naciskając F, a naciśnięcie T przełącza widoczność panelu ustawień. Niniejszym przedstawiasz tylko swój niestandardowy interfejs dla otaczającego Cię świata. Kontroluj kolor tła Kolor tła można kontrolować z Arduino, co umożliwia tworzenie różnych kolorów dla różnych szkiców. Może być również używany do wysyłania alertów, gdy coś jest nie tak. Może być zielony, gdy wszystko jest w porządku, a czerwony, gdy coś jest nie tak. Szybki i smukły Dbałem o to, aby ślad na Arduino był jak najmniejszy - przechowuje tylko minimalną ilość danych w pamięci (konkretnie wskaźnik lista 100 pozycji). To ustawienie można zmienić na niższe lub wyższe w zależności od ilości elementów gui, które zamierzasz mieć w swoim interfejsie. Ponadto system opiera się na bibliotece EasyTransfer, która przekazuje informacje w formie binarnej. Każdy pakiet składa się z bajtu dla polecenia, bajtu dla pozycji # i liczby całkowitej dla wartości. W idealnym przypadku wszystkie dane powinny być znormalizowane do zakresu 16-bitowych liczb całkowitych ze znakiem. Oznacza to optymalne wykorzystanie portu szeregowego podczas pracy z liczbami całkowitymi (technicznie wykorzystujemy trochę dodatkowego miejsca na sumę kontrolną). Dobre dla Instructables GUI umożliwia tworzenie Instructables, które wymagają tylko podstawowych komponentów. Dodatkowe komponenty, takie jak potencjometry itp., można wykonać wirtualnie za pomocą gui. Ograniczenia i plany na przyszłość W tej chwili aplikacja została skompilowana na platformę Mac OSX i Windows. Jest napisany w Openframeworks, więc powinien działać również na innych platformach. Ponieważ aplikacja korzysta z portu szeregowego, nie będziesz mógł połączyć innych programów z Arduino. Zostanie to rozwiązane w przyszłej wersji, która będzie zawierać Open Sound Control i mostek Midi. Kredyty: Programowanie i pomysł autorstwa: Mads Hobye Biblioteka Easytransfer autorstwa: Bill Porter Biblioteka GUI autorstwa: Reza Ali

Krok 1: Pierwsze kroki

Pierwsze kroki
Pierwsze kroki
Pierwsze kroki
Pierwsze kroki
  • Pobierz i rozpakuj pakiet GUINO.
  • Pobierz Arduino
  • Skopiuj folder bibliotek do folderu bibliotek Arduino (jak tutaj)
  • Zrestartuj Arduino.
  • Otwórz jeden z przykładów w Arduino. (Menu: Pliki -> Przykłady -> Guino -> wybierz jeden)
  • Jeśli użyjesz prostego przykładu, wykonaj obwód, jak pokazano powyżej.
  • Prześlij przykład.
  • Uruchom aplikację Guino.
  • Wybierz port szeregowy (zwykle ostatni)
  • Naciśnij połącz.

Źródło można znaleźć tutaj.

WAŻNE: Używając go na platformie Windows, musisz użyć portu COM mniejszego lub równego 10. Jeśli używasz portu, który ma 10 lub więcej, system nie będzie działał. To jest błąd w openframeworks.

Krok 2: Jak zmodyfikować kod

Jak modyfikować kod
Jak modyfikować kod

Aby biblioteka działała z Twoim szkicem, potrzebujesz kilku dodatkowych metod. Opisałem je poniżej: gInit() tutaj definiujesz swój układ Ta metoda definiuje układ poprzez sekwencyjne dodawanie komponentów. Komponenty, które można zmienić (suwak, przyciski itp.) mają dołączoną zmienną. Znak & przed zmienną oznacza, że nie chcemy przekazywać wartości w zmiennej, ale chcemy przekazać odwołanie (wskaźnik) do zmiennej. W ten sposób system Guino automatycznie aktualizuje je, gdy zachodzą zmiany w GUI. void gInit() { gAddLabel("SUWAKI", 1); gAddSpacer(1); gAddSlider(3, 200, "SZEROKOŚĆ", &szerokość); gAddSlider(3, 200, "WYSOKOŚĆ", &wysokość); gAddSlider(0, 255, "JASNOŚĆ LED", &ledLight); // Suwaki obrotowe gAddLabel("SUWAKI OBROTOWE", 1); gAddSpacer(1); [………….] gDodajKolumna(); // Dodaj więcej rzeczy tutaj. gSetColor(r, g, b); // Ustaw kolor interfejsu gui. } GButtonPressed(int id) jest to wywoływane za każdym razem, gdy przycisk został naciśnięty. Ogólnie zmienne mogą być aktualizowane automatycznie, ale w przypadku przycisku musi to być zdarzenie, którym się zajmujesz. W tym przykładzie ustawiamy zmienną wysokość na 100, gdy ktoś naciśnie przycisk. void gButtonPressed(int id) { if(buttonId == id) { wysokość= 100; gUpdateValue(&height); } } gItemUpdated(int id) Ta funkcja jest wywoływana za każdym razem, gdy element został zaktualizowany. Zwykle nie ma potrzeby używania tego, ponieważ system automatycznie zaktualizuje zmienne. Jeśli chcesz zareagować na zmianę, możesz ją wykorzystać jako taką. W tym przypadku aktualizujemy kolor tła po każdej zmianie jednego z 3 suwaków obrotowych. void gItemUpdated(int id) { if(rotaryRID = id ||rotaryBID == id ||rotaryBID == id) { gSetColor(r, g, b); } }

Krok 3: Kilka szybkich wskazówek

Pamiętaj, aby rozłączyć się podczas przesyłania nowego szkicu Nie możesz uruchomić Guino podczas przesyłania nowego szkicu na płytkę Arduino, ponieważ używają one tego samego połączenia szeregowego. Wymaga to rozłączenia za każdym razem, gdy przesyłasz nowy szkic. Jeśli spróbujesz (i będziesz) przesyłać dane z podłączonym Guino, płyta może wejść w dziwny stan, w którym działa, ale nie do końca. W tym momencie jedyną opcją jest zresetowanie płyty przez naciśnięcie przycisku resetowania lub odłączenie i ponowne podłączenie kabla USB. Znane błędy Na razie system działa i jest stabilny. Oto błędy, o których należy pamiętać:

  • setMin nie działa na ruchomym wykresie (wygląda na to, że w bibliotece GUI jest błąd, który należy naprawić). Więc minimum pozostaje na zero.
  • Lista numerów seryjnych jest ładowana podczas uruchamiania programu. Arduino musi być podłączone przed uruchomieniem programu. Odświeżanie listy numerów seryjnych podczas pracy powoduje złe zdarzenie. To jeszcze nie zostało rozwiązane.
  • Majstrowanie przy liście numerów seryjnych - czasami powoduje awarię programu (to samo zdarzenie gui co odświeżanie - trzeba znaleźć źródło)
  • Tło przycisków przełączania staje się czarne w zależności od inicjalizacji. Muszę ręcznie ustawić tło.
  • Na niektórych platformach Windows port COM nie jest wyświetlany. Może to być problem ze sterownikiem ftdi.

Krok 4: Przypadki użycia

Przypadków użycia
Przypadków użycia

Jeśli chcesz zobaczyć niektóre przypadki użycia interfejsu Guino, przejdź do tej instrukcji.

Zalecana: