Jeg har nu fået produceret PCB for min booster.
Desværre er det ikke den gule farve ligesom min SPI->DCC enhed, da den gule nu koster ekstra - for samme pris kunne jeg få 5 gule eller 10 grønne. 5 var egentlig nok, men man bliver jo grådig når man kan få mere.
Jeg venter stadig på komponenter inden jeg begynder at lodde. I mellemtiden er jeg kommet forbi en video der viser hvordan man kan bruge en P MOSFET til at beskytte mod at en klumrian får sat ledningerne forkert i. Den vil ikke have samme spænningstab som min diode - og derfor mindre varmeudvikling. Med et par bukkede ben og lidt skraben med en skruetrækker for at få fat i jor forbindelsen kan jeg godt gøre det med det nuværende PCB:
Derudover har jeg glemt at skrive tekst der viser hvad mine dip-switches gør. Der sidder en køler lige ved siden af, jeg kan nok printe en etiket og sætte på i manglen af bedre.
Min originale plan om at bruge en billig LM358 i den del der detekterer kortslutning går ikke - den kan ikke klare input der er så tæt på + som jeg har her. En "rail to rail" op-amp er på vej fra Kina. Den bruger samme ben på IC'en, så jeg satser på at den kan bruges uden yderligere modifikationer.
Mens jeg venter er jeg så småt begyndt at rode med software igen.
Min originale plan var at køre Windows IoT på min Raspberry Pi. Så kan mit software skrives som en Universal Windows Application der kan køre på PC, Pi, Windows telefon og XBox. Men der er sket lidt på software fronten siden den plan.:
- Microsoft har droppet Windows telefonen.
- .NET Core og .NET Standard er kommet. Der kan køre på Windows, Mac og Linux (inklusive Linux for Raspberry Pi).
- Xamarin er blevet bedre. Det går det muligt at bruge .NET Standard til at lave en brugerflade der kører på Mac, Windows, iPhone, og android.
- Der er ved at komme gang i Docker - der gør det lettere at køre flere applikationer på samme platform uden at de bliver "roder sammen". En application kan derfor opbygges af flere isolerede smådele - såkaldte "microservices". De kan være basseret på forskellige teknologier (Python, Java, .NET Core, C++, PHP...) - endda i forskellige versioner.
Så den plan jeg arbejder med nu er:
- En Microservice der giver hurtig adgang til hardware (SPI + GPIO, helst med interrupts). Kommunikationen kan for example være Websockets eller gRPC, men til at starte med kan REST også bruges.
- En "Command Station" microservice der sender DCC kommandoerne til den ovennævnte microservice. Det er primært en input kø og lidt kode der styrer hvornår kommandoer gentages. Den vil formegentlig kommunikere med et message system over MQTT protokollen. Jeg vil nok bruge en Docker container med Mosquitto på Pi'en, men det kan naturligvis også køre med en MQTT broker der kører i for eksempel Azure. Det bliver bare et spørgsmål om konfiguration.
- En "sensor input handler" der læser diverse sensor signaler (kunne være S88, men jeh har lidt andre planer - mere om det senere) fra GPIO microservicen og "oversætter" dem til messages på MQTT.
Der skal noget mere til - for eksempel noget der rent faktisk styrer sporskifter og lokomotiver - men det kommer på et senere tidspunkt.
Desværre er IT noget der udvikler sig forfærdeligt langsomt, og man bruger omkring 90% af sin tid på at kæmpe med installation og konfiguration af andre moduler istedet for at bruge tiden på at skrive kode. Det er en af de ting Docker egentlig prøver at løse, men det tager rigtig lang tid inden folk opdager at de skal holde op med deres nuværende måde at skrive software på - og indtil de indser det, så må man kæmpe for at få deres software til at køre i Docker.
Så jeg forsøger statig at finde en god microservice der kan styre GPIO. Jeg havde egentlig troet det var en hyldevare nu om dage, så jeg bare skulle vælge hvilken jeg vil kører. Men det er vist ikke tilfældet.
mvh
Lars M
Er så småt ved at begynde at pille i skala n, epoke III, DB.