Telecomando

Il telecomando permette di comandare a distanza il robot. Il sistema usato è a infrarossi.
la prima figura mostra il telecomando fornito dalla deA, mentre la seconda visualizza i codici esadecimali corrispondenti ai vari tasti.
Il sistema ricevente nel robot, per la parte hardware, è composto da uno dei due sensori a infrarossi già utilizzati per rilevare gli ostacoli, per quanto riguarda la decodifica dei segnali, si opererà a livello software.

        
       Telecomando DeA    -   codici hex telecomando  -    codici dec da nutchip

 

Ricezione del telecomando a infrarossi

'-------------------- Dichiarazioni Variabili --------------
IR_det_pin CON 8           ' sensore Infrarosso
active_low CON 0           ' Stato logico impuslo Telecom.
active_high CON 1          ' Stato logico impuslo Telecom.
debounce_time CON 200 ' Pausa antirimbalzo
IR_pulse VAR Word(7)     ' impulsi telecomando
counter VAR Nib              ' contatore
entered_value VAR Word ' valore immesso
IR_message VAR Byte      ' codice telecomando

'---------------------- Subroutine rilevamento codice -----------------

check_for_stop_bit:
PULSIN IR_det_pin,active_high,IR_pulse(0)
IF IR_pulse(0) > 1400 AND IR_pulse(0) <> 0 THEN continua
GOTO check_for_stop_bit

continua:
PULSIN IR_det_pin,active_low,IR_pulse(0)
PULSIN IR_det_pin,active_low,IR_pulse(1)
PULSIN IR_det_pin,active_low,IR_pulse(2)
PULSIN IR_det_pin,active_low,IR_pulse(3)
PULSIN IR_det_pin,active_low,IR_pulse(4)
PULSIN IR_det_pin,active_low,IR_pulse(5)
PULSIN IR_det_pin,active_low,IR_pulse(6)

FOR counter = 0 TO 6
LOOKDOWN IR_pulse(counter), < [400,800], IR_message.LOWBIT(counter)
NEXT

LOOKUP IR_message,[1,2,3,4,5,6,7,8,9,0,21],IR_message
entered_value = entered_value * 10 + IR_message
PAUSE debounce_time
DEBUG CLS, "hai premuto il pulsante : ", DEC1 IR_message, CR
 

'----------------------------------------------------------------------------

Come vedete, la routine è alquanto pesante, inoltre bisogna impostare un loop stretto per evitare di perdere dei tasti. Con l'utilizzo del nutchip si ottengono notevoli miglioramenti.

Ricezione del telecomando a infrarossi con SERIN e SEROUT ed il Nutchip

La ricezione funziona sempre, qualsiasi sia la tavola della verità dentro il Nutchip.

1) Oltre al Nutchip, vi serviranno una resistenza da 100 kiloohm, un risuonatore da 4MHz e un ricevitore infrarossi.

Inserite il Nutchip DEA nella breadboard, quindi collegate il piedino P2 del Basic Stamp al pin 2 del Nutchip, ed il piedino P3 al pin 3.
Inserite anche gli altri componenti nella breadboard e collegate tutti gli altri piedini come in questo schema.
 

2) Caricate il programma seguente nel Basic Stamp.
Questo programma scrive sul monitor del PC il codice infrarosso ricevuto, con cadenza di un secondo:

codice var byte(2)
loop:
     serout 2, 84, ["INFR"]
     serin 3, 84, [STR codice\2]      
     debug "L'ULTIMO CODICE RICEVUTO E' ", DEC codice(0)+ (codice(1)*256),CR
     pause 1000
     goto loop

Funziona così:
Il programma comincia creando una variabile da 2 byte per ospitare il codice del telecomando.
Poi con una SEROUT trasmette al Nutchip il comando ("INFR") per la lettura del telecomando a infrarossi.
La risposta del Nutchip è lunga 2 byte è viene memorizzata con la SERIN seguente.
A questo punto il codice è in memoria: per scriverlo sul PC con la DEBUG usiamo una formula che ritorna un numero solo a partire da due byte separati.
Infine, il programma fa una pausa di 1 secondo (cioè a mille millisecondi) e ricomincia daccapo.
La terza figura in alto mostra i codici decimali inviati dal nutchip

 

      Elenco revisioni
24-11-2005 Prima emissione