
La robotica è una disciplina affascinante e, allo stesso tempo, piuttosto complessa, poichè richiede una competenza in altre discipline, spesso correlate, quali ad esempio l'ingegneria del software, la matematica, la fisica, la visione artificiale, l'elettronica. Dal punto di vista dell'ingegnere del software, inoltre, programmare un robot costituisce una sfida soprattutto a causa dei vincoli di controllo real-time e delle limitazioni di memoria e di capacità di elaborazione che caratterizzano i robot e che rendono così diversa la programmazione dei dispositivi embedded rispetto a quella dei personal computer.
Questo caso di studio illustra la progettazione e la realizzazione di un piccolo robot in grado di eseguire missioni di navigazione autonoma. Il robot è realizzato utilizzando il kit LEGO Mindstorms RIS (Robotics Invention System) 2.0 che, seppur concepito con scopi didattici, rappresenta adeguatamente le sfide precedentemente descritte. Il cuore del LEGO Mindstorms RIS è costituito dalla centralina RCX, la quale ospita un microcontrollore Hitachi H8/3292 funzionante a 16 MHz equipaggiato con una ROM interna di 16 kB ed una RAM interna di 512 byte, mentre la RAM esterna disponibile nell'RCX per memorizzare i programmi è di 32 kB. Considerata la dimensione delle memorie nei moderni personal computer, sembra impossibile sviluppare del software minimamente complesso che venga memorizzato in soli 32 kB. Eppure l'RCX ospita a bordo molta più memoria di quanta era presente nel primo modulo lunare sviluppato dalla NASA. Uno degli ultimi moduli, Sojourner Mars Rover, è dotato di 160 kB di RAM, ma il programma core è contenuto in soli 16 kB! Questi numeri dovrebbero dare l'idea delle potenzialità del modulo RCX della LEGO Mindstorms!
Vai a: Object lab