Samstag, 19. März 2011

DIY Airhockey Tisch im eigenbau

sooo.... nach langer Zeit endlich mal wieder ein eigenbau Projekt von mir:
Diesmal handelt es sich um einen großen Airhockey Tisch 250x120cm.
Die größe entspricht in etwa der größe der offiziellen Tourniertische welche 8 Feet == 2.44 m beträgt.

Der bau des Tisches ist zwar trivial aber trotzdem sehr arbeitsaufwendig:



1. 8mm MDF Platte 250x120cm (27€) mit 2.5cm Raster versehen (30 min)











2. (250*120)/(2,5*2,5) = 4 800 Löcher (90 min mit 2 Mann) mit 1.5mm Bohrer bohren (6 Bohrer = 3€), dabei sind mir 4 bohrer gebrochen, einen davon konnte man sogar noch 3 mal wiederverwenden bis er endgültig den Geist aufgab. Nach dem bohren empfiehlt sich die Platte gründlich zu schleifen!





3. Stabile Spanplatte als unterkonstruktion 250x120x1,9 cm (33€) mit Umrandung (7.5€) versehen und mit Silikon abdichten, Höhe der Umrandung 40mm











4. Loch für den Lufteinlass sägen. Um die große Menge Luft die so ein Tisch benötigt zu erzeugen benutze ich einen 1600Watt Laubsauger (ebay @ 27€), der schon auf kleinster Drehzahl (350 Watt) den Puck zum schweben bringt.






5. Anschließend die MDF Platte mit kleinen Klötzchen bekleben (höhe 40mm) damit später die Spieloberfläche nicht durchhängt










6. Beide Teile zusammenfügen und an den Rändern mit viel Leim und Silikon abdichten


7. Spielfeld Umrandung und Tore anbringen

Derzeit ist die komplette Umrandung noch aus Holz, was den Puck nicht optimal abprallen lässt, demnächst wird evtl noch auf Alu-Winkel/Vierkantrohre (5-10€ pro Meter) umgestellt, die den Puck besser abprallen lassen sodass sich ein noch schnelleres Spielgefühl einstellt








Gesamtkosten: ~130€
Arbeitszeit: ~11 Std + 4 Std Materialbeschaffungszeit.

Leider lassen sich solch große Platten nicht im Internet bestellen sodass man auf lokale Baumärkte mit dürftigem Sortiment angewiesen ist :(

Mittwoch, 16. September 2009

iSuck es geht weiter!

Nach längerer "stille" gibt es wieder neues von meinem iSuck Staubsauger Roboter Projekt
Die professionellen Platinen für den Laser Entfernungsmesser sind eingetroffen und schon teilweise bestückt. Demnächst kommen noch einige kleinteile und dann können die Tests des Sensors beginnen!

Links zu sehen: untere Seite der Platine bestückt mit Xilinx xc3s200 FPGA mit 200k Gates - hoffentlich genug ;)
Rechts: MT9T001 Bild sensor mit 3 Megapixel.

Mittlerweile scheint Samsung das von mir angewendete Prinzip entdeckt zu haben und in einen Staubsauger Roboter eingebaut zu haben :( Samsung Futor

Echte Klimaanlage im Eigenbau

Viele werden es kennen, draußen 36° , in der Dachwohnung 40° x.x
Deswegen wurde es bei mir Zeit für eine Klimaanlage. Natürlich nicht einfach irgendeine, sondern eine billige mit geringen Folgekosten. Herkömliche und am meisten verwendete Klimaanlagen komprimieren unter Energieaufwand (1000 Watt) Kühlmittel und "gewinnen" bei dessen Ausdehnung Kälte (3000 Watt). Im Gegensatz dazu gibt es noch das Prinzip der Verdunstungskühlung: Schnelle (Warme) Teilchen einer Flüssigkeit können aus dem Flüssigkeitsbund ausreißen, gehen über in Luftfeuchte und nehmen dabei Wärme mit. Die zurückbleibenden Teilchen werden kälter.
Dieses Prinzip benötigt kaum Energie, in meinem Fall 30 Watt bei ca 700 Watt Kühlleistung, lässt sich leicht realisieren und ist deshalb perfekt für den Eigenbau. Der einzige Nachteil ist, dass nicht beliebig tief runter gekühlt werden kann, bei meinen Tests ergaben sich maximal 10° Temperatur differenz zwischen Außentemperatur und der Temperatur des Kühlmediums, was in diesem Anwendungsfall allerdings kein wirklichen Nachteil darstellt.


Im wesentlichen benötigt man eine möglichst große feuchte Fläche, an der viel Luft vorbei zieht und die Warmen Teilchen mitreißt.
Weltweit gibt es kaum Firmen die Klimaanlagen nach diesem Prinzip bauen, ich konnte allerdings eine (die einzige?) auswendig machen und mir spezielle "Evaporative Cooling Pads" bestellen. Die Pads sind aus Wasserfestem Papier, besitzen eine große, gut befeuchtbare Oberfläche sowie kleine Windkanäle durch die der Verdunstungseffekt verstärkt wird.

Damit möglichst viel Wasser verdunstet sollte man einen hohen Luftstrom durch die Pads Leiten (1-2 m/s).

In meinem Fall realisiert durch 10 PC Gehäuselüfter (siehe links) mit jeweils 120m³/h Luftdruchsatz, was in etwa ~1.5 m/s Luftgeschwindigkeit ergibt. Die Lüfter verbrauchen um die 10 Watt.


In der 80x60x40 cm(l x b x h) großen Kiste befinden sich die 2 CELdek Matten die etwa 5cm hoch gelagert sind, damit sie nicht im Wasser stehen.

Im unteren Teil der Kiste befinden sich etwa 24 Liter Wasser das von einer kleinen Pumpe durch einen in meinem Zimmer stehenden Radiator und zurück auf die Pads gepumpt wird.

Die komplette Kiste steht auf der Fensterbank, Warme Außenluft wird von den Ventilatoren durch die Pads und wieder nach draußen geblasen, wodurch das Wasser, welches durch die Pads läuft, kälter wird. Der Radiator in meinem Zimmer strahlt die Kälte des gekühlten Wassers ab, die Zimmertemperatur sinkt.

Die bisher messbare Kühlleistung bei 24° Außentemperatur lag in etwa bei 700 Watt bei nur 33 Watt input, die Folgekosten gehen gegen 0! Sobald es draußen wieder über 30° warm wird, werde ich noch ein paar Testmessungen machen, insbesondere da der Wirkungsgrad bei höheren Temperaturen extrem zunimmt. Ich hoffe und schätze mal an die 1500 Watt o.O

Sonntag, 7. Juni 2009

Lasertriangulation - der Sensor

Nach nun einigen Wochen der Bastelei ist der Laser-Entfernungsmesser endlich fertig:
Zu sehen von links nach rechts:
  • Atmega88, 20Mhz, Mikrocontroller
  • ADC0820, 8 Bit paralleler Highspeed ADC (~2 us pro Messung)
  • uPD3753, linearer CCD (1x2048 Pixel), zum aufnehmen des Bildes, mit Objektiv einer alten Kamera
  • VSD-1, digitaler Servo mit montiertem Laser
Aufgrund geringer Fertigungsungenauigkeiten kann der Laser nicht statisch montiert werden, sondern muss dynamisch so geregelt werden, dass dieser immer auf der vom Bildsensor "sehbaren" Linie zeigt.
Für geringe Entfernungen größer 1m stellen diese ungenauigkeiten kein Problem dar, bei größeren Entfernungen muss der Laser allerdings nachgeregelt werden.
Hier liegt auch das Problem des ganzen Sensors: je größer die zu messende Entfernung, desto genauer muss der Laser eingestellt sein.
Im Klartext heißt das: bei Entfernungen größer 2m ist die benötigte Genauigkeit selbst mit digital geregeltem Servo und einem zusätzlich angebrachten Getriebe nicht mehr erreichbar und somit der Sensor für meine Anwendung nicht brauchbar :(
Für geringe Entfernungen wäre der Sensor die perfekte Lösung, bei Abständen <50cm beträgt die Auflösung kleiner 5mm.

Nachdem nun klar ist, dass es mit einem linearen Bildsensor nichts wird, plane ich derzeit den Sensor mit einem Flächenbildsensor mit ca ~1000x1000 Pixeln auszustatten, bei dem dann die dynamische Regelung des Lasers wegfallen würde.
Allerdings würde das den Rechenaufwand quadrieren da mehr Pixel geprüft werden müssen, sodass die angepeilte Messrate von 100hz nicht mehr realisierbar ist:
Der Mikrocontroller benötigt etwa 10 Takte pro Pixel -> 10*1 Mio -> 10 Mio Takte bei 20 mhz = 0,5 sec = 2 hz = zu wenig ....

Sonntag, 10. Mai 2009

iSuck Simulation

Mittlerweile ist die High-Level Software für meinen iSuck mehr oder weniger fertig.

video

Simuliert wird die komplette Reinigung eines sehr eckigen Raumes.
Rot entspricht einer Wand, Blau= noch zu reinigen, Gelb = gereinigt, die schwarze Linie zeigt den schon im vorraus berechneten Weg den der iSuck abfahren will an.
Implementiert wurden auf den sehr beschränkten Resourcen (64kb Ram) A* zum umfahren von Hindernissen und Floodfill iterativ zum festlegen des zu reinigenden Areals.

Auch auf der Low-Level Ebene hat sich einiges getan:
Der Lineare CCD mit 1x2048 pixeln vom typ NEC uPD3753CY ist vor einigen Tagen eingetroffen.
Die für einen Laser Entfernungsmesser benötigte Optik fand sich in einem alten Scanner auf dem Schrottplatz und die Highspeed ADC's mit ca 1 MS/s, die zum erreichen der 100hz Messrate nötig sind, sind eingetroffen.
Leider befindet sich das Herzstück des ganzen, der CPU, noch auf dem Postweg ...

Mittwoch, 29. April 2009

Problem mit den Sensoren

Nachdem der SRF02 für meine Anwendung mehr oder weniger ein Reinfall ist, erwarte ich vom Maxbotix EZ4 auch keine Wunder mehr und plane derzeit einen anderen Weg:

Entfernungsmessung mittels Laser
Der große Vorteil des Lasers ist seine Genauigkeit von bis zu 0.1mm sowie seine hohe Messfrequenz von mehreren 100hz , was für meine Applikation genau das Richtige ist.
Generell gibt es da einige möglichkeiten wie z.B. die Zeit die das Licht braucht um wieder am Sender anzukommen zu messen, wofür man wegen der hohen Lichtgeschwindigkeit allerdings sehr schnelle und präzise hardware benötigt, was im Hobby bereich nur unter großem Aufwand möglich wäre.
Ein weiterer Ansatz, den auch ich verfolgen werde, ist die Entfernungsmessung per Triangulation:
Ein geneigter Laser wirft einen Punkt an die Wand, von dem mit hilfe einer Kamera die Position bestimmt wird. Umso weiter Kamera und Laserquelle von der Wand entfernt sind, desto höher/tiefer wandert der Laserpunkt.
Aus der aktuellen Laserpunkt Position heraus kann dann der Abstand zur Wand bestimmt werden.
Bei diesem Ansatz muss keine spezielle Hardware vorhanden sein, im grunde funktioniert er auch mit der billigen Webcam vom ALDI und dem Laser vom Flohmarkt.

Um bessere Auflösung und weniger unnütze Daten zu erhalten werde ich wahrscheinlich auf einen Linearen CCD chip zurückgreifen, auf dem 1024*1 Pixel aufgereiht sind. Dadurch spart man sich die 2. Dimension und kann selbst mit billiger Hardware eine hohe Messrate erreichen.

Das einzige Problem bei dieser Methode sehe ich derzeit bei der Optik des CCD's, wie jede Kamera benötigt der CCD eine Linse die ihm einen klaren blick ermöglicht. Da CCD's oft in Scannern verwendung finden werde ich mir in nächster Zeit ein paar alte Geräte besorgen und mich über die verwendete Optik hermachen ;)

Siehe auch UB Robotics die ein solches Projekt bereits realisiert haben

Freitag, 24. April 2009

SRF02 Performance

Grade mal einen Tag nach der Bestellung des SRF02 von Manu-Systems kam er auch schon bei mir per DHL express an.

Ich hab mich natürlich direkt ans testen gemacht:
Was mir als erstes auffiel, waren die komischen Werte die er mir bei Abständen kleiner 25cm ausgibt: mal 0, mal 100, mal 200, darfs etwas mehr sein? Ausgaben > 0 sind falsche Messungen! Nur wie soll man die filtern?

Normale Messungen im Bereich 0-150 cm sind ohne größere Probleme möglich solang man an graden Wänden misst.

Sobald man aber Messungen in der echten Wohnung macht wird es etwas schwierig:
Aufgrund des breiten Messbereichs - ca 55° - ist es meist sehr schwer "freie Sicht" nach vorne zu bekommen, da überall irgendwelche Gegenstände nach vorne in den Messbereich hineinstehen.
Zwischen Stuhlbeinen hindurchmessen oder auch durch den Türrahmen in den Flur Messen ist ohne modifikation annähernd unmöglich.
Ohne Hilfsmittel ist es mir auch nicht gelungen in irgendeinem Innenraum Messungen > 200 cm durchzuführen, da IMMER irgendwelche Gegenstände im Messkegel liegen - was für den Roboter mit Positionsbestimmung ein Disaster wäre!

Zudem es im Innenraum auch zahlreiche Reflexionen gibt, die der Sensor gerne in falsche Messwerte wandelt.
Links zu sehen: Mein Ikea Drehstuhl modell Horst, der laut SRF02 den Raum krümmen kann! Konsequent ist er gemessene 210 - 250 cm vom Sensor entfernt, egal wie nah man den Sensor vor dem Stuhl platziert!
Auch die ca 40cm breite Ecke zwischen Schrank-Ende und Wand-Anfang scheint den Raum in gleicher Größenordnung wie auch der Drehstuhl zu krümmen, 220 - 250 cm sind keine Seltenheit.


Selbst wenn Reflexionsfehler nicht vermeidbar sind, sollten sie durch intelligente Empfangsdämpfung und optimierter Software größtenteils unterdrückt werden können - was beim SRF02 augenscheinlich nicht der fall ist.

Jetzt gebe ich mich natürlich nicht einfach geschlagen!

Wie ich letztens gelesen hatte, kann man den Messradius eines US Sensors mithilfe eines runden Rohres verringern und damit die Richtwirkung verbessern.
Ich habe es mit 2 verschiedenen Röhren getestet:
- Plastikrohr, erhältlich im Baumarkt, wird genutzt um Kabel darin zu verlegen
- Moosgummi, in Rohrform geklebt, gibts im Bastelladen

Beide brachten mehr oder weniger den gleichen Erfolg, Messungen durch den Türrahmen in den Flur waren möglich. Sogar Messungen in der Wohnung bis zu 600cm waren jetzt machbar.

Allerdings ist das ganze eine recht wackelige Angelegenheit, der Sensor scheint mir etwas schief zu messen, wenn das Plastikrohr zu 100% grade nach vorne zeigt, gibt es nur Messfehler, wenn das Rohr etwas schief auf dem Sensor steckt sind Messungen möglich. Mir scheint auch, dass der Bereich in dem das Rohr "richtig" sitzt extrem klein ist, ein bischen wackeln und die Messungen gehen wieder in die Hose.

Abschließend kann ich sagen, dass der SRF02 - zumindest ohne Modifikation - nicht einmal ansatzweise meinen Bedürfnissen entspricht!

Seit Gestern ist jetzt der Maxbotix EZ4 US-Sensor bestellt, der laut Hersteller bessere Messungen, keine Fehler bei geringem Abstand und vorallem genauere Richtwirkung verspricht - wir werden sehen.....