El microrobot AXE120

De El raconet d'en Jordi

Dreceres ràpides: navegació, cerca

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ó:


Imatge:Flux04.jpg Imatge:Simbols02.jpg

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.

Imatge:Ultrasons.png

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.

Imatge:Linefollower.png

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.

Imatge:Axe120IR.png

' 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.



Tornar a l'índex