Hallo,
ich möchte euch mein neues Programm vorstellen: RP6 Remotrol.
Diese Fernsteuerung besteht aus einem Programm für den RP6 (bzw für die M32 und die M128 ) und einem Programm für den PC, welches in C# geschrieben ist und das .NET-Framework 4 benötigt.
Der RP6 und der PC werden über das RP6-USB-Interface verbunden (das geht selbstverständlich auch per Funk).
Features der Fernsteuerung:
- Läuft auf RP6, M32 und M128 und jeder Kombination daraus (Auch M32 + M128 ohne RP6)
- Anzeige der Geschwindigkeit L/R
- Anzeige der Leistung L/R
- Anzeige der Lichtsensoren L/R
- Anzeige des Batteriestandes
- Anzeige des Mikrofonsensors (M32)
- Anzeige der Temperatur (M128 )
- Anzeige der Messwerte zweier SRF02
- Anzeige vieler Messwerte auch als Graphen zur Verlaufsanalyse
- Auswahl des zu benutzenden Ports und der Baudrate
- Steuerung der Motoren per manuellem Regler für Links und Rechts
- Steuerung der Motoren über Pfeiltasten
- Selbsttests für die einzelnen Platinen
- Steuerung von bis zu 8 Servos (M32)
- Steuerung von bis zu 3 Servos (M128 )
- Steuerung der Verbindungsgeschwindigkeit
- Steuerung des Beeper (M32)
- Komponieren eigner Melodien für den Beeper
- Eigene Melodien als Startmelodie des Roboters programmieren
- Steuerung aller LEDs (RP6, M32 und M128 )
- Integriertes Terminal mit Anzeige von empfangenen und gesendeten Daten
- Automatische Erkennung einer falschen Baudrate
- Automatische Erkennung eines Timeouts (Roboter ist aus oder reagiert nicht mehr)
- "Feature-System" zur Anpassung des eigenen RP6 an das Programm
- Auto-Update
Das Programm kann auf vier verschiedenen Systemen betrieben werden:
Nur der RP6, RP6 + M32, RP6 + M128 und RP6 + M32 + M128.
Dank des Feature-Systems kann die entsprechende Firmware immer den eigenen Bedürfnissen angepasst werden.
Das Programm auf dem PC erkennt dies und deaktiviert nicht benötigte Funktionen.
Das Programm wird in einer intuitiven Ordnerstruktur ausgeliefert,
die die Installation und Integration erleichtert.
Je nach vorhandener Hardware sind dort bis zu drei Programme für den RP6 enhalten:
Nur der RP6: Hier gibt es ein Programm. Dies wird auf den RP6 geladen und es kann direkt losgehen.
RP6 + M32: Hier gibt es schon zwei Programme, eines für den RP6 (dies ist das original I2C-Slave Beispiel-Programm) und eines für die M32.
Jeweils beide Programme in den entsprechenden Controller laden und dann kanns losgehen.
RP6+M128: Auch hier gibt es zwei Programme, wieder das Beispiel-Programm von oben für den RP6 und ein spezielles Programm für die M128.
Beide Programme übertragen und loslegen.
RP6 + M32 + M128: Hier gibt es nun natürlich drei Programme, das bekannte Beispielprogramm für den RP6,
ein Programm für die M32, welches die Funktionen der M32 der M128 zur Verfügung stellt.
Schlussendlich noch ein Programm für die M128, welches das Hauptprogramm darstellt.
Alle Programme auf die Controller laden und los gehts.
Hinweis: Bei mehr als einer Platine ist immer die bessere Platine die Haupt-Steuer-Platine.
Platinenranking: RP6 < M32 < M128.
Nachdem das (die) Programm(e) auf die jeweiligen Platinen übertragen wurden
und das USB-Interface mit der Haupt-Steuer-Platine verbunden wurde, kann man nun den RP6 starten.
Sofern das Programm auf dem PC noch nicht offen ist, sollte man es jetzt öffnen.
Nach der Auswahl des Ports und der Baudrate (Standard: 38400) kommt man ins Hauptfenster.
Dort klickt man auf "Verbinden" und wenn alles richtig eingestellt ist, sollten nun schon die ersten Werte sichtbar sein.
Die Hauptseite zeigt nur die wichtigsten Werte und auch nur die der RP6-Base, da dieser wohl immer vorhanden sein sollte.
Weitere Features sind nun über die Registerkarte "Zusätzliche Fenster" erreichbar.
Das Programm steht unter OpenSource Lizenz und kann von jedem kostenlos benutzt und verändert werden.
Ich hoffe euch gefällt das Programm und freue mich auf die Rückmeldungen.
SourceCode:
Der Sourcecode liegt auf Sourceforge.net und ist auch von dort herunterzuladen. Alternativ hier ein Direkt-Link.
Einfach auf "Donwload GNU tarball" klicken.
Hierbei gilt aber zu beachten, dass dies immer die neuste Version des Codes ist und
daher nicht immer zu der aktuell veröffentlichten Version passt.
Es können Fehler vorhanden sein und im Normalfall sind dort auch schon wesentlich mehr Features implementiert,
als in der aktuell veröffentlichten Version.
Daher ist dieser Sourcecode mit Vorsicht zu genießen.
Aktuelle Version : 1.3
Bekannte Bugs:
- Der Beeper der M128 ist nicht aktiviert. Dort kommt es noch zu Problemen.
Bei Problemen sollte zuerst meine Support-Webseite aufgesucht werden: support.diamondback-development.de
Dort gibt es auch ein Forum "FAQs" in dem oft gestellte Fragen behandelt werden.
Bitte zuerst dort nach Antworten suchen, bevor hier etwas geposted wird.
Hinweis:
Bitte beachtet, dass dieses Projekt auf meinen RP6 angepasst ist. Nicht alle Funktionen (z.B. die Servos) werden 100%ig ohne Anpassungen auf anderen RP6 laufen.
Um das Programm in vollem Umfang nutzen zu können, solltet ihr euch nicht scheuen, auch mal den Quellcode anzupassen.
Changelog
Code:
Version 1.3:
[+] Selbstests hinzugefügt
[+] Auto-Update hinzugefügt
[+] Einstellungen hinzugefügt
[+] Neues Layout
[+] ACS hinzugefügt
[+] Die Firmware-Ordner haben nun eine flash.bat, die das direkte Flashen der .hex erlauben
[+] RP6 kann nun Fehlermeldungen senden
[+] Slave-Module melden nun, wenn dort fälschlicherweise ein Kabel angeschlossen wurde
[+] Dankesliste im About-Dialog hinzugefügt
[+] Spenden-Button hinzugefügt
[+] Debug-Ausgaben für den RP6 hinzugefügt[*] LED-Fenster-Layout angepasst[*] Verbindungsprotokoll komplett erneuert
[-] Fehler bei der Erkennung blockierter COM-Ports behoben
[-] Kritischer Fehler in der Firmware der M32 behoben
[-] Ein Fehler beim Schließen des Terminals wurde behoben
[-] Kritischer Fehler im Logger behoben
[-] Die Verbindung wurde beim Empfangen von unlesbaren Daten nicht immer korrekt beendet
[-] Unzählige weitere Bugfixes
Lesezeichen