Daar waren we weer.
Ik heb in Microsoft Visual C++ een applicatie geschreven die over de seriele poort de decoder kan configureren. Die tool ziet er zo uit:
Dan heb ik met een webcam (joy!) twee filmpjes gemaakt waarbij ik met deze tool een servo die onder een wissel hangt, met drie verschillende snelheden schakel (15, 5 en 1). En dat ziet er aan de bovenkant zo uit:
... en aan de onderkant zo:
Wat heb ik zoal liggen op het moment? Mijn tafel ziet er zo uit:
Korte samenvatting: een mobile station, een zooi elektronica en een wissel met een servo.
Het filmpje van de onderkant is trouwens zo gemaakt:
Even inzoomen op de elektronica:
Wat we zien is:
links onder een bordje wat ik ooit al eerder had gemaakt ten behoeve van de AT90S2313, welke pin compatible is met de ATTiny2313 die ik nu gebruik. Daar is ondertussen ook een nieuwere versie van, wat vooral van invloed zal zijn op de implementatie van de uart driver, maar dat terzijde. Op dit bordje zit uitsluitend de microcontroller, een scillator (10 MHz kristal met twee condensatortjes) en een pull down weerstandje voor de RX lijn van de seriele poort (daarmee detecteer ik of de firmware in UART mode of Decoder mode moet gaan, als er iets aan de seriele poort hangt, trekt dat veel harder omhoog dan ik met mijn weerstandje omlaag)
Rechts daarvan een klein bordje wat ik ook nog had liggen, met een MAX232 variant met bijbehorende elektronica. In het kort, dit zorgt ervoor dat ik een seriele verbinding kan leggen tussen de microcontroller en de PC. Dan daarboven een ander experimenteer bordje met alle analoge elektronica voor het wel/niet spanning op de servo zetten, de gelijkrichter en een spanningsdeler die het signaal dat op de rails staat, naar 5V trekt. Er staan twee spanningsregelaars op: een 7805, die de spanning voor de microcontroller regelt, en een 7806, die de spanning voor de servo's voor zijn rekening neemt. De servo's worden aan hun ground pin gevoed door een ULN2804 (dat is het IC wat je ziet) om per servo de spanning af te kunnen zetten. Als de servo dus niet dient te bewegen, dan is hij spanningsloos en consumeert dan ook geen onnodige stroom. Ik weet niet hoe andere servo controllers dat doen, maar ik heb de indruk dat er niet veel anderen zijn die dat doen.
De plannen voor de toekomst:
Het spul op een 20 MHz kristal zetten, want op dit moment trekken we alleen het 'langzame' protocol. Met die actie krijg ik het 'snelle' protocol bijna gratis, alleen zal ik nog moeten testen op verschillende centrales of ik ruim genoeg ben in de marges van mijn timing. Als ik het goed heb is MrDirect daar nogal extreem in (korte puls 1/4, lange puls 3/4, versus spec kort 1/8, lang 7/8).
Daarna ben ik van plan om 25 stuks te gaan maken. Ik heb nu een PCB gespecificeerd die in een behuizing van 57.5x27.5mm past, waarbij bij de lange zijde het PCB met de connectoren uit steekt. Daaraan vast (dat los gezaagd of gesneden kan worden en vervolgens met een 4-pins header weer verbonden) zit een stuk PCB met een MAX232 circuit waarmee de servo decoder kan worden verbonden met de PC.
Ik weet nog niet wat dit laatste extra gaat kosten, maar als je een batch servo decoders hebt, blijf je maar 1 MAX232 circuit nodig hebben.
Van die batch van 25 wil ik er 10 zelf gebruiken, en de anderen als try-out voor een lage prijs verkopen, 1 per persoon, om zoveel mogelijk reacties te krijgen.
Goed, en nu gooi ik wat friet in de frituur.