Jump to content

Codeaustausch und "herzeig" Thread - Projekte mit TinkerForge Bricks


tf_archiv

Recommended Posts

Update:

 

Version: 1.3 Datum: 27.05.2012

- Zeitmessung beim "Full Scan" in ms.

- Wartezeit (ms) beim Servo Bewegen im Full Scan wurde nun mit der passenden Option verknüpft.

- Eine Radarlinie damit man optisch beser sieht wo der Sensor ausgerichtet ist\sein sollte.

- Events im Menüsystem

- Wert wird geändert -> Für Live Änderungen

- Wert wurde geändert -> Info zum Variablen neu abrufen.

- Box3 Schritte in der Automessung des Scanners. Die Auflösung setzte dann nur jeden xten Punkt!

Diese Options sollte nur verwewndet werden wenn vorher alle Punkte geresettet werden.

- Im Utils Projekt unter Doc liegt ein SVG erstellt mit Inkscape Portable

- Bricks

- Lochraster (Raster: 5mm  Lochdurchmesser: 3mm)

- Ideen...

Link to comment
Share on other sites

  • Replies 80
  • Created
  • Last Reply

Top Posters In This Topic

Mein Roboterunterbau ist gekauft (kommt die Tage an), ich bin wieder in eine neue Kiste umgezogen... hab die alte Kiste in die neue gestellt als Stabilisator. Erinnert alles an den Umzug von Krebsen oder so. Box 4 wird keine Joysticks mehr haben und es wird deswegen auch keinen Handmodus geben.

 

Tags: [build] and [Run]

 

ToDos:

- Box 4 Coden\Roboter zusammenbauen

- In der Doku zusammenschreibne welche Bricks für welches Projekt benötigt werden

- IMU weiter Testen.

- ...

 

 

Ich hatte ein Problem mit dem IMU und dem IR-Distanz Bricklet:

Wenn ich das IR Bricklet am IMU hatte hat der IMU um Brivkd nichts angezeigt und das Bricklet wurde nicht erkannt und auch nicht aufgelistet.

 

Was kann da schief gehen?

 

Link to comment
Share on other sites

Roboter_Test1.jpg

 

 

Mein Roboter und die weiteren Beiteile sind da ^^ Ich hab damit mal was zusammen gebastelt.

Box 4 fällt mehr oder weniger aus und es wird gleich zum Roboter 1.0 gegangen ^^

 

Bot 1:

- Servo

- IMU

- 2xDC

- 1xservo

-- IR Distanz

- Master

- Power

 

Aufgaben:

- Gerade ausfahren

- Gelände scannen

- Drehen wenn Objekte im Weg sind.

- Karte anfertigen(?)

- Hand-Steuerung

 

-> Stand: Aufbau\Begonnen\Konzept

 

Ausbau A:

- 2 IR Sensoren

- Licht und Temperaturmessung (+in Karte eintragen)

Link to comment
Share on other sites

Cooles Bild.

Bei mir sieht es ähnlich aus :) Allerdings finde ich deine Idee, die Grundplatte mit den L-Profilen zu erhöhen nicht schlecht. Bei mir liegt die direkt auf und deswegen ist da kaum Platz. Werden wohl noch Ebenen dazukommen müssen^^

Am Ende müssen die Bricks, RaspPi, Akku, Webcam, Usb Hub und etliche Kabel drauf. Leider ist das Grundgestell so klein :/

 

Hast du mittlerweile eine Idee, wie du eine genaue Positionserkennung sicher stellst? Das ist in meinen Augen das größte Problem, wenn es um die Erstellung einer Karte geht.

 

Schöne Grüße

Link to comment
Share on other sites

@Imbafestor: Ich habe noch eine zweite Platine mit identischen Maßenich, daher kann ich die Fläche nochmal verdoppeln. Es hängt dann halt alles seitlich etwas über die Ketten hinaus oder es wird erhöht und die Servos am Kopf gestellt. so kann ich den Überhang besser nutzen.

 

Die U-Profile oder ein Rahmen sollen nur dazu dienen, dass ich nicht die Schrauben öfters in das Plastik schrauben muss. Auf diesen Unterbau soll dann der eigendliche Aufbau (Platinen und Bricks) plaziert werden. So sollte die Belastung am Plastik reduziert werden.

 

Wie oft kann man an den 4 Ecken eine Schraube reindrehen ohne Schäden zu haben?

 

Zur Positionsermittlung habe ich mir noch wenig Gedanken gemacht. Beim Geradeausfahren werde ich bestimmte Schritte machen und diese dann vorraussetzen, dass diese immer Länge X haben. Dies sollte für die ersten Versuche genügen. Drehungen um welche ich mir mehr sorgen gemacht habe werde ich mittels IMU ausmessen. Es ist auf ein Grad genau bei meinen Experimenten und dass sollte auch genügen. Wenn es nicht genügt sollte immer ein Fix Punkt in Sichtweite sein an welchen dann Vergleichen wird wie weit der Roboter gefahren ist. Aber alles erst zu seiner Zeit und ein Schritt nach den anderen.

-> STEP 1: Code Clean Up und neuen Projektordner beginnen.

 

Ich hoffe nur jemand macht einen Kompas aus den Messdaten des IMU sonst muss ich das selbst zusammen rechnen ^^ dann wird es auch Zeit für die WLan Erweiterung sonst ist mein Roboter Kabel gestützt...

 

-> STEP 2: Neue Klassen für Roboter schreiben

-> STEP 3: Roboter fahren lassen

usw.

 

Link to comment
Share on other sites

@M4ST3R: In Java programmiere ich auch, aber nicht privat ;-) bis jetzt ist in diesen Projekt alles in C# geschrieben. Im Falle, dass ich irgendwann einen Rasberry bekommen sollte werde ich dort entweder in Mono+C#, C++ oder Java etwas aufsetzen. Dies wird dann aber entscheiden wenn es soweit ist.

 

Der Scanner ist einfach eine UserControl Ableitung bei welchen das Paint-Event implementiert wurde und dort Graphics Methoden verwendet. Es ist im Moment also nur einfache GUI Zeichnerei.

 

Ich habe schon überlegt eine 3D Visiualisierung zu schreiben, aber ich kann mich im Moment nicht zwischen XNA und ManagedDX entscheiden.

Was habt ihr eher Installiert? XNA oder managed DX?

 

@AuronX: Ich wollte es auch erst flach anbringen, aber ich habe so nicht an den Armen des Servos anschrauben können. Als ich ein Lochblechstreifen in einen Baukasten gefunden habe war dies Ideal um den Sensor hochkant anzuschrauben.

Link to comment
Share on other sites

Das Distance IR sollte hochkant gestellt werden, weil es sonst einen relativen  großen Detektorwinkel (blödes Wort) hat, also es lässt sich nicht allzu genau messen imho.

 

Hmmm, habe ich bisher nicht drüber nachgedacht aber könnte stimmen. Sollte ich beachten.

 

@The_Real_Black: Ich habe XNA installiert und Managed DX bisher nicht kennengelernt. Allerdings habe ich XNA bisher auch nur 2D genutzt.

Link to comment
Share on other sites

Dann ist da die Entscheidung gefallen ^^ XNA ist der Sieger. mDX habe ich im Studium mitbekommen XNA habe ich mir selbst beigebracht. Es ist wenn man alle Vertices per Hand zeichnet nicht viel Unterschied. Wenn hier mehr Leute schon mit XNA zu tun hatten und dies auch Installiert ist besser als wenn man die Leute erst zum Installieren "zwingen" muss.

 

@ThomasKl:

Die Idee hatte ich schon mal, aber ich hatte keine Kinect zur Hand, mein Prof. wollte auch keine Sponsorn und als ich mit meiner Bachelorarbeit angefangen hatte gab es noch keine Treiber für Windows, da musste ich auf Tiefelbilderzeugung mittels 2 Web-Kameras zurückgreifen. Es ist möglich nette 3D Strukturen daraus zu erzeugen, aber es ist alles sehr anfällg wenn man nicht alles selbst implementiert...

Tipp: OpenCV und für C# der Wrapper EmguCV falls du es noch nicht kennst. Ist aber je Version etwas verbuggt... Ich werde das vieleicht verwenden um eine Kamera abzufragen und das Bild auf die visualisierung der Messdaten zu klatschen.

Link to comment
Share on other sites

-> Roboter begonnen.

 

Version: 1.4 Datum:

- Einfache Vectorklasse: Dateneimer

- Vektor Input Element.

- Mathhelper Klasse aus meheren früheren Projekten übernommen

- A_DummyTest Lautsprecherausgabe\Rechteck\irgendwas wie Sinusgenerator.

- SVG: Lochraster benannt und verglichen.

- SVG: Backup erstellt -> "Lochblech Backup" da es zum arbeiten mit allen

Blechen in einer Datei zu rucklig ist!

- SVG: Roboter Überlegungen eingefügt

 

- Box 4 Mapper

- GUI begonnen...

-

 

letztes Update in diesen Projekt:

Ich beginne mit den Klassen noch mal ein neues Projekt welches auf meinen Roboter ausgerichtet ist.

Link to comment
Share on other sites

Notiz:

2 Projekt Ideen welche ich vermutlich nicht umsetzen werde.

 

- Luftschiff:

Ein steuerbarer Zeppelin. Ein DC Brick für den\die Motoren und ein Stepper Brick oder Servo Brick zum ausrichten der Motoren. IMU, Master und ein IO4, "Funk"Brick würde ich auch noch dafür vorschlagen.

Vorteil: Es stürtzt nicht ab wenn die Verbindung reißt (anders als ein Flugzeug oder Octocopter)

 

- Automatischer Kresse Farm:

Kresse wird in kleinen Schalen unter einen Plastikzelt angebaut und dann mittels Schneidemessern geerntet. Nach der Ernte kann man einen Trocknungsschritt hinzufügen oder sonst eine Idee.

 

Bricks: Master, DC + Servo oder noch ein DC, IO16 Bricklet, Luftfeuchte Bricklet.

 

Die DCs steuern ein Drehgewinde auf dem sich ein Erntekopf befindet der Servo oder DC das Schneidewekzeug (siehe anderen Thread: Rasenmäher). Eine Pumpe Oder noch ein DC kann Wasser in die Schalen Pumpen damit die Kresse immer genügend Wasser hat. Endlage Taster können dann für Positionen "Start Schnitt" und "Abwurf Ernte" verwendet werden.

 

Frage ist wann der Ernte-Vorgang starten soll... IR Bricklet zum messen? Oder eine Kamera an einen Rasberry ;-)

Link to comment
Share on other sites

Es fährt!!!! Es fährt!!!!!!!!

 

Ich kann nun einen Joystick nach vorne bewegen und es fährt nach vorne. Links\Rechts dreht es sich und sogar rückwärts kann es fahren...

die letzten Codeschnipsel stelle ich noch nicht online ich muss erst mal weiter aufräumen bevor es das nächste Update gibt.

 

Happy Coding und bis die Tage.

 

Link to comment
Share on other sites

http://www.therealblack.net/TFUploads/TRB_Bot.7z

 

Hier mal ein Test Projekt. Ich würde mich freuen wenn ihr es ausführen könntet (Exe liegt bei).

 

-> Entzippt die Dateien

-> Klickt bitte auf "Erstelle DB" (als Pfad ist der Ausführungsort gedacht)

-> dann gibt in den Popup Fenster einen Namen ein und klickt auf "ok"

-> Eine neue Datei sollte im Ordner liegen. <der eingegebene Name>.mdb

-> Klickt auf Öffnen

-> wählt die Datei

-> es sollte auf der Oberfläche "geöffnet" stehen

-> Klickt auf "Default DB"

-> und beendet mit "Beende" bitte die Datenbankverbindung

 

-> Falls ihr wollt könnt ihr auch im Textfeld eigene SQLs absetzen.

 

Dieser Test auf anderen Rechnern soll zeigen, dass die Datenbank-Erstellung bei euch klappt ansonsten muss ich immer eine leere DB mitgeben welche ich dann kopiere und mit leben fülle.

 

Ich könnte auch ein paar kleine Ideen für ein Webinterface in dieses Projket einbringen, aber dann müstet ihr das Programm und auch Visual Studio im Adminmodus ausführen... Einwände dagegen? Oder nette Idee?

 

Freu mich auf euer Feedback obs klappt.

 

Edit:

Auf der zweiten Seite könnt ihr im Programm die Enummerations Features antesten -> Klicken von oben nach unten -> Start Enum beginnt die Enumeration -> Add bricks fügt alles in die Connection ein -> Show List zeigt in einen Gridview alle erkannten Bricks und CSV Zwischenablage kopiert die Daten in die Zwischenablage -> uids, Namen usw zum schnellen Posten von Informationen.

Link to comment
Share on other sites

@AuronX: Default DB erstellt alle Tabellen wie ich sie im Bild gezeigt habe. (Über die muss ich aber nochmal nachdenken ^^)

 

Ansonsten freut es mich, dass es geklappt hat, dann ist der nächste Schritt mal die Initial-Daten mit einzufügen und eine Automatische Inventarisierung zu ermöglichen. Projektverwaltung kommt dann auch bald. Und es wird neue Bilder geben ^^ soviel zu tun...

Link to comment
Share on other sites

Was mir grad noch nicht ganz klar ist:

Hat das was mit deinem Roboter zu tun oder ist das ein Projekt das du parallel verfolgst? ^^

 

Weil das ja eher so nach "Brick-Management" aussieht... wahrscheinlich hab ich da irgendwo den entscheidenden Post mal überlesen :D

 

Was mir grad noch einfällt: Falls dein Code irgendwann mal woanders als unter Windows laufen soll schau mal ob es deine Datenbank-Lib auch woanders gibt. Ansonsten gibt es ja noch sqlite, das sollte recht portabel sein und es gibt bestimmt auch gute .NET-Libs dafür (Dieser Absatz enthält quasi ausschließlich Vermutungen ^^)

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...