PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : LabView-Fernsteuerungs-Tool mit diversen Routinen



fabqu
13.06.2012, 13:29
Hallo!
Ich möchte euch heute endlich vorstellen, was ich für meine Bachelorarbeit an der Uni Regensburg und Kooperation mit der Hochschule Regensburg erarbeitet habe:
(Achtung! Jetzt kommt viiiiiieeeel Text… ) Wem das zu viel Text ist, für den habe ich das ganze HIER (https://www.dropbox.com/s/ail723clbolyzk1/RP6-Remote.pdf)nochmal schnell und kurz zusammengestellt: Was schon jetzt möglich ist, und was noch kommen soll.
Es handelt sich dabei um ein umfassendes Fernsteuerungstool (Bluetooth oder Seriell) für den RP6 mit M32 und M128 (wahlweise auch nur Base oder Base mit M32).
Die Programme auf den Controllern stammen dabei im Großen und Ganzen von Fabian E.‘s „Remotrol (https://www.roboternetz.de/community/threads/47704-RP6-Remotrol-1-3-Die-Opensource-RP6-Fernsteuerung)“. Ich habe lediglich seine OpenSource-Codes etwas verändert bzw. angepasst (ADCs, Sensorwerte, …) .
Dafür gibt’s hier nochmal ein gaaaaannnnnz großes Danke an Fabian E. für das Bereitstellen des gesamten Sourcecodes und für die Hilfe bei einigen Problemen!!!!
DANKE!!!!!!!

-> Zum Download gibts die (aktuelle?) Firmware und alles Weitere HIER (https://www.dropbox.com/s/5u8uyvgapl8fw4m/FernsteuerungLabView.zip).

Das LabView-Programm zeigt zunächst, ebenfalls ähnlich (nur graphisch nicht so schön) wie die Remotrol (https://www.roboternetz.de/community/threads/47704-RP6-Remotrol-1-3-Die-Opensource-RP6-Fernsteuerung) von Fabian E., sämtliche Sensoren des RP6: Geschwindigkeit, Motorstrom, Helligkeit, Temperatur, Mikrofon, Bumper (vorne, hinten), ACS (vorne, hinten), Batterie. Außerdem die Sensoren von SnakeVision und dessen Taster, ein Feuchtigkeitssensor, den Ultraschall-Entfernungssensor SRF02 sowie ein 2D-IR-Abstandssensormodul. Des Weiteren ist ein Kamerabild eingebunden.
Fangen wir mal links im sogenannten Frontpanel (Hauptfenster, siehe angehängte Fotos) an:
Oben lässt sich der RP6 stoppen, die Serielle Schnittstelle kann ausgewählt werden. Das Fern-Starten des RP6 funktioniert leider nur mit dem Basismodul, nicht mit den Erweiterungen. Daran wird natürlich noch gearbeitet.
Daneben sind die Sensorwerte Temperatur, Luftfeuchtigkeit und SnakeVision angebracht. Darunter ist eine Registrierkarte, welche folgendes enthält:
- „Routinen“ (erkläre ich später)
- „Einstellungen“: Wie hoch ist die Tolleranzschwelle (= Differenz zweier gleichartiger Sensoren, wird bei den Routinen näher erklärt), wie hoch ist die Geschwindigkeit (kann mit den Tasten „+“ und „-„ eingestellt werden), An- und Abschalten von SnakeVision und 2D-IR-Sensor, Einstellen bzw. (De-)Aktivieren der ACS vorne und hinten, Aktivieren des automatischen Anhaltens bei Bumperberührung in der jeweiligen Fahrtrichtung. Außerdem kann das ACS aus Stromspargründen automatisiert werden. Dann ist es vorne an, wenn man vorwärts fährt und hinten, wenn man rückwärts fährt.
- „Beeper“: Einstellen von Tonhöhe und –Dauer. Geht leider nur bei der M32, der Beeper der M128 krächzt nur ein bisschen.
- „LEDs“: Schalten aller LEDs der drei Module einzeln oder gemeinsam. Achtung: Die verwendeten I/Os (z.B. zum Schalten der hinteren ACS oder des SnakeVision) sind an die LEDs gekoppelt.
- „Distanz“: Die Sensoren des 2D-IR und des SRF02 werden dargestellt. Mehr dann, wenn ich die Routinen erkläre.

Zurück zum Frontpanel: in der Mitte werden alle Hauptsensoren (Motor-Zeugs, Bumper, ACS, Batterie… ) dargestellt. Das ACS (vorne wie hinten) wird in drei Entfernungsstufen aufgetragen (grün, gelb, rot). Ein Foto des RP6 zeigt zusätzlich die Zustände aller LEDs der drei Module und ob der RP6 bereit ist, das heißt ob das Programm auf dem RP6 läuft und eine Übertragung stattfindet. Und man sieht (nur als Gag), welche Pfeiltaste auf der Tastatur man gedrückt hat (das sind die vier dicken, grünen Punkte).
Rechts daneben ist wieder eine Registrierkarte, in der gegliedert ist:
- „Anleitung“: hier wird alles, was ich hier schreibe, nochmal erklärt.
- „Video“: Zeigt das Live-Kamerabild. Die vier IR-Dioden des 2D-IR-Sensors können als „Nachtsicht-Scheinwerfer“ genutzt werden.
- „Kamera-Einstellungen“: Kamera kann (de-)aktiviert werden, weitere Einstellungen…
- „Verarbeitung“: Zeigt ein alle 200ms überarbeitetes Kamerabild, in welchem 2-Euro-Münzen gesucht und mit einem Fadenkreuz versehen werden. Wie genau nach einem eingespeicherten Foto einer 2-Euro-Münze gesucht werden soll, kann unter „Kamera-Einstellungen“, „Minimum Match Score“ eingestellt werden.
- „Tracking“: Ist noch leer; es werden gerade nur die gefahrenen Strecken der Ketten angezeigt. Ich möchte hier später einmal aus den Bewegungsdaten des RP6 (vielleicht mit Kompass) eine Karte mit Objekten (durch ACS, SRF02, 2D-IR oder Bumper erkannt) darstellen.
Darunter sind alle Servopositionen der 11 möglichen Servos dargestellt.

Rechts neben diesem Block sind eher unwichtige Sachen in einer Registrierkarte zusammen gefasst: Gesendete und empfangene Daten, Manuelles Initialisieren der Seriellen COM-Schnittstelle (wurde bisher noch nie gebraucht, da sie bei Programmstart automatisch initialisiert wird), Zeit, Datum, Zahl der einzelnen Programmaufrufe, Direkt-Auswahl von Befehlen wie „fahre vorwärts“, „drehe dich links“, „Beepe“…

Zur Tastatursteuerung:
Normale Pfeiltastensteuerung (vor, zurück, Drehung links rechts, Kurve links rechts vor zurück, stopp mit den vier Pfeiltasten). Geschwindigkeitsparameter kann mit „+“ und „-„ eingestellt werden. Scheinwerfer können über „*“ oder „/“ (Multiplikator und Divisor im Numpad) geschaltet werden, der Beeper kann mit Enter angeschaltet werden – Standard ist das der Kammerton „a“, solange man nicht die Tonhöhe verstellt. Die Leertaste gibt ein Stoppsignal. Die 11 Servos können über die Tastatur angesteuert werden, z.B. über w-a-s-d die ersten zwei, der dritte über q-e, die nächsten beiden über t-f-g-h und wieder einer über r-z und so weiter.
Außerdem können statt der Pfeiltasten auch Tasten im Frontpanel in der ersten Registrierkarte unter „Einstellungen“ gedrückt werden.

Zu den Routinen:
Es gibt 6 Routinen:
- „Fernsteuerung“: ist eine Fernsteuerung (klar!) mit allen Funktionen wie oben beschrieben.
- „TV-Remote“: der RP6 kann mit einer TV-Remote gesteuert werden (siehe Beispielprogramme von Arexx). Es funktionieren 2 Servos, die Motoren (Ziffern 1-9), Licht, Beeper, Geschwindigkeitsparameter +/-.
- „MoveAround!“: der RP6 fährt unter Beachtung des ACS vorne vorwärts durch die Gegend. ACS vorne wird automatisch aktiviert, wenn noch nicht geschehen.
- „Wärmequelle“: Der RP6 aktiviert das SnakeVision und vergleicht dessen zwei Werte mit dem oben schon angesprochenen Toleranzwert und fährt den RP6 zum „wärmeren“ Punkt. Wird dabei ein Vielfaches des Toleranzwertes überschritten, dreht sich der RP6 erst mal, bis sich der Unterschied der Temperaturen links und rechts nicht mehr so stark unterscheidet.
- „Lichtquelle“: Wie „Wärmequelle“, nur eben mit den Helligkeitssensoren.
- „Abstandhalter“: In der linken Registrierkarte unter „Distanz“ kann in dieser Routine ein Abstands-Mittelwert der insgesamt 4 Sensoren des 2D-IR-Sensors (benannt mit Q1Q2, Q3Q4, Q5Q6 und Q7Q8) eingespeichert werden. Von nun an versucht der RP6, diesen Wert zu halten. Speichert man z.B. einen Wert ein, während die Hand etwa 30cm vor dem Sensor ist, und bewegt man danach die Hand, versucht der RP6 durch Vor- und Zurückfahren, die 30cm zu halten. Als Toleranz dient wieder der einstellbare Toleranzwert. Achtung: Diese IR-Sensoren sind nicht (wie z.B. die Sharp-IRs) Frequenzmoduliert. Das heißt, dass u.a. direktes Sonnenlicht die gemessenen Werte ganz schön durcheinander bringt. Dafür kann man die ordentlich hellen vier IR-LEDs als Scheinwerfer für die Kamera ganz gut verwenden, machen ordentlich was her.
Wird eine Routine deaktiviert, oder beendet man das LabView-Programm, hält der RP6 (normalerweise…) sofort an. Zwei Routinen können nie gleichzeitig laufen. Für nicht-Standardsensoren (z.B. Snake, 2D-IR) kann man in der Registrierkarte "Routinen" wählen, ob die Routine vor- oder rückwärts ausgeführt werden soll (je nachdem, ob der Sensor vorne oder hinten angebaut ist).
Alle Routinen können auch durch die 5 Taster der M32 und durch den SnakeVision-Taster aktiviert werden.
Alle Aktionen, welche man durch die Tastatur steuern kann (ausgenommen der Pfeiltastensteuerung), sind auch in den anderen Routinen steuerbar (Beeper, Licht, Geschwindigkeit, Servos).

Ich habe außerdem eine weitere Zusatzplatine im RP6-Layout mit EAGLE erstellt, welche einen weiteren Akkuanschluss (verpolungs- und kurzschlussgesichert, auf 5V geregelt, mit Ladeeinheit), USRBUS und XBUS (SDA und SCL sind extra mehrfach herausgeführt, um z.B. SRF02 anzuschließen), ein BTM-222-Modul mit Adapter für 5V-Betrieb, einen Feuchtigkeitssensor, einen Batterie-Spannungssensor, einige Transistoren zum Schalten der Sensoren usw., sowie einen auf etwa 6,6V gehobenen, durch einen Transistor mit genügend Strom versorgten und über einen 470uF-Kondensator abgesicherten Servoverteiler für die 11 Servos bereit hält. An diese Platine ist eigentlich alles Weitere (Kamera, alle neuen Sensoren, Servos, …) angeschlossen und über USRBUS und einen weiteren 10-Pol-Stecker (für die acht Servos, die durch die M32 gesteuert werden) mit den jeweiligen anderen Platinen verbunden. Lediglich die Scheinwerfer sowie die Schaltung für das hintere ACS sind direkt auf die Basisplatine gelötet.
Die Sensoren (Kamera mit SRF02, 2D-IR, SnakeVision) sind jeweils auf zwei Servos montiert.
Eine hintere Stoßstange hat zwei Sharp-Sensoren, zwei Bumper und zwei LEDs. Die Sharps liegen an ADC0 und 1 der Base, die Bumper zusammen mit den LEDs an I/Os der Base.

Theoretisch sollte das ganze auch nur mit der Basis oder mit Basis+M32 laufen, habe ich noch nie ausprobiert.

Was kommt nun?
- Leider hatte ich die letzten Wochen keine Zeit mehr. Jedoch möchte ich das oben angesprochene „Tracking“ noch einbauen. Später soll dann auch an Hand dieser Daten z.B. die kürzeste Verbindung zwischen zwei Punkten gefahren werden können.
- Die Kamera soll mehr als nur 2-Euro-Münzen erkennen, z.B. ist mit LabView das Barcode-Lesen möglich, Buchstaben- und Ziffernerkennung, oder eine Laserpunkt-Verfolgung… sie das Projekt von Biohazardry: hier (https://www.roboternetz.de/community/threads/51874-RP6-Kamera-Bildverarbeitung/page2?highlight=biohazardry) und ein Video hier (http://www.youtube.com/watch?v=rOhR0VNoDxY).
- Einige Routinen sind noch nicht ganz ausgearbeitet, da steckt in jedem Fall noch Potenzial drin.
- Das ACS und die „Ausweich-Funktion“ könnten auch in anderen Routinen genutzt werden.
- Das LCD wird derzeit noch gar nicht verwendet, das soll sich ändern.
- Der RP6 könnte Befehle, die man im PC eingibt, via IR z.B. an andere Roboter senden.
- Programmeinstellungen und Sensordaten (gesendete/empfangene Daten, das letzte Kamerabild, die Tracking-Karte etc) könnten in einer separaten Datei abgespeichert werden.
- Wenn das neue WLAN-Zusatzmodul rauskommt, werde ich außerdem versuchen, das Programm auf dieses Modul zu übertragen – M32 und M128 würden dann erst einmal komplett rausfliegen (der RP6 wiegt jetzt schon 1,5 Kilo und braucht bei voller Sensor-, Servo-, Scheinwerfer- und Motorenauslastung viel zu viel Strom). Vielleicht hilft mir ja Fabian E.????? :D
EDIT: Fabian E. hat sich für das Projekt M256 (https://www.roboternetz.de/community/threads/58161-Kostenlose-RP6-M256-WIFI-Module-für-Testanwender!) beworben!!!!! :D
Danach muss natürlich auch das LabView-Programm angepasst werden und auf WLAN umgestellt werden und bei 60 I/Os, die das neue Ding zur Verfügung hat, kann man ja echt noch einiges ausbauen.

Ein großer Nachteil meiner Fernsteuerung ist die Unselbstständigkeit des RP6 selbst, da nahezu alle Aktionen (und vor allem die Reaktionen) auf dem PC geschehen, nicht auf dem RP6. Das hat den Vorteil der großen Rechenleistung des PCs, aber auch den großen Nachteil, dass manche (Re-) Aktionen relativ spät eingeleitet werden (z.B. sofortiges Stoppen nach Bumperberührung). Das soll sich aber ändern, ich möchte gewisse grundlegende (Re-)Aktionen direkt im RP6 abarbeiten.
In dieser Bachelorarbeit stand jedoch die LabView-Programmierung im Vordergrund, weniger die Mikrocontroller-Programmierung, welche ich bei weitem noch nicht ausreichend beherrsche, denke ich.


Ich hoffe, euch gefällt es!
Ich möchte mich auch bei Euch (insbesondere bei den Admins, bei Biohazardry und vor allem bei Fabian E.) bedanken! Habt mir echt viel geholfen, wenns mal wieder nicht weiter ging oder ich so Fragen hatte wie „Wie lese ich denn eigentlich einen ADC aus???“
Danke Euch. Ach ja, um Meinungen/Vorschläge/Kritik wird gebeten ;)
Grüße,
Fabian

Max Web
13.06.2012, 15:04
Hallo,

ein sehr schönes Projekt hast Du da, so etwas hätte ich auch gerne als Bachelorarbeit, wenn es so weit ist ;)

Ich plane derzeit ein ähnliches Programm, daher habe ich ein paar Fragen:
Du schreibst, dass die Aktionen des RP6 erst etwas später eingeleitet werden - wie lange dauert das in etwa, bis die aktualisierten Sensordaten auf dem PC ankommen?
Welche Baudrate verwendest Du mit dem BTM222 und wie oft/wann aktualisierst Du Deine Sensordaten? Wie schneidet das Remotrol-Protokoll dabei performancemäßig ab, d.h. wie viele Kommandos/Sensorupdates pro Sekunde kriegst Du übertragen?
Ein kleiner Vorschlag, falls es wirklich so langsam ist: Eventuell könntest Du bei Kollisionen eine Art "Basis-Verhalten" auf dem Roboter implementieren, welches per PC auch abschaltbar ist und den Roboter sofort stoppt.

Weiter würde es mich sehr interessieren, welches Kameramodul Du verwendest und wie Du die Daten zum PC überträgst.

Grüße,

Max Web

fabqu
13.06.2012, 15:14
Hi Max,
danke dir.
Ich versuche dir deine Fragen mal so gut wie möglich zu beantworten.
Das einfachste: Baudrate habe ich von Fabian E. übernommen, 38400.
Die Daten werden laufend alle 200ms (glaube ich) vom RP6 gesendet, der PC arbeitet sie dann simultan ab. Die Zeitverzögerung zwischen einer Aktion und der Reaktion ist dabei deutlich unter einer Sekunde, in der Regel merkt man es nicht. Nur bei den Bumperanschlägen merkt man, dass der RP6 (im Gegensatz zu den Beispielprogrammen z.B.) noch ganz kurz weiterfährt.
Das Senden von befehlen an den RP6 klappt ganz gut, nur darf man es nicht übertreiben (ich lasse immer etwa 20-50ms zwischen zwei Befehlen). Wenn man mit der vollen PC-Leistung rechnet und Daten schickt, gehts natürlich schief!
Das mit dem Basis-Verhalten hatte ich mir auch schon überlegt, zumindest was Bumper und evtl auch noch ACS betrifft. Hatte nur in der Bachelorarbeit dafür keine Zeit mehr, steht auf der ToDo-Liste.
Ich hatte schon einmal einen Thread hier (https://www.roboternetz.de/community/threads/56702-I2C-Problem-bei-laufenden-Motoren-%28Oder-anderes-Kommunikationsproblem%29?highlight=fabqu), der sich mit meinem größten Problem beschäftigte: Bei laufenden Motoren (und den ganzen anderen Stromfressern Servos, superhelle LEDs und so zeugs) versagte die gesamte Kommunikation sowohl der Module untereinander, als auch vom M128 zum PC. In der Regel stürzte dabei die M128 als erste ab, während die Base noch im letzten Befehl hängen blieb und z.B. einfach weiterfuhr. Das habe ich aber mit der getrennten Stromversorgung (eine für Base, M32 und M128, eine für alle weiteren Sensoren, die Servos und weitere Spielereien) ganz gut in den Griff bekommen.

Grüße

fabqu
16.06.2012, 12:13
Ich wollte gerade den Sourcecode der uCs und die .exe einstellen, jedoch sind die Dateien zu groß...
Auch als .zip! (630kb alleine die .exe)
Besteht überhaupt Interesse? Dann würd ichs mal anders versuchen; z.B. mit diesem Link hier (https://www.dropbox.com/s/d88x5d6he4x4wr2/Firmware.zip). Weiß nicht, ob das wirklich klappt ;)
Weiß nur nicht, ob das geht.
Würde mich sehr über Kritik/Anregungen freuen!!! Fragen immer gern hier an mich!

Grüße

Dirk
16.06.2012, 15:06
Bei mir hat's geklappt!

Danke!

Max Web
16.06.2012, 15:44
Hallo,

bei der Firmware kann ich jetzt nur die Konfiguration M128=Master, M32=Slave, Base=Slave finden, ich selbst nutze aber nur die Base und ein RNControl 1.4 mit einer portierten M32 Lib.
Der Source scheint aber nach kurzem Drüberschauen fast komplett auf Remotrol zu basieren - funktioniert das Programm auch, wenn ich einfach die Originaldateien der Remotrol benutze oder kriege ich dann Probleme?

Vielleicht sollte noch erwähnt werden, dass man zum Ausführen auch die LabView Runtime-Engine benötigt - diese ist in LabView enthalten (Tip für alle Studenten: Schaut mal nach, ob ihr LabView von eurer Uni kostenlos bereitgestellt bekommt) oder kann auch im Internet unter http://joule.ni.com/nidu/cds/view/p/id/2534/lang/en heruntergeladen werden.

Grüße,

Max Web

fabqu
16.06.2012, 16:24
Also ich lade jetzt nochmal alles hoch, auch die Firmware für die Base als master und für die M32 als Master - wie gesagt, das basiert alles auf Fabian E.'s Remotrol. Das alles ist hier, ich habe auch die Pinbelegung, wie ich sie verwende, reingestellt - das Suchen im Code, wo was ist, ist recht anstrengend.
Jedoch habe ich nur zu Beginn des Projekts mit dem Base-Master gearbeitet, dann ganz kurz mit dem M32-Master und ansonsten nur noch mit der M128. Daher weiß ich gar nicht, obs funktioniert (die Grundfunktionen Fahren, Sevos M32, Scheinwerfer, Sharps und Bumper sollten aber genauso funktionieren, denke ich. man muss sie halt noch einbinden, kann ich gerne auf meine Liste setzen.)

Dass man für die .exe eine eigene Runtime braucht, wusste ich auch nicht. Bitte sagt mir vor allem, ob es mit eurer Bildschirmgröße funktioniert, ich habe hier nur einen Bildschirm als Testobjekt.

@Max: Versuche es doch mal mit der Base als Master (sie die Firmware) und sag mir, ob das so funktioniert hat.
Das LabView-programm ist aber darauf ausgelegt, eine Serielle Schnittstelle (wenn auch nur virtuell) zu verwenden.

Grüße

Max Web
16.06.2012, 17:03
Hallo,

scheinbar braucht man dafür die 2009er Runtime - allerdings startet das Programm nicht, da es verschiedene VIs benötigt. Ich werde es nochmal testen, sobald ich mir LabView aus dem Uni-Netz heruntergeladen habe, also am Montag oder Dienstag.

Grüße,

Max Web

fabqu
16.06.2012, 17:05
:(
Schade, ich hatte gehofft, dass - verpackt als .exe - alles auch ohne LabView funktioniert!!!
Denn auch mit der Studentenversion wird nicht alles klappen (gerade das Einbinden der Kamera z.B.)

Sag mir doch bitte bescheid, obs funktioniert hat, damit ich daran was ändern kann.

Grüße

EDIT: Übrigens, wenn du die Runtime hast, und die Base ohne eine M32 oder M128 nimmst, kannst du den Bot auch fernstarten. Das heißt, dass das Programm auf dem RP6 nicht manuell gestartet werden muss sondern vom PC aus gestartet werden kann. Wollte so etwas auch für die M32 oder M128 machen, aber habs nie hinbekommen. Vielleicht weiß hier jemand, wie das geht? Was muss ich da in der "RP6_waitForStart"-Funktion aus der RP6CClib verändern?

Filou89
18.06.2012, 10:21
Also ich habe ein Lab-View 2009 installiert. Aber beim ausführen der .exe kommen diverse Fehlermeldungen:
- niimaqdx.dll soll ich suchen. Da ich das nicht finde, klicke ich auf abbrechen. Als Fehler kommt dann: LabVIEW-Ladefehlercode 3: Frontpanel konnte nicht geladen werden.
Dann sollten noch 8 andere Bibliotheken gefunden werden, jedoch auch nur mit diesem Fehlercode.
Dann lädt die Main.vi und sieht eigentlich ganz ok aus.
Ist es möglich, das "Quellprojekt" auch zu veröffentlichen?
Da könnte ich eine bestimmt eine ganze Menge lernen! Mein Lab-View Kurs zwar beginnt erst im Herbst, aber ein wenig Vorsprung schadet sicher nichts.

Grüsse
Filou

fabqu
18.06.2012, 10:26
Hi!
Die niimaqdx-Bibs sind für die gesamte Bilderkennung zuständig. Die muss man sich erst selbst herunterladen, was zumindest bei mir kein Problem war.
Wenn die Main ganz normal lädt, sollte sie auch (mit Ausnahme der speziellen VIs) funktionieren... hoffe ich :|
Ich kann gerne mal das Projekt zusammenstellen mit allen SubVIs, habe auch die 2009er Version. Werd mich mal drum kümmern!
Grüße

Filou89
18.06.2012, 10:30
Verstehe, dann brauche ich die wohl sowieso nicht, da ich ja keine Kamera habe =)
Würde mich sehr freuen!
Grüsse

fabqu
18.06.2012, 10:40
So, ich hab mal die letzte Main und die SubVIs hier (https://www.dropbox.com/s/q55mt1tpe2dhbyx/FernsteuerungLabView.zip)zusammengefasst.
Probiers mal aus, auch wenn wohl etliche Bereiche nicht gehen dürften (Kamera z.B.)... Außerdem lag mal ein Passwort auf der Main (wollte ein Prof so), ich weiß grad nicht, ob dich das irgendwie einschränkt. Wenn ja, sag bitte bescheid, dann muss ich schauen, wie man dass wieder weg bekommt.
Mein nächstes Teil-Projekt besteht darin, das gesamte Programm individuell anzupassen. Soll heißen: Wenn du keine Kamera hast, sagst du das dem Programm, und dieses baut sich dann dementsprechend um. Ähnlich soll das gehen für:
Base vorhanden?
M32 vorhanden?
M128 vorhanden?
SnakeVision vorhanden? Wenn ja, ists vorne oder hinten drauf?
... ...
Und so weiter. Diese Abfrage soll zu Beginn des ersten Aufrufs kommen und die jeweiligen Einstellungen dann speichern.
Sowas hab ich allerdings noch nie gemacht, daher stehe ich gerade mal wieder auf'm Schlauch ;)

Grüße

Filou89
18.06.2012, 11:01
Das Passwort ist noch da. Das Frontpanel lässt sich noch öffnen. Das Bockdiagramm kann man ohne Passwort nicht anschauen. Die SubViews funktionieren aber.
Das mit dem Passwort eilt nicht. Danke Vielmals!

Filou

fabqu
18.06.2012, 11:03
Habs schon geändert. -> HIER (https://www.dropbox.com/s/q55mt1tpe2dhbyx/FernsteuerungLabView.zip)
Grüße

Max Web
18.06.2012, 15:17
Hallo,

ich habe mir LabView in der Uni heruntergeladen und es geht mit den neuen Dateien wunderbar - gute Arbeit!

Max

fabqu
18.06.2012, 16:06
Klasse! Danke Dir.
Klappts auch mit den Kamera-VIs???

Habe in einem LabView-Forum mal angefragt, wie man das ganze Programm individuell an jeden Nutzer anpassen könnte: Hier (http://www.labviewforum.de/Thread-Frontpanel-und-Blockdiagramm-zur-Laufzeit-anpassen)

Max Web
18.06.2012, 16:24
Hallo,

das mit den Kamera-VIs konnte ich nicht testen, da ich keine Kamera besitze. Ich bekomme aber trotzdem die Fehlermeldung, dass ich die
NI-iMaq-DX Library nicht habe. Es wäre daher gut, wenn das mit der Deaktivierung klappt.

Da ich aber gerne eine Kamera hätte ( ;) ) würde es mich sehr interessieren, welche Kamera Du verbaut hast und wie die Daten übertragen werden.

Max

fabqu
18.06.2012, 16:30
Ich habe diese hier (http://www.pollin.de/shop/dt/NzM4OTE0OTk-/Haustechnik/Sicherheitstechnik/Kameras/USB_Funkkamera_2_4_GHz.html) vom Pollin.
Ist nicht der Hit, die sechs angebrachten IR-Dioden sind nicht einmal angeschlossen, aber ansonsten macht sie, was sie soll. Nur mit einem 9V-Batterieblock (wie in der Anleitung beschrieben) kann man sie wirklich nicht betreiben, da sie den innerhalb von Minuten leer saugt und schon nach 2 Minuten liefert sie dann kein vernünftiges Bild mehr.

Kannst du denn das Programm ausführen, auch wenn dir die VIs fehlen???

Filou89
19.06.2012, 08:44
Hallo fabqu,
Gerade lese ich ein Buch über Lab-View* Beim Kapitel über SubVIs bin ich darauf gestossen, dass man diese starr, so wie bei dir, oder auch dynamisch einbinden kann.
Ich denke, wenn man zu Beginn die RP6 - Konfiguration einstellen würde, könnte man danach die entsprechenden VIs einbinden.

melde mich, wenn ich dann mehr weis :)

Grüsse
Filou

*Einführung in Lab-View, Hanser Verlag

fabqu
19.06.2012, 09:40
Das Wäre super.und irgendwie macht es auch sinn, dass man subvis dynamisch einbinden kann.sag bitte bescheid, wenn du was weißt!
Dann muss ich es nur noch schaffen, einige dinge in subvis z packen ;)

Filou89
19.06.2012, 12:45
Ich habe es mal nach Anleitung gemacht. Dabei ist das (https://dl.dropbox.com/u/54952272/Paket.rar)herausgekommen.

Das Programm ist sehr simpel, aber soll zeigen, dass die SubVIs nicht von Beginn an eingebunden sind. Da ich nur die Studentenversion habe, kann ich keine .exe machen.
Einfach das AddMulStr.vi ausführen.

Grüsse
Filou

fabqu
19.06.2012, 15:32
Super! Danke dir!
Das hilft schon mal echt.
Werd das mal einbauen ;)

fabqu
19.06.2012, 17:10
So. Ich habe nun ein Programm, das sich TestCam.vi nennt im Ordner "TestCam". HIER (https://www.dropbox.com/s/j65dujmw124airr/TestCam.zip)
In dem Ordner ist ein Ordner "SubVIs", in welchem sich das einzubindende SubVI "Kamera.vi" befindet (welches wiederum auf ein SubVI "VisionAssistant 2.2.vi" zugreift, liegt im Ordner "VisionAssistant", aber egal).
Nun Möchte ich in "TestCam.vi" das SubVI "Kamera.vi" nur einbinden, wenn die Variable "Kamera Vorhanden?" True ist.

Aber wie mach ich das? Vor allem: Wie binde ich das alles ein?

Kannst du mir da helfen? Wäre klasse. Ich schaffs einfach nicht, dein Beispiel auf mein Problem anzuwenden.
Grüße

Filou89
19.06.2012, 23:58
Also ich abs jetzt in einer ersten Runde mal ganz primitiv gelöst (https://dl.dropbox.com/u/54952272/TestCam.rar). Ich habe einfach eine Kopie von Kamera.vi angelegt und dort die Funktionalität herausgelöscht. Wichtig ist, dass immer noch dieselben Ein- und Ausgäge vorhanden sind. Man merkt aber, dass es jetzt "ohne Kamera" wesentlich flüssiger läuft.
Ich denke, das ist jetzt eine kleinigkeit für dich ein Standbild anstelle des Video-Streams anzuzeigen!
Grüsse

fabqu
20.06.2012, 13:07
So, hat geklappt :D
Danke dir. Einziges Problem ist jetzt, dass es nicht gerade flüssig läuft...
Das Kamerabild kommt nur noch recht träge. Mal sehen, was man da anders machen kann.

Grüße

fabqu
22.06.2012, 13:08
HIER mal die momentane Version. Nun kann man vor Programmstart unter "Grundeinstellungen" die Hardware auswählen, die man besitzt. Dann sollte es nicht mehr Probleme geben mit z.B. dem Vision Assistant und den Kamera-SubVIs.
Das ganze wird aber noch in ein Menü gelegt, damit man es etwas schöner einstellen kann. Außerdem sollen alle Einstellungen dann in einer Initialisierungsdatei gespeichert und verwendet werden.
Ich hoffe, es funzt bei allen!

ps: Wenn jemand weiß, wie ich aus einem LabView-Programm eine .exe oder eine Installationsdatei Kompilieren kann, ohne dass man irgendwelche Runtimes vom Hersteller braucht, dann bitte pn an mich. Dann könnten in Zukunft alle das Programm verwenden.

Danke

fabqu
25.06.2012, 15:18
Habe jetzt ein Menü vorgeschaltet, auf dem man auswählen kann, welche Hardware man hat. Das Programm passt sich dann dementsprechend an.
Außerdem muss man diese Initialisierung nur beim ersten Starten ausführen, oder wenn man auf einen Initialisierungs-Button drückt. Und insgesamt läufts deutlich schneller, da ich mal ordentlich sauber gemacht habe.
Zum Download:
HIER (https://www.dropbox.com/s/5u8uyvgapl8fw4m/FernsteuerungLabView.zip)

Der Ordner enthält nun eine .exe, wofür man jedoch die Runtime Engine benötigt. Diese kann ich aber auch hier zum Download bereit stellen, bin mir nur nicht sicher, ob ich das darf...

Nächstes Teilprojekt ist ein Liniensucher und die Erkennung von Barcodes.
Viel Spass!

fabqu
29.06.2012, 15:31
Ich lade einfach mal HIER (https://www.dropbox.com/s/ail723clbolyzk1/RP6-Remote.pdf) ein .pdf hoch. Dort habe ich zusammengefasst, was grade alles geht und was noch folgen soll...

Grüße

Filou89
07.07.2012, 10:33
Hallo Fabqu,
ich bin gerade wieder dabei, mein Buch zu lesen =)
Mit objektorientierter Programmierung könnte man noch etwas kosmetik machen, indem man die nicht gebrauchten Teile ausblendet.
Hier ein kleines Muster. Hier (https://dl.dropbox.com/u/54952272/Eigenschaft_Sichtbar.vi)
Grüsse
Filou

fabqu
07.07.2012, 15:15
Hey Filou,

hab so etwas schon vermehrt eingebaut, allerdings mit der Eigenschaft "Deaktiviert und Ausgegraut" anstelle von "Unsichtbar".
Aber danke dir!

Weißt du zufällig, wie mir LabView eine eMail an einen Google-Mail-Account senden kann? Da sitze ich grade dran, damit man u.U. einen Support-Button aktivieren kann...
Ich habe hier ein VI rumliegen, mit dem man eMails ÜBER das Google-Konto verschicken kann. Aber irgendwie muss es auch gehen, AN ein Konto etwas zu verschicken.
Dafür braucht man die SMTP-Adresse von Google, doch mit der klappts irgendwie auch nicht...

Grüße

Filou89
08.07.2012, 14:31
Hallo fabqu,
irgendwie verstehe ich deine Frage nicht ganz.
Wenn du doch eine eMail über das google-konto senden kannst, dann müsstest du doch nur noch den Empfänger als
an einen Google-Mail-Account auswählen?
Die smtp-Adresse von Google ist smpt.gmail.com. Nur für den Fall der Fälle =)

Grüsse,
Filou

fabqu
08.07.2012, 16:54
Das mit Smtp.gmail.com hab ich schon versucht, hat nicht geklappt. Von meinem Account will ich nicht senden, da man dafür immer eine Authentifizierung braucht :) Das würde heißen, dass man mein Passwort in dem VI-Blockdiagramm, das ich ja auch öffentlich machen möchte, sehen würde... ist natürlich nicht so gut, nicht wahr? Daher würde ich gerne einfach das "Email senden.vi" von LabView verwenden, nur weiß ich eben nicht, wie das geht bzw bekomme immer Fehlermeldungen. Grüße

Filou89
09.07.2012, 17:03
Das wäre in der Tat nicht im Sinne des Erfinders :)
Kannst du das "Email senden.vi" hochladen bitte? Dann probiere ich auch mal etwas aus. Es könnte doch gehen, dass man zuerst die eigenen Angaben eingeben muss.
Grüsse

fabqu
09.07.2012, 17:13
Jo, ist HIER (https://www.dropbox.com/s/rv405fxqhcjrr7e/email.vi)

Ich schnall's einfach nicht :D

fabqu
23.08.2012, 20:38
So!
Es gibt - ENDLICH - was Neues :D

Ich habe mich natürlich an die M256 gemacht und das Beispiel 12 (eine Wifi-Remote für ein Terminal) so umgeschrieben, dass es für meine Zwecke funktioniert.
Und ich habe auch gleich die Chance genutzt, und das LabVIEW-Programm grundlegend erneuert:
Die Ansicht ist nun deutlich kleiner, was jedem nutzt, der nicht grade dieselbe Bildschirmgröße und -Auflösung hat wie ich.
Außerdem ists (hoffe ich) übersichtlicher geworden. Ich habe die gesamte Ansicht in verschiedene Registrierkarten gesteckt, so sieht man immer nur, was man braucht. Links ist eine Menüleiste zum einstellen der COM- oder eben WLAN-Adressen (je nachdem, welche Hardware man nutzt), zum Starten und anhalten des RP6, zum Programmstoppen, Hardware Auswählen, für eine Anleitung und einen Support.

23092 23093 23094 23095 23096

Im Hauptfenster sind die wichtigsten Anzeigen dargestellt sowie das Schalten der LEDs, der Beeper und die Auswahl für eine Routine (oben links).
Unten rechts kann man gewisse Befehle direkt eingeben (siehe dazu Example12: Avoid, Cruise, Command-Mode etc). Die Tastatursteuerung ist (wenn der RP6 im Command-Modus ist) aktiv.
In der Registrierkarte "Einstellungen" sind weitere, weniger wichtige Sensordaten dargestellt und man kann alles möglich einstellen/schalten.
Dann kommen vorerst weniger wichtige Registrierkarten: Gesendete und empfangene Daten, Kamera-Live-Bild und das nach 2-Euro-Münzen suchende Kamerabild. Jedoch musste ich (bin auf LabVIEW 2011 umgestiegen) sämtliche Kamera-Sachen erst mal ruhen lassen. Steht auf der ToDo-Liste, jedoch eher etwas abseits momentan.

Ansonsten ist alles relativ ähnlich, nur dass nun zu sendende Befehle nicht mehr verloren gehen (sollten).
Nur ein Problem ist noch nicht gelöst: Das Speichern der COM- oder IP&Port-Daten :( Das muss man VOR dem ersten Programmstart in der beigefügten "Config.ini" reinsetzen. Wer nur eines von beidem nutzt, braucht auch nur das zu verändern. Ist nicht schön und wird bestimmt(!) bald geändert...

Herunterladen kann man das ganze HIER! (https://www.dropbox.com/sh/8qwxy2dej3oh83o/g2glnAQe2_)


Über Kritik oder Ideen würde ich mich freuen!
Ich konnte das Ganze bisher auch nur mit M256 und Base zusammen testen, die M32 sollte aber ebenfalls funktionieren (8 Servos, die LEDs und der Beeper). Wenn jemand etwas anderes feststellen sollte, dann gerne immer her damit :D

Grüße,
Fabian

EDIT: Nach zwei Stunden des Rumprobierens funktioniert es jetzt endlich, dass die IP-, Port- und COMport-Daten gespeichert bleiben. Die Lösung war wieder einmal SEHR SIMPEL. -> Brett vorm Kopf
Wird in der nächsten "Version" drinnen sein.

Filou89
24.08.2012, 19:51
Hallo fabqu,
Ich habegerade dein Lab-View Programm ausprobiert; sehr schick! =)
Ein paar Probleme gibt es aber noch:
- Obwohl ich eine M32 Erweiterung habe, tut sich dort nichts! Möglicherweise liegt es am TWI-Bus, denn von der Base und der M128 erhalte ich Daten.
- In der Software bleibt der Teil mit dem Beeper inaktiv.
- Wenn ich unten Recht den ACS-Modus auswähle, komme ich automatisch ins Einstellungen-Fenster aber danach nicht mehr heraus. (ist nur einmal passiert?!)
- LED 16 der Base lässt sich (wenn ACS auf Auto) nur Toggeln, bleit auf dem RP6 eingeschaltet.

Es wäre sicher super, eine Log-Datei auf die SD-Karte zu speicher, dann könnte man schauen, wann welche Ports ein- / ausgeschaltet wurden.

Hoffe, du kannst mit meiner Rückmeldung etwas anfangen und dann wird alles noch besser!
Grüsse,
Filou

[Edit] Der TWI-Bus funktioniert mit anderen Beispielprogrammen einwandfrei.

fabqu
24.08.2012, 21:35
Hi! Danke dir für diese Punkte!!!
Zu deinen Anmerkungen:
1.) M32 wurde von mir bisher nur im Code einprogrammiert, aber nie getestet. Wird aber auf jeden Fall kommen, sobald die Kommunikation M256<->Base einwandfrei funzt. Und du empfängst Daten von der M128 (über die M256) auf LabView??? Das sollte absolut nicht möglich sein, eigentlich :|
2.) Beeper wurde gerichtet. War nur ne Variable falsch gesetzt, sorry.
3.) Ist es nur ein einziges Mal passiert? in LabVIEW, oder als .exe? Bei mir klappts komplett. Nur die Abstands-LEDs werden nicht ganz korrekt dargestellt, wird aber repariert.
4.) Bei mir gehen alle 6 LEDs einwandfrei, einzeln sowie zusammen. Wieder die Frage: LabVIEW, oder .exe? Evtl Hardware-Fehler? Funzt sie ansonsten?
EDIT: Wegen der LED hatte ich überlesen, dass du "ACS Automatik" aktiviert hattest. Stimmt, da muss ich was ändern. Im Auto-Modus werden ACS vorne (das Board-eigene) und hinten (zwei Sharp-Sensoren, die mit einem Transistor über eben diese LED geschaltet werden) automatisch erst dann aktiviert, wenn der RP6 eben vor- oder rückwärts fährt.
Schalte mal ACS auf Auto und fahre rückwärts, dann müsste sie nach 200ms angehen und 200ms nach dem Stop/Richtungswechsel wieder ausgehen.

Das mit dem SD-Log steht bei mir auf der ToDo, ich will genau das unbedingt mit rein nehmen. Nicht nur ein Befehls-Log, sondern auch ein Daten-Log. Etwa 1-10 mal pro Sekunde, hatte ich mir überlegt.
Leider blicke ich beim SD-Programmieren noch zu wenig durch, daher könnte es noch etwas dauern, bis das umgesetzt wurde.

Grüße und danke Dir!

Filou89
24.08.2012, 23:21
Ooops, sorry
wollte eigentlich M256 schreiben. Eine M128 Habe ich garnicht!
Mit dem Datenlogging bin ich auch noch ein wenig am üben. Wenn ich den durchbruch schaffen würde, sag ichs dir als erster =)

Ich habe alles mit der .exe gemacht.
Die Labview-Runtime hatte sowieso an diesem Abend ein paar Hänger. Ich werde es noch ein paar mal durchspielen.

Grüsse
Filou

fabqu
25.08.2012, 09:42
Nun, da ich nicht weiß, wie die Runtime funktioniert, noch wie die Umwandlung in eine .exe klappt, kann ich dazu nix sagen (vielleicht jemand anderes hier im Forum? )
Ich bin ohnehin momentan dabei, die gesamte Architektur umzukrempeln. Bisher habe ich einfach parallel verschiedene Funktionen laufen gehabt (siehe dein LED-Problem: die Funktion "ACS-Automatik" hat dir die ganze zeit parallel in die Funktion "setze LEDs" gepfuscht).
das soll nun mit Queues und einer "Queued State Machine - Producer Consumer" -Architektur anders werden. Dann wird nur noch auf Ereignisse reagiert (wie das Rückwärtsfahren mit ACS-Automatik oder eben das LED-Einschalten), anstatt dass dauernd in Funktionen Variablen gesetzt werden müssten. Somit sollten Datenverluste vermieden werden, und das Gesamtprogramm flüssiger laufen.
-> Viiieeeel Arbeit ;)

Grüße!

Filou89
26.08.2012, 10:09
Hallo Fabqu,
Wie steuerst du eigentlich die M32 per I2C an? In der RP6M256_I2CMasterLib.c / .h sind nämlich noch gar keine Funktionen für die M32 vorhanden. Die müssen zuerst noch alle implementiert werden.
Hat das schon jemand gemacht? Dann könnte man sich ein ziemliches Bischen Arbeit sparen.
Grüsse
Filou

fabqu
26.08.2012, 14:30
Hi! Nein, es ist noch nix drinnen, um die Daten der M32 abzurufen. Kommt bald :)
Zum Steuern kann man ja einfach den "I2CTWI_transmit3Bytes" oder ähnliche nehmen... ODER? Die Adresse der M32 ist 20, die der Base ist 10.

Grüße

fabqu
05.09.2012, 09:52
Ich hätte einmal eine Frage an euch, da ich die LabVIEW-Remote ja nicht für mich alleine schreibe.

Zum Stand der Dinge: Die M256 läuft stabil mit dem momentanen Programm zusammen mit der Base. Die Datenübertragung zum PC klappt fehlerfrei und in einer Geschwindigkeit, die einfach Spass macht. Das LabVIEW-Programm macht hier und da noch Zicken, aber das sollte (zumindest für base und M256) bald halbwegs problemfrei sein.
Jetzt ginge es eben darum, die M32 für Servos etc einzubinden und die I/Os und ADCs auf der M256 zu nutzen. Daher an dieser Stelle meine Frage an Euch:
Man könnte die M32 einbinden. hat Vorteile: 4 LEDs, Mikro, Lautsprecher, weiteres LCD, 8 Servos, ADCs. Nachteil ist einfach nur, dass man ein weiteres Modul hat, das programmiert, geflasht, angeschlossen und versorgt werden muss.
Oder aber, man benutzt NUR die M256 (und eben die Base). Hat den Vorteil, dass man auf der Base das Slave-Programm laufen hat - das bleibt ja mehr oder weniger unverändert, da man ja "nur" 6 I/Os und 2 ADCs zur Verfügung hat. Daher ist die Variationenvielfalt für eine Remote eher eingeschränkt und man wird auf Dauer nicht viel am Slave-Programm verändern müssen.
Die Servo-Lib der M32 könnte man ja sicher auch in der M256 einbinden. Ein Beeper ist sicherlich auch relativ schnell umzusetzen und ein Mikro - ganz ehrlich, wer braucht das unbedingt??? Und I/Os und ADCs sind auf der M256 ja genug (?) vorhanden.

Ich plane ohnehin eine neue Platine als Beiwerk für die M256 mit eigener Spannungsquelle, Servoverteiler, Beeper, Transistoren zum Schalten und einem Temp-Fühler mit I2C. Evtl auch Kompass und/oder GPS.

Würde mich freuen, die ein oder andere Meinung dazu zu hören.

Grüße,
Fabian

Filou89
06.09.2012, 07:34
Hallo Fabian,
da ich an der M256 ein GLCD und an der M32 ein normales lcd habe, brauche ich beide Platinen.
Wie ich aber im M256-Forum-Thread gelesen habe, sollte sowieso bald eine offizielle I2C Master-Slave kombination auch für M256 - M32 erscheinen.
Den Nachteil, dass ein weiteres Modul angeschlossen & geflasht werden muss, empfinde ich nicht als tragisch.

Übrigens: GPS wurde hier schon öfters thematisiert. In Innenräumen wird das niemals genügend Genauigkeit erreichen.

Grüsse
Filou

Dirk
06.09.2012, 18:10
@fabqu:

Die Servo-Lib der M32 könnte man ja sicher auch in der M256 einbinden.
Das habe ich schon auf der todo Liste. Allerdings ist das doch etwas mehr Arbeit: Da man locker 8 Servos mit der M256 per Hardware-PWM ansteuern kann, macht das 1:1-Portieren der Lib von der M32 keinen Sinn.
Man muss praktisch alles neu schreiben.


Ein Beeper ist sicherlich auch relativ schnell umzusetzen...
Ja, einfach nur ein Beeper an einen Pin hängen.
Interessanterweise gibt es sogar noch Reste vom Beeper und Mikro in der RP6M256-Lib.
See here:

// Microphone:
void dischargePeakDetector(void);
uint16_t getMicrophonePeak(void);
// Beeper:
void beep(unsigned char pitch, unsigned int time);
void setBeeperPitch(uint8_t pitch);
#define sound(_pitch_,_time_,_delay_) {beep(_pitch_,_time_);mSleep(_delay_ + _time_);}

// Delays, Stopwatches and Beeper:
// ---------------------
// Internal status bits
volatile union {
uint8_t byte;
struct {
unsigned beep:1;
unsigned unused:7;
};
} controlStatus;

volatile uint16_t sound_timer;


Evtl auch Kompass und/oder GPS.
Ich bin gerade auch am überlegen, eine Exp mit GPS-Modul (ich dachte an Navilock NL-552ETTL) und Kompass (HDMM01) zu bauen. Vielleicht können wir (natürlich auch zu mehreren!) uns ja da kurzschließen und was gemeinsames entwickeln? Z.B. im Rahmen eines RN-Wissen-Artikels? Interesse?

fabqu
06.09.2012, 18:20
Hi Dirk!
Klar! Bei solchen Projekten bin ich immer gern dabei ;)
bin halt recht eingebunden in Arbeit, LabVIEW und das designen einer neuen Platine (habe die einmalige Gelegenheit in dem Betrieb, in dem ich mein Praktikum absolviere, ne Platine professionell herstellen zu lassen) . Und meine Programmierfähigkeiten kennt ihr ja... :)
Aber es ist auf jeden fall eine klasse Idee!
wenn du es schon auf der todo hast, dann warte ich mal ab :D
nur warum sollte es so wie mit der M32 keinen Sinn machen? Würde das nicht auch funzen?

VG,
Fabian

Dirk
06.09.2012, 18:25
Hi Fabian,

...nur warum sollte es so wie mit der M32 keinen Sinn machen? Würde das nicht auch funzen?

Doch, das funktioniert schon ... wäre aber bei den Fähigkeiten der M256 ein echter Frevel!

fabqu
07.09.2012, 07:35
Für Freveleien dieser Art kennt man mich :D

-> Ich mach das mal...

Dirk
07.09.2012, 17:02
Du ....! Du ....! :naughty:

fabqu
07.09.2012, 18:40
;)
Weiß jemand, wo man den Beeper herbekommt, der an M128 und M32 verbaut ist?
Würde gerne den identischen nehmen...

Grüße

Dirk
07.09.2012, 18:56
Das könnte so einer: http://www.made-in-china.com/showroom/ccc1314cn/product-detailDMXEHpLoJnYe/China-Buzzer-TMB12C-.html
... von HXD sein.
Typ: z.B. TMB12A05?

SlyD wird es genau wissen.

fabqu
03.10.2012, 17:50
Hi!
Leider hatte ich die letzten Wochen quasi nie zeit zum programmieren... :(
habe gesehen, dass das Projekt "Orientierung" angelaufen ist!!! Echt Super!
Das möchte ich demnächst auch angehen.
aber nur mal eine frage:
Hat sich schon mal jemand an eine servoeinbindung für die M256 gemacht? Dirk??
ich hab noch nicht mal die servo-Lib der M32 eingebunden...
aber vielleicht hat hier schon mal jemand servos mit den PWMs direkt angesteuert??? Oder sogar ne nette Lib für die servos zusammen geschrieben?

Grüße!

Dirk
03.10.2012, 20:48
Hat sich schon mal jemand an eine servoeinbindung für die M256 gemacht? Dirk??
Ne, ist mir zur Zeit zu viel Fummelarbeit, wenn man alle PWMs nehmen will.

fabqu
21.10.2012, 20:36
Juhu :D
Endlich ist die neue Platine fertig.
Mit drauf: Anschlüsse mit Transistoren und Verteiler für alle I/Os und ADCs der M256 :D Und ein 8-Servo-Verteiler.
Und Anschlussmöglichkeiten für zwei SRF02, einen 2D-IR-Abstandssensor, zwei LDRs, fürs SnakVision, und drei CNY70-Liniensensoren (siehe diesen Link (https://www.roboternetz.de/community/threads/34328-RP6-Linienfolger/page3)), zwei Taster, 4 LEDs und zwei Status-LEDs, ein Beeper, der Temp-Sensor der M128.
Jetzt fehlt nur noch die neue Stoßstange für hinten!
23528
Grüße
:D

RolfD
21.10.2012, 20:55
Ich bin doch ziemlich von den Socken! Chapeau
LG Rolf

Dirk
21.10.2012, 21:37
=D> Wow! Klasse!

ex535
21.10.2012, 22:10
Ja, richtig gut.
Gruß
Kurt

fabqu
21.10.2012, 22:18
Noch mal etwas detaillierter...
a = Stromversorgung, wahlweise dieselbe wie die Hauptstromversorgung durch XBUS. Auf 5V geregelt, verpolungsschutz (durch Diode nach Sicherung auf Masse). Ladestecker, Status-LED und Pinherausführungen für GND, 5V und UBat.
b = USRBUS
c = XBUS
d = Adresseinstellung für das Temperaturmodul (das mir noch fehlt, da fast nirgends lieferbar)
e = Pinherausführungen für I2C
f = zwei Anschlussmöglichkeiten für SRF02 (I2C, GND, VCC)
g = Transistorgrab für einen I/O-Stecker der M256, schaltet GND durch. Dahinter kann man dann das geschaltete GND und wahlweise 5V oder UBat abgreifen.
h = CNY70-Anschluss für das dreifach-Board mit Transistor
i = Anschlüsse für drei weitere I/O- oder ADC-Stecker der M256 je mit Pinherausführung. GND ist durchverbunden.
j = Anschluss für SnakeVision
k = Anschluss für den 2D-IR-Sensor
l = Wieder ein I/O-Grab, diesmal nur mit GND und 5V
m = Beeper
n = Anschlussmöglichkeit für zwei LDRs
o = 4 schaltbare LEDs
p = zwei Buttons
q = der Rest ist ein Verteiler für bis zu 8 Servos. Sie haben wieder ne eigene 5V-Generierung, durch LED auf 6,6V gehoben. Transistor sorgt für noch mehr Power, der Elko puffert ab. Der gesamte Servo-Bereich ist durch Jumper oder wahlweise BUZ11-Transistor komplett vom Rest des Boards zu trennen.

Der Rest sind Lochrasterflächen :D kann man immer brauchen.
23529
Grüße

jottpeh
12.03.2013, 14:33
@ Fabqu
Moin,
".....Daten wurden gelöscht oder verschoben..."
Öööhm, kein LabView mehr? Nachdem die Remotrol derzeit wohl auch nicht mehr weiter geht?
Oder seit ihr mit Adaptieren der M256 beschäftigt?

Gruß Jürgen

fabqu
13.03.2013, 09:17
Hi Jürgen,

Sorry, ich habe den Ordner umbenannt und damit natürlich den link unbrauchbar gemacht.
werde ihn baldmöglichst ersetzen.
und ich bleibe natürlich dran! M256 ist eingebunden, jedoch fehlen noch einige gimmicks wie zusätzliche Sensoren, die Kamera ist (VORERST!! ) rausgeflogen.
Das muss ich nachholen.

Mal ein kurzes Mapping, was demnächst passieren soll:
- natürlich kleinere Fehler beseitigen
- Kamera wieder einbinden
- einbinden meiner Multi- IO- Sensorik und -Aktorik.
-Vereinfachung der Programmsteuerungen für mehr Geschwindigkeit und weniger Fehler...

Viele Grüße

fabqu
13.03.2013, 12:48
So, also:
HIER (https://www.dropbox.com/s/nyiw5h1ok54oe9u/Base-M32-M256_RobotRemoteControl_LabVIEW.zip) ist der Link für alle Daten für eine Remote via WLAN oder UART mit LabVIEW für die M256 mit der Base.
HIER (https://www.dropbox.com/s/j9f9gg0vpdduiho/Base-M32-M128_RobotRemoteControl_LabView.zip) ist ein LINK für dasselbe, allerdings für M128 als Master mit M32 und Base.

Hoffentlich klappt das alles so ;)

Grüße

jottpeh
16.03.2013, 21:31
Moin,
klappen bestimmt, aber vollkommen sinnlos für mich.
Ich verfolge folgenden Ansatz:
1. RP6 Basis,
2. Aufrüstung WLan steuerbar mit Rückmeldung
3. Aufrüstung WLan/ IP-Cam
4. Aufrüstung des Fahrgestells ( = Upgrade Motortreiber )

Somit wieder ein für meine Belange nutzloses Projekt und GUI-Programmierung is abolut nich meins.
Die großen Industrieroboter ja, Industrie-Steuerungen auch, aber sowas eher nich.

Wenn ich so drüber nachdenke, liegt bei dem benötigten Aufwand n Hexa auch nich viel weiter weg.

Gruß Jürgen

fabqu
17.12.2013, 08:38
Hi!
An Interessierte der LabView-Fernsteuerung:
Leider sind die Links oben nicht mehr aktuell, ich bin seit einiger Zeit nicht mehr zum Programmieren gekommen.
Sobald ich aber wieder etwas lauffähiges produziert habe, stelle ich es sofort online!

Grüße