El microrobot AXE120
De El raconet d'en Jordi
Contingut |
Introducció
Es tracta d'un robot molt econòmic, que utilitza un PICAXE-18. Inclou el xassís amb dos portapiles incorporats (total 4 piles alcalines AA de 1,6 V, a la placa de circuit imprès un díode redueix aquest voltatge al voltant del 5 V), dos motors amb els seus reductors i rodes i una placa de circuit imprès soldada i que inclou el PICAXE-18. Podem afegir diferents mòduls, com ara el sensor d'ultrasons, el seguidor de línies o el sistema de comandament amb infrarojos, que permeten fàcilment reproduir sistemes ben coneguts i posar-los a l'abast del nostres alumnes, utilitzant un entorn de programació al que ja estan acostumats.
És molt recomanable substituir el PICAXE-18 original per un PICAXE-18X. Necessari si volem utilitzar el receptor de comandaments infrarojos, funció que no suporta el PICAXE-18 original. Però, a més a més, guanyarem en capacitat de programa i d'altes instruccions disponibles al PICAXE-18X.
És d'agrair l'apartat de l'editor de diagrames de flux dedicat a aquest robot, que simplifica molt la seva programació:
| forward | Marxa endavant |
| back | Marxa enrere |
| left | Gira a l'esquerra |
| right | Gira a la dreta |
| halt | Atura la marxa |
| speed 128, 128 | Fixa la velocitat (esquerra, dret). Posant valors diferents podem compensar diferències mecàniques dels motors, o generar girs suaus. |
| ultra b0 | Desa a b0 la distància en cm al següent obstacle |
| infra b0 | Espera un codi de comandament d'infrarojos i el desa al registre b0. |
Les sortides 4, 5, 6 i 7 estan ocupades pel control de motors, que utilitza un PIC preprogramat i que utilitza una interfície molt específica que permet mantenir el moviment amb velocitat controlada per a cada motor mentre el PICAXE-18 queda lliure per a altres tasques. Les sortides 1, 2 i 3 queden lliures per connectar LEDs, brunzidors o altres actuadors per part de l'usuari. Si utilitzem els mòduls recomanats, les altres entrades i sortides queden ocupades de la següent forma:
| Mòdul | Out3 | In0 | In1 | In2 | In6 | In7 |
| Seguidor de línies | x | x | x | |||
| Infraroig | x | |||||
| Ultrasònic | x | x |
El sensor d'ultrasons SRF005
Aquest sensor dona al nostra robot la capacitat de detectar obstacles utilitzant una tècnica de sonar semblant a la dels ratpenats. El mòdul ve soldat i únicament hem de soldar una tira de pins amb colze per connectar-lo a la placa del nostre robot. Molt important: cal treure un dels pins per evitar una connexió no desitjada entre el mòdul i el robot, tal com podeu apreciar a la fotografia. Aquest pin el podem treure amb l'ajut d'unes alicates abans de soldar-lo.
Per a obtenir la distància a l'obstacle més proper podem utilitzar la macro
ultra b0
que generarà un fragment de codi BASIC que ens deixarà en aquest cas al registre b0 la distància en cm a l'obstacle més proper. Penseu que aquest fragment de codi BASIC utilitza el registre w6 (b13 i b12) de forma interna, per la qual cosa no heu de desar variables vostres a aquests registres.
Veiem un exemple de programa en diagrama de flux que posa en marxa el robot i que és deté, va enrere, gira i torna a avançar quan detecta un obstacle a menys de 20 cm.
A continuació mostrem la traducció a BASIC del mateix programa. Fixeu-vos en el codi generat a partir del símbol ultra, entre les etiquetes label_14 i ultra_0:
' Robot guiat per ultrasons
'BASIC converted from flowchart:
'I:\ROBOTSONAR.CAD
'Converted on 17/08/07 at 10:21:18
pause 100 'startup delay
main:
wait 3
'microrobot speed
let pins = %00000000
pause 10
let pins = %00110000
pulsout 6, $80
pause 10
let pins = %11000000
pulsout 4, $80
pause 10
let pins = %00000000
label_D: let pins = 160 'forward
label_14: 'ultrasonic sounder (range 0-255 cm)
pulsout 3, 2
pulsin 7, 1, w6
pause 10
let w6 = w6 * 10 / 58
let b0 = b12
if b13 = 0 then ultra_0
let b0 = 255
ultra_0:
if b0< 20 then label_27
goto label_14
label_27: let pins = 0 'halt
high 1
wait 1
low 1
let pins = 80 'back
wait 1
let pins = 0 'halt
high 1
wait 1
low 1
let pins = 96 'right
pause 300
let pins = 0 'halt
goto label_D
El seguidor de línies AXE121
Es tracta d'un mòdul que permet al nostre robot seguir un recorregut marcat per una línia de color negre sobre un fons blanc (sniffer). Disposem de tres sensors (pin1, pin2, pin6) que ens informen si el robot es troba en posició o centrat (pin1 = 1), desviat cap a l'esquerra (pin2 = 1) o desviat cap a la dreta (pin6 = 1). Malauradament aquest mòdul el subministren en forma de kit amb tots els components, que haurem de soldar nosaltres.
Veiem un senzill programa que segueix un recorregut, corregint les desviacions trobades. Quan no detecta la línia blanca a cap dels seus sensors el robot s'atura.
A continuació mostrem la traducció a codi BASIC del mateix programa:
' Robot guiat per línies al terra
'BASIC converted from flowchart:
'I:\ROBOTSNIFFER.CAD
'Converted on 17/08/07 at 10:25:33
pause 100 'startup delay
main:
'microrobot speed
let pins = %00000000
pause 10
let pins = %00110000
pulsout 6, $FF
pause 10
let pins = %11000000
pulsout 4, $80
pause 10
let pins = %00000000
label_D: if pin1=1 then label_2E
if pin2=1 then label_35
if pin6=1 then label_3C
let pins = 0 'halt
goto label_D
label_2E: let pins = 160 'forward
goto label_D
label_35: let pins = 96 'right
goto label_D
label_3C: let pins = 144 'left
goto label_D
El kit de comandament infraroig AXE040
Aquest kit inclou un sensor de codis SIRC TSOP4838 i un condensador de 4,7 μF que haurem de soldar a la placa del nostre robot, així com un comandament universal infraroig que haurem de configurar per televisors de la marca Sony (codis SIRC). Naturalment, podem aconseguir aquests components o equivalents pel nostre compte. Cal tenir en compte que el sensor de codis infrarojos ha de tenir centrada la seva eficàcia en portadores de 38 kHz.
La utilització d'aquest kit és un dels motius de canviar el PICAXE-18 original que porta el robot per un PICAXE-18X, ja que el primer no porta a la seva ROM implementada la instrucció infrain al seu intèrpret BASIC. També podríem fer servir el PICAXE-18A que incorpora aquesta ordre, però per la diferència de preu paga la pena utilitzar el PICAXE-18X, que ens reporta moltes més avantatges. Com a mostra us oferim un programa que permet comandar a distància el nostre robot, amb la seva traducció a BASIC.
' Robot amb comandament remot
'BASIC converted from flowchart:
'I:\ROBOTSIRC.CAD
'Converted on 17/08/07 at 10:29:08
pause 100 'startup delay
main:
'microrobot speed
let pins = %00000000
pause 10
let pins = %00110000
pulsout 6, $80
pause 10
let pins = %11000000
pulsout 4, $80
pause 10
let pins = %00000000
label_D: infrain
let b0 = infra
if b0= 2 then label_14
if b0= 8 then label_1B
if b0= 4 then label_22
if b0= 6 then label_29
if b0= 5 then label_30
goto label_D
label_14: let pins = 160 'forward
goto label_D
label_1B: let pins = 80 'back
goto label_D
label_22: let pins = 144 'left
goto label_D
label_29: let pins = 96 'right
goto label_D
label_30: let pins = 0 'halt
goto label_D
Les sortides d'usuari
A la placa del robot tenim lloc per
connectar uns LEDs amb les seves
resistències limitadores a les sortides
lliures (pin1, pin2, pin3), o bé connectar
qualsevol altre actuador (com ara un
brunzidor) mitjançant uns cables.
El kit de sensors de col·lisió
Es tracta d'un kit que inclou dos detectors de fi de cursa, uns separadors i caragols per fixar-los a la part davantera i uns cables per connectar-los. El problema és que amb els mòduls recomanats no ens queda cap entrada lliure per detectar la seva activació. Hauríem de renunciar a algun d'ells, o bé multiplexar les entrades disponibles i seleccionar les que ens interessin per a cada projecte.




