![]() |
| MDI/Interaktionsdesign Interaktionsdesign - Ubiquitous Computing program | kurser | studenter | lärare |
|
Övning
med Lego Mindstorms-robotar
Syftet med denna övning är att ni ska få en känska för hur man kan med relativt enkla medel kan skapa "saker" som uttrycker vad vi människor kan uppfatta som komplexa beteenden. Det är också en övning i att använda sig av datorer, programkod, sensorer och motorer tillsamman med andra byggstenar för att skapa ett önskat resultat. Vi kommer att bygga ett antal robotar som är inspirerade av Valentino Braitenbergs bok Vehicles. Braitenberg beskriver i sin bok ett antal tankeexperiment med vad han kallar syntetisk psykologi. Hogg, Martin och Resnick på MIT Media Lab (vars forskning bl.a. ledde fram till Lego Mindstorms) anpassade en del av hans idéer till riktiga robotar. Hogg, D., Martin, F. and Resnick, M. (1991). Braitenberg Creatures. Epistemology and Learning Memo #13. MIT Media Lab, Cambridge, Mass, USA. Ni ska realisera följande "creatures"beskrivna i den artikeln:
Praktiska detaljer Ni kommer att använda er av Lego Mindstorms RCX-enheter, motorer, ljussensorer samt andra legobitar. Allt detta finns i studion. Era laptopar saknar tyvärr en gammaldags serieport, vilket behövs till Lego Mindstorms-kitet. Därför har vi ett antal USB-till-serieports-omvandlare som ni får låna. Första gången ni använder dem måste ni installera drivrutiner, som finns på en CD. Ni behöver också ett utvecklingssystem som ni installerar på era datorer. Vi kommer att använda oss av programmeringsspråket NQC (Not Quite C) tillsammans med Bricx Command Center. Den senaste versionen (3.3) kan laddas ner härifrån (lokal kopia). NQC påminner mycket om programmeringsspråket C till syntaxen men är mycket mer begränsat. Detta beror i första hand på att NQC kompilerar programkoden till Legos bytekod, som sedan exekveras i RCX-enheten. RCX-enheten har en inbyggd microcontroller och en infraröd kommunikationsport. Det finns också platser för att ansluta upp till 3 sensorer och 3 motorer, samt en liten CD-skärm och ett par knappar. I NCQ adresserar man motorer och sensorer via variablerna OUT_A, OUT_B, OUT_C samt SENSOR_1, SENSOR_2, SENSOR_3. Här är ett exempel på ett NQC-program: task main() {
En mycket utförligare introduktion till hur man använder NQC finns här. Den är skriven av Mark Overmars som utvecklade föregångaren till BricxCC, RcxCC. SelectDisplay(DISPLAY_SENSOR_1); // Visar invärdet från sensor 1 på skärmen på RCX-enheten |
||
| ©2003 id|c |