Inhaltsverzeichnis:

Guino: Dashboard für Ihr Arduino - Gunook
Guino: Dashboard für Ihr Arduino - Gunook

Video: Guino: Dashboard für Ihr Arduino - Gunook

Video: Guino: Dashboard für Ihr Arduino - Gunook
Video: This sprocket carries extra water!! #mtb #mountainbike #shorts 2024, November
Anonim
Guino: Dashboard für Ihr Arduino
Guino: Dashboard für Ihr Arduino
Guino: Dashboard für Ihren Arduino
Guino: Dashboard für Ihren Arduino
Guino: Dashboard für Ihren Arduino
Guino: Dashboard für Ihren Arduino
Guino: Dashboard für Ihr Arduino
Guino: Dashboard für Ihr Arduino

Dieses Projekt ist Teil von Experimenten, die während eines Artist in Residence bei Instructables durchgeführt wurden. Die anderen Projekte können Sie hier sehen. Es kann eine knifflige Aufgabe sein, Echtzeitdaten auf dem Arduino-Board zu debuggen und zu visualisieren. Normalerweise bleiben Sie bei der seriellen Standardausgabe hängen, da die Komplexität Ihres Arduino-Codes zunimmt, was es unmöglich macht, zu verstehen, was tatsächlich im Inneren des Boards vor sich geht. Um dies zu lösen, habe ich eine kleine Bibliothek erstellt, mit der Sie Ihre eigene benutzerdefinierte GUI für Ihre Arduino-Projekte erstellen können. Sehen Sie sich dieses Video an, um eine Demonstration einer grundlegenden Hallo-Welt mit einem Potmeter und einer Diode zu erhalten: Ab sofort bietet das Programm die folgenden Möglichkeiten und Funktionen: Gestalten Sie Ihr Interface individuell vom Arduino-Board aus Sie definieren, welche Schieberegler, Grafiken und Schaltflächen Sie benötigen für Ihre Schnittstelle. Sie tun dies in Ihrem Arduino-Sketch, was bedeutet, dass das GUI-Programm als Slave des Sketches fungiert. Alle Informationen werden in Ihrem Board gespeichert. Echtzeitdaten visualisieren und bearbeiten Ob Sie einen RGB-Lichtcontroller oder einen Roboterarm herstellen, ein grafisches Feedback ist entscheidend, um zu verstehen, was im Inneren des Boards vor sich geht. Auf diese Weise können Sie erkennen, ob es Ihre Hardware oder der Code ist, der das Problem verursacht. Darüber hinaus können Sie mit den Schiebereglern und Schaltflächen die einzelnen Parameter in Echtzeit anpassen. Auf diese Weise können Sie sehen, welche Auswirkungen verschiedene Schwellenwerte auf die Interaktion haben. Speichern Sie die Parameter im Board-Speicher Wenn Sie die Parameter angepasst haben, können Sie sie im EEProm des Boards speichern. Die Parameter werden beim nächsten Einschalten des Boards automatisch geladen, auch wenn der Computer nicht angeschlossen ist. Verwenden Sie die gleiche App für alle Ihre Arduino-Projekte Ich habe Tonnen von kleinen Apps für verschiedene Projekte erstellt. Mein Problem ist immer, sie ein Jahr später wiederzufinden. Da wir alles im Arduino speichern, brauche ich nur eine App um das Arduino herum zu halten wird die App automatisch für das aktuelle Projekt konfigurieren. Prototypieren Sie die Schnittstelle, bevor Sie den Lötkolben einschalten Weil Sie die GUI so gestalten können, wie Sie es möchten (innerhalb des angemessenen Rahmens) Grenzwerte), können Sie die Schnittstelle prototypisieren, bevor Sie eine physische Schnittstelle erstellt haben. Dies ermöglicht Ihnen auch, die Aufgaben auf mehrere Personen aufzuteilen, z. B. eine Person arbeitet an der Hardware und eine andere Person arbeitet am Code. Wenn Sie die physische Schnittstelle erstellt haben, wird Guino nahtlos integriert. Als Vollbild-Dashboard verwenden Sie können es als Vollbild-Dashboard verwenden, indem Sie F drücken und T drücken, um die Sichtbarkeit des Einstellungsbereichs umzuschalten. Sie präsentieren hiermit nur Ihr benutzerdefiniertes Interface für die Welt um Sie herum. Kontrollieren Sie die Hintergrundfarbe Die Hintergrundfarbe kann vom Arduino gesteuert werden. Dies ermöglicht Ihnen, verschiedene Farben für verschiedene Skizzen zu erstellen. Es kann auch verwendet werden, um Warnungen zu erstellen, wenn etwas nicht stimmt. Es kann grün sein, wenn alles in Ordnung ist und rot, wenn etwas nicht stimmt. Schnell und schlank Ich habe sehr darauf geachtet, den Footprint auf dem Arduino so klein wie möglich zu halten - Es speichert nur eine minimale Datenmenge im Speicher (konkret ein Zeiger) Liste mit 100 Elementen). Diese Einstellung kann je nach Anzahl der GUI-Elemente, die Sie in Ihrer Benutzeroberfläche haben möchten, auf niedriger oder höher geändert werden. Weiterhin stützt sich das System auf die EasyTransfer-Bibliothek, die die Informationen in binärer Form überträgt. Jedes Paket besteht aus einem Byte für Befehl, einem Byte für Item # und einer ganzen Zahl für den Wert. Idealerweise sollten alle Ihre Daten auf einen 16-Bit-Integer-Bereich mit Vorzeichen normalisiert werden. Dies bedeutet eine optimale Nutzung des seriellen Ports bei der Arbeit mit Integern (technisch verwenden wir etwas mehr Platz für eine Prüfsumme). Gut für Instructables Die GUI ermöglicht es Ihnen, Instructables zu erstellen, die nur die Kernkomponenten erfordern. Zusätzliche Komponenten wie Potmeter usw. können virtuell über die gui erstellt werden. Einschränkungen und Zukunftspläne Derzeit wurde die App für die Mac OSX- und Windows-Plattform kompiliert. Es ist in Openframeworks geschrieben und sollte daher auch auf anderen Plattformen laufen können. Da die App die serielle Schnittstelle verwendet, können Sie keine anderen Programme mit dem Arduino verbinden. Dies wird in einer zukünftigen Version gelöst, die eine Open Sound Control und eine Midi-Bridge enthält. Credits: Programmierung und Idee von: Mads Hobye Easytransfer-Bibliothek von: Bill Porter GUI-Bibliothek von: Reza Ali

Schritt 1: Erste Schritte

Einstieg
Einstieg
Einstieg
Einstieg
  • Laden Sie das GUINO-Paket herunter und entpacken Sie es.
  • Arduino herunterladen
  • Kopiere den Bibliotheken-Ordner in deinen Arduino-Bibliotheken-Ordner (hier geht's)
  • Arduino neu starten.
  • Öffnen Sie eines der Beispiele in Arduino. (Menü: Dateien -> Beispiele -> Guino -> eine auswählen)
  • Wenn Sie das einfache Beispiel verwenden, erstellen Sie eine Schaltung wie oben gezeigt.
  • Laden Sie das Beispiel hoch.
  • Führen Sie die Guino-App aus.
  • Wählen Sie die serielle Schnittstelle (normalerweise die letzte)
  • Drücken Sie auf Verbinden.

Quelle finden Sie hier.

WICHTIG: Wenn Sie es auf der Windows-Plattform verwenden, müssen Sie einen COM-Port verwenden, der kleiner oder gleich 10 ist. Wenn Sie einen Port verwenden, der 10 oder höher ist, funktioniert das System nicht. Dies ist ein Fehler in Openframeworks.

Schritt 2: So ändern Sie den Code

So ändern Sie den Code
So ändern Sie den Code

Damit die Bibliothek mit Ihrer Skizze arbeiten kann, benötigen Sie einige zusätzliche Methoden. Ich habe sie unten beschrieben: gInit() Hier definieren Sie Ihr Layout Diese Methode definiert das Layout durch sequentielles Hinzufügen von Komponenten. An veränderbaren Komponenten (Slider, Buttons etc.) ist eine Variable angehängt. Das & vor der Variablen bedeutet, dass wir den Wert in der Variablen nicht übergeben wollen, sondern eine Referenz (Zeiger) auf die Variable. Auf diese Weise aktualisiert das Guino-System sie automatisch, wenn Änderungen in der GUI vorgenommen werden. void gInit() { gAddLabel("SCHIEBER", 1); gAddSpacer(1); gAddSlider(3, 200, "WIDTH", &width); gAddSlider(3, 200, "HEIGHT", &height); gAddSlider(0, 255, "LED-HELLIGKEIT", &ledLight); // Die Drehschieber gAddLabel("ROTARY SLIDERS", 1); gAddSpacer(1); [………….] gAddColumn(); // Fügen Sie hier weitere Dinge hinzu. gSetColor(r, g, b); // Setzt die Farbe der GUI-Schnittstelle. }GButtonPressed(int id) Dies wird aufgerufen, wenn eine Schaltfläche gedrückt wurde Im Allgemeinen können Variablen automatisch aktualisiert werden, aber im Fall einer Schaltfläche muss dies ein Ereignis sein, um das Sie sich kümmern. In diesem Beispiel setzen wir die Höhenvariable auf 100, wenn jemand die Taste drückt. Void gButtonPressed (int id) { if (buttonId == id) { Höhe = 100; gUpdateValue(&Höhe); } }gItemUpdated(int id) Dies wird aufgerufen, wenn ein Element aktualisiert wurde. Normalerweise ist dies nicht erforderlich, da das System die Variablen automatisch aktualisiert. Wenn Sie auf eine Änderung reagieren möchten, können Sie diese als solche verwenden. In diesem Fall aktualisieren wir die Hintergrundfarbe immer dann, wenn einer der 3 Drehregler geändert wurde. void gItemUpdated(int id) { if(rotaryRID = id || rotationGID == id || rotationBID == id) { gSetColor (r, g, b); } }

Schritt 3: Ein paar schnelle Tipps

Denken Sie daran, die Verbindung beim Hochladen einer neuen Skizze zu trennen. Sie können das Guino nicht laufen lassen, während Sie eine neue Skizze auf das Arduino-Board hochladen, da sie dieselbe serielle Verbindung verwenden. Dies erfordert, dass Sie jedes Mal die Verbindung trennen, wenn Sie eine neue Skizze hochladen. Wenn Sie (und Sie werden) versuchen, einen Upload durchzuführen, während das Guino angeschlossen ist, kann das Board in einen seltsamen Zustand geraten, in dem es irgendwie läuft, aber nicht ganz. Zu diesem Zeitpunkt besteht Ihre einzige Möglichkeit darin, das Board zurückzusetzen, indem Sie den Reset-Knopf drücken oder das USB-Kabel trennen und wieder anschließen. Bekannte Fehler Das System funktioniert und stabil. Die folgenden Fehler sollten Sie beachten:

  • setMin funktioniert nicht auf einem MovingGraph (es scheint einen Fehler in der GUI-Bibliothek zu geben, der behoben werden muss). Das Minimum bleibt also auf Null.
  • Die Serienliste wird beim Programmstart geladen. Der Arduino muss vor dem Start des Programms eingesteckt sein. Das Aktualisieren der Seriennummernliste während der Ausführung führt zu einem fehlerhaften Ereignis. Es muss noch gelöst werden.
  • Fummeln mit der Seriennummernliste - manchmal stürzt das Programm ab (gleiches GUI-Ereignis wie Refresh - muss die Quelle finden)
  • Der Hintergrund der Umschalttasten wird je nach Initialisierung schwarz. Ich muss den Hintergrund manuell einstellen.
  • Auf einigen Windows-Plattformen wird der COM-Port nicht angezeigt. Könnte ein Problem mit dem ftdi-Treiber sein.

Schritt 4: Anwendungsfälle

Anwendungsfälle
Anwendungsfälle

Wenn Sie einige Anwendungsfälle mit der Guino-Schnittstelle sehen möchten, gehen Sie zu diesem Instructable.

Empfohlen: