thinkJDs Blog WhooHoo es blinkt!!!

31Okt/10Off

Das kleine Technikmonster

Ich habe manchmal ein kleines Problem, meinem Umfeld ist das schon bekannt, die nehmen das mit einem Lächeln hin.
Ich für meinen Teil  versuche mir nichts anmerken zu lassen, obwohl es mich innerlich auffrisst :-)

Wenn ich etwas Technisches sehe, will ich wissen wie es funktioniert.
Gut, das meiste was einem im Alltag begegnet habe ich inzwischen durch. Aber hin und wieder, sehe ich etwas, was mir bis dorthin noch nicht aufgefallen ist und dann geht es wieder los. Das kleine Technikmonster ist geweckt und legt sich erst wieder schlafen, wenn ich weiß, wie es funktioniert. Zum Glück gibt es das Internet, so ist es meist kein Problem Dinge herauszufinden.

Was wollte ich jetzt noch mal erzählen ... ach ja richtig, ich war neulich mal wieder Bowling spielen.
Nichts Böses ahnend ist das Monster mal wieder erwacht, als ich dem Pinsetter bei der Arbeit zugeschaut habe. Nach einiger Recherche ist jetzt auch klar wie das Teil funktioniert und die Antwort möchte ich euch nicht vorenthalten, zumal ich diesen tollen Film gefunden habe:

Pinsetter AMF 82-70, gefilmt bei Rebstock-Bowling Frankfurt from Rebstock-Bowling on Vimeo.

Der Film zeigt die Arbeitsweise des AMF Pinsetters 82-70. Ein Nachfolgemodell der weltweit ersten automatischen Pin-Aufstellmaschine aus dem Jahre 1951. Der Film wurde gedreht in der Anlage Rebstock-Bowling, Frankfurt-Main, Germany.

Wir haben allerdings auf einer Bahn gespielt, welche den Brunswick GS-X Pinsetter am Start hatte. Der ist etwas moderner, besteht aber für meinen Geschmack immer noch aus viel zu viel Mechanik.

thinkJD

29Okt/10Off

Eine verdammt helle LED!

Kennt ihr die erste Regel im Umgang mit ICs?
Richtig, das Datenblatt lesen! Was passiert wenn man das mal eben sein lässt, will ich euch in diesem Artikel erzählen.
Außerdem erwarten euch noch einige Informationen zum Thema LED und deren Ansteuerung. Habt ihr Fragen? Dann packt sie in die Kommentare, wenn ich kann werde ich sie euch beantworten.

Ich habe mir drei wirklich helle LEDs bestellt. Je eine Rote, eine Grüne und eine Blaue. So kann man mit geschickter Ansteuerung viele verschiedene Farben, aus dem sichtbaren Spektrum, darstellen.
Die LEDs sitzen, zwecks besserem Handling, ?bereits auf einer Adapterplatine um die Linse und den Kühlkörper anzubringen.

Kühlkörper? Ja richtig, die Teile benötigen einen Kühlkörper.
Immerhin werden sie mit bis zu 700 mA Strom betrieben, was das Silizium bei 3V Spannungsabfall schon reichlich zum Schwitzen bringt.
Für die Rechenfaulen unter euch 700mA X 3V = 2,1W und da ist noch nicht Ende der Fahnenstange :-)

Auch die Ansteuerung solcher Monster ist nicht so trivial wie man vermutet. Ein einfacher Vorwiderstand, wie ich es in diesem Artikel beschrieben habe, kann man aus wirtschaftlichen Gründen nicht benutzen. Bei so hohen Strömen würde man unnötig viel Energie "verheizen". Eine Spannungsregelung ist bei LEDs dieser Größe ist auch nicht Mittel der Wahl, da die Kennlinie sehr steil ist (wie bei allen Dioden) und bereits kleine Spannungsschwankungen nahezu gigantische Stromschwankungen mit sich bringen.

Will man es richtig machen, regelt man den Strom durch die LED. Dazu gibt es einige sehr gute Treiber ICs, man muss das Rad ja nicht neu erfinden. Ich habe mich entschieden den ZXLD1360 zu benutzen.
Ein wirklich tolles IC mit einigen interessanten Features:

  • Er befeuert LEDs mit bis zu einem Ampere
  • Der Ausgangsstrom kann auf einen Maximalwert begrenzt werden
  • Bis zu einem Megaherz PWM-Frequenz
  • Ein sehr geringer Aufwand an externen Bauteilen
  • Und zuletzt der Knackpunkt dieses Artikels, er besitzt einen Tri-State Inputpin

Jetzt muss ich natürlich kurz erklären was Tri-State bedeutet.
In der Digitaltechnik wird keineswegs nur zwischen 0 und 1 unterschieden, es gibt noch einen dritten Zustand. Nennen wir ihn der Einfachheit halber mal IchBinWeg-Zustand.
In der C-Mos Technik wird eine logische 0 nicht durch 0V dargestellt, sondern durch 0 bis 1,5V eine logische 1 entspricht einem Pegel von 3,5V bis 5V alles dazwischen wird undefinierter Zustand genannt und sollte tunlichst vermieden werden.
Der dritte Zustand ist einfach hochohmig, kein Pegel vorhanden, der PortPin ist quasi weg. (Ich hoffe man versteht das so wie ich es beschreibe)

Jetzt besitzt das wunderbare Treiber IC also einen solchen Eingang. Logisch 0 bedeutet die LED ist aus. Hochohmig bedeutet die LED wird mit dem in der Schaltung vorgegeben Maximalstrom betrieben und Logisch 1 bedeutet die LED wird mit maximalem Strom betrieben.

Ihr ahnt sicher schon was kommt. Ich habe diesen Umstand einfach großzügig überlesen und die LED bei einem Ampere schön knusprig gebraten.
Daher immer ja wirklich immer das Datenblatt lesen!

Fuuuuuuuuuuuuuu!!!!!

Vielleicht wollt ihr noch wissen warum es so eine Option überhaupt gibt, wenn man damit die LED schrotten kann.
Nun das ist ganz einfach. Um eine LED zu dimmen benutzt man PWM, dabei wird der Strom gepulst, um so länger die Pulse in einem festgelegten Zyklus um so heller leuchtet die LED.
Wie das genau funktioniert kann ich gerne mal in einem extra Artikel erklären. Wenn man mehrere LEDs betreiben will, aber nur wenige Ausgänge zur verfügung hat, kann man diese multiplexen.
Das bedeutet man schaltet LED1 an, dann LED2, dann LED3, immer nacheinander. Das Auge ist so träge, dass es von dem schnellen Schalten nichts mit bekommt. Der unangenehme Nebeneffekt ist, dass diese Signalform wie PWM wirkt. Die LED wird immer dunkler wahrgenommen, da sie nicht mehr so viele Photonen aussenden kann (sie ist ja seltener eingeschaltet). Dem kann man entgegenwirken, indem man die LED mit einem höheren Strom betreibt.
Es ist also zulässig einen größeren Strom anzulegen, allerdings nur für eine gewisse Zeit. Diese Zeit ist im Datenblatt angegeben und beträgt je nach Strom maximal ein paar Millisekunden.

Überschreitet man diesen heiklen Grenzwert, verabschiedet sich die LED blitzartig in den Failhimmel.

Man sollte bei solchen Späßen auch immer auf sein Programm achten. Eine Schleife, die zu lange dauert, kostet euch genau wie ein Freeze die LED. Ein Watchdog oder gut ausgetestet Interrupt Routinen sind Pflicht, zumal die LEDs nicht gerade billig sind.

Ich hoffe euch hat der Artikel gefallen und ich kann ähnliche Fails bei euch vermeiden :-)

thinkJD

27Okt/10Off

Betty Teil 1 oder die wirklich universelle Fernbedienung

Kennt ihr noch die Betty? Dabei handelt es sich um eine interaktive Fernbedienung, welche 2006 von der Betty TV AG vertrieben wurde.Mit ihr konnte man Gewinnspielfragen beantworten, wetten, wer in einem Fußballspiel das nächste Tor schießt und so weiter.

In Wirklichkeit ging es natürlich darum, das Fernsehverhalten des Nutzers zu protokollieren und so wertvolle Daten für die Sender zu sammeln.
Das ist aber, wie so oft, eine andere Geschichte ...
Kurz nach der Einführung zeichnete sich schon ab, dass Couchpotatoes kein Interesse an Mitmachfernsehen haben (ein Fall für Captain Obvious) und das Projekt wurde gegen ende 2007 wieder eingestellt.

Die Datenübertragung zur Betty erfolgte vermutlich über Videotext, dazu war ein SCAT-Adapter im Lieferumfang enthalten. Um das System zu komplettieren, benötigt man natürlich auch einen Rückkanal. Dieser wurde mithilfe eines Modems realisiert. Die Kommunikation der einzelnen Komponenten wurde über Funk realisiert.

Da die Betty AG mit bis zu einer Million Kunden gerechnet hatte, aber nur knapp 100.000 Geräte absetzen konnte, blieben sie auf einer ganzen Menge dieser Fernbedienungen sitzen. Genau diese Restbestände, kann man jetzt für (sehr) wenig Geld an allen Ecken und Enden erwerben.

Warum ich euch das alles erzähle, fragt ihr euch?
Das ist leicht beantwortet, man muss sich die geniale Hardware nur mal etwas genauer anschauen:

  • Sie besitzt ein 160x128 Pixel LCD, welches auch Graustufen anzeigen kann.
  • Da es sich um eine Fernbedienung handelt, besitzt sie natürlich einen IR-Sender, welcher auch als Empfänger benutzt werden kann.
  • Ein 32bit arm übernimmt zusammen mit 64kByte sram und 8Mbit Flash die Denkaufgaben.
  • Die Kommunikation mit dem Modem und dem SCART-Adapter erfolgte über den CC1100 Funkchip von TI im 433Mhz Band.

Das war aber noch lange nicht alles, direkt nach dem Öffnen der Batterieabdeckung, kann man ihn auch schon erkennen, den feuchten Traum eines jeden Hardwarehackers :-)
Ein voll belegter PIN-Hader, der es ermöglich eine eigene Firmware in das Teil zu flashen.
An dieser Stelle mal ein dickes Danke an die Ingenieure!

(Wollt ihr eine haben? Ich habe noch genug :-) )

Das wars mit Teil 1 der Betty Serie, ihr werdet hier sicher noch mehr darüber lesen, da sie die Hardwareplattform für meine Projektarbeit bildet. Man muss eben praktisch denken ;-)

Falls ihr mehr darüber erfahren wollt, schaut mal auf der Seite BettyHacks vorbei.
Dort haben sich ein paar Open Source Hacker zusammengeschlossen um eine eigene Firmware für die Betty zu schreiben, die Ergebnisse können sich bis jetzt echt sehen lassen.
Es sind für alle Hardwarekomponenten Treiber vorhanden und die Fernbedienung kann bereits als komfortable Universalfernbedienung benutzt werden.

thinkJD

14Okt/10Off

SMD-Bestücker auf Speed

Elektronische Geräte werden, wie wir wissen, immer kleiner und leistungsfähiger.
Eine Technologie hat maßgeblich dazu beigetragen, die Geräte auf das heutige Maß zu schrumpfen.

SMD

SMD oder Surface-mounted device, ist eine Technik bei der alle, oder besser möglichst alle, Bauelemente auf die Platinenoberseite bestückt werden. Die Bauelemente bleiben an der vorher aufgetragenen Lötpaste haften und werden in einem Ofen gelötet. Dabei befinden sich Bestückungs- und Lötseite auf der gleichen Seite der Platine.
Das ermöglicht eine wesentlich höhere Packungsdichte und bessere HF-Verträglichkeit bei gleichzeitig geringeren Kosten.

Eine SMD-Bestückte Leiterplatte

Mittlerweile wurde die  "Through Hole Technology", bei der die Bauelemente durch Löcher in der Platine gesteckt und auf der Unterseite angelötet werden fast vollständig durch SMD ersetzt.

DIL-Gehäuse, die Beine werden durch die Leiterplatte gesteckt und angelötet

Die SMD-Technik hat natürlich auch einen Haken, konventionelles Bestücken, zum Beispiel für Prototypen, ist nicht oder nur bedingt möglich. Die Bauelemente sind entweder zu klein oder lassen sich nicht ohne Ofen löten (Stichwort BGA-Gehäuse) spätestens, wenn man eine Kleinserie herstellen will oder mehr als 50 Bauelemente einsetzt, kommt man um einen Bestückungsautomaten nicht mehr herum.

Damit sind wir auch schon bei dem, was ich euch zeigen wollte. Einen Bestückungsautomaten für SMD-Bauelemente.
Die Besonderheit? Er ist unglaublich UNGLAUBLICH schnell!


(hier gefunden)

Wie schaut es mit euch aus? Schon mal so einen schnellen Automaten gesehen? Habt ihr euch schon einmal an eine SMD-Bestückung gewagt und wenn ja, was sind eure Erfahrungen?

thinkJD

22Sep/10Off

Der Spinnenroboter schreitet durch den Wald

Das ist wirklich scarry!

Der "Forrest walker" von John Deere ist der Hammer! Da Räder auf Waldboden eher suboptimal sind, ist dieses Fahrzeug (darf man das noch Fahrzeug nennen?) mit Beinen ausgestattet. So wird der Waldboden geschont und man kann mühelos "ernten".


(via botjunkie)

Die Maschine, die da an seinem Arm hängt, nennt man Harvester. Er kann Bäume umgreifen, entasten und zurechtsägen in einem Arbeitsgang.

Unglaublich wie er mit den Bäumen umgeht, als wären es Streichhölzer. Die Kräfte die an den Gelenken wirken müssen gigantisch sein.Hier noch ein WIKI-Artikel zum Thema.

thinkJD

2Sep/10Off

Warum ich Simatic verabscheue

Nachdem ich jetzt über alle Nachrichtenkanäle rausgeblasen habe, wie sehr ich Siemens hasse, ist es wohl an der Zeit zu schreiben woran das genau liegt.
Wenn ich sage, ich kann Siemens nicht leiden, bezieht sich das vor allem auf ihre SPS oder besser gesagt auf das Simatic System.

Jaja, ich könnte jetzt auch über die Überwachungstechnik, die sie für den BND bauen schreiben oder die Handys, welche am Anfang tatsächlich herausragend waren, später aber zu Elektroschrott verkommen sind. Tu ich aber nicht, ich versuche Siemens im Alltag bestmöglich zu vermeiden.
Beruflich ist das aber oft nicht so einfach ...

Vielleicht wollt ihr vorher noch wissen, was eine SPS eigentlich ist:

Das ist ein kleiner Computer, welcher hauptsächlich in der Automatisierungstechnik benutzt wird. Er erfüllt besondere Anforderungen wie große Ausfallsicherheit, lange Verfügbarkeit und ein paar Sicherheitsfeatures. Viel kann sie nicht, so eine SPS. Sie ist in etwa mit einem Mikrokontroller vergleichbar.
Sie besitzt einige digitale (oder analoge) ein und Ausgänge, welche mit Modulen erweitert werden können.
Diese kann man im Programm lesen, verarbeiten und wieder ausgeben.
Typisch für eine SPS ist die Vorgehensweise wie die Daten bearbeitet werden.
Zuerst werden alle Eingänge gelesen, dann schiebt die CPU einmal das Programm über diese Eingangsdaten. Was am Ende raus kommt, wird dann an die Ausgänge geschrieben. Das wars auch schon im Großen und Ganzen.
Natürlich gibt es noch allerlei Erweiterungsmodule wie Ethernet oder Touchscreens, diese sind meist extrem überteuert und man muss schon ein extremer Masochist sein, um die Dinger komfortabel zu finden.

Ich habe schon einige Programme, sowohl für den PC als auch für SPS oder Mikrokontroller geschrieben. Eins kann ich euch sagen, diese Siemensteile sind echt ein Krampf!

Dabei hatten sie eine so gute Idee:

Sie wollten Jedem (dummerweise wirklich Jedem) ermöglichen ein Programm zu schreiben. Die Lernkurve sollte dementsprechend flach und die Entwicklungsumgebung weitestgehend selbsterklärend sein.Das hat so weit auch ganz gut geklappt, zumindest wenn man noch nie ein Programm, in welcher Sprache auch immer, geschrieben hat.

Damit sind wir schon beim Thema, hat man schon einmal ein Programm geschrieben und seinen eigenen Stil entwickelt, kommt man schnell, ja sogar sehr schnell an einen Punkt, an dem man das Ding am Liebsten mit einem Hammer bearbeiten möchte bis es keine müdes Blinken mehr von sich gibt (oder einen Absturz ohne jeglichen Debughinweis).

In ihrem Masterplan, jedem Programmieren zu ermöglichen haben sie FUP den Funktionsplan ersonnen. Dabei hat man ähnlich wie bei Lego Mindstorms Funktionsblöcke (und, oder, nicht, Vergleicher, Zähler, Speicher usw.) die man sich in einem "Netzwerk" zusammen klickt.
Wie wir alle wissen, arbeitet ein Computer zeilenweise den Code ab, sodass man bei dieser Klickaktion einige Feinheiten beachten muss. Natürlich kommt man da nicht von selbst drauf, Siemens will schließlich teure Kurse verkaufen. Hält man sich nicht daran, verhält sich das Programm irgendwie komisch und du findest den Fehler nicht, da du nicht sehen kannst, was hinter den Kulissen passiert. Clever oder?

Macht aber nix, es gibt ja noch AWL (Anweisungsliste), eine Assembler ähnliche Sprache, mit der man sich durchaus Anfreunden kann. Leider kann man sie nicht richtig benutzen, man muss schließlich auf die Rückübersetzbarkeit in FUP achten. Dass dies Reibungslos funktioniert, muss man wieder Regeln beachten, welche mit der eigentlichen Programmlogik rein gar nichts zu tun haben. Ich könnte euch jetzt mit Beispielen langweilen, das können wir aber auch in den Kommentaren machen falls es interessiert.

Aber warum das Ganze?

  • Weil man den Leuten, anstatt ihnen zu zeigen, wie man programmiert, lieber ein paar bunte Bildchen hinlegt, sodass sie später an Grenzen stoßen, die sie mit Logik nicht mehr aus der Welt schaffen können?
  • Weil man überteuertes Zubehör für die grundlegendsten Funktionen verkaufen will?
  • Weil man sich durch besondere Innovation (Bwaaahahahahaha!!!) von den Mitbewerbern abheben will.
  • Weil man immer noch nicht gecheckt hat, dass es mehr sinn macht Fachleute auszubilden, anstatt irgendjemanden vor so ein Projekt zu setzen, um hinterher den Scherbenhaufen zusammenzukehren?

Wem nützt das?

Zum glück geht es auch anders, mit einem einfachen PC oder wenn die Features der SPS sehr wichtig sind, ein PC für Industriellen Einsatz mit einer speziellen SPS-Karte. Diese kümmert sich dann auf unterster Ebene um Sicherheitsfeatures, Laufzeitüberwachung und Ausfallsicherheit. Ihre Befehle erhält sie aber von einem Programm weiter oben in der Hirarchie.

Ich zum Beispiel habe hier einen PC mit Interbuskarte, darüber habe ich mir eine Klasse gestrickt von der alle "Ich will etwas mit dem Bus tun"-Klassen erben.
Am Bus selbst hängen Eingabe und Ausgabemodule. Die Steuerung (also die Schrittketten) selbst ist in C# geschrieben und läuft in einem extra Thread in ner Do Schleife (System.Threading.Thread.Sleep(20) nicht vergessen ;-) ). Auf meine Steuerung kann ich mit einem Formular und meiner Maus ganz einfach und ultraflexibel zugreifen.

"Kostenlos" dazu habe ich ein 17" Anzeigepanel, beliebige ein und Ausgabegeräte, Reports, Datenbankanbindung, Loging, und Fernzugriff. Ich kann Etiketten drucken, Berechnungen durchführen  und die Anlage sehr günstig erweitern.
Die Bediener der Anlage haben eine Hilfefunktion, menügeführte Fehlersuche, umfangreiche Statusinformationen, Debugmeldugen und, und, und...
Alle diese Features kosten ein paar Zeilen Code, der sich eh schon in irgendeinem anderen, früheren Projekt findet.

Bei Siemens müsste ich mich tagelang durch die wirklich unkomfortable, jämmerliche, Windows 95 Like IDE quälen.
Bausteine in UnterUnterUnterMenüs suchen und für lockere 5000€ Zubehör kaufen, um annähernd dieselbe Funktionalität zu bekommen.
Natürlich nur wenn die Software nicht gerade irgendein DRM Problem hat oder zwei Stunden lang ein 300MB Update einspielt.

Es ist mir total unverständlich, wie man auf so etwas setzen kann!

So, genug gerantet. Wie stehts mit euch? Habt ihr schon einmal mit diesem "Spitzenprodukt" gearbeitet?
Kennt ihr den unschlagbaren Vorteil, der mir in verborgen geblieben ist?
Habt ihr den Knall gehört?
Ich freue mich auf eure Kommentare.

thinkJD

Page 2 of 5
1
2
3
4
5