








Home » Elektronik » Växel dekoder för 64 servos
Innehåll
Använda servos istället för normala växel motorer är en utmaning för styrelektroniken. Jämfört med normala växelmotorer så skall dessa dekodrar inte endast koppla på/av strömmen till växelmotorn, utan måste även uppfylla följande funktioner
Denna lista har jag fått fram av erfarenhet under tiden som jag utvecklade servostyrningen. Samtliga funktioner i listan är nu implementerade i mina dekoders.
Jag har skapat en kort video för att visa hur rörelserna ser ut. Både på växeln men även på hur servon rör sig och mikrobrytarna kopplas på/av. Hoppas den hjälper dig med att få en bild över vilka rörelser du får i växlarna.
Servo dekodern är uppbyggd med en centralenhet och ett antal mindre slavenheter. Varje centralenhet kan hantera 16 slavenheter och varje slavenhet fyra servos och fyra signaler. Japp, du hörde rätt. Den kan även hantera signalerna. Så en fullt utbyggd lösning så kan den kontrollera 64 servos och 64 signaler. På min modelljärnväg har jag fyra centralenehter eftersom de är under olika sektioner av borden. Alla centralenheter har så klart inte fullt med slavenheter. En av dem har endast fyra slavenheter än så länge i alla fall.
Samtliga konfigurationsändringar för t.ex adresserna till växeldekodern, servo hastigheten, min/max servo positioner mm ändras genom USB interfacet på centralenheten. Programvaran som jag använder för ändringarna är utvecklad och körs på en Raspberry Pi. Jag använder just en Raspberry Pi eftersom det är en helt normal linux dator, och jag hade den redan tillgänglig för mitt belysningsprojekt. För er som inte vet vad en Raspberry Pi är för något, så är det i grund och botten en väldigt liten och billig dator. Ungefär samma storlek som en normal växeldekoder för fyra växlar. Jag kommer i framtiden att lägga upp en komplett image att använda på en Raspberry Pi för nerladdning. Det kommer att göra det mycket enklare att komma igång för nya användare. Lägg en kommentar på sidan om du är intresserad av en sådan.
Anslutning till modelljärnvägen sker genom XpressNet. Jag vet att ett antal personer kommer tycka att detta är idioti och kommer att argumentera för att det är bättre att använda standard DCC signal från spåren istället. Oftast så är det första argumentet att du kan endast koppla in 31 enheter på den bussen, beroende på version. Det är ju faktiskt inte helt rätt. Du kan ha max 31 enheter som pratar på bussen, men antalet enheter som kan endast lyssnar på bussen är mycket mycket högre.Så det är ingen begränsning alls. Det finns också feedback information på bussen. Varför skulle jag vilja ha det? Låt oss säga att du vill ändra en signal till rött så fort som tågen kör in på nästkommande block. Väldigt enkelt att implementera ifall du kan lyssna på feedbacken från det blocket. Andra alternativet är så klart att få instruktionen från t.ex TrainController att ställa om signalen till rött. Inte alltid så enkelt att få det att fungera smärtfritt. Det sista argumentet är varför jag skall dra kraft från DCC boostern till att hantera växlar? Låt boostern göra det den är designad för att göra. Dvs generera ström till spåren och loken. Inget annat
Centralenheten är byggd runt mikroprocessorn PIC 18F4550. En av funktionerna i denna kret är en USB anslutning och denna använder jag för kommunikation med Raspberry Pi för konfigurationsändringar. Programvaran är skriven i MikroC från MikroElektronika. En av egenheterna är att serienumret på USB enheten måste vara unikt, och jag sätter detta genom att använda current timestamp som en konstant vid kompileringstillfället. En väldigt enkel lösning för mig, och garanterar att jag får unika USB serienummer. Av denna anledningen så har jag inkluderat fyra olika .HEX filer i nerladdningspaketet. Enda skillnaden mellan dem är USB serienumret. Om du ansluter två kort till samma Raspberry Pi med samma serienummer så kommer linux att försöka göra en multipath koppling till dem, då den identifierar samma kort två gånger, fast på olika anslutningar. Inte så bra. Så använd olika .HEX filer så är du säker. Om du behöver mer än fyra centralenheter, lägg en kommentar till posten så kompilerar jag fler och laddar upp.
För att ansluta korten korrekt, gör följande
Linux verktyget har mycket funktionalitet. Du kan göra följande med det.
För kommandosyntax och hjälp, kör följande kommando.
./servoSettings help
Ja, jag vet. Det finns en text som heter ”Isak är bäst på LEGO” Isak, min son på 4 år hjälpte mig att etsa kretskorten (för övrigt en kanonaktivitet att göra med en 4’a åring) och krävde då att den texten skulle finnas där. Så det är bara att acceptera det….
CentralCard V1.2 CAM
DaughterCard V1.5 CAM
4 x Servo DaughterCard HEX
16 x ServoCard Controller HEX
servoSettings.tar.gz