Powered Up systemet
Powered Up er navnet på det styresystem, LEGO for tiden (2026) bruger til motoriserede sæt som f.eks. tog og visse technic sæt. Til systemet findes et sortiment af motorer af forskellige størrelser og nogle få sensorer (bl.a. en farve- og afstandssensor). Der findes også lys, der kan monteres i visse tog. Systemet styres enten fra en Powered Up fjernbetjening (nummer 88010) eller fra en app, der kan hentes gratis til både android og Apple.
I begge tilfælde er motor(erne) og/eller sensorerne forbundet til en hub, der i togsammenhæng typisk vil være nummer 88009. Kommunikationen fra fjernbetjening eller app sker over Bluetooth. Forbindelsen har (især via app’en) rigtig god rækkevidde, og selv i meget store layouts kan man styre sit tog uden at miste forbindelsen, når toget er længst væk.
Brug i klodstog
For klodstogs-entusiaster er den såkaldte togmotor (nummer 88011) især af interesse. Den har god trækkraft og den er overordentlig driftssikker. Kan man konstruere et tog, så det kan motoriseres med togmotoren, er lykken gjort, og det er klart min foretrukne måde at drive mine tog på. Hvis én togmotor er nok til at trække toget, kan man bare (i app’en) vælge et interface fra et af de officielle togsæt og forbinde til togets hub fra det (se billedet).

Som det ses i figuren, kan man øverst til højre vælge mellem “Leg” og “Byg”. Førstnævnte er når man bruger app’en til et officielt sæt (eller et, der er kompatibelt) og derfor ikke skal ændre noget i buger-interfacet. Vælger man i stedet “Byg” kommer man til en oversigt over de interfaces (programmer), man selv har defineret. Hos mig ser det sådan ud:

Når man har to togmotorer
Problemstilling og brugergrænseflade
Nu er hjemmelavede klodstog ofte ganske tunge. Derfor vil vi ofte forsyne lokomotiver og motoriserede vogne med to togmotorer. Der vil så være en motor i hver ende og en hub i midten. Af praktiske grunde vil togmotorernes kabler skulle pege ind mod midten for at nå hub’en. Det betyder, at de to motorer skal rotere med samme hastighed i hver sin retning. For at få det til at virke, er m,an nødt til at programmere et interface selv fra grunden af. På ovenstående billede ses det, at jeg har et interface, der hedder “DSB MX 131”, der netop løser denne opgave.
At jeg har kaldt interfacet “DSB MX 131” skyldes udelukkende, at det var min første model, der var forsynet med to togmotorer. Siden er en motoriseret rejsegodsvogn ECO 6265 og motorvognen MK 681 kommet til, hvilket betyder at det er dette interface, jeg bruger allermest.
Min brugergrænseflade til dette interface ser sådan ud:

Som det ses i billedet er denne app og dens grænseflade lidt primitiv. De tre knapper til venstre bruges til at regulere hastigheden i spring på 10 fra -100 til +100. Det svarer fuldstændigt til, hvordan den officielle fjernbetjening virker. Øverste sorte knap forøger hastigheden med 10 (op til 100), og den nederste sorte knap reducerer hastigheden med 10 (ned til -100). Den røde knap i midten standser toget øjeblikkeligt. Viseren i midten (der på billedet står på 0) viser, hvad den aktuelle hastighed er.
Viseren og de to knapper (grøn og rød) til højre kan sådan set helt udelades. Jeg bruger dem kun til at definere en maksimal hastighed. På billedet er den sat til 50, hvilket betyder, at uanset hvor mange gange man trykker på knapperne til venstre, kan farten ikke komme over 50. Den grønne knap forøger maksimum med 10 og den røde reducerer med 10. Formålet med denne indstilling er, at hvis jeg låner mit tog ud (f.eks. til et barn), kan jeg begrænse farten og sige til låneren, at han/hun kun må røre ved knapperne til venstre. Dermed undgås at toget ryger ud over bordkanten i sving.
Programmering
Som det ses på billedet, er der en hængelås øverst til højre. Det betyder, at grænsefladen er låst. Klikker man på hængelåsen, låses den op, og man ser følgende billede:

De tal, der står ved knapperne og viserne, skal man huske, når man går i gang med programmeringen. Hvis man låser grænsefladen (klikker på den åbne hængelås) kommer man tilbage til det foregående billede, hvorfra man ved at klikke på ikonet lige til højre for den lukkede hængelås, kan komme ind i den grænseflade, hvor man programmerer alle funktionerne. Der er tale om et visuelt programmerings-interface, hvor man bruger forud definerede blokke, man kan vælge fra menuer. Mit interface (program) til styring af et tog med to togmotorer, der roterer i hver sin retning, ser sådan ud:

De enkelte elementer
Mit program har fire variable (a, b, c, d), der kan skifte værdi. Således er a og b hastigheden, hvormed motor 1 og motor 2 skal rotere. Koden sikrer, at det altid gælder, at a = -b. Tilsvarende er c og d maksimumhastigheden for motor 1 og 2, henholdsvis.
Følgende programelement

sikrer, at motor 1 hele tiden kører med hastighed a og motor 2 kører med hastigheden b. Uendelighedssymbolet til højre, angiver at dette element er aktivt hele tide.
Næste element

sætter som udgangspunkt (ved start) maksimumhastighederne til 50 og -50.
Fire næsten ens sektioner følger dette mønster (for det øverste af de fire):

Når der trykkes på knap “0” (hastighedsforøgelse) tages værdien fra a som den er aktuelt og forøges med 10, medmindre det bringer os over det tilladte maksimum som defineret af c. Skulle det være tilfældet sættes a = c. Dernæst sættes b = –a. De tre øvrige (næsten identiske sektioner) formindsker hastigheden ved tryk på knap “2”, øger maksimumfarten ved tryk på knap “5” og formindsker den ved tryk på knap “6”. Det sikres i begge tilfælde at maksimum sættes i intervallet fra -100 til 100.
Sektionen

Sætter farten til 0 for begge motorer ved tryk på den røde knap “1”.
Sektionen

viser den aktuelle fart på viser “3”, og en tilsvarende viser maksimumfarten på viser “4”
Når der i det foregående tales om fart eller hastighed, skal det forstås lidt indirekte. En togmotor er programmeret til at kunne variere hastigheden fra -100 til 100, men det der rent faktisk varieres på er blot spændingen. Der kan ikke knyttes nogen konkret fart på toget til en indstilling på f.eks. 50.
Ingen mulighed for direkte deling
Desværre er LEGOs app lidt primitiv på den måde, at det ikke er muligt at gemme et interface (program) i en fil og sende den til andre. Man er derfor nødt til at programmere selv, og jeg kan ikke bare gemme en fil, som andre kan downloade og bruge.
