C++Guns – RoboBlog blogging the bot

28.02.2011

So soll es vllt. mal aussehen

Filed under: Allgemein — Tags: — Thomas @ 12:02

Seit etwa 2 Wochen konstruiere ich einen Datenhandschuh. Hier mal ein Bild wie die Mechanik aussehen könnte.

dippArticle-7

Leider weis ich nicht mehr, wo ich das Bild gefunden habe.

25.02.2011

Grep by column

Filed under: Allgemein — Tags: — Thomas @ 16:02

Der Titel sagt eigentlich alles.

kater@ktux:~$ cat a
eins zwei
drei vier
kater@ktux:~$ cut -d " " -f 2 a
zwei
vier

-d gibt das Trennzeichen an, -f die Spaltennummer. Ich kannte vorher nur eine Perl Lösung die ich mir nie merken konnte. So ists viel schöner :)

Datenhandschuh: Die Verbindung mit dem PC steht

Filed under: Allgemein — Tags: , , , — Thomas @ 13:02

Heute habe ich den Operationsverstärker an einem Mikrocontroller angeschlossen, der das Signal an den PC schickt. Damit sind drei, einzel entwickelte Komponenten miteinander verbunden. Und es funktioniert zufriedenstellend :)

Der Mikrocontroller, ein alter ATmega8, besitzt ein 10bit ADC mit interner 2.56V Referenzspannung. Neuere Typen kommen auch bis auf 1.1V runter. Aber für den Prototyp lange das erstmal. Allerdings musste ich den Transimpedanzverstärker weiter aufbohren, damit er eine Ausgangsspannug von ca. 2.5V erreicht. Aber selbst mit 6MOhm im Gegenkopplungszweig habe ich eigentlich keine Probleme mit Rauschen. Als OP ist der CA3240 eingebaut.

datenhandschuh_verstaerker2

Das Programm für den Controller war schnell geschrieben. Da gibt es nicht viel zu sagen.

Den Logarithmus ziehe ich jetzt am PC. Mit den Operationsverstärker hat das nicht so richtig geklappt. Man bekommt ja nur 60mV/Dekate. Und auf noch einen dritten Verstärker in der Kette habe ich keine Lust.

22.02.2011

Transimpedanz Logarithmier Verstärker

Filed under: Allgemein — Tags: , — Thomas @ 22:02

Habe heute einen logarithmischen transimpedanz Verstärker gebaut. Damit kann ich nun recht gut das Signal der Biegesensoren messen. Vom max. Lichteinfall bis Dunkel gibt es eine Spannungsänderung von 2V + Offset. Damit bin ich auch ganz zufrieden. Noch den Offset weg machen und schon kann man das Signal digitalisieren.

Mein Problem: ist es dunkel, oder entferne ich den Fototransistor aus dem Aufbau, schwingt das Ausgangssignal bei 500mV 100kHz. Es muss wahrscheinlich irgendein Kondensator irgendwohin.

Aber für heute ist erstmal genug gebastelt worden

datenhandschuh_verstaerker1

Ultraschall Empfänger Verstärker

Filed under: Allgemein — Tags: — Thomas @ 18:02

Heute habe ich zur Übung einen Verstärker für Ultraschall Kapseln gebaut. Die Kapsel hat die Bezeichung R291 und hat eine Resonanzfrequenze von 40kHz. Da das eine Art Kristallmikrofone ist, und die sehr hochomig sind, braucht man einen Verstärker mit einem hohen Eingangswiderstand. Ein Operationsverstärker mit nicht-invertierender Beschaltung ist genau das Richtige.

Meine vorherigen Experimente mit dem invertierenden Verstärker brachten nur mangelhalfte Ergebnisse. Auch habe ich im Laufe des Tages einen Bandpass für 40kHz berechnet. Allerdings wird man ihn kaum brauchen.

Der Bandpass hat nur eine Verstärkung von 7. Zwar könnte man die Verstärkung vergrößern, dazu müsste man aber die Kondensatoren verkleinern. Und da ich schon bei 1nF bin... Habe die Schaltung auch nur schnell zusammen gesteckt. Und ich denke kleiner als 1nF sollte man da nicht gehen, wenn man keine komischen Probleme bekommen will.

Für den Impedanzwandler habe ich eine Verstärkung von 21 genommen. Damit kommt man auf eine Gesammtverstärkung von etwa 147. Ein 20mV schwaches Signal am Eingang würde also ein ca. 3V starkes Signal am Ausgang bewirken. In der Praxis funktioniert das auch wunderbar :) Als Operationsverstärker habe ich den Tl074 verwendet. Siehe Schaltplan.

ultraschallempfängerverstärker1

Besser wäre es, man könnte statt des Bandpass ein logarithmischen Verstärker nutzen um die Dynamik des Eingangs zu verbessern. Allerdings funktioniert der bei mir nie wirklich.

Sachen die mir heute noch aufgefallen sind:
Ultraschall Kapseln als Sender mögen nur ein Tastverhältnis von 50/50. Weicht man davon nur ein wenig ab, sendet er garnichts mehr.
Bei meinem Versuchen speise ich den Sender mit 5V. Und das ist wohl "ganz schön laut". Als der Verstärker fertig war, gab es immer ein Signal im Empfänger. Egal wie gut ich die Empfängerkapsel abgedeckt habe.

18.02.2011

Welcher OP AMP?

Filed under: Allgemein — Tags: , — Thomas @ 13:02

Bin auf der Suche nach einem aktuellen 4fach Operations Verstärker und habe Null Anhaltspunke, nach was ich mich da orientieren soll. Bei irgendso einem Schaltplan der mir in die Hände gefallen ist, wurde ein TL072 benutzt. Der TL074 ist dann die 4-fach Ausgabe. Dann giibt es aber auch noch den TL084. Wieder 4-fach. Aber wo ist der Unterschied?

Habe mir also die Datenblätter runtergeladen und muss nun ganz dumm fragen: wenn ein Wert größer ist, ist das besser oder schlechter? Lustigerweise gibt es darauf sogar Antworten: http://forum.mosfetkiller.de/viewtopic.php?f=2&t=5830&view=previous

Momentan tendiere ich zu dem TL074 / TL084 (4-fach) ca. 1Eur und dem wohl besseren CA3240E (2-fach) für 4Eur. Werde einfach beide kaufen und testen, welcher für mich besser ist.

Logarithmischer Verstärker

Filed under: Allgemein — Tags: , — Thomas @ 03:02

Es gibt logarithmische Verstärker (log amp) um ein lineares Signal aus einem logarithmischen zu erhalten. Leider sind einzelne ICs die das gut können sehr teuer, 15Eur-100Eur. Aber im Netz kursieren einige Beispiel, wie man einen selbst bauen kann.
Der Aufbau ist sehr einfach (siehe Bild). Und funktioniert auch irgendwo brauchbar. Die Ausgangsspannung ändert sich rech linear zur Eingangsspannung. Was in meinem Fall der Winke vom Biegesensor ist.

Amp-log

Allerdings schwankt bei mir die Ausgangsspannung nur um 200mV und hat noch einen Offset von 400mV. Das Signal muss also verstärkt werden. Nur bin ich zu geizig noch mehr OPs einzubauen. Die Atmel Mikrocontroller haben doch auch Verstärker vor dem ADC Eingang liegen. Das wird wohl das nächste Experiment werden :)

Demnächst muss ich aber mal neue OP AMPs kaufen. Der 741 ist doch etwas alt.

16.02.2011

Biegesensor

Filed under: Allgemein — Tags: , — Thomas @ 23:02

Demnächst will ich mal probieren, eine Art Datenhandschuh zu bauen. In erster Linie die Bewegung der Finger erkennen und am Rechner darstellen. Dazu habe ich heute eine Art Biegesensor gebaut.

Den Sensor besteht aus einer LED, einem Stück (Schrumpf-) Schlauch und einem Fototransistor. Ist der Schlauch gerade, kann das Licht ungehindert passieren und den Transistor voll durchschalten. Wird der Schlauch gebogen, gibt es Refelktionen, wodurch das Licht an Intensität verliert. Der Fototransistor schaltet nur noch weniger hindurch.

Misst man den Strom in Abhänigkeit des Verbiegewinkels, sollte eine e-Funktion herauskommen. Ohne Begründung. Die ersten Messungen scheinen das zu bestätigen.

Als Schrumpfschlauch habe ich durchsichtigen, sehr flexiblen benutzt. Werde noch den Mantel mehradriger Kabel ausprobieren. Aber es zeigen sich schon die ersten Probleme. Bei sehr kleinen Biegeradien, oder große Winkel, bekommt man pro Winkeländerung kaum noch eine Stromänderung. Ist also schlecht zu messen. Vorallem am Finger gibt es kleine Biegeradien und Winkel bis 90Grad etwa.

Aber ich freue mich, dass der erste Versuch so gut funktioniert. Mal sehen was die Zukunft bringt.

Auf dem Bild ist leider kaum etwas zu erkennen. Rechts die LED, dann der durchsichtige Schlauch und links der Fototransistor. Der Fototransistor empfängt auch (künstliches) Umgebungslicht und überlagert das eigentliche Signal mit einem 50Hz Störsignal. Entweder malt man den Schlauch mit einem Edding schnell schwarz an, oder macht eine Fouriertransformation des digitialisierten Signals und verwirft die 50Hz komponente :>

snap-20110216-222140-0

14.02.2011

OpenCV death (hot) Pixel im Bild entfernen

Filed under: Allgemein — Tags: , — Thomas @ 14:02

Da meine ca. 11 Jahre alte Webcam mitlerweile ein paar kaputte Pixel hat, die einfach nur weiß sind, habe ich mir überlegt was man dagegen tun kann. Eine Möglichkeit wäre, die Pixel zu erkennen und durch den Median der umliegenden Pixel zu ersetzten.

Um die Pixel zu erkennen macht man einfach ein paar Aufnahmen im dunkeln (oder hält die Hand vor die Kamera). Die kaputten Pixel heben sich deutlich vom Mittelwert ab. Anschliessend kann man das Bild binarisieren. Eine brauchbare Schwelle ist Mittelwert + 3 * Standardabweichung. Dann kommen wirklich nur Ausreisser durch. Anschliessend werden diese Pixel im original Bild durch ihren Median ersetzt.

Die Umsetzung in OpenCV ist etwas eklig. Es müssen mehrere Zwischenbilder erstellt werden. Und vorallem akzeptiert die Filterfunktion keine Masken. Es kann also nur auf das gesammte Bild der Median angewand werden. Wenn man aber anschliessend alle nicht-kaputten Pixel wieder zurück kopiert, ist das Resulatat das selbe.

hotPixelRemoval

Code gibts leider keinen, weil zu unschön von mir umgesetzt. Werde mich demnächst mal mit OpenCV Version 2 beschäftigen. In der Hoffnung, dass man dort das ganze schöner umsetzten kann.

250g Last

Filed under: Allgemein — Thomas @ 13:02

Nach einigen Reperaturarbeiten ist der Heli wieder startklar. Es musste "nur" ein Gewinde nachgeschnitten werden, welches ein Zahnrad an der Welle befestigt.

Meine Kamera wiegt 250g. Leider hebt er sie nicht mehr hoch. Wäre der Akku niht 80g schwerer als der original Akku, würde es bestimmt klappen.

Hier ein Video
http://www.dailymotion.com/video/xeisye_250g-last_tech

Older Posts »

Powered by WordPress