Mini MovingHeads basierend auf PIC18F4685 (40MHz) von Microchip und MAX6969 von Maxim.
Die jeweils 16 LEDs (4 Rot, 4 Grün, 4 Blau, 4 Weiß) können einzeln angesteuert werden und sind mit einem Konstantstrom versorgt.
Die Bewegung wird von jeweils zwei Servos realisiert. Danke an Basti - er hat die meiste Mechanik gebaut.
Die Servos kommunizieren über CAN-Bus miteinander: Es wird ein Master gewählt der dann die anderen MovingHeads steuert.
Die Boards für 4 MovingHeads und noch andere Projekte habe ich bei PCB-Pool bestellt:
Die Becher-Überzieher waren zuerst als Blend-Schutz während dem Programmieren gedacht - sehen aber in Betrieb garnicht schlecht aus:
Als folgendes Video aufgenommen wurde lief der CAN-Bus noch nicht - die Geräte kommunizieren folglich nicht miteinander:
AVR
AVT timing library
AVR timing library für exakte aber auch lange Zeitmessungen / Delays etc.
USB to Funk (RFM12) Adapter mit ATMEGA8
Mit der CDC Erweiterung der AVR-USB Bibliothek stellt der
ATMEGA8 Controller dem angeschlossenen PC eine virtuelle serielle Schnittstelle zur Verfügung auf den der Controller
mit printf() schreiben kann.
Unter Windows erscheint ein zusätzlicher COM Port und unter Linux ein character device (z.B. /dev/ttyACM0).
Das wireless RF transceiver module RFM12 kann nun über diese Schnittstelle
programmiert (Frequenz, Filer etc.) werden und Daten senden und empfangen.
FreeRTOS mit AVR
FreeRTOS port für den AT Mega 128 (bzw. AT90CAN128)
Prinzipiell handelt es sich um die Implementierung vom AT Mega 323, es müssen lediglich Register-Bits anders gesetzt werden.
Treiber für UART des AT Mega 128 (bzw. AT90CAN128)
Der FreeRTOS Treiber für die serielle Schnittstelle ist leider nur für den ATMega323 verfügbar.
Ich habe den Treiber auf AT90CAN128 bzw. ATMega128 portiert.
Es werden jetzt beide UART Schnittstellen unterstützt (auch gleichzeitig) und alles läuft nach wie vor Interrupt-basierend ab.
Ziel dieses Projekts war es, MP3 Dateien, die sich auf einer MMC karte befinen, mit einem Microcontroller (in diesem Fall PIC18F2550) abzuspielen.
Es wurde der MP3 Decoder-Chip VS1001k von VLSI Solution Oy verwendet.
Die maximal von dem Decoder-Chip unterstützte Bitrate von 320kBit konnte mit dem Microcontroller erreicht werden.
USB PIC-Brenner
Bei diesem PIC Brenner handelt es sich im Prinzip um die Schaltung PBrenner8 von Sprut (http://sprut.de).
Der Brenner hat einen Microcontroller eingebaut, der die Kommunikation über USB ermöglicht.
Es wird die Firmware und die Brennersoftware (USBurn) von Sprut verwendet.
Es wurde das Layout neu erstellt, um verschiedene Sockel erweitert und auf schicke zwei Etagen verteilt.
Der Brenner unterstützt alle bis dato verfügbaren PIC Microcontroller und ICSP.
Inzwischen gibt es auch eine Mini-SMD-Version (bei Bilex geätzt):
Ethernet Schnittstelle mit ENC28J60
Der Ethernet Controller ENC28J60 von Microchip wurde in diesem Hardwareprojekt zusammen mit den nötigen Analog-Perepherie auf eine Single-Layer-Platine verbannt.
Es ging darum, Erfahrungen mit dem Ethernet Controller zu sammeln, um später eine noch keinere Dual-Layer-Platine zu entwickeln und in großer Stückzahl fertigen zu lassen. (Home Automatisation und MP3 Streaming Client)
Die "Netzwerkkarte" wurde sowohl an einem PIC18F8722 (80 Pol TQFP) und einem ATMEGA32 (40 Pol DIL) als auch direkt am Laptop getestet (siehe unten).
Zum Testen des ENC28J60 habe ich eine Adapterplatine geäzt, die aus der Spannungsversorgung des USB-Kabels (5V) eine 3.3V Spannungsversorgung für den ENC28J60 erzeugt.
Gleichzeitig wird die parallele Schnittstelle verwendet, um den nötigen SPI-Bus zu simulieren.
So konnte ich einen Kernel-Treiber für Linux schreiben, der den ENC28J60 über die parallele Schnittstelle als normales Ethernet device (enc0) in den Kernel einbindet.
PIC-USB-Ethernet Platine
Nachdem hinreichend Erfahrungen gesammelt wurden, haben wir ein Platinenlayout erstellt und bei Bilex fetigen lassen.
Die bestellte Euro-Platine ist in folgende Teile unterteilt:
2 X Microcontroller PIC18F2550 (SO) Board mit USB und ICSP Anschluss (je eine Achtel Europlatine)
2 X Microcontroller PIC18F8722 (TQFP, 80 Pin) Board (je eine Viertel Europlatine)
2 X Ethernetcontroller ENC28J60 mit SPI Anschluss (je eine Achtel Europlatine)
Bestückt sehen die Platinen schon viel besser aus:
Und so sieht der Webserver von Microchip aus, wenn er auf einem PIC läuft:
Datenübertragung über Laser
Ziel dieses Projekts war es, eine TCP/IP Verbindung über Laser aufzubauen.
Dafür verwendete ich zwei Laser der Firma Laserfuchs die mit dem Signal einer seriellen Schnittstelle moduliert werden.
Es wird jeweils für jede Richtung ein Laser benötigt.
Empfangen wird das Signal mit einem Fototransistor und Operationsverstärker.
Mit dem Point-to-Point Protocol Daemon (pppd) lässt sich leicht aus einer seriellen Verbindung eine IP-Verbindung machen (siehe dazu auch Netzwerk Tips):
Wenn man die Hand in den Laserstrahl hält, kommt kein Ping mehr durch ;-)
Home Automatisation
In diesem Projekt wollte ich die Gerätschaften in meinem WG-Zimmer vom PC bedienbar machen.
Es ging mir dabei um alle Lichter, die Musik und den Rolladen.
Auf dem PIC18F8722 Board (siehe PIC-USB-Ethernet Platine) läuft ein Webserver, über den man die Geräte ein- und ausschalten kann:
Momentan besitze ich 12 dieser Funksteckdosen, die von dem Mikrocontroller angesteuert werden können.
Insgesamt unterstützt das verwendete Protokoll 512 Funksteckdosen.
Eine der Steckdosen habe ich zerlegt und in meine Deckenlampe eingebaut.
Die einzelnen Module noch einmal in der Draufsicht:
Das Spannungsregler-Modul ist ein Schaltnetzteil und hat einen sehr hohen Wirkungsgrad (verglichen mit einem Low-Drop-Spannungsregler).
Der 433MHz Sender ist aus einer der Fernbedienungen ausgebaut, die mit den Funksteckdosen kamen.
Ethernet-Modul mit ENC28J60 und MagJack
PIC18F8722 Board
Das ist ein Screenshot vom WebFrontend:
Musik-Koffer
Durch intensives Freibad-Besuchen und Zelten-Gehen wurde der Wunsch nach einem robusten "Musik-Koffer" laut.
Nummerierte Teile:
1: Die Mitteltöner waren damals auf Ebay günstig zu haben (zusammen mit Frequenzweiche und Hochtönern knapp 15 Euro)
2: 50W RMS Verstärker "Power Granade" (hat auf der Hobbytronic 2002 nur 10 Euro gekostet)
3: Hochtöner
4: Frequenzweichen
5: Bleiakkus (insgesamt 12V, 18Ah)
6: Ladeelektronik (Der Koffer hat eine Kaltgeräte-Buchse zum laden)
7: Das Multimeter zeigt die Batteriespannung an (heute würde ich einen µC + Display benutzen)
Mainboards kann man manchmal reparieren, indem kaputte Kondensatoren ausgetauscht werden ;-)
Mein Xilinx Spartan-3 FPGA development board von digilentinc, mit dem ich aus Zeitgründen leider bis jetzt viel zu wenig gemacht habe.
LED-Würfel (LED-cube), den ich stundenlang gelötet habe und bisher leider keine Zeit hatte, die Ansteuerplatine zu entwickeln... mache ich aber auf jeden Fall noch.
Der Würfel besteht aus 5x5x5=125 Duo-LEDs (also Rot-Grün-LEDs), die alle einzeln angesteuert werden können.
So lassen sich lustige Muster oder sogar Spiele auf dem Würfel spielen. Update: Inzwischen funktioniert die Ansteuerplatine :) Muss mal ein Video davon machen.
Feel free to leave a beer to my bitcoin address: 1JwiWthkzWRQ9dmaqTCfQUnyoYFcJjbURt