Sida 1 av 1

MCR - många bilar samtidigt

Postat: 23 september 2012, 15:38:38
av Erik M
Compadres!

· Jag vildbasar en del elektronika, främst inom bilbana.
· Och ibland behövs tankestöd. Inte om bilbana i sig, men funktionalitet hos elektroniska komponenter och deras interaktion.
· Detta forum torde vara bra för frågeställningar runt sådant, korrekt? :mrgreen:


MCR?
· Multiple Cars Racing, dvs fler bilar än spår. Ett projekt jag har med moduler att bygga ut och lägga till sin bilbana. Väldigt olika moduler.
· Historiskt, åtminstone sedan jag som inte ens tonåring höll i lådan och drömde. Lådan var en Carrera Servo 164, platsen var Domus i Örebro. Kunna byta spår...

· Numera finns det en massa under hyllkanten digitalt. Dyrt och balkaniserat. Dvs ingen gemensam grund, var och en gör sitt, och det blir "dyrt och gott nog".
· Min tanke blir då om jag kan bryta detta och hitta på något inom GNU License som är mer lättillgängligt och med fler bitar.

· Min första frågeställning kommer strax i nästa inlägg.

Re: MCR - många bilar samtidigt

Postat: 23 september 2012, 15:40:37
av Erik M
Frågeställning 1 - Att använda spänning som signal.

· Signalen är en seriekopplad PWM. Delad i "Car" respektive "Speed".
· Car är en impuls om Xµs per 10×Xµs, dvs varje bil skickar ut sin signal som 1/100 av alla signaler. Denna signal är en fraktion av grundsignalen (15V), exempelvis 14V.
· Speed är en vanlig kontrollerad PWM impulsserie som ger bilen dess fart.
· Car släpper ut Speed, vilket då ger en väldigt utspridd PWM signal. Dvs endast om Car är hög släpps innevarande Speed ut. Denna hålls sedan i sisådär 10×Xµs, dvs tills nästa impuls skickas ut. Om ingen Speed släpps ut skickas signal som är ebn fraktion av fraktionen, dvs om fraktionen är 14V så skickas ex 13V istället.
--- Haka inte upp er på nämnda tider och spänningar. Orka hålla på med tiifraktioner i text... ----
· Spänningen ut i banan styrs sedan som antingen 15V eller den spänning som innevarande Car har. En fiktiv serie med fyra bilar kunde då se ut som såhär:
14 11 10 8 15 15 15 15 15 15
Dvs första bilen ska ge ström til motorn, andra bilen inte (11, inte 12 volt), tredje och fjärde ger ström. Därefter nominella femton volt tills nästa serie impulser kommer.
· Anledningen till den sekundära spänningen, den om ej Speed, gör att den totala spänningen ut i banan hålls ganska konstant. Dvs den spänning som släpps fram till en motor ändras såpass lite att ingen annan justering behövs.
· Hade det varit 0V istället hade fluktationerna gett mindre önskvärdas effekter på bilarna, i form av ryckigt uppträdande.

· Den mottagna signalen hittas med voltkomparator och om detta villkor uppfylls ges ström till bilen i 10×Xµs.
· På motsvarande sätt skickas identifikation av bilen ut. Dess IR-LED pulserar med omväxlande max och den volt som gäller per Speed. Exempelvis 14V, dvs 15 14 15 14 etc. En skillnad som temot och behandlas ungefär som ovan, dvs ungefär en voltkomparation på hur mycket det lyser.

· Vad har menigheten för åsikter om denna lösning?

Re: MCR - många bilar samtidigt

Postat: 23 september 2012, 15:54:09
av Icecap
Dålig lösning!

Låt heller spänningen vara konstant och överlägra den med en bärvåg på kanske 150kHz som FM-moduleras (FSK). På mottagarna sitter sedan en µC med en mottagare, de dekoder de styrdata som kommer och gör sin grej med PWM och allt vad som behövs.

Re: MCR - många bilar samtidigt

Postat: 23 september 2012, 19:06:05
av MiaM
Det kanske går att låna lite från digitala modelljärnvägstyrsystem, fast överföringen av datat är antagligen för långsam där. Om man skalar bort antalet kanaler från ett sådant system så kan det kanske bli snabbt nog för bilar.

Jag har av en händelse nyss läst ett par av de gamla Allt om Elektronik som i slutet på 80-talet byggde ett modelljärnvägstyrsystem som i stort sett var Märklinkompatibelt. Det kunde styra typ 80 lok och ett par hundra signaler/växlar. Om man skalar bort till bara något dussin "lok" (och skalar bort fram/back-signalen?) så borde överföringen gå klart snabbare.


Poängen med att läsa på om modelljärnvägsystemen är att det borde vara ungefär samma problem med oxid/gnistbildning mellan fordon och bana både för modelljärnväg och bilbanebilar.

Re: MCR - många bilar samtidigt

Postat: 23 september 2012, 21:25:27
av Erik M
· Det är alldeles korrekt att det är en "dålig lösning".

· Men varför...? Dvs vad hindrar att det fungerar?


· Och vad är den egentlliga skillnaden mellan att överlagra signalen, som du föreslår, och att underlagra den som är det aktuella?



· DCC har förts över till bilbana redan.
· Dock tillkom diverse licenser och patent vid övergången. Modelljärnväg har i princip bara ett system, varje bilbanefabrikör äger sitt system och ingen kompatiblitet mellan dem, eller intresse för.
· Ett problem med DCC är sedan komplexiteten och därmed de kraftigt minskande möjligheterna för "vem som helst" att klara av det.
· Och det är ett av mina grundläggande mål, alla som kan skilja på den heta änden och handtaget på en lödkolv ska kunna ta till sig systemet. Både teoretiskt och praktiskt.

· DCC är följdaktligen inte aktuellt, i just detta fallet.


PS Kul å se att min beskrivning var så bra att alla förstod den. DS

Re: MCR - många bilar samtidigt

Postat: 24 september 2012, 02:28:55
av Icecap
Lösningen är dålig för att du väljer en ASK-modulering. Varje lilla glapp i släpskon blir då datamodulering varför det blir hart nära omöjligt att överföra data korrekt.

Samtidigt försvinder driftspänningen kortvarigt för alla databit med en viss polaritet vilket gör att bilarnas hastighet varierar med datapaketens sammansättning.

Det viktiga är:
* Hur många bits ska överföras till varje fordon.
* Hur ofta måste detta ske.
* Hur många samtidiga fordon kan befinna sig på banan samtidig.

När dessa faktorer är definierade kan man räkna ut resten och välja dataöverföringssätt osv.

Re: MCR - många bilar samtidigt

Postat: 25 september 2012, 14:39:39
av Erik M
Både ja och nej.
Din tanke bygger på att dessa egenheter inte hanteras av systemet.



Men för att spalta upp hur jag menar att det kan fungera:


> Bilen måste ha en bit information, om den ska slå på ström till motorn.
· Denna information lagras så länge att den håller till nästa instans.

>> Bilens hastighet är därmed PWM'ad med exempelvis en cykel om 10µs.
· Dvs var 10µs slår den på, eller låter bli, ström till motorn.

< Bilen behöver således inte bära med sig sin egen PWM. Vilket förenklar kretsen för bilar väsentligt.



> Flukturerande spänning hålls på ett minimum då en bit är hög eller låg i sig.
· Beskrivande exempel: bit 1 är 14V som 1, 13 som låg, bit 2 är 11 som hög och 12 som låg.

< Spänning flukturerar ja. Inte på ett sådant sätt att det påverkar.
· Dels genom bitarnas uppbyggnad (se just ovan), dels genom deras lilla andel av tidscykeln som sådan.



> Det fulla referensvärdet, om vi kan kalla det så, är ex 15V och hålls med en liten cap; liten så det är större men ändå följer spänningsvärdet på platsen.
· Att jämföras med det bitvärde som kommer in. Dvs är biten för låg så kommer även referensvärdet vara för lågt. Relativt sett lika mycket för lågt. Dvs 15\12 är samma som 10\8.



> Bilen kan oxå använda bitar som säger bromsa, växla och slå på lyset.

>> Broms kan fungera aktivt, som en egen bit, eller passivt, som utebliven men förväntad bit. Dvs andra uteblivna Kör-biten slår på bromsen.
· Vilket inte är en helt dum konstruktion faktiskt. Körningen blir mjukare med denna lösning.

>> Att växla kan skickas via bilens identifierande IR-LED.
· Den kan oxå skickas direkt till växlarna, som då alla väntar på just den CarID'n och växlar med den som hittar den.

>><< Den filosofi som utgör grund för MCR gör att detta moment med förare som växlar utgår.
· Det är bilens position på banan, i förhållande till bilarna runtomkring som avgöra det.
· Föraren kan därmed koncentrera sig på att köra, och se bilen köra runt banan på ett fräckt vis.

>> Slå på och av ljuset... om detta är en gemensam order är det en enskild bit, oavsett antal bilar.



>> nota Bene <<
Det som styr valet av metod är inte vad som finns utan vad som är möjligt.
Möjligt att implementera hemma hos hr Johansson med ätteläggar.




> En alternativ metod vore att skicka en avräknad ström av bitar.
Typ:
15 ... 15 ... 15 ... 15 ... 15 ... 1's H/-/L ... 2's H/-/L ... 3's H/-/L ... ... 15 ... 15 ... ...

>> Dvs att en 15 reset alla mottagare. Som annars börjar räkna fram till sin plats i turordningen.
· Och där är Hög 12V och Låg 8V, en utebliven signal är 10V.

>> Svårigheten här bleve att göra räkningen.
· Månne en cap som håller reset tills dess tur...



> En annan variant vore att omvandla hela drivspänningen till ett bytevärde.

>> Genom att låta varje bils hastighets-PWM styra en bit, en switch, i ex en R-2R-stege skapas en spänning som sedan kan spaltas upp av bilen och tala om vad den ska göra.

>> Med R-2R kan man haka på hur många bitar, eg förarstationer, som helst.

<< Med viktade resistorer måste man hålla reda på att varje tillkommande förarstation får korrekt viktad resistor.

>> Drivspänningen hålls jämn genom att skilja ut hög/låg som fraktion av bit. Dvs inte så mycket 0/1 som exempelvis +2V/+1V.
· För att hålla spänningens fluktationer stabilare växlas värdena för Hög/Låg om vartannat.
· Märkligt nog blir Hög/Låg ... 8/4 ... 2/4 ... 2/1, inte ... 16/8 ... 2/4 ... 1/0, och ej ... 2/1 ... 1/0.

Kod: Markera allt

Hög   8    2    2    
Låg   4    4    1  Värde    U
Byte  0    0    0     9    13,5
      0    0    1    10    14
      0    1    0     7    12,5
      0    1    1     8    13
      1    0    0    13    15,5
      1    0    1    14    16
      1    1    0    11    14,5
      1    1    1    12    15
>> Om vi utgår från tre bilar och 9V och att varje steg ovan är +½V så blir högsta spänningen (9+0.5×12=) 15V och den lägsta (9+0.5×9=)

< Denna variant är kanske allra enklast och mest effektiva?

>> Varje bil behöver då bara ex en dubbel voltkomparator för att se om just dess värde finns.
· Ett värde som finns om den i förarstationen liggande PWM'n har ett att skicka.

< Återigen klarar sig komparationen genom att den punkt bilen mäter flukturerar lika som värdena som ska mätas.

Re: MCR - många bilar samtidigt

Postat: 25 september 2012, 15:28:02
av Micke_s
Är det inte bara sätta en DCC dekoder från lok direkt i bilarna.
De finns många varianter som klarar över 2 Ampere.
I andra änden så modifierar man ett lenz-system i princip. Själva hastighetskontrollern bygger på en potentiomenter i LH90.

Eventuellt så kanske DCC inte ger rätt responstid jfm med vad man är van i ett analogt system.

Re: MCR - många bilar samtidigt

Postat: 25 september 2012, 15:36:28
av Erik M
Erik M skrev:· DCC har förts över till bilbana redan.
· Dock tillkom ... och praktiskt.

· DCC är följdaktligen inte aktuellt, i just detta fallet.

Re: MCR - många bilar samtidigt

Postat: 25 september 2012, 15:42:29
av Micke_s
Det lär inte bli några licenskostnader alls, Lenz som säljer dekodrar skiter i om ni sätter dom i bilarna istället för tåg.

Sedan moddar ni själv lenz systemet för köra handhållna gaspådrag.

Hur som helst så kommer du inte runt att modda bilarna i det vanliga fallet.

Du skulle kunna bygga ett advancerat system där sektion är isolerad och köra analogt och hålla reda på vilken sektion en specifik bil är på och bara mata denna och den bilen ska in i, de kan ju inte köra om i alla fall. Då skulle du slippa modda bilarna i huvudtaget. (lite som maglev banor gör för)

Re: MCR - många bilar samtidigt

Postat: 25 september 2012, 16:01:31
av Glenn
Erik M skrev: · Dock tillkom diverse licenser och patent vid övergången. Modelljärnväg har i princip bara ett system, varje bilbanefabrikör äger sitt system och ingen kompatiblitet mellan dem, eller intresse för.

..och hur var det i början när modelljärnvägen blev digital då... ?

Re: MCR - många bilar samtidigt

Postat: 25 september 2012, 18:03:17
av Lennart Aspenryd
Kul att se ett förklarande inlägg här EF.
Men utan gräva ner sig i koder, bör vi redovisa va vi vill ha ut av en funktion! Rätt?

Vi har alltså ett antal bilar ( individer) som vi vill kunna ge ett budskap, gasa, bromsa.
När detta är uppnått vill vi kunna ge en signal om att växla spår vid nästa växlingsplats (LC)
Vid vissa platser vill vi veta vem som passerar var!
Eller hur?

Om signalerna bäddas in ifrån en sladdstyrd kontroller eller en trådlös dito är fritt!

Eller är detta för basic?

Hur får jag bort min tarvlig iPad uppkoppling och får en vettig sida från EF? Att paddan stavar som en kråka tar jag inget ansvar för!

Re: MCR - många bilar samtidigt

Postat: 25 september 2012, 20:17:02
av Erik M
Ungefär så ja LAsp.

Och jag kan tänka mig begränsa vad bilen ska göra till en aktiv order och en passiv funktion.
Dvs den ska ge motorn ström, eller låta bli, och den ska skicka sin identitet.

Eftersom jag föredrar att förse växlarna med separat ström går signalen för att växla bättre den vägen.
Och om den spänningen modifieras på liknande vis blir det dessutom bara två ledningar ut. Kanske rent av bara en... Dvs plocka noll från spåren... en diod från vardera rälen, anod på rälssidan. Hm, noll från rälsen och en två-ledare från växel till växel. En för kraft och en för signal.




> Dåså, då är vi en bit på väg.

>> En fyrkantvåg som anger om max eller signalmodifierad spänning går till banan.
>> En PWM-signal för varje bil som anger om dess motorn ska ha ström.
>> En R·2R-stege delar ut dessa bit till en byte vilken blir...
>> ...en spänningdelare för lämplig voltregulator.
<< Varannan puls går det ut 15V, varannan en signalmodifierad spänning.


> Varje bil söker sedan fånga sitt eget spänningsintervall och använda detta som, i realiteten, en PWM-signal till sin motor.
>> Att fånga detta intervall synes kunna gå göra med antingen:
· en dubbel voltkomparator (typ LM393, dvs "mer än" & "mindre än",
· en differentialspänningsdelare; typ addera, subtrahera eller något annat kul, skillnaden mellan noll, signal och kraft; signal-noll, signal-kraft, kraft-noll etc.
· eller på något annat vis.

>> Den osvikliga fördelen som börjart skönjas är att varje bil måhända inte behöver mer än en strömställare, en voltkomparator, och en krafttransistor. Samt en IR-LED.
· (Kringkomponenter tillkommer, men är naturligt lågintressanta.)
>> IR-LED'n lyser omväxlande enligt kraftspänningen och identifikationsspänningen. Dvs en puls med max respektive modifierad styrka.
· En förändring som bör kunna tolkas av växlarna.

<<< nB >>> Varje bil måste skicka sin ID på ett eller annat vis.
· Lämpligen hela tiden. Vilket dock ställer till det för signal att växla...
· ...som då istället skickas ut till alla växlar som en "när denna bil kommer ska du som får den slå till växeln".

Re: MCR - många bilar samtidigt

Postat: 28 september 2012, 16:32:33
av Erik M
OK, vad kan då göras inom dessa simplistiska parametrar?


· Det första steget är att skicka signal/er. Och signalerna är spänning, vi förutsätter helt enkelt att det fungerar.
· Det finns många situationer där det inte fungerar och sällan som det fungerar bra.
· Det är dock en sak som talar för denna variant i just detta fall. En bilbana har en naturlig återledare för alla poler; eftersom den kommer tillbaka.
· Vanligen skickar man ut ström i en riktning. Från kraft, genom sladd, till förbrukning. Och det blir en del problem med att "nå fram". Dessutom förvärrat av varje förbrukning som adderas som en parallellkopplad belastning...
· I en bilbana har man förhållandevis små problem med just detta. Ström "når runt" hela banan. Exempelvis har Ninco byggt en bana på en mile (~1.6km) kört en bil runt den med endast en av deras ordinarie väggtransformatorer.
· De problem man har med strömförsörjning i en bilbana är av helt annan art; problemet är kontakten mellan banbitarna. Men om god kontakt uppnås kommer strömmen i sig fram. Alltså ingen "absolut max tolv meter" maxim. (Möjligen i sladdarna till banan, men inte runt banan.)



Alternativ Ett

· Varje bil skickar en order, en bit. (Vi behöver inte se hur detta exakt sker, inte just här.) Dessa bitar samlas till en byte som blir ett analogt värde i form av en spänning. Förslagsvis med en R-2R-stege, eller liknande.

· · Varje bits spänning skiftar mellan två närliggande värden, för att minska fluktationer i drivspänningen. Alltså inte mellan nV och 0V utan exempelvis mellan typ nV och nV - 0.5 × (nV - (n-1)V), dvs exempelvis mellan spänningen och halvvägs till nästliggande spänning.
Eftersom en order till en bil betyder att den ska dra ström är det lämpligt att Hög har det högre värdet. Alltså exempelvis 11½V för låg bit och 12V för hög.

· · · Ut till banan går omväxlande en fast kraftspänning och den varierande signalspänning. Tillsammans ger de en såpass jämn drivspänning att fluktuationerna inte påverkar varken förare eller bil. (Vi stipulerar att det är så och går vidare.)

· · · · Ute runt banan skall de olika bilarna avkoda signalspänningen, dvs reda ut om just deras bit var hög eller låg. Och detta steg skall ske med så enkla medel och komponenter som möjligt.

Hur löser man Alternativ Ett?




Alternativ Två

· Varje bil skickar en order, en bit. (Vi behöver inte se hur detta exakt sker, inte just här.) Denna bit är en för varje bil specifik spänning och den skiftar mellan två närliggande värden, för att minska fluktationer i drivspänningen. Hög bit ger snäppet mer spänning än låg.

~ Att ta emot och tolka den är förhållandevis simpelt. Exempelvis med en dubbel voltkomparator, tillsammans fångar de intervallet av spänning. Om detta är bilens "orderspänning" så går "ström till motorn" hög.
Förslag på än mer enkla lösningar tas gärna emot! Något simpelt som anger slår till inom ett visst spänningsintrevall.

· · Problemet här är att skicka ut denna aningen studsiga serie av spänningar. Ett någorlunda enkelt sätt att skicka en spänning som antingen är allmän kraftspänning eller specifik signalspänning.
Något i stil med antingen [ Kraft ... Bil#1 ... Kraft ... Bil#2 ... Kraft ... ... Bil#n ... Kraft ] eller
[Bil#1 ... Bil#2 ... ... Bil#n ... Kraft ... Kraft ... Kraft ... Kraft ... Kraft ... Kraft ].
Alltså antingen alternerande mellan kraft och signal eller signaler i ett block och kraft i ett annat.

Hur löser man Alternativ Två?

~ Jag har tanken om en räcka astabila 555 med:
· Gemensam start och ökande pulslängd på så vis att puls (n-1) blockerar signalen från puls n etc.
· Pulserna ökar i längd, men deras effektiva intervall är samma mellan dem. Exempel:
Intervallet är 100µs, A's impuls är 1µs och B's är 2µs. I intervallet är då A "hög" under µs 0-1 och B dito under µs 0-2.
A har dock högre prioritet och oavsett om A är hög eller låg släpps inte B's impuls fram förrän under µs 1-2.
· Detta borde gå att ordna genom att nästkommande impulssignal läggs låg av innevarande. Dvs lägga till en transistor som sänker signalen ner mot noll.
Tycker inte jag får det fungera som jag vill... Hjälp...?

~ Den andra tanken är iofs oxå en radda 555 men här är hierarkin sådan att föregående återställer efterföljande under tiden som hög. I övrigt har alla samma samma intervall och impuls. Dvs A hindrar B från att starta, genom att aktivera dess reset, tills A är klar. B gör sedan samma för C etc.
Eftersom alla har samma intervall och impuls kommer de att köläggas genom den förskjutna starten. Man torde kunna förstärka denna effekt genom att A triggar B och håller på reset tills själv klar. Men det känns som bättre att i så fall göra alla intervall efter A något längre och låta föregående reset efterföljande och hålla trigger hög (dvs 2+6).
Även här... Tycker inte jag får det fungera som jag vill... Hjälp...?