Basic Stamp, Arduino, Raspberry e simili

E’ molto in voga la prototipazione su schede elettroniche come arduino e simili. Anni indietro era uscito un corso a fascicoli in edicola della DeAgostini, il titolo era “Costruisci e programma il tuo Robot”, amichevolmente era stato denominato “Robot panettone” per via del suo aspetto non proprio……. gradevole. Questo si basava già su una scheda come quelle in voga adesso, era la Basic Stamp Bs2, prodotta da Parallax. Parallax produce ancora queste schede, le più recenti sono più performanti ora rispetto a quelle degli anni passati. Essendo interessato alla scheda Arduino, ho provato a riprodurre (con successo) molti degli esperimenti che vengono proposti con quest’ultima, lasciamo stare l’accensione di un led che mi sembra abbastanza banale, voglio farvi vedere qualche cosa di più articolato. Dopo il primo video introduttivo dove mostro la configurazione del robot (ormai non più panettone), approfondirò un pochino l’argomento.

httpvh://youtu.be/633IcFhNnfE

Prima di vedere il robot in funzione vi elenco brevemente le caratteristiche della scheda utilizzata per poterla confrontare con schede più recenti e rendervi conto che anche con poco si può fare molto, e i componenti usati che sono ancora attuali e acquistabili a poco prezzo in qualche negozio di elettronica o su internet.

robot_Bs2

Caratteristiche e componenti:

  • Scheda elettronica Basic Stamp Bs2, la quale monta il Microchip PIC16C57C, velocità processore 20 MHz, velocità di esecuzione istruzioni ~4000 istruzioni/sec, memoria EEPROM 2k (24LC16B) ~500 istruzioni, RAM 32 byte (6 per I/Os e 26 per variabili) + 63 byte per “scratch pad RAM”, porte I/O 16, interfaccia di programmazione porta seriale. PS questa scheda può essere upgradata (potenziata) da Bs2 a Bs2 SX, trovate le istruzioni a questo link:
    http://www.adrirobot.it/bs_autocostruita/bs2_to_bs2sx/bs2_to_bs2sx.htm
  • 1 microchip 74HC164 e 1 microchip 74HC374 per moltiplicare le porte logiche
  • 2 fotoresistori (sensori di luminosità)
  • 2 trasmettitori IR (non utilizzati in questa configurazione)
  • 2 ricevitori IR (uno usato per la ricezione del telecomando)
  • 1 termistore (sensore di temperatura)
  • 1 piezospeaker (che è il cicalino o buzzer)
  • 8 led
  • 2 servomotori a rotazione completa
  • 1 portapile per l’alimentazione
  • 2 breadboard per i circuiti (una piccolina è già montata sulla scheda, ma per implementare il circuito di espansione ne serve un’altra)
  • 2 condensatori, un po’ di resistenze, cavetti, viti, dadi e supporti per motare il tutto.

Ora vediamo subito il video del robot in funzione, a seguire la descrizione del programma che ho fatto per pilotare il robottino nei suoi diversi compiti.

httpvh://youtu.be/J0voTEqhqYU

Il programma che ho fatto si suddivide in diverse routine, ognuna delle quali praticamente svolge un compito: la prima fa il gioco di led, utilizzando due tasti sul telecomando si può spostare la posizione del led acceso realizzato con il circuito di espansione, è un interessante esperimento per chi volesse capire il funzionamento di un registro 74HC164 abbinato ad un flip-flop 74HC374. La seconda routine usa una fotoresistenza in circuito RC per misurare l’intensità luminosa, il valore ricavato (adeguatamente adattato con una semplice operazione matematica) viene passato al buzzer che emetterà il suono con una frequenza che varia a seconda dell’intensità luminosa, nell’esperimento, più la luce diminuisce (facendo ombra con la mano), più il suono diventa acuto. La terza routine mette in moto i servomotori, sfruttando il telecomando per pilotare il movimento come nei comuni modellini telecomandati. La quarta routine combina l’uso delle fotoresistenze con i servomotori, questa volta si usano entrambe  i sensori per misurare la luminosità e se vi è una differenza fra le due viene impartito un comando ai servomotori che fa ruotare il robot nella direzione opportuna fino a quando le due fotoresistenze non abbiano lo stesso valore (con una leggera tolleranza). La quinta e ultima routine, combina il circuito di espansione con i led, e un sensore di temperatura, man mano che la temperatura sale i led cominciano ad accendersi in sequenza, come una scala graduata, quando si raffredda poco per volta i led si spengono.
Ci sono poi diverse sub-routine che sono tutte quelle parti di codice che sarebbero state ripetute nel programma utilizzando spazio inutile e che invece scritte una sola volta vengono poi richiamate tutte le volte che serve. A questo proposito vi mostro la memoria usata per il programma:

memoria_Bs2Come si può notare ho sfruttato quasi al massimo sia la memoria per il programma (sulla sinistra) sia quella per le variabili (sulla destra) avanza solo un byte per quest’ultima. Data la scarsa memoria non si può fare più di tanto per questo motivo mi sono procurato una nuova scheda della serie Arduino, mi spiace un po’ cannibalizzare questo vecchio progetto ma non voglio ricomprare tutti gli elementi, quindi……

Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.