Enige tijd geleden, nog voor de laatste uitgaves van elektor,
was ik zelf al begonnen aan een bus-systeem te ontwerpen.
Ik beschik over een modelspoorkamer, waar ik alles wens te automatiseren. Zo wil ik TL's dimmen, spots dimmen, audio/video apparatuur aan/uit zetten en kanalen omschakelen, m'n bedieningspaneel laten in en uitschuiven enz ... enz ...
Aangezien ik ook de intentie heb om de rest van het huis te automatiseren, ben ik maar eens beginnen denken over een bus-systeem.
Tijdens de bouw van onze woning, heb ik op allerlei plaatsen netwerkkabels voorzien, ik wil m'n bus-systeem dus over deze netwerk-kabels laten lopen. (LET WEL, ik gebruik netwerkkabels, geen echt netwerk !)
Het geheel wordt aangestuurd met een FriendlyARM, maar eender welke "sturing" die seriëel data kan versturen of ontvangen, kan overweg met dit bus-systeem.
(en het protocol is héél simpel, en heeft genoeg aan RX & TX, geen RTS en DSR enzo)
Als eerste heb ik een "hoofd-module", die verzorgt de communicatie tussen de FriendlyARM mini2440 en 3 bussen.
Rechts bovenaan de aansluiting naar de FriendlyARM toe,
links zit de 5V voedings-ingang.
Onderaan 3 bus-aansluitingen in de vorm van RJ45 connectors. Naast deze connectors zit telkens een 5V uitgang, om de volgende PCB te voeden.
Op elke bus kunnen 256 kaarten aangesloten worden, wat het totaal op 768 printen brengt, per seriële aansluiting.
Het seriële protocol is héél simpel:
- eerste byte = bus-nummer
- tweede byte = adres
- derde byte = aantal bytes dat volgen
(niet elke pcb heeft hetzelfde aantal bytes nodig namelijk)
- reeks data-bytes.
De hoofdmodule verdeelt de data naar de juiste bus.
Elke PCB op die bus, kijkt of het adres overeenkomt met z'n dip-switches, en doet al dan niet iets med de data.
Vervolgens stuurt hij deze data-stream door naar de volgende print. Er mogen dus gerust op één bus, kaarten met hetzelfde adres zitten, ze reageren dan allemaal op hetzelfde commando.
Hoofdmodule:
Vervolgens een relais-kaart, met 8 relais.
Alle kaarten hebben dezelfde opzet:
Links de data-in connector en 5V in-connector,
en rechts de data-out connector en 5V out-connector.
boven de microcontroller 8 dipswitches om het adres in te stellen.
Hierna een input-kaart, met 8 inputs.
Op een input kan je een schakelaar aansluiten om aan/uit te lezen, of je kan er ook 5V logica op aansluiten, afkomstig van andere electronica.
Vervolgens een DAC kaart, met 4 uitgangen.
elke uitgang is regelbaar tussen 0 & 10V, met een 8-bits resolutie. (Hiermee kan je bevoorbeeld VESA ballasten voor TL's dimmen enzo, alsook halogeen dimmers enzo)
Ik heb hier thuis ook nog diverse RGB LED strips in gebruik.
Daarom heb ik ook nog een RGB LEDstrip controller gebouwd. Deze kan elke kleur met 8-bits PWM aansturen.
(16,7 miljoen kleuren mogelijk dus)
Die 3 microcontrollers op de print is misschien wel wat overkill, maar ik zit hier met een enorme overstock aan PIC's
(TLC5940 had meer aangewezen geweest, lol)
elke kleur kan 8A hebben, dus een 10-tal meters van die LED strip sturen is dus geen probleem.
P.S. al mijn printen zijn met de elektor profiler gefreesd
Staat nog op de planning:
- 20 x 4 chars LCD aansturing
- OSD modules (met MAX7456)
- Touch screen
Verder heb ik al diverse sensors enzo ontwikkeld om op m'n bus-printen aan te sluiten, zoals laser lichtsluisjes enzo.
groeten,
Kris