Dez
29
2009

Ein Weihnachtsgeschenk 2009

Ich hatte mir dieses Jahr eigentlich vorgenommen, zu Weihnachten als Geschenk eine selbstgebaute “Pulsanzeige” zu bauen, deren Schaltung dann noch in einem dekorativen Gehäuse verbaut werden sollte.  Das “Praktikum Elektrotechnik 2″, an dem ich dieses Semester  teilnehme, befasst sich im vierten Versuch mit Funktionsgeneratoren auf Basis von Operationsverstärkern und Grundschaltungen derselbigen. Jedenfalls brachte mich die letzte Aufgabenstellung der Versuchsdurchführung, nämlich das Verstärken des Pulssignals aus einer Fingerklammer, auf die Idee so etwas mal zuhause nachzubauen und es dann noch “Benutzerkompatibel” für die erwähnte Geschenkidee zu machen. Der Benutzer sollte dann einen Finger in eine Klammer stecken, die seinen Puls über das optische Verfahren abnimmt und die Operationsverstärkerschaltung betreibt dann eine dekorative Lampe die so synchron mit seinem Puls aufleuchtet.

Leider hat es mit der Zeit nicht mehr hingehauen, die Schaltung verschenkfertig zu machen. Es gab ein paar batteriespezifische Probleme und so weiter, von daher habe ich mich nach einem Alternativgeschenk umgesehen.

Bei der Suche bin ich auf eine Reihe Klein-Bastelprojekte gestoßen, die aufeinander aufbauen und sich auf interessantem Wege jeweils verbessern:

Phototransistorschaltung von www.evilmadscientist.com (Bild stammt von dort)

Zunächst ist auf www.evilmadscientist.com eine Bastelei aufgetaucht, die auf sehr minimalistischem Wege LEDs nur in dunkler Umgebung leuchten lässt (Link zum Artikel). Ein anderer Bastler hat auf www.instructables.com veröffentlicht, wie er eine kleine LED-Schaltung insofern mit einem Mikrocontroller erweitert hat, dass sie danach flackert wie eine Kerze (Link zur Anleitung).

Ein weiterer Hobbybastler hat dann auf www.hackaday.com veröffentlicht, wie er diese beiden Ideen kombiniert hat, um LEDs nur im Dunklen flackern zu lassen (Link zum Artikel). Die Schaltung bietet auf diesem Stand einen Mikrocontroller, der sich um das Flackern kümmert und einen Fototransistor, der den kompletten Mikrocontroller abschaltet, wenn das Umgebungslicht zu hell ist.

Fototransistor mit Mikrocontroller verschaltet auf www.spritesmod.com (Bild stammt von dort)

Diese Schaltung wiederum hat der Webmaster von www.spritesmods.com aufgegriffen (Link zum Artikel), weil ihm aufgefallen ist, dass die Schaltung auch mit viel weniger Bauteilen funktioniert, wenn man ein interessantes Detail von LEDs ausnutzt:

Wenn man Licht auf eine LED scheinen lässt, dann produziert sie eine Spannung an ihrer Sperrschicht, die in Sperrichtung abfällt. In diesem Moment kann man die LED wie eine kleine Stromquelle, parallel zu einem Kondensator geschaltet, betrachten.
Der Mikrocontroller nutzt diese Tatsache folgendermaßen aus: Er schaltet in gewissen Zeitintervallen die Beleuchtung ab, beschaltet eine LED hochohmig, damit sich eine Spannung anlegen kann, misst sie und entscheidet dann, ob die Lichter danach weiter leuchten sollen oder nicht. Ferner wird der Mikrocontroller nun nicht mehr ausgeschaltet, sondern legt sich einfach “schlafen” und wacht später für die nächste Messung wieder auf. Das ist immer noch extrem sparsam.

Schaltung, die ohne Phototransistor auskommt

Vereinfachte Schaltung von www.spritesmod.com (Bild stammt von dort)

Alex von www.tinkerlog.com hat diese Idee wiederum aufgegriffen und ihr mit einer künstlerisch anmutenden Freiform-Verlötung der Bauteile einen wundervollen Hauch von Eleganz und Ästhetik verpasst. (Link zum Artikel).

Weil mir die Idee so gut gefallen hat, habe ich mich schnell dazu entschieden, sie nachzubauen, zumal man sowas schön verschenken kann.

Allerdings bot die spritesmod.com-Version der Schaltung und Mikrocontroller-Software eine Möglichkeit, die Schwellhelligkeit, bei der die LEDs noch flackern sollen, einzustellen/zu kalibrieren. Die tinkerlog-Version hat darauf verzichtet, um Platz für ein anderes nettes Feature zu bieten: Wenn man den Mikrocontroller resettet, dann leuchtet jeweils eine andere Anzahl an LEDs, was wiederum sehr passend für die verschiedenen Adventswochen ist.

Die Version die ich nachgebaut habe, bot letzteres Feature nicht, zumal die Adventwochen sowieso schon vorbei waren und ich diese Kalibrierung nicht auslassen wollte, zumal der Benutzer meiner Ansicht nach entscheiden sollte, bei welcher Helligkeit er den Kranz schimmern sehen will.

Jedenfalls habe ich mich heute noch einmal hinter den Sourcecode geklemmt, um Helligkeitskalibrierung und Adventskerzenfunktion zu haben.

Das Flackern der Lichter wird  realisiert, indem einfach verschiedene LED-Helligkeiten die in einem Array gespeichert sind, schnell nacheinander auf den LEDs dargestellt werden. Die Werte sind allesamt möglichst zufällig gewählt, um sich dem praktisch zufälligen Flackern einer Kerzenflamme in den ebenso praktisch zufälligen Luftzügen, die man zuhause so hat, anzunähern.

Im Endeffekt lief es darauf hinaus, dass ich so viele Zufallszahlen aus dem Zufallszahlen-Array herausgelöscht habe, dass beide Features auf den Chip passen. Außerdem habe ich die im EEPROM gespeicherten Werte (Kerzen-Anzahl und gespeicherte Schwell-Helligkeit) in eine .eep Datei ausgelagert, die getrennt auf den Chip geflasht werden kann.

Ein Video zeigt ganz gut, dass es keinen deutlichen Unterschied macht, ob es ~150 oder ~250 Zufallswerte sind, die das Flackern erzeugen. Zwei Abschnitte des folgenden Videos sind mit zwei verschieden großen Zufallszahlen-Arrays gemacht. Um ehrlich zu sein, weiß ich selbst nicht mehr, welcher Abschnitt mit welcher Einstellung arbeitet:

Nun ja, besonders verwunderlich ist das nicht, zumal das Kerzenflackern ja schon mit zwei NE556-Bausteinen gut klappt.

Den Sourcecode inklusive dem angepassen Makefile gibt es hier: Download

Video vom fertigen Aufbau:

0 Kommentare
Written by Jacek in: Elektronik | Schlagwörter:, , , , , , , ,
Jun
19
2009

Lösungen zum Praktikum Informatik 1

Dir listingIm zweiten Semester des Bachelor-Studiengangs “Elektrotechnik / Informationstechnik / Technische Informatik” gibt es ein Programmierpraktikum unter dem Titel “Praktikum Informatik 1″.

Ich habe das alles vorgearbeitet um es schnell hinter mir zu haben und hin und wieder Kommilitonen geholfen, wenn sie mich um Hilfe fragten. Auf Dauer lud ich die Sourcecodes einfach aus Bequemlichkeit hoch und durch die bald darauf folgende Verlinkung auf uni.ist.hirnlos.net hat sich die entsprechende Adresse schnell und weit verbreitet. Gerade weil das eher ein Bequemlichkeitsakt war, sind die Sourcecodes auch nicht lehrsam dokumentiert. Ich habe einfach nur programmiert was das Praktikumsskript verlangt um dafür meine Testate zu bekommen und das war’s.

Da mittels Google oft nach “Student im Urlaub Programmierpraktikum Lösungen” o.ä. gesucht wird, dieses Blog hier allerdings nicht darauf verlinkt, verlinke ich die Adresse mal in diesem Artikel, um vielen sonst ins Leere gehenden Suchanfragen doch ein Ziel zu geben.

Alle meine Lösungen sind unter http://www.student-im-urlaub.de/source erreichbar.
Ich übernehme weder Haftung für die Richtigkeit der Sourcecodes, noch für Schäden oder irgendwelche unmittelbare Folgen durch Benutzung dieser Programmcodes. (Schließlich bin ich nur Kommilitone und habe sonst nichts mit dem Praktikum am Hut)

Mittlerweile ist diese Quelle auch den Tutoren aufgefallen. Offenbar ist ihnen auch aufgefallen, dass viele den Code einfach kopieren, aber nicht richtig verstehen. Der Sinn dieses Praktikums ist dadurch natürlich für diejenigen, die sowas tun, gebrochen.

Mit ist das prinzipiell völlig egal, zumal wir alle erwachsen genug sind, um selbst zu entscheiden. Wie gesagt, ich schreibe diesen Artikel hier, um ins Leere gehende Suchanfragen zu verhindern.

Sobald das Praktikum vorbei ist, lade ich die Lösungen auf www.bsetitti.de, das Forum für Kommilitonen dieses Studiengangs, hoch. Das verzögert sich deshalb auf das Ende des Praktikums, weil bis dahin nicht sicher ist, ob noch Änderungen/Korrekturen folgen.

0 Kommentare
Written by Jacek in: Uni | Schlagwörter:, , , ,
Mai
27
2009

Boolesche Ausdrücke vereinfachen

KV-Diagramme vereinfachen war nie leichter!Um boolesche Ausdrücke zu vereinfachen, kann man Karnaugh-Veitch-Diagramme benutzen. Die Problematik gibt es praktisch überall, wo es um Low-Level-Logik geht.

Um mein eigenes Verständnis so tief zu treiben, wie es nur geht, habe ich ein Java-Applet dazu programmiert.

Da sich weit und breit im Internet kaum sinnvolle Sourcecodes zu solchen Anwendungen finden lassen, die auch noch Betriebssystem-unabhängig sind, gebe ich den Sourcecode frei.

Die lauffähige Version findet sich unter student-im-urlaub.de/kvdes

Und der Sourcecode unter student-im-urlaub.de/kvdes/kvdeskiller-2009-05-27.zip

Der Sourcecode darf völlig frei verwendet werden. Meinen Namen bei Weiterverwendung zu erwähnen wäre zwar nett, ist aber nicht nötig.

Viel Spaß damit, falls wer etwas damit anfangen kann. ;)

1 Kommentar
Dez
21
2008

Tic-Tac-Toe-Robotik

Nun, seit Freitag ist das “LEGO Mindstorms meets MATLAB”-Projekt zuende.

Mein Kommilitone und ich haben in der Wahlversuchsphase einen Roboter gebaut, der Tic Tac Toe spielen kann.

Die mathematische, bzw. algorithmische Betrachtungsweise solch einfacher Spiele war sehr interessant. Dasselbe gilt für die Auswertung und Interpretation der gesammelten Daten über die Sensorik.

Eine vollständigere Projektbeschreibung gibt es hier auf der RWTH-Mindstorms-Seite zu sehen.

Team Tic Tac Toe!

Team Tic Tac Toe!

 

 

1 Kommentar
Written by Jacek in: Uni | Schlagwörter:, , , , , , , ,
Dez
12
2008

Der Ingenieur

Zur Zeit herrscht für uns Elektrotechnik-Erstsemester vorlesungsfreie Zeit, denn wir stecken im LEGO-Mindstorms-Matlab-Projekt. Ich wurde der Gruppe am Institut für technische Akustik zugeteilt. Dort gibt es eine Küche, in der wir immer Kaffee trinken und an einer Wand dort hängen witzige Ausdrucke aus dem Internet.

Einen dieser Ausdrucke fand ich ebenso interessant, wie witzig:

 

Aus dem Vorwort zum Vorlesungsscript “Werkstoffe der Elektrotechnik”, von Prof. A. G. Fischer, Uni Dortmund, 1977 

Über das Lernen 

Wir alle kommen als Nichtswisser und asoziale Egoisten auf die Welt. Von diesem Start zum Endziel, dem zivilisatorisch-schöpferischen, sozialen Individuum, ist es ein weiter Weg. Diewichtigsten sozialen Impulse erhalten wir während der ersten vier Lebensjahre. Alles weitere ist Lernen, in den verschiedenen Schulen, welche die Gesellschaft dafür errichtet, im Selbststudium, und letztlich in der Schule des Lebens (Erfahrung ist bekanntlich die beste – und die teuerste – Schule). 

Jungen Menschen fällt der Übergang vom Lernen in der Schulklasse zum Lernen im Hörsaal erfahrungsgemäß nicht leicht, deshalb sind vielleicht einige Worte dazu angebracht. 

Der Schulklassenbetrieb war noch sehr stark darauf aufgebaut, daß der junge, im Elternhaus existentiell geborgene Mensch ein impulsives und emotionales Wesen ist und am besten in geführten Gruppen unter milden Wettbewerbsbedingungen lernt, wo das Wissen “vorverdaut”, in kleinen Happen und in spielerisch schmackhaft gemachter Form dargeboten wird, wo es für Leistungen Belohnungen und für Versager Strafen gibt, und wo häufige Wiederholungen stattfinden. 

An der Hochschule ist es anders. Hochschulreife bedeutet, daß der junge Mensch erkannt hat, daß er, wie jeder andere, “in die Welt geworfen” ist, seines eigenen Glückes oder Unglückes Schmied ist, aus dem angebotenen Wissen aus eigener Motivierung etwas behält oder auch nicht. “You are on your own.” Dies erfordert, um den Anstrengungen des Studiums standzuhalten und die zum selbstmotivierten Lernen erforderliche Selbstzucht aufbringen zu können, Begeisterung für das gewählte Fach. Man muß sich für sein Fach begeistern, dann fliegt einem alles zu, auch wenn man keinen IQ von 180 hat. Sonst ist es Quälerei. 

Der Ingenieursberuf ist der edelste Beruf, den es gibt. Der Ingenieur (von Ingenium = schöpferischer Geist), als Inbegriff des homo faber, baut die Zivilisation auf diesem Planeten und verbessert die Lebensbedingungen des Menschen. Die Naturwissenschaften sind, anders als z. B. die Jurisprudenz oder die Theologie, “akkumulativ”, d. h. jeder Fortschritt, den Sie erarbeiten, geht in das kollektive Menschheitswissen unverlierbar ein und befruchtet weiteren Fortschritt. Der tätige Ingenieur braucht also nie über den Sinn seines Lebens nachzugrübeln, er ist das nützlichste Glied der Gesellschaft, auch wenn die Gesellschaft dies oft nicht zugibt. 

Nur in diesem Bewußtsein kann man die Härte unseres Berufs durchstehen. Denn der Ingenieur muß ja das gesamte, von seinen Vorgängern erarbeitete Wissen seines Faches, als sein Rüstzeug, kennen, muß 20 Jahre seines Lebens in seine Berufsvorbereitung investieren. 

Während dieser Zeit amüsieren sich die anderen. Außerdem muß der Ingenieur eine breite Übersicht über alle menschlichen Wissensgebiete (einschließlich Psychologie, Soziologie, Management, Volkswirtschaft etc) besitzen, sonst geht er im Wettbewerb unter. Das erfordert lebenslanges Lernen, insbesondere auch deshalb, weil sich heute das wissenschaftlich-technische Wissen der Menschheit alle 10 Jahre verdoppelt, d. h. wenn Sie 10 Jahre nach Beendigung Ihres Studiums kein Buch mehr anrühren, sind Sie hoffnungslos veraltet. 

Sie müssen also das Lernen zur Lebensgewohnheit machen! Alles, das Sie monatlich mindestens 10 mal tun, wird zur Gewohnheit, geht also ohne Willensanstrengung vor sich, sagen die Psychologen. Bauen Sie also ein System von gesunden, positiven Gewohnheiten auf! Kein erfolgreicher Ingenieur sitzt täglich stundenlang vor dem Fernseher, spielt Skat, trinkt, hat Frauen, das ist in dem Beruf nicht drin. 

Unser Beruf erfordert also ein gewisses Maß an Askese. Der Ingenieur weiß, daß er seinen Lebensbeitrag innerhalb von etwa 30 Berufsjahren leisten will, daß jede ungenutzte Stunde verloren ist, und daß er zur Erreichung seines Lebensziels ein wohlgeplantes, effizientes Leben, in allen seinen Aspekten, führen muß. Wem das zu hart ist, der möge sich rechtzeitig anders orientieren. 

Nachdem Sie also die wichtigste Entscheidung Ihres Lebens, die Berufswahl, getroffen haben, denken Sie daran, daß die zweitwichtigste Entscheidung in Ihrem Leben die Gattenwahl ist. Während sie meisten Frauen im Leben des Mannes die Nr. 1 sein wollen, geht beim richtigen Ingenieur die Arbeit vor allem anderen. Die ideale Ingenieursfrau versteht das, ist treusorgend und anspruchslos und gibt ihrem hart-arbeitenden Mann seelischen Beistand. Schon mancher begabte Ingenieur ist von seiner selbstsüchtigen Frau ruiniert worden. Treffen Sie daher Ihre Entscheidung erst nach Prüfung auch dieser Aspekte. 

Als Belohnung winkt dem Tüchtigen die unbeschreibliche Freude, die man empfindet, wenn man eine schwere Arbeit wohlgetan hat, wenn man etwas Bleibendes geschaffen hat, der Entwicklung vorangeholfen hat. 

In diesem Sinne bitte ich, die Vorlesung “Werkstoffe der Elektrotechnik” zu verstehen. Wir sind keine Penne. Der Lehrstoff ist interessant. Arbeiten Sie aktiv, aus eigenem Antrieb mit, wir helfen Ihnen!

 

1 Kommentar
Written by Jacek in: Uni | Schlagwörter:, , , ,
Nov
01
2008

Programmieren in C an der RWTH

Im Studiengang “Elektrotechnik / Technische Informatik / Informationstechnik” an der RWTH Aachen hört man im ersten Semester unter anderem “Grundgebiete der Informatik 1″.

Es geht hier nicht darum, programmieren zu lernen, sondern um Algorithmen und Datenstrukturen. Die offizielle Vorlesungsprogrammiersprache ist C.

An der Uni ist man sich der Tatsache bewusst, dass viele noch nie programmiert haben, also werden in der Globalübung und in den Kleingruppenübungen durchaus ein paar Dinge erklärt.

Die meisten Anfänger benutzen Windows – und sie haben das typische Problem, dass ihr Konsolenfenster ( Unter Windows mehr “Eingabeaufforderung” genannt – das entspricht auch dem lächerlichen Funktionsumfang!) sich sofort nach Ablauf des Programms wieder schließt. Das passiert UNIX-Benutzern nicht, denn sie rufen ihr Programm in der Konsole mit “./meinprogramm” auf, sehen die Ausgabe und landen zurück in der Eingabezeile. Das sieht dann so aus:

tfc@photon u2 % ./aufg3_1_b                                                9:13
[Ausgabe des Programms (...)]
tfc@photon u2 %                                                                     9:13

Nichts klappt sich zu. Wozu auch? UNIX hin oder her – unter Windows ist es unüblich, die Konsole dauerhaft offen zu haben (Weil sie dort nichts kann), also besteht dieses Problem für einen Windowsprogrammierer nunmal.

Viele Windowsprogrammierer setzen deshalb vor dem “return 0;” in ihrem Sourcecode ein kurzes “getchar();” ab. Das ist sogar noch in der stdio.h enthalten, weshalb unnötige Includes wegfallen. Diese kleine Funktion lässt die Konsolenanwendung nach Ablauf des eigentlichen Programms auf die Eingabe eines Buchstaben warten. Was für ein Buchstabe das ist, ist ja völlig egal – das Programm blockiert an dieser Stelle und die Konsole geht nicht zu. Das erfüllt seinen Zweck. Abgesehen davon, dass es UNIX-Programmierer total nervt, weil man ständig Enter drücken muss, um zurück zur Konsole zu kommen.

Gestern allerdings war der erste Kleinübungsgruppentermin für Informatik (Erst letzte Woche wurden die Gruppenplätze verteilt). Hier wurde für die Total-Anfänger noch einmal gezeigt, wie man seinen ersten C-Sourcecode schreibt und kompiliert. Mit wxDev-C++ (oder sowas in der Art) unter Windows. Der Tutor erwähnte das “Zuklapp-Problem” mit der Konsole. Sein Lösungsvorschlag:

Man bindet über “#include <stdlib.h>” die stdlib.h ein und verwendet vor dem “return 0;” am Ende des Programms die Funktion system() mit folgendem Aufruf: “system(“PAUSE”);”. Dies hat zur Folge, dass am Ende des Programms das Programm “PAUSE” aufgerufen wird und die Konsolenausgabe so aussieht:

C:\winDOS\> meinprogramm
[Ausgabe (...)]
Bitte drücken Sie eine beliebige Taste, um fortzufahren…

Ja, toll. Den PAUSE-Befehl gibt es unter UNIX nicht. Weil an der Uni so verantwortungsbewusst Systemunabhängig gelehrt wird, darf ich während meinem Studium die Sourcecodes meiner UNIX-fremden Kommilitonen umhacken, damit sie bei mir überhaupt laufen und später schlage ich mich später im Berufsleben mit Arbeitskollegen herum, die kein wirkliches C können, sondern sich Müll zusammenprogrammieren, den sie sich unter Visual Studio oder so angewöhnt haben.

Ich richte einen Appell an alle Windows-Kommilitonen: Bitte, bitte nutzt Präprozessor-Anweisungen! Mit folgendem kurzen Code kann man sein Programm Plattform-Unabhängig machen:

#ifdef WIN32
system(“PAUSE”);
#endif 

Diese Anweisung bewirkt, dass der Compiler diesen “Windows-Behelf” auslässt, wenn man das Programm überhaupt nicht unter Windows kompiliert.

Bei einem einzelnen Entertastendruck ist das ja alles noch nicht soooo schlimm, aber schlimmere Zeiten werden kommen.

4 Kommentare
Written by Jacek in: Computerstuff, Uni | Schlagwörter:, , , , , , , ,
Jul
17
2008

Twitternde Mensen

Was gibt’s heute für Aachener Studenten in der Mensa?

Entweder man geht hin um nachzuschauen, was nervig ist, da es in Aachen verschiedene Mensen an verschiedenen Orten gibt. Oder man schaut in das Mensa-Heftchen, in dem ein Plan abgedruckt ist.

Oder wenn man sowieso schon twittert (www.twitter.com – Ein Mikro-Blogging-Service), dann abonniert man einfach die Twits der Mensen!

So weiß man schon morgens, wann man nicht hingehen sollte. Wobei ich persönlich dadurch kaum etwas an meinem Verhalten geändert habe, zumal ich sowieso fast nie dort bin.

Danke an Martin für den Tipp! ;)

3 Kommentare
Written by Jacek in: Uni | Schlagwörter:, , , , ,
Mai
21
2008

Über mich

Hallo, dies ist mein persönliches Blog. Zu meiner Person:Me, myself and I.

Ich komme ursprünglich aus Köln und studiere seit Oktober 2008 Elektrotechnik / technische Informatik / Informationstechnik an der RWTH Aachen.

Seit November 2009 arbeite ich als Hiwi am Lehrstuhl für Betriebssysteme, Aachen, wo ich bei den Forschungsarbeiten an NUMA-Systemen mithelfe.

Mich faszinieren UNIX-Betriebssysteme, Mikrocontroller und allgemein interessante Hard- und Software.

In meiner Freizeit befasse ich mich mit elektronischen Basteleien und lerne Chinesisch.

0 Kommentare
Written by Jacek in: Allgemein | Schlagwörter:, , , , , , ,

Powered by WordPress. Theme: TheBuckmaker. Darlehen, Geld verdienen

3.14159