Synspunkter om LEGO Mindstorms

Tatt fra tråden om spørreundersøkelsen om LEGO Mindstorms her.

Det er vel ikke å banne i kjerka og komme med sine personlige synspunkter? Det er jo derfor vi har ett forum :slight_smile:
Tenkte jeg kunne komme med mine synspunkter og vi kan diskutere i det i denne tråden.

Jeg er enig med Axel på flere punkter, men ikke alt. Muligens har jeg bare blitt så vant med Mindstorms siden jeg har fulgt dem helt fra utviklingens barndom på MIT. Jeg er ikke den som bruker Mindstorms så veldig mye akkurat nå. Men har nå brukt dem til og fra en del igjennom tidene. Ikke er jeg noen superekspert på programmering heller. Vurderer å gå over til ett annet programmeringsspråk enn NXT-G da jeg ser en del begrensninger der.

Jeg er enig om at settet er dyrt. Husker ikke hva RCX’en kostet når den kom ut men tror det var rett under 2000 kr, andre kan sikkert korrigere meg her.
Iallefall så kjøpte jeg først ett sett med RCX og så en del tilleggs sett med diverse motorer og sensorer og en IR-fjernkontroll. Hadde mye moro med det settet. Etterhvert så skjønte jeg at om man hadde flere så kunne de kommunisere med hverandre og man fikk dermed mulighet til å putte på flere sensorer og flere motorer i systemet. Etterhvert kjøpte jeg flere løse RCX’er og har nå 4 stk.

Så kom NXT’ene. Og der kjøpte jeg først ett sett. Siden det i starten ikke hadde noen mulighet til å kommunisere med RCX’en så kjøpte jeg ett sett til for å få utvidet antall sensorer og motorer og brukte blåtann kommunikasjon mellom enhetene. Senere kom jo muligheten for kommunikasjon mellom NXT og RCX’en som åpnet opp for enda flere muligheter. Og det er nå også flere firmaer utenom LEGO som lager sensorer og slikt til både NXT’en og RCX’en. HiTechnic er ett av dem, samt det eneste som har lisens fra LEGO til å lage disse med LEGO-logoen på dem. Mange av disse får man kjøpt direkte fra Shop@Home nå i dag.

At programmet man bruker for å programmere disse er resurskrevende for den datamaskinen du bruker for å skrive programmet på er ett stort minus og grunnen til at jeg sterkt vurderer å gå over til noen andre programmeringsspråk.
Derimot så syns jeg at det er veldig enkelt å lage små programmer i NXT-G programmet og man må ikke være programmerings-ekspert for å få det til. Det viser jo First LEGO League programmet (FLL), hvor barn ned til 8-9 år får til å programmere med NXT-G.

Det finnes jo også en måte å programmere brikken direkte fra fronten på NXT-enheten, men har aldri satt meg inn i den funksjonen, vet bare at du ikke kan redigere ett program som er laget i NXT-G rett fra enheten. Men det ville jo krevd en god kompilator innebygget i enheten, som ville ha gjort enheten enda dyrere.

Ett stort minus med både RCX’en og NXT’en er minnestørrelsen, så derfor har jeg tidlig funnet tips på nett at man kan fjerne mye “unødvendig” data fra enheten for å gjøre plass til større programmer. Her syns jeg absolutt de burde lagt inn støtte for SD-minnekort med opp til flere GB med minne. Da kunne man ha både datalogging og masse lyder og slikt liggende i minnet direkte på enheten. Dette har vært diskutert i flere Mindstorms-forum rundt omkring. Men også dette ville gjort enheten dyrere.

At motorene er klumpete er også ett stort minus på NXT’en. Men heldigvis finnes det jo nå overgangs-kabler slik at man kan bruke de gamle 9V motorene på NXT’en. Dog uten den flotte tilbakemeldingen om posisjon som gjør at NXT-motorene er så presise.

Den ustandard RJ-pluggen syns jeg også er ett stort minus. Det gjør det jo vanskelig å lage egne kabler (men ikke umulig). Men det er jo klart at dette har LEGO valgt å gjøre slik av to årsaker: forhindre at annet type utstyr som de ikke har godkjent blir koblet til og potensielt ødelegge enheten. Samt at de vil tjene penger på å selge de spesialkablene.

Når det gjelder selve programmet syns jeg det fungerer helt greit, men krever jo en del resurser av maskinen det er installert på.
Men her finnes det jo flere alternativer hvor man kan bruke helt andre programmerings-språk. Man kan tilogmed installere en annen firmware på enheten enn den som følger med, da er resursene bedre utnyttet og tar mindre plass som gjør at man får mer plass til selve programmet. Ofte er det slik at andre programmerings-språk krever ny firmware (men ikke alle).
Oppgavene i NXT’en er jeg ikke helt enig om at er dårlige, de er jo der bare for å kunne komme igang. Det jo ens egen fantasi som skal brukes til å lage nye roboter. Og jeg mener da bestemt at jeg har sett en standard modell som var en “line follower” muligens var det med RCX og ikke NXT (sånn uten å ha undersøkt det nærmere).

En ting som jeg syns LEGO skulle ha ha laget for de aller minste, som ett springbrett FØR man begynner med Mindstorm sett. Man kunne kalt det Mindstorm Junior eller noe slikt :slight_smile:
Det kunne vært en liten kompakt enhet med innebygget to motorer (skid steer) og programmeringsknapper på toppen av enheten. Dette jeg nå beskriver er hentet fra en annen robot som er laget slik (finner ikke link til den nå): fire knapper pluss enter. Der funker det så enkelt at for å programmere den trykker man forovertasten for eksempel 3 ganger og så en gang på høyre piltast, en forover og en venstre, så enter. Da vil roboten bevege seg 3 “steg” forover, svinge 90 grader høyre, gå ett steg forover, og til slutt svinge 90 grader til venstre. Dette burde selv de minste klare å programmere. Kansje dette kunne været noe for Duplo serien for eksempel?

Tidligere hadde vi jo en “play and record” robotsak, den tok opp alt man gjorde for så å spille av dette. Men den fikk jo begrenset mulighet og var vel beregnet på unger rundt 10år, men dagens unger krever mer avanserte ting enn slikt.

Som dere sikkert skjønner er jeg ikke like negativt innstilt til LEGO Mindstorm som Axel virker å være. Men jeg bruker det likevel ikke enormt mye, men det er mest fordi jeg har andre ting jeg syns er mer morsomt å bygge. Men nå i det siste har jeg holdt på med ett prosjekt som igjen involverer NXT og RCX’ene mine: styring av Power Function tog (PF) og automatisering av flere tog på skinnene med sensorer og motorer rundtomkring på banen for å sense hvor togene er og for å skifte penser og åpne bommer og styre trafikklys og lignende.

Her litt informasjon og noen betraktninger:

LEGO har laget et system for de minste: LEGO WeDo. Systemet bygger på de samme grunnprinsippene som Mindstorms bygger på, LOGO, men er mer likt det opprinnelige LOGO. Ulempen med WeDo er at systemet ikke har en egen mikrokontroller (som RCX eller NXT), men en hub som må være koblet på en PC. Fordelen med å programmere WeDo er at alt er “online”. En kan kjøre programmet samtidig med at en skriver eller redigerer det. WeDo bruker forøvrig de nye PF motorene. Dette er ikke noe for “teknofrikene” men en flott inngang for de minste. Det er et par spennende sensore som følger med WeDo: IR avstandsensor og tiltsensor (2 akser). Både motorer og sensorer bruker samme grensesnitt (PF).

Når det gjelder programmeringsspråk, så er dette et alternativ det er verd å se på: http://www.legoengineering.com/lvee.html Forøvrig krever det like mye av PCen som NXT-G, men har svært få begrensninger.
Angående NXT-motorene, er jeg enige i noen av synspunktene over, men vil heller ha en slik servomotor istedenfor RCXens motor + rotasjonsensor. Den snodige formen går det an å gjøre noe med. Den største ulempen med NXT systemet er etter min mening mangelen på knotter!

Birger

Hadde ikke hørt om LEGO WeDo før nå, men har nå sjekket det ut. Mener å ha sett det der en gang tidligere uten å skjønne hva det var. Flott med en oppklaring :slight_smile:

Men WeDo er jo beregnet for 7 år og oppover, og da tror jeg man også samtidig undervurderer hva en 7åring kan klare. Det er jo selvsagt kjekt med flere alternativer å starte med. Ser ut til at WeDo bruker PF-motorer også. Så da kan man jo bruke motorene til annet iallefall. (Lurer på om de sensorene kan brukes til noe fornuftig utenom WeDo).

Den løsningen jeg tenkte på var for de som var enda mindre, altså typisk alderen for Duplo og oppover (er ikke det 3 år eller noe?).

Men tilbake til Mindstorm og programmerings software/språk til disse:

Disse har jeg testet ut, ikke veldig grundig, men har lastet ned og testet ett enkelt program mot en RCX eller NXT for å se om det er noe jeg enkelt kan gå over til en av disse:
NQC - Not Quite C. Dette er vel det jeg fant enklest å bruke når jeg dreiv å testet disse en del år tilbake.
leJOS - Java basert. Syns det var for komplisert. Men det var jo en av de tidligere utgavene, er sikkert blitt bedre nå for tida.
BrickOS - Bare testet helt flyktig. NQC synes jeg virket enklere for min del.
LabView - Veldig bra program og enkelt å bruke om man har sett noe til det programmet som følger med LEGO Mindstorms da det er basert på LabView.

Noen som har noen erfaringer å dele når det gjelder forskjellige programmerings software/språk? Er det noen som er bedre eller mer utbredt en andre? Kan jo være greit at det er mange som bruker det da man kan få program fra andre som kan modifiseres eventuelt få hjelp fra andre til programmeringen om man står fast.

Jeg prøvde LejOS på NXT for 2-3 år siden og syntes det var veldig enkelt å komme igang og begynne å gjøre noe (men så hadde jeg erfaring fra Java & Eclipse fra før). BrickOS har jeg brukt mye på RCX (dvs. det er kun den jeg har brukt).

Sorry jeg ikke har svart før, jeg har vært uten nett noen dager.

Fønix skrev:

Det finnes jo også en måte å programmere brikken direkte fra fronten på NXT-enheten, men har aldri satt meg inn
i den funksjonen, vet bare at du ikke kan redigere ett program som er laget i NXT-G rett fra enheten.

Den innebygde programmeringsfunksjonen er svært begrenset da den bare har plass til fem kommandoer, to for hva den skal gjøre, to for hvor lenge den skal gjøre det, og en avslutning (stop/repeat). Det virker som den bare støtter en liten del av NXT-G, f.eks. støtter den ikke variabler. En typisk “wallbanger”-robot vil ha et program omtrent som dette:

1 A+C forwards
2 Until press
3 A backwards
4 For 2 seconds
5 Repeat

Men det ville jo krevd en god kompilator innebygget i enheten, som ville ha gjort enheten enda dyrere.

Jeg har ikke så greie på softwarens interne virkemåte, jeg ville trodd disse programmene var så enkle at man kunne kjøre det som et “interpreter”-system (og dermed sluppet særskilt kompilering), men det hadde kanskje vært for krevende for prosessoren?

Oppgavene i NXT’en er jeg ikke helt enig om at er dårlige, de er jo der bare for å kunne komme igang. Det jo
ens egen fantasi som skal brukes til å lage nye roboter. Og jeg mener da bestemt at jeg har sett en standard
modell som var en “line follower” muligens var det med RCX og ikke NXT (sånn uten å ha undersøkt det nærmere).

Problemet er at selv om det går an å finne ut av enkeltfunksjoner vha “help”-filene, er det ingen guide til “good programming style” for avanserte programmer. Det var det jeg fryktet var problemet med “hente ballen”-roboten jeg nevnte, at jeg muligens hadde valgt feil løsning eller gått over bekken etter vann. Jeg mener også å ha sett “line followers” i selve byggeanvisningen, men de har aldri kommet inn på hvordan man skal programmere dem. Igjen, de forsøkene jeg gjorde funka dårlig (les: ikke i det hele tatt), og det hadde vært til stor hjelp å ha et par elementære programeksepler å begynne med. Man har jo likevel muligheten til å utvikle det videre, f.eks. få roboten til å følge en “linje” som bare er enkeltprikker eller få den til å følge forskjellige ruter i et jernbaneliknende nettverk av linjer.

En ting som jeg syns LEGO skulle ha ha laget for de aller minste, som ett springbrett FØR man begynner med
Mindstorm sett. Man kunne kalt det Mindstorm Junior eller noe slikt. Det kunne vært en liten kompakt enhet med
innebygget to motorer (skid steer) og programmeringsknapper på toppen av enheten.

Lego har hatt noen sånne systemer, kalt “Cybermaster” (8482), “Microscout” (9748 og 9754), “Robotics Discovery Set” (9735) og “Spybotics” (3806-9). Jeg trodde cybermaster var omtrent som du beskriver, men ser ut til å kreve PC (settet inkluderer RF-tårn og software). “Spybotics” likner litt (ytterst sparsom info om denne), det ser ut til at de er beregnet på å fjernstyres som et slags “laser tank”-spill, og noe om et PC-spill og “unlockable features”. Microscout er mer stand-alone, men har bare en innebygget motor (noe som nødvendiggjør kreative styreløsninger) og en lyssensor, den har ingen andre tilkoplinger og 7-8 innebygde programmer (type følg lyset, styre med blinking og alarm ved endring). RDS ser ut som en blå RCX, men har bare fire tilkoplinger og innebygget lyssensor. Jeg prøvde i sin tid å få tak i den (siden jeg ville ha et “stand-alone” system), men den var aldri tilgjengelig i Norge. På den annen side tror jeg ikke den kunne gjøre så mye mer enn den innebygde programmeringa på NXT.

Som dere sikkert skjønner er jeg ikke like negativt innstilt til LEGO Mindstorm som Axel virker å være.

Jeg har ikke ment å være negativ til Mindstorms, jeg ser jo folk bygger de utroligste ting (et sted så jeg en robot som løste rubiks kube, bygd kun med delene fra NXT1-settet), og er vel litt frustrert over at jeg ikke har oppnådd mer resultater (spesielt siden RCX2 og NXT1 er de dyreste settene jeg har). Selv om systemet har utviklet seg har det fremdeles svakheter, jeg selv opplever PC-integreringen som det største problemet, dels fordi softwaren funker så dårlig, dels fordi jeg ikke har noen brukbar maskin der jeg har legoen og dermed må løpe mye frem og tilbake for endring og testing. Jeg ville foretrukket å hatt mulighet til å bruke det uavhengig av PC.

Tekno skrev:

LEGO har laget et system for de minste: LEGO WeDo. Ulempen med WeDo er at systemet ikke har en egen
mikrokontroller (som RCX eller NXT), men en hub som må være koblet på en PC. Fordelen med å programmere
WeDo er at alt er “online”.

Jeg hørte såvidt om dette et sted (sannsynligvis bortgjemt på en obskur Dacta-side), det synes å være en mer rett-fram løsning som kunne ha noen fordeler. Siden man likevel må ha PC i nærheten når bruker de andre systemene også, blir ofte NXT/RCX en “mellomstasjon” som bare kompliserer ting. På den annen side er det ønskelig med separat mikrokontroller hvis man skal bygge en robot som kjører rundt, og det blir uss med ledning til PCen.

Min erfaring er at Alexs synspunkter dessverre gjelder ganske mange. Det virker som om spesielt barn og ungdom fort går lei og Mindstorms-settet blir lagt bort.

Som de fleste LEGO-sett, er Mindstorms beregnet på barn, noe som legger begrensinger på pris og igjen HW. Jeg er ikke enig i at Mindstorms er dyrt. Hva sammenligner dere med? Selv skulle jeg gjerne sett at NXTen hadde flere innganger og utganger osv. mot en høyere pris.

Enig i at programvaren som følger med er dårlig. Bruker ikke den selv, men det er fordi jeg er programmerer og finner det lettere å bruke andre ting. Nettopp den gode tilgangen på alternativer gjør Mindstorms så bra.

Når det gjelder oppgaver og evt hvordan løse disse på en god måte, så finnes det masse info, tips og triks på nettet. Det finnes også en haug med bøker både om Mindstorms og mer genrell robotikk og programmering. Så jeg mener det kun er ens egen interesse og initsiativ som setter grensene.

Her er vi kanskje ved kjernen til “problemet” med Mindstorms. I dagens underholdnings- og konsumkultur hvor alt skal gå fort og gi umiddelbar opplevelse og nytelse, passer ikke Mindstorms inn. Skal man få noe ut av Mindstorms, så krever det fordypning, innsikt, tålmodighet og mye tid.

Mindstorms er litt for forvirrende for meg, i hvertfall