Sensore di luce per robot RoboZak

Allegato al fascicolo n°22 troviamo il sensore di luce per il Robot RoboZak, si tratta di un sensore di luce, questo è composto principalmente da una fotoresistenza che modifica il suo valore di resistenza al variare della luminosità ambientale.

Il sensore di luce per RoboZak è dotato di un connettore simile a quelli dei servomotori, questo andrà inserito nella scheda di controllo utilizzando gli apposti ingressi analogici, per il controllo si utilizza la scheda di controllo del Robot RoboZak denominata MR-C3024 dotata di un processore ATMEL ATMega 128L con un clock di 7.4MHz, con memoria interna supportata da una memoria aggiuntiva EEPROM da 64k*8 per Robo-Script e per programmi Robo-Basic.

sensore luce robozak sensore luce robozak

Caratteristiche

  • Campo operativo: più di 80 Lux
  • Tensione alimentazione: 5V
  • Dimensioni: 12.9 mm x 14.6 mm
  • Peso: 5,8g
  • Lunghezza cavo: 322 mm

Schema elettrico del sensore (non ufficiale)

scheda_robozak_componenti.jpg scheda_robozak_rame.jpg

Per un esempio di utilizzo vedere il programma SPIDERLIGHT.BAS riportato nel fascicolo 51


Programma
SPIDERLIGHT.BAS

Il programma riportato sotto può essere utilizzato per leggere il valori letti dal sensore di luce per RoboZak.
Il valore viene mostrato sul un display 16×2 comandato con una speciale scheda, per maggiori informazioni vedere la relativa sezione.

sensore luce robozak


Programma
Lettura_fotocellula.bas

[code language=”vb” light=”true”]
‘======================================
‘ Lettura_fotocellula.bas
‘ di Adriano Gandolfo
‘ www.adrirobot.it
‘======================================
‘Definizione variabili
DIM luce AS INTEGER

‘Inizializzazione LCD e
LCDINIT
PRINT "&$"
DELAY 500

lettura:
luce=AD(0) ‘Il valore letto dalla porta 0 è salvato nella variabile luce
PRINT "1Lettura sensore#$"
DELAY 100
PRINT "2Valore="
PRINT FORMAT(luce,DEC,2) ‘ Viene mostrato il valore letto
PRINT "#$"
DELAY 100
GOTO lettura
[/code]

Istruzioni in roboBasic per la lettura e scrittura porte digitali/analogiche

Istruzione IN p, v

L’istruzione IN legge il valore digitale (0 o 1) dalla porta indicata dal parametro p. Tale valore viene memorizzato nella variabile v.
Esempio:
IN 32, x – Legge il valore presente sulla porta digitale 32 (ossia la porta AD0, utilizzata in modalità digitale) e lo memorizza nella variabile x.

Istruzione x = AD(p)

L’istruzione AD viene utilizzata per “leggere” il valore presente sulle diverse porte AD della scheda di controllo MR-C3024.

Quando si collega un sensore a una delle otto porte, il valore di tensione elettrica su quest’ultima varia in base all’interazione del sensore con l’ambiente.

Sebbene ogni sensore utilizzi un diverso “stimolo” per attivarsi, per la scheda di controllo non vi è nessuna differenza, tranne il rilevamento di una diversa tensione elettrica.

Il parametro p rappresenta il numero di porta AD (da 0 a 7) che viene letta, alla quale deve essere collegato il sensore. La variabile x, invece, viene utilizzata per memorizzare il valore restituito dall’istruzione AD. Il valore letto è un BYTE e può variare, quindi, tra 0 e 255.

Se il sensore non rileva nulla (nel caso del sensore luminoso, ad esempio, c’è la totale assenza di luce) il valore restituito è pari a 255.

Se invece il sensore rileva la condizione più “estrema” possibile (considerando ancora il sensore di luce, quindi, vi è la massima condizione di luminosità) il valore restituito è pari a 0.

I valori compresi tra 0 e 255 corrispondono a situazioni di rilevamento intermedie.

Se alla porta AD non è collegato nessun sensore e si tenta comunque di leggerla, viene restituito il valore 255. Come al solito, è necessario dichiarare una variabile prima di utilizzarla, mediante l’apposita istruzione DIM.

Esempi:
Y = AD(5) – Memorizza nella variabile Y il valore letto sulla porta AD numero 5.
J = AD(3) – Memorizza nella variabile J il valore letto sulla porta AD numero 3.

Istruzione OUT p, v

L’istrione OUT scrive il valore digitale specificato dal parametro v (0 o 1), sulla porta digitale indicata dal parametro p. Sulla scheda di controllo MR-C3024 non esistono porte specificatamente digitali: piuttosto le normali porte possono essere utilizzate in modalità digitale.

Le porte AD da 0 a 7, corrispondono alle porte digitali da 32 a 39, la porta a cui si collega il LED, invece, alla porta digitale 52.

Esempio:
OUT 52, 0 – Scrive il valore 0 sulla porta a cui è collegato il LED (0 accende il LED, 1 lo spegne).

Altro metodo per la lettura del sensore è quello di utilizzare il programma RZ1 Basic , ecco come fare:

  • Lanciare il programma RZ1 Basic

  • impostare la porta COM a cui è collegato RoboZak
  • se la porta è quella giusta sarà possibile leggere le informazioni dal controller tramite Controller/Controller information
  • cancellare la memoria programma selezionando da menù Controller/Delete program o cliccando sul relativo pulsante
  • selezionare Controller/Get controller value per aprire la finestra Various Controller Data

  • selezionare tramite il menu a discesa Target Data la porta da AD 0/7 a seconda di dove si è collegato il sensore
  • impostare una lettura da AD ogni 100 ms selezionandola dal menù a discesa Interval
  • cliccare su Start per visualizzare il grafico dei valori letti da AD tramite il sensore di luce
  • la finestrella piccola indica da sinistra a destra: numero progressivo di letture, valore istantaneo letto (da 0 a 255, riportato nel grafico), intervallo di lettura.

sensore luce robozak

sensore luce robozak

sensore luce robozak

Segnalazione della pagina come argomento caldo del FORUM