Borg16
WARNING - Work in Progress. (Suschman)
Sollte bis ende der Woche langsam wirklich mal fertiggestellt sein :) (irgendwann?)
Todo: * Aufbauanleitung nach liste tixiv korrigiern * Aufbau der Matrix beschreiben/schaltplan * reicheltlisten fixen/anlegen * led-widerstandsvorschläge einfügen/bearbeiten * SVN checkpoint korrigieren / zipfiles erstellen * Farbcodes der Widerstände hinzufügen * Platinenbestellung per Post * ... * Way more Nakka!
About
Der Borg16 ist eine auf Andres 16x16 Borg basierende, professionell hergestellte Platine auf der alle zur Ansteuerung einer 16x16 LED-Matrix (=256 Leds) benötigten Bauteile platz finden. Sie bietet einen seriellen Port zur Programmierung und einen Anschluss für bis zu zwei Joysticks im 9-Pin-Atari-Standard. Zusätzlich kann ein Canbus-Controller zur Vernetzung bestückt werden.
Die LEDs werden mit vier Helligkeitsstufen angesteuert. An Software existiert bereits eine breite Palette an Spielen, Demos und Testprogrammen. Zur Entwicklung neuer Software kann auch ohne Hardware der Simulator verwendet werden.
Aufbau
Hardware
Bauteile
Bestückungsliste: Position Bauteil/Wert C1 330µF C2 100nF C3 100nF C4 100nF (Wird nicht bestückt) C5 100nF C6 18pF C7 18pF D1 1N4148 D2 1N4004 IC1 UDN2981AN IC2 UDN2981AN IC3 74HCT164N IC4 74HCT164N IC5 MEGA32 LED1 LED 5mm Grün LED2 LED 5mm Rot R01-R16 *Siehe Text* R17 10K R18 10k R19 10k R20 1k R21 1k R22 1k R23 1k R24 33k T01-T16 IRLD024 T17 BC547B T18 BC547B X1 16Mhz Quarz RESET Kurzhubtaster PWR Hohlsteckerbuchse ISP Stiftleiste. 2x5 COL Wannenbuchse 16Pol ROW Wannenbuchse 16Pol JOY Sub-D Male RS232 Sub-D Female IC6 MCP2510P (Optional) IC7 MCP2551P (Optional) CAN (Optional)
Reicheltliste
Bauteile für den Borg16 gibt es zusammen mit den Platinen auf dem Congress 2007 in Berlin als fertige Tüte, ansonsten kann mit den unteren Links jeweils ein Satz Bauteile direkt bei Reichelt bestellt werden. Dabei beinhaltet Borg16-Core alle Bauteile für die Controllerplatine außer dem Can-Controller. Borg16-Can umfasst dieselben Bauteile inklusive den Can-Bauteilen.
- Borg16-Core
- Borg16-Can
Bestückung
Kleine Ungereimtheiten noch korrigieren, die Bestückungsliste ist korrekt
Die Bestückung der Platine läuft, wenn du schonmal einen Bausatz zusammengelötet hast, nach dem bekannten Schema ab. Sollte dies dein erstes Bauprojekt sein, empfiehlt es sich das Tutorial von Microcontroller.net zu lesen.
Zunächst werden die Widerstände ab R17 der Reihe nach bestückt. R1 bis R16 sind die LED-Vorwiderstände. Diese sind von den von dir verwendeten LEDs abhängig und im Bausatz nicht enthalten. Danach kommen alle ICs an ihre Plätze, für den Microcontroller ist ein Sockel empfehlenswert. Nun folgen die Zeilentreiber in Form der MOSFETs T1 bis T16. Deren großer Doppelpin zeigt dabei in Richtung der Wannenstecker. Jetzt kommen der Reset-Taster, die Verpolschutzdiode 1N4001 (D2) und der Quarz an ihren Platz. Weiter geht es mit den Kondensatoren 18pF (C6, C7) und 100nF (C2, C3, C5). C4 wird nicht bestückt. Die Diode 1N4148 (D1) wird stehend festgelötet, dabei zeigt der schwarze Ring auf dem Bauteil in Richtung des Strichs auf dem Bestückungsdruck. Dann werden die Transistoren T17 und T18, die LEDs, die Wannenstecker, die ISP-Steckerleiste, die Hohlsteckerbuchse (PWR) und die Sub-D Buchsen verlötet. Die weibliche Buchse kommt dabei auf den RS232-Port.
LED Matrix
Für den Bau des eigentlichen Displays können LEDs in beliebigen größen (zb. 3mm, 5mm, 10mm Durchmesser) und beliebiger Farbe verwendet werden. Nur blaue und weisse LED´s haben eine zu hohe Dropoutspannung, wer sie unbedingt verwenden will muss die Steuerung mit 6V betreiben. Wichtig ist es nicht zu sparsam zu sein und LEDs mit 400mcd Helligkeit oder mehr zu verwenden, keine low-cost oder preiswerte Standardware. Diese verkraften die Pulsströme nicht und leuchten sehr Dunkel.
(Hier Beispielliste möglicher Led-Widerstand Kombinationen eintragen - WIP)
- Osram 3mm Kingbright Amberfarben - 22 Ohm ??
- Osram 5mm Kingbright Rot (Reichelt Bestellnummer "LED 5-4500 RT") - ?? Ohm ??
- Osram 10mm Kingbright Rot (Reichelt Bestellnummer "LED 10-4500 RT") - ?? Ohm ??
LED Vorwiderstand berechnen
Über die Treibertransistoren gehen ca. Utreiber = 1.5-2V verloren. Die Spannung über den Vorwiderstand kann also mit
Ur = Ubetrieb-Utreiber-Uled berechnet werden.
Beispiel: rote LED hat 2V abfall, Treiber Abfall mit 2V angenommen, 5V Betriebsspannung:
Ur = 5V-2V-2V = 1V
Der Vorwiderstand wir nun nach R=U/I berechnet. Für einen LED-pulsstrom von 100mA:
R = 1V/0.1A = 10 Ohm
Da die LEDs mit 1/16 Einschaltdauer bei ca. 100Hz angesteuert werden, kann man ihnen ruhig Überstrom geben.
Das Datenblatt sagt dazu genaueres, wieviel erlaubt ist. Alle LEDs sollten mindestens 50mA vertragen können.
Die Schaltung kann Pulse bis zu 200mA erzeugen mit passendem Vorwiderstand. Dann muss das Netzteil aber auch 16*200mA = 3.2A liefern können.
Für blaue oder weisse LEDs kann die Schaltung mit 6V Betreibsspannung versorgt werden, damit die LEDs strotz der Spannungsabfälle über die Treiber noch ihre 3.5V bekommen. Noch höher sollte man die Versorgungsspannung aber nicht machen, weil sonst der Mikrokontrolller oder andere Teile leiden könnten.
Aufbau
- In Ikea Bilderrahmen (Name, Bauvorschlag)
- Auf Lochrataster mit Milchtransparentem Plexiglas (Bauvorschlag)
Progammieren
Auf dem Controller im Bausatz ist neben diversen Modulen auch der "Foodloader" für die serielle Schnitstelle installiert. Mit einem normalen Nullmodemkabel oder USB-RS232-Wandler kann das Board neu programmiert werden. Bei leerem Controller kann über die ISP-Steckerleiste ein Programmer angeschlossen werden.
Joysticks
Verwendung finden klassische joysticks vom c64/amiga/atari st/vcs. Gut und extrem robust sind die "Competition Pro" Joysticks. Gibt es noch reucht heufig auf dem Flohmarkt.
Wurden aber auch noch mal neu Produziert von Speedlink, bezugsmöglichkeiten:
- http://www.forum64.de/wbb3/index.php?page=Thread&postID=164053 (ünstig/bevorzugt)
- http://www.go64.de/shop/product_info.php/info/p68_Competition-Pro-Joystick-Retro.html
Software
Software gibt es im SVN (svn co https://roulette.das-labor.org/svn/microcontroller/src-atmel/borg/borg-16) oder als Download. (<- Pfad angeben der alle includes beinhaltet)
Compilieren
AVR-Toolchain + Uisp installieren, Software entpacken oder auschecken, mit make bauen, make sflash zum hochladen per Bootloader.
Ubuntu 7.10:
sudo apt-get install gcc-avr sudo apt-get install avr-libc sudo apt-get install binutils-avr sudo apt-get install avrdude in foodloader-0.21/launcher/ aus svn make und die entstandene ausführbare launch-bootloader in PATH kopieren dann in borg-16 make && make sflash
Module
Tetris
Das altbekannte Tetris, mit Spielstand und Recordzähler.
Snake
Du spielst das bekannte Spiel "Snake" auf dem Borg.
AutoSnake
Hier spielt die Snake mit sich selber :).
LaborInvaders
Spaceinvaders Clone
GameOfLife
Das Spielfeld wird per Zufall befüllt, danach beginnt es sich nach den Regeln von Conways Spiel des Lebens zu verändern. Wenn eine Stagnation eintritt, wird ein "Glider" eingeworfen, die Simulation endet bei vollständiger Auflösung aller Zellen.
"Matrix Effekt"
Genieße die Matrix...
"Lagerfeuer"
Es wärmt in kalten Nächten :).
Zufallsgenerator
Nach etwas Getüftel tut es der Zufallsgenerator recht gut, dies kann man hier betrachten.
Laufschrift
Ein frei programmierbarer Scrolltext
Counter
Der Counter zählt die Neustarts der Platine hoch, ein zurücksetzen erfolgt beim überschreiben des eeprom, aber nicht bei einem normalen Upload der Firmware.
"Diverses kleineres Demo-Zeugs"
Downloads
- Schaltplan
- Software