Implementació d'un Controlador PID En Lego Mindstorm NXT.
David González Ros Abel Sánchez Martínez 2on Batxillerat Tecnològic Curs 2010 - 2011
Índex: 1 Introducció.
Pàg. 02
2 Introducció a la robòtica.
Pàg. 04
3 Lego Mindstorm.
Pàg. 07
3.1 Història dels Lego Mindstorm.
Pàg. 07
3.2 Elements del Lego Mindstorm.
Pàg. 08
3.2.1 Bloc NXT.
Pàg. 08
3.2.2 Servo motors.
Pàg. 10
3.2.3 Sensors.
Pàg. 10
3.3 Entorn de programació.
Pàg. 14
3.3.1 Entorn gràfic de Lego .
Pàg. 14
3.3.2 Tipus de programació.
Pàg. 17
3.4 Disseny en 3D.
Pàg. 18
3.5 Desenvolupament de projectes amb NXT.
Pàg. 20
4 Disseny d'un robot seguidor d'objectes.
Pàg. 23
4.1 Funcionament.
Pàg. 23
4.2 Disseny de la Placa de Sensors.
Pàg. 24
4.2.1 Sistema de comunicació (BusI2C). 5 Sistemes de control.
Pàg. 25 Pàg. 28
5.1 Introducció (explicació PID).
Pàg. 29
5.2 Acció Inicial.
Pàg. 32
5.3 Tot o res.
Pàg. 32
5.4 Acció Proporcional.
Pàg. 33
5.5 Acció Derivativa.
Pàg. 33
5.6 Acció Integral.
Pàg. 33
6 Estudi dels diferents sistemes de control.
Pàg. 35
7 Desenvolupament d'altres aplicacions.
Pàg. 41
8 Conclusions.
Pàg. 43
9 Fonts d'informació.
Pàg. 47
David González i Abel Sánchez
1
1 Introducció. Aquest treball de recerca esta basat en la robòtica educativa que
presenta
centrem
en
la
la
companyia
creació
comercial
d’un
robot
Lego
mindstorm.
Ens
seguidor
d’objectes
amb
sensors analògics Sharp GP2D120, els quals es comuniquen amb el
bloc
NXT
amb
un
BUS
I2C,
té
tres
i
la
implementació
d'un
controlador PID.
Aquest
controlador
proporcional
ha
funcions
d'amplificar
l'error
diferents. per
a
La
funció
millorar
la
resposta. La funció derivativa ha d'intentar anticipar-se al error,
també
L'última
busca
funció,
un
millor
l'integral,
rendiment busca
en
la
resposta.
minimitzar
l'error
permanent.
El treball d'investigació que presentem pretén analitzar el comportament d’un robot de Lego mindstorm amb un controlador proporcional integral derivatiu a través de dos sensors SHARP GP2D120.
En
concret,
aconseguir
la
diferents
constants
comportament
màxima
del
Lego
volem
centrar
precisió del Nxt
nostre
controlador
estudi
en
variant
les
estudiar
el
quan adaptem una placa amb
dos
PID,
del
el
també
volem
sensors analògics d’ultrasò externs al Lego.
David González i Abel Sánchez
2
L'objectiu prioritari del nostre treball era aconseguir un robot
que
mitjançant construït
mantingués dos amb
una
sensors peces
de
distància
X
d’ultrasò. Lego
respecte Aquest
Mindstorm,
un
objecte
robot,
adaptades
l’hem a
la
construcció de robots, i amb una placa de circuit imprès que controla els dos sensors analògics mitjançant un Bus-I2C.
El
nostre
mantingués
objectiu la
secundari
distància
X
i
era que
aconseguir a
la
que
vegada
el
robot
girés
amb
l’objecte. Això ho hem intentat amb un doble PID, però per causa
de
les
limitacions morfològiques del Lego i el
seu
entorn de programació no ha sigut possible.
David González i Abel Sánchez
3
2 Introducció a la robòtica. L’any 1921 va ser introduïda la paraula txeca robota, que significa servitud o treball monòton, en l'obra de ciència ficció Robots Universals de Rossum1, per referir-se al que avui en dia en diríem robot. El Gran Diccionari de la llengua catalana2 defineix robot com: Màquina
automàtica
capaç
de
manipular
objectes,
executar
operacions i moviments diversos segons un programa que pot ésser modificable o adaptable, i que pot anar equipat amb sensors
per
tal
de
detectar
els
senyals
d'entrada
i
les
condicions ambientals.
Aquesta definició només ens diu què és un robot, però no explica
res
sobre
el
més
important,
la
transcendència
d'aquestes màquines per al desenvolupament de la humanitat ja que en l'actualitat els robots ens relleven de tasques que poden ser repetitives o perilloses per a l'ésser humà. També milloren la qualitat de feines en les que és necessària una gran
precisió
irrealitzables
i per
fins
i
tot
ens
permeten
impossibilitats
ja
siguin
fer
treballs
físiques
o
d'estudis
i
d'altres tipus. La
robòtica
tècniques
és
que
el
conjunt
s'utilitzen
per
a
la
construcció i l'ús de robots. Aquesta
branca
de
la
tecnologia
ha
estat
unida l'anhel humà de crear artefactes que facin feines per a nosaltres sense la nostra intervenció directa. Fig. 01 Portada del llibre R.U.R
David González i Abel Sánchez
4
Però la història de la robòtica no comença pas al segle XXI, Da Vinci en el segle XVIII va fer el disseny d'una espècie d'humanoide, entenem que amb l'objectiu de crear un robot. A finals
del
segle
XIX
Nikola
Tesla
construïa
vehicles
controlats per ràdio. Aquest gran avenç va ser utilitzat més tard per a la indústria nuclear, degut a la impossibilitat de contacte entre els elements nuclears i les persones. Després, cap a meitat del segle passat Georege C. Devol i Joseph F. Engelberger van construir un robot anomenat Unimate. Aquest invent va ser desenvolupat per a la manipulació de peces en llocs com General Motors. Cosa que ara encara s'utilitza en totes les fàbriques de producció en sèrie de cotxes.
Durant
la
dècada
dels 70, la investigació en robòtica
se
centra en l'ús de sensors externs per a la seva utilització en tasques de manipulació. És també en aquests anys quan es consolida
definitivament
la
presència
de
robots
en
les
cadenes de muntatge i plantes industrials en l'àmbit mundial. D'aquesta manera se segueixen investigant encara nous sensors i
la
millora
de
la
major
part
d'ells.
Això
és
important
perquè els robots ens eximeixen de fer tasques perilloses i desagradables, per tant és possible imaginar un món on feines com la construcció o medicina molt avançada puguin ser fetes per robots. Aquest tema va plantejar idees com per exemple si algun dia els robots podrien sortir del nostre control i pensar per ells sols. Aquest tema es va començar a tractar a mitjans del segle XX, quan Isaac Asimov va escriure el llibre Jo, robot on ell va proposar les 3 lleis de la robòtica.
David González i Abel Sánchez
5
1.Un robot no pot fer mal a un ésser humà o, per inacció, permetre que un ésser humà prengui mal. 2.Un robot ha d'obeir les ordres dels éssers humans, excepte si entren en conflicte amb la primera llei. 3.Un
robot
ha
de
protegir
la
seva
pròpia existència en la mesura que aquesta
protecció
no
entri
en
conflicte amb la primera o la segona llei. Fig. 02 Porada del llibre: “Yo, robot”
David González i Abel Sánchez
6
3 Lego Mindstorm. En aquest apartat ens centrem en explicar la història, els elements, l'entorn de programació i com fer un disseny en 3D, de
manera
virtual,
de
la
plataforma
principal
que
hem
utilitzat per al nostre treball. 3.1 Història dels Lego Mindstorm. Lego Mindstorm NXT és resultat de la col·laboració entre la marca
de
joguines
Lego
i
l’institut
Tecnològic
de
Massachusetts(MIT), originada al 1986, en virtut de la qual LEGO finança les investigacions del grup del MIT, però, a canvi, obté noves idees per als seus productes. Les
investigacions
i
el
treball
del
grup
del
MIT
van
desembocar en la programació de bloc, utilitzat en l’estudi complex i l’aprenentatge. sortir
al
mercat
amb
el
La primera sèrie que van crear va nom
de
Lego
Mindstorm
RCX,
al
setembre de 1998. Els resultats d’aquest productes van ser molt bons, superant totes les expectatives.
El RCX , la primera generació de Lego, comptava amb una potència
de 16KB de
memòria
RAM,
ROM
i
32
KB
de
també
comptava amb tres entrades per sensors y
tres
d’un
sortides port
amb
motors,
d’infrarojos.
a
sobre
La
seva
aparença era molt similar als blocs de Lego tradicionals, a les joguines.
Fig. 03 Lego RCX amb els sensors
David González i Abel Sánchez
7
L’any 2006, després d’un període de negativitat en la línia LEGO Mindstorms, Lego va llençar al mercat el nou model, el bloc NXT, que millorava la capacitat de l’anterior. Aquest microcontrolador
inclou,
entre
altres
coses,
una
memòria
flaix de 256kb, que el diferencia del bloc antecessor ja que posseeix
una
d'execució
de
major
capacitat
programes,
evitant
processos incoherents de dades que produïen errors. A part, el bloc NXT té quatre entrades i tres sortides. Fig. 04 Lego NXT amb els servomotors i els sensors
3.2 Elements del Lego Mindstorm. A continuació expliquem els tres elements principals de Lego Mindstorm, el Bloc NXT que és el processador; els servomotors que són les sortides; i els sensors que són les entrades. 3.2.1 Bloc NXT. El Bloc NXT és l'element imprescindible per al robot Lego. Deixant
de
banda
les
qüestions
anatòmiques,
el
Bloc
NXT
desenvolupa les mateixes funcions que el nostre cervell, és a dir, rep informació per les entrades, en el cas del Bloc 4; les interpreta i dóna ordres a les sortides, 3. El
controlador
convertidors
NXT
ADC
és
un
controlador
(d'analògic
a
que
digital),
disposa
per
a
de
poder
reutilitzar els sensors del sistema RCX. És molt versàtil i educatiu, ja que qualsevol persona el pot utilitzar i també pot
donar
un
bon
rendiment
a
un
nivell
de
programació
professional, utilitzant els diferents tipus de programació possibles. David González i Abel Sánchez
8
Aquest bloc és de plàstic sòlid, amb diversos punts on es poden connectar peces de Lego. A més, té quatre botons: un de color
taronja
inferior
a
pantalla;
que
utilitzem
aquest els
com
s'utilitza
dos
botons
un
per
On
o
Enter;
retrocedir
grisos
de
o
forma
el
botó
netejar
la
triangular
s'utilitzen per desplaçar-se pel menú de Lego. També disposa d'un micròfon, un altaveu i un receptor de Bluetooth.
Fig. 05 Bloc NXT
A part, té tres sortides, un connector USB i quatre entrades on podem connectar els diversos actuadors o sensors de Lego, o
com
veurem
algunes
aplicacions
creades
per
nosaltres
mateixos. La seva alimentació utilitza sis piles AA d'1,5 V o bé la bateria de liti de sèrie. Totes dues fonts d'alimentació es poden extreure per la part posterior del Bloc NXT. El robot disposa de dos microcontroladors: l’ARM7 de 32 bits amb
una
memòria
FLASH
de
256
Kilobytes
i
una
RAM
de
64
Kilobytes i l’ATmega48 de 8 bits amb una memòria FLASH de 4 Kilobytes i una de RAM de 512 Bytes.
David González i Abel Sánchez
9
3.2.2 Servo motors. Els actuadors del LEGO Mindstorm es redueixen bàsicament a petits
motors
de
corrent
contínua.
Aquest
robot
té
una
potència petita i un rang d'actuació reduït. Mitjançant l'ús de motors podem utilitzar qualsevol altre tipus d'actuadors que
necessitem.
reduïda,
al
Els
seu
motors,
encara
que
interior
tenen
un
tinguin
una
complex
mida
sistema
d'engranatges i un sensor tacomètric. Podem trobar diversos punts d'unió per connectar-los amb la nostra construcció de Lego. El motor pot arribar, sense càrrega, a una velocitat de 160rpm, alimentat per 9V.
Fig. 06 Servomotor de Lego NXT
3.2.3 Sensors. Un sensor és un element que actua com a dispositiu sensible a determinats sensor
estímuls
capta,
de
l’entorn.
s’anomenen
Aquests
variables
senyals,
de
que
treball.
el El
funcionament del sensor consisteix en captar aquests estímuls per
produir
un
senyal
elèctric
i transmetre’l a un altre
dispositiu del circuit elèctric de manera pugi actuar.
David González i Abel Sánchez
10
Al
pac
de
Lego
adquirit per nosaltres, podem distingir
4
sensors. •El sensor de pressió o de contacte: Aquest sensor també es coneix amb el nom de “final de cursa”. Es
tracta
d’un
dispositiu
que
permet
donar
diferents
informacions al robot, com ara saber on hi ha un objecte, gràcies al polsament directe d’una part del sensor. Forma part
del
electrònics
grup de
de
posició,
sensors ja
que
gràcies al polsador un robot es pot orientar en l’espai. Utilitza un
senyal
digital
binari
quan
s'activa i es desactiva. Fig. 07 Sensor de pressió de Lego NXT
•Sensor de llum infraroig: Un sensor de llum és un dispositiu fotoelèctric de posició que permet captar el grau d’intensitat lumínica de l’ambient, ja sigui per rebot d’una llum generada per un LED del propi sensor o per barrera, degut a una interferència de l’objecte en el senyal lluminós normal. El sensor de llum de Lego pot detectar
la
intensitat de llum per qualsevol de les dues
maneres, ja que disposa d’un emissor de llum infraroig. El seu funcionament es basa en els fototransistors situats al seu interior que transmeten un senyal elèctric al circuit a partir llum
de
que
la
intensitat
reben.
Això
de
permet
donar visió al robot. Fig. 08 Sensor de llum de Lego NXT
David González i Abel Sánchez
11
•Sensor de so: Un
sensor
de
so
és
un
dispositiu
de
posició
diferents intensitats de so d’un espai proper.
que
capta
La unitat amb
què es mesura la intensitat del so és el decibel (dB), una unitat
relativa
i
logarítmica
utilitzada
en
acústica.
No
obstant, el robot, per fer més fàcil la comprensió de les diferents mesura
mesures,
percentual,
utilitza que
una
augmenta
com més intens i potent és un so. El sensor de so Mindstorms NXT pot mesurar pressions de sons màximes de l’ordre de 90 dB. 0 dB. Fig. 09 Sensor de so de Lego NXT
•Sensor d'ultrasò: Un sensor d’ultrasò és un dispositiu que permet orientar el robot en un espai. La seva funció principal és la de mesurar la distància a que es troba amb un objecte o un obstacle frontal. A més, pot detectar moviment i dóna sensibilitat al conjunt del robot. El mecanisme de funcionament en que es basa és semblant al sonar d’un submarí, ja que funciona a partir de l’emissió d’ultrasons que topen amb un objecte i reboten. Llavors, les ones són captades de nou pel receptor del
sensor.
objecte,
el
Per
calcular
controlador
la
distància
mesura
respecte
l’interval
de
a
temps
aquest entre
l’emissió i la recepció de l’eco dels impulsos emesos, sent coneixedor de la longitud de l’ona de so enviada. El sensor de Lego mesura distàncies de 5 fins
a
250
centímetres
amb
un
marge d'error que ronda els 3-5 centímetres;
quan
augmenta
la
velocitat, augmenta l'error. Fig. 10 Sensor d'ultrasò de Lego NXT
David González i Abel Sánchez
12
Per
al
nostre
sensor perquè
treball
d'ultrasò volíem
utilitzem
SHARP
millorar
la
un
GP2D120 precisió
utilitzant dos sensors analògics, els quals són més econòmics que un sensor d'ultrasò de Lego. Fig. 11 Sensor d'ultrasò SHARP GP2D120
•Sensor de temperatura: El
sensor
de
temperatura
aproximat
de
temperatura,
termistor
en
un
generant permet
un la
temperatura bloc
que
sensor mesura
dels
camp
volem
el
rang
mitjançant
magnètic
la
contingut
del
mesurar.
Es
passiu de
la
el
valor
interacció
d’un
un que
temperatura
entre -20ºC a +50ºC.
•
calcular
que
de
analògic
permet
extrems,
detecció del
ens
Fig. 12 Sensor de temperatura
Sensor electro-òptic: •El sensor EOPD detecta amb molta precisió objectes i petits canvis de distancia. Utilitza una font de llum interna per detectar la
presencia
Generant
la
seva
d’un
objecte.
pròpia
font
de
llum , fent així possible que el robot
es
mogui
per
llocs
molt
lluminoses o obscures. Fig. 13 Sensor electro-òptic
David González i Abel Sánchez
13
3.3 Entorn de programació. Lego Mindstorm NXT inclou un software de desenvolupament en blocs,
per
senzill
tant
gràfic,
d'utilitzar,
el
basat qual
en
Labview,
funciona
en
relativament
Windows
i
Mac.
Encara que si es vol programar amb més precisió o amb accés a un
nivell
més
baix
de
la
programació,
és
necessària
l'existència d'un llenguatge de programació per entrada de text, més funcional i orientat a un ús més seriós que el proposat per Lego (que, no obstant, és bastant complet i útil per a començar a programar), ja que és com un joc. Alguns dels altres llenguatges de programació són: •
El RobotC és un entorn que possibilita el llenguatge C. No
és
un
programa gratuït.
Disponible a
la seva
web
(http://www.robotc.net/) •
El Labview és una eina gràfica per a fer proves, control i
disseny
mitjançant
la
programació.
Utilitza
un
llenguatge anomenat G, d'aquí que el nostre entorn de programació sigui anomenat NXT-G, on la G simbolitza el llenguatge gràfic.
3.3.1 Entorn gràfic de Lego. Al
estar
dissenyat
per un públic molt ampli, presenta
un
funcionament molt simple. Inclou un tutorial que ens ensenya les
bases
per
a
programar
i
ofereix
il·lustracions
molt
visuals en l'apartat “Ajuda”. L'NXT-G disposa d'un full de treball amb una icona immòbil que marca l'inici del programa. És
important
saber
que
podem
crear
seqüències
paral·leles
clicant a Shift just on volem crear una altre biga. Per a la nostra programació utilitzem l'anomenada Complette Palette. On trobem els següents blocs:
David González i Abel Sánchez
14
Fig. 14 Entorn de programació de Lego NXT
•Common: El move Block és el bloc més utilitzat,
s'utilitza
per
activar
qualsevol dels 3 motor del NXT, per conjunt o separats. A més podem controlar la potència, la duració el tipus de gir parabòlic o l'estat dels motors en la següent acció.
Fig. 15 Move Block
El Display Block ens permet mostrar un text, una imatge o una forma qualsevol a la pantalla del controlador (100 x 64 pixels).
Fig. 16 Display Block
David González i Abel Sánchez
15
•Flow: En els quatre blocs de Flow hi ha un
flux
continu
d'accions
que
desenvolupen en diferents funcions que tenen
un
paper
sigui
dividint
molt la
important.
seqüència
o
Ja repetint-la
de
forma
indefinida. En quest grup trobem blocs que
•Data:
treballen exclusivament amb dades, ja sigui
creant-les,
modificant-es
o
emmagatzemant-les. a)Compare Block: aquest bloc determina tres condicions d'entrada:
sobre si
és
un més
valor
gran,
més
numèric petit
o
igual.
b)Math Block: Aquest bloc fa les operacions matemàtiques més bàsiques, sumar, restar, multiplicar
o
dividir;
amb
els
valors
d'entrada o valors fixes.
c)Range Block: Amb aquest bloc situem una dada dins
o
fora
d'un
interval,
per
tal
de
transmetre un senyal lògic.
David González i Abel Sánchez
16
d)Variable valors
Block:
Aquest
numèrics
fixes
bloc o
emmagatzema
resultants
d'una
operació anterior.
•Advanced:
És
el
grup
on
trobem
accions
més
complexes ja que, a més, podem importar-ne. a)Number to text: Transforma dades en forma de nombres en text, per a poder treure-les per un display.
b)Bloc PCF8591-NX: Aquest bloc és un bloc importat per nosaltres, que fem servir per agafar dades des del BusI2C. En aquest bloc seleccionem diferents opcions com l'adreça del BUS o el port on es troba, a més de si és un senyal entrada o sortida. D'aquesta
manera
podem
agafar
dades
d'un
sensor analògic.
3.3.2 Tipus de programació. Encara que l'entorn gràfic de Lego pot ser de gran ajuda per programar, no pot esprémer totes les possibilitats que ens ofereixen
el
controlador
i
els
sensors.
Per
això
podem
programar en altres tipus de llenguatges. Els més utilitzats són: C, MATLAB, RobotRealm, LABVIEW, NXC, NBC i NBC. Cal dir que l'entorn gràfic de Lego és un derivat de LABVIEW.
David González i Abel Sánchez
17
3.4 Disseny en 3D. Per a dissenyar el nostre robot hem utilitzat un programa anomenat Lego Digital Designer. Aquest és un programa de CAD tridimensional
per
fer
dissenys
i
reproduir
construccions
reals de Lego. Té una gran paleta de peces, on podem trobar des de les més clàssiques dels LEGO City fins a les més complexes de LEGO Mindstorms NXT. Per tant el LDD ens permet construir
la
nostra
construcció
en
un
entorn
3D
amb
una
aparença real. Aquest, de tota la saga de programes de LEGO, és el mes complet i actualitzat. Entre les seves opcions més útils, n'hi ha una que ens permet calcular el preu de la nostra construcció en funció de les peces que utilitzem. Però sobretot, l'aplicació més pràctica per a la construcció del nostre robot, ha estat la manera que té
de
generar,
a
partir
del
disseny
final,
una
guia
de
construcció pas a pas, que pots imprimir i seguir a l’hora de crear el teu disseny a la realitat. El funcionament del programa es molt intuïtiu i senzill. De vegades podem trobar algun problema quan volem connectar dues peces en una posició difícil, però malgrat la complexitat, sempre és possible. Aquest software funciona amb Windows i Mac, i es pot descarregar gratuïtament en la web de Lego.
David González i Abel Sánchez
18
Fig. 17 El nostre robot amb LDD
Fig. 18 Un disseny amb LDD
Fig. 18 El nostre robot amb LDD.
Fig. 19 El nostre robot amb LDD
Fig. 20 Entorn del LDD
Tots els passos de la construcció estan en el CD adjunt al treball.
El
LDD
és
un
programa
gratuït
que
podem
descarregar de la seva pàgina web (http://ldd.lego.com/)
David González i Abel Sánchez
19
3.5 Desenvolupament de projectes amb NXT. Entenem que la NXT va ser creada amb una finalitat educativa, encara i així, com hem vist, pot arribat a nivells molt alts de
programació.
Alguns
dels
projectes
més
complicats
que
s'han fet amb la NXT són: •Resolució del cub de Rubik mitjançant Lego NXT: El funcionament d'aquest muntatge el podem descompondre en tres fases: la primera, reconeixement del
cub
per
a
extreure
el
mapa
de
posició inicial, aquesta fase es pot realitzar mitjançant una càmera o un sensor del llum o un sensor de color, que
realitzi
un
sondeig
dels
9
quadrats de les 6 cares del cub. Fig. 21 Rubik NXT
En
la
segona
resolució
que,
fase amb
el
controlador
les
dades
aplica
anteriors,
un
algoritme ens
crea
de una
seqüència de moviments per resoldre el cub. La tercera fase és una execució física dels moviments creats anteriorment, per a poder resoldre el cub hem de poder fer girs de 90º en vàries direccions.
David González i Abel Sánchez
20
•Segway: És la primera màquina de transport impulsada elèctricament que manté el seu propi equilibri. El segway pot seguir el model de pèndol invertit, un problema clàssic de control, un sistema no alineat i inestable. Aquest model es basa en la realimentació de la posició. Amb el sensor de lluminositat podem deduir la inclinació del robot tenint en compte que hi ha
una
relació
entre
lluminositat
i
angle.
Partint
d'una
posició inicial d'equilibri es pren la mesura de referència de lluminositat. Si el robot cau cap al costat del sensor, és a dir, el sensor s'apropa al terra, augmenta el valor de lluminositat i varia l'angle. Per a què aquest sistema funcioni hem de treballar en unes condicions d'il·luminació controlada i també disposar d'una superfície com a més homogènia millor.
Fig. 22 Segway NXT
David González i Abel Sánchez
21
•Els robots seguidors de línies són robots molt senzills, ja que compleixen una única missió: seguir una línia marcada al terra. Tots aquest robots basen el seu funcionament en els sensors. Depenent de les característiques del recorregut que ha de fer,
el
robot
ha
d’utilitzar
més
o
menys
sensors
per
realitzar-lo. Els
més
simples
utilitzen
2
sensors,
ubicats
a
la
part
inferior de la estructura, un al costat de l'altre. Quan un dels dos sensors detecta el color blanc, significa que el robot està sortint de la línea negra per aquest costat. En aquest moment, el robot gira cap a el costat contrari fins que torna a estar sobre la línea indicada. Podem
utilitzar
un
microcontrolador
per
realitzar
les
funcions de control o guardar la fórmula del recorregut de la pista. Les seves parts més importants són: •Sensors: infrarojos o fototransistors. •Servomotors •Rodes. •Font d’energia: bateries o piles. •Bloc NXT
Fig 23. Robot seguidor de línies NXT
David González i Abel Sánchez
22
4 Disseny d'un robot seguidor d'objectes: En el nostre projecte volem aconseguir un robot que segueixi un objecte determinat i pla a una distància inicial que es mantingui constant en tot el procés. Per a això vam haver d'introduir un sistema de comunicació BUS I2C per a utilitzar dos sensors analògics, ja que els sensors digitals de Lego tenen un preu més elevat. La part morfològica del robot buscava ser simple però bastant pràctica, és a dir, que no fes funcionar malament el robot. En aquest apartat expliquem el funcionament del robot i la placa de sensors. 4.1 Funcionament. Teòricament l'objectiu del nostre robot és que compari la distància que volem tenir amb la real, i que segons aquesta avanci
o
retrocedeixi.
Però
fer
un
programa
que
englobi
aquesta acció perfectament és bastant complicat, ja que la precisió
en
els
motors
és
bastant
complexa,
per
a
això
utilitzem els diferents controladors, els quals expliquem més endavant.
David González i Abel Sánchez
23
4.2 Placa de sensors: Per fer la placa amb els sensors SHARP GP2D120 hem utilitzat dos
sensors
termoretràctil, 82kΩ,
un
SHARP
GP2D120,
condensadors
BusI2C-8591,
una
pins
100 placa
mF,
mascle dues
i
femella,
resistències
de
CT10,
dos separadors hexagonals, dos cargols autoblocants, un sòcol per 8591, cable paral·lel
amb
connector
RJ12,
estany,
soldador, estenalles de tall, serra de marqueteria,
cianocrilat
i
una
grimpadora de cable telefònic. Fig. 23 La nostra placa
Fig. 24 La nostra placa feta amb Crocodile Tecnology
David González i Abel Sánchez
24
4.2.1 Sistema de comunicació (BusI2C). Sota
les
trobem
sigles
un
els
del
Bus
I2C
estàndard
(Inter-Integrated
d'ús
de
Circuit),
comunicacions
sèrie
més
conegut en la indústria electrònica. El
Bus
I2C
neix
responsable
del
comunicacions
en
1992
seu
en
de
la
disseny.
sèrie
i
mà
Es
està
de
Philips,
determina
adaptat
a
un
l'àmbit
que
és
Bus
de
de
les
comunicacions a curta distància entre dispositius electrònics amb
un
alt
velocitat
nivell
no
és
implementació
d'integració
excessivament
normalitzada,
i
proximitat.
alta, però
és
de
pot
La
100Kb/s
arribar,
seva en
si
la és
necessari, fins a varis Mb/s. Una de les característiques més interessants del I2C és que té un
menor
nombre
problemes cablejat
de i
superfície
d'interconnexions
interferències. la
seva
ocupada
i
Donada
mecanització,
en
un
entorn
això la
fa on
representa
seva que
menys
senzillesa
de
redueixi
la
es
l'espai
és
un
factor
crític. Un
únic
bus
de
comunicació
dispositius
connectats
identificar
cadascun
a
d'ells
I2C ell i
pot
suportar
fins
directament.
Per
comunicar-s'hi,
a
128
poder
tots
els
dispositius han de comptar amb una direcció única de 7 bits. Els dispositius poden estar en dues posicions: mestre, es el que té prioritat sobre els altres; i esclaus, els que van desprès
del
mestre.
En cada moment només pot haver-hi
un
dispositiu en posició mestre.
David González i Abel Sánchez
25
Característiques del Bus
I2C:
•Format d'una transacció del bus: •|start|A7 A6 A5 A4 A3 A2 A1|R/W|ACK|... DATA ...|stop|idle| •El mestre comença la comunicació enviant un patró anomenat “start
condition”.
Això
alerta
als
esclaus,
posant-los
en
espera d'una transició. •El mestre es dirigeix al dispositiu amb el que vol establir una comunicació, enviant un byte que conté els 7 bits (A7-A1) que componen la direcció del dispositiu esclau amb el que es vol comunicar; i el vuitè bit (A0), de menor pes es correspon a l'operació desitjada. •La direcció enviada es comparada per cada esclau del bus amb la seva pròpia direcció. Si totes dues coincideixen, l'esclau es
considera
direccional
com
esclau-transmisor
o
esclau-
receptor. •El esclau respon enviant un bit de ACK que li indica al dispositiu
mestre
que
el
dispositiu
esclau
reconeix
la
sol·licitud i està en condicions de comunicar-se. •Seguidament
comença
l'intercanvi
d'informació
entre
els
2
dispositius. •El mestre envia la direcció de registre intern al dispositiu que es desitja llegir o escriure. •El esclau respon amb un bit ACK. •Ara el mestre pot començar a llegir o escriure bytes de dades. Tots els bytes de dades han constar de vuit bits. El nombre màxim de bytes que es pot enviar en una transmissió no està
registrat,
sent
l'esclau
qui
determina
aquesta
característica. •Cada
byte
llegit
o
escrit
pel
mestre
ha
de
ser
obligatòriament reconegut per un bite de ACK pel dispositiu mestre o esclau.
David González i Abel Sánchez
26
•Es repeteixen els dos passos anteriors fins finalitzar la comunicació entre mestre i esclau. •Quan la comunicació finalitza, el mestre transmet un “stop condition” per deixar lliure el bus. •Desprès de la “stop condition” és obligatori per al bus estar durant uns microsegons en IDLE.
David González i Abel Sánchez
27
5 Sistemes de control: Un sistema de control es pot definir conceptualment com un ens que rep unes accions externes o variables d'entrada i que produeix una resposta mitjançant les variables de sortida. En considerem bàsicament dos tipus: •
Sistema de control en llaç o bucle obert: En
aquest
sistema
l'acció
de
control
és
totalment
independent a la de sortida. Per tant, les variables de control s'ajusten a partir del comportament previsible del sistema. La resposta depèn únicament de les variables d'entrada.
•
Sistema de control en llaç o bucle tancat: En aquest tipus de control existeix una relació entre la resposta del sistema i les variables d'entrada i sortida. Perquè existeixi aquesta influència de la sortida, cal que
l'entrada
es
modifiqui a
partir de
la senyal
de
sortida convenientment tractat; és el que es coneix com realimentació. Així, doncs, un sistema en llaç tancat és aquell
que
existeix
una
realimentació
del
senyal
de
sortida, de manera que aquest exerceix una acció sobre el sistema de control.
David González i Abel Sánchez
28
5.1 Introducció El
sistema
continuació
de
control
explicarem
que que
utilitzarem
és
cadascuna
dels
fa
el
PID,
mètodes
a de
control que provarem en la programació: •Control tot o res, aquesta modalitat de control no utilitza cap
controlador.
Aquest
control
activa
i
desactiva,
d'una
manera ràpida, el sistema controlat quan aquest s'allunya o assoleix respectivament el punt de referència. El PID inclou tres accions: la proporcional(P), l'integral (I) i la derivativa (D). Amb aquestes accions es poden fer els següents controladors: P, I, D, PI, PD, PID. •Acció de control proporcional (P), consisteix a amplificar la senyal d'error avanç d'aplicar-la al procés, el règim normal del funcionament d'un sistema no es produeix immediatament desprès d'aplicar-li una entrada determinada, sinó que passa per una sèrie de fases: •Règim transitori: és el temps entre que es dóna l'ordre de referència fins que el sistema respon i assoleix un valor estable. •Règim permanent: en aquesta fase el sistema ha de mantenir la
resposta
assolida
i
resoldre
els
problemes
de
pertorbacions.
David González i Abel Sánchez
29
En la pràctica, si la variació del senyal d'entrada és molt ràpida,
el
regulador
conseqüència,
el
no
la
de
sortida
senyal
podrà
seguir
seguirà
i,
un
com
a
trajectòria
fins a arribar al valor estable. En resum, un regulador P fa funcionar el sistema amb més rapidesa però triga més temps a estabilitzar-se. •Acció de control integral (I), consisteix en fer la integral de
la
senyal
d'error,
per
així
eliminar-la.
El
problema
d'aquest controlador és el temps de resposta, ja que depèn del
valor
de
utilitzar
l'error.
aquest
normalment
Per
aquest
controlador
l'utilitzem
en
motiu acció
combinat
amb
no
acostumem
única, altres
a
sinó
que
tipus
de
reguladors. •Acció de control derivada (D), aquesta acció consisteix en anticipar-se,
es
a
dir,
avança
l'acció
de
control
davant
l'aparició d'una tendència d'error, la qual cosa tendeix a estabilitzar el sistema. Aquest regulador, com l'anterior, no s'acostuma a utilitzar de manera aïllada, sinó que s'uneix amb altres reguladors com el (P) i el (I). •Regulador d'acció proporcional derivativa (PD), a causa de la seva
condició
proporcional,
aquest
regulador
ajusta
la
sortida a la proximitat de la variable de referència. Pel fet de
ser
també
proporcional controlada.
a El
derivatiu la
la
velocitat
regulador
PD
sortida dels tracta
respon
canvis de
de
de la
millorar
manera magnitud
el
règim
transitori, fase del controlador P, és a dir que el sistema respongui més ràpidament assolint un valor més ràpid gràcies al controlador derivatiu.
David González i Abel Sánchez
30
•Regulador d'acció proporcional integral (PI), el regulador PI introdueix
una
exclusivament
el
acció
integradora
règim
permanent
que
sense
permet
millorar
modificar
el
règim
transitori, que és el que no pot fer el regulador P. Aquesta acció també es durà a terme quan es produeix una pertorbació permanent. En la pràctica, aquest temps d'integral s'ha d'ajustar a les característiques de la càrrega. •Per a una càrrega donada, si el temps d'integral és massa curt, es pot produir inestabilitats amb les oscil·lacions de la magnitud que es vol controlar. •D'alta banda, si el temps d'integral és gran, la resposta serà lenta, com també l'eliminació de l'OFFSET. •Regulador
d'acció
proporcional
integral
derivativa
(PID),
combina simultàniament les accions que hem anat analitzant fins
ara
D'aquesta
la
proporcional,
manera
podem
la
integral
efectuar
un
i
la
control
derivativa. precís
de
qualsevol procés. •L'acció
proporcional
ens
permet
efectuar
el
control
reduint les oscil·lacions del règim transitori. •L'acció
derivativa
actua
ràpidament
per
corregir
els
canvis que es produeixen en la magnitud controlada durant el règim permanent com a conseqüència d'una pertorbació externa. •L'acció
integral
corregeix
automàticament
l'OFFSET
i
ajusta el valor de la variable al punt de referència.
Fig. 25 Controlador PID
David González i Abel Sánchez
31
La
resposta
i
l'estabilitat
de
control
depèn
de
les
característiques de la càrrega i del regulador. El regulador PID s'utilitza per obtenir un control exacte i concret en processos continus. En el control automàtic existeixen dues àrees
d'interès
principal
per
controlar
la
resposta
i
l'estabilitat de control: •La resposta en règim permanent (control continu) davant de modificacions en les condicions de funcionament com ara canvis de punts de referències o variació de càrrega. •La resposta en règim transitori (engegada inicial). 5.2 Acció Inicial Primer,
s'agafen
els
valors
dels
2
sensors
connectats
al
BusI2C, amb aquests 2 valors se'n fa la mitja sumant-los i dividint-los entre 2. Aquest valor el guardem a una variable anomenada
Consigna,
la
qual
amb
un
convertidor
a
text,
mostrem en la pantalla del Lego gràcies a un Display. Per evitar errors posem una espera de 2 segons. 5.3 Tot o res Fet
això
entrem
en
accions:
Mesura,
com
distància
mitja
que
un
bucle
infinit
que
fa
le
següents
hem vist a l'inici del programa, mesuren
els
dos
sensors.
Després,
la a
aquest nombre se li resta la variable que hem guardat com a Consigna. Això calcula l'error, el qual va a un Compare amb acció de Less than que va a la direcció dels motors.
David González i Abel Sánchez
32
5.4 Acció proporcional L'acció
proporcional
constant
multiplica
proporcional
que
l'error
dóna
com
a
calculat resultat
per el
la
terme
proporcional, el qual determina la potència del motor. ERROR · Kp = Terme Proporcional 5.5 Acció Derivativa En
l'acció
derivativa
restem
el
penúltim
error
a
l'últim
error que és igual a l'error derivatiu. Aquest multiplicat per la constant derivativa dóna el terme derivatiu. Si sumem aquest al terme proporcional i determinem la potència, tenim el controlador PD. ERROR = ERROR_PREVI ERROR – ERROR_PREVI = ERROR DERIVATIU ERROR DERIVATIU · Kd = Terme Derivatiu 5.6 Acció Integral En l'acció integral es suma l'error integral més l'error el que dóna un nou error integral, després aquest és multiplicat per
la
constant
integral
el
que
dóna
el
terme
integral.
Aquest sumat al terme proporcional i això a la potència fa el PI
i
si
a
més
hi
sumem
el
terme
derivatiu
ja
fem
el
controlador PID. ERROR + ERROR INTEGRAL = ERROR INTEGRAL Ki · ERROR INTEGRAL = Terme Integral
David González i Abel Sánchez
33
Potència PI = Terme Proporcional + Terme Integral Potència PD =
Terme Proporcional + Terme Derivatiu
Potència PID = Terme Proporcional + Terme Derivatiu + Terme Integral
Fig. 26 Gràfiques dels controladors
David González i Abel Sánchez
34
6 Estudi dels diferents sistemes de control. Tots els controladors estan tenint problemes per anar cap a endavant.
Tot o res:
en aquest programa que observem en la figura 23
el robot no va bé, ja que es queda oscil·lant en un punt mort perquè no controlem la potencia del robot, per tant es quasi impossible aconseguir la distància indicada.
Fig. 27 Programa Tot o res fet per nosaltres amb el programa de Lego Mindsotrm.
David González i Abel Sánchez
35
Controlador proporcional: amb la constant proporcional a 2, té una reacció lenta però precisa, gràcies a que amplifica l’error
de
manera
alta
però
sense
generar
errors.
És
la
variable preferida de la constant proporcional. -Variable s’amplifica
proporcional massa
a
3:
l’error
i
en el
augmentar robot
té
la
variable
problemes
per
estabilitzar-se. -Variable
proporcional
a
1:
El
robot
es
comporta
extremadament lent, ja que al multiplicar per 1 la potència queda molt baixa. -Variable proporcional a 4: l'error multiplicat per 4 genera un nombre tan alt, que genera un error tan gran, que fa que el robot quedi aturat.
Fig. 28 Programa controlador P fet per nosaltres amb el programa de Lego Mindsotrm.
David González i Abel Sánchez
36
Controlador proporcional derivatiu: en intentar anticipar-se al error amplificat per el controlador proporcional genera més
errors
dels
que
arregla
tenint
problemes
de
reacció.
Encara que intentem minimitzar aquest problemes jugant amb la variable, segueix sense agradar-nos gaire aquest controlador.
Fig. 29 Programa controlador PD fet per nosaltres amb el programa de Lego Mindsotrm.
David González i Abel Sánchez
37
Controlador proporcional integral: -Constant proporcional a 2 i constant integral a 0,04: el robot
pren
una
eficiència
molt
alta
però
una
baixa
velocitat. És el nostre controlador preferit. - Constant proporcional a 3 i constant integral a 0,04: el robot
com
hem
vist
en
el
controlador
P
al
tenir
la
constant 3, suposem que genera un error més gran de 100, fent
així
que
la
potència
quedi
desequilibrada
i
no
s’estabilitzi. - Constant proporcional a 2 i constant integral a 0,02: la potència
té
el
terme
integral
massa
petit,
fent
que
aquest programa no arribi a tanta precisió i eficiència com el programa que té la constant proporcional a 2 i la constant integral a 0,04.
Fig. 30 Programa controlador PI fet per nosaltres amb el programa de Lego Mindsotrm.
David González i Abel Sánchez
38
Controlador proporcional integral derivatiu (PID): Aconseguim incloure
una
precisió
l’acció
controlador
més
derivativa
proporcional
gran no
que
arriba
integral.
en a
Encara
el la
PD
però
precisió
que
al del
teòricament
hauria de ser el millor a nivell pràctic i teòric, cosa que no
posem
en
dubte,
per
les
característiques
del
nostre
treball, no és la millor solució. Però tot i així anem a veure les diferents variables.
–
Constant proporcional a 2, constant integral a 0,04 i
constant derivativa a 2: aquestes constants són les que més rendiment
ens
donen,
mirant de no minimitzar al màxim
funció
per
deixar
un
D
PI.
Aquest
programa
dona
un
la bon
rendiment, encara que no té la eficiència que ens dona el PI amb la constant proporcional a 2 i la constant integral a 0,04.
-
Constant
constant
proporcional
derivativa
a
a 2:
3,
constant
Aquesta
integral
composició
de
a
0,04
i
variables
arrossega els mateixos errors que ja hem vist varies vegades, per culpa de la constant proporcional a 3.
David González i Abel Sánchez
39
Fig. 31 Programa controlador PID fet per nosaltres amb el programa de Lego Mindsotrm.
David Gonzรกlez i Abel Sรกnchez
40
7 Desenvolupament d'altres aplicacions. Aquest sistema que hem estudiat, amb els sensor d'ultrasò, l'han
utilitzat
varies
empreses
per
a
desenvolupar
aplicacions com les següents: •City Safety (Volvo) és una tecnologia dissenyada per prevenir col·lisions, és una novetat mundial desenvolupada per Volvo per conduir de una forma més segura per la ciutat. Es va crear principalment per evitar les col·lisions per darrera amb
altres
vehicles.
Aquest
velocitats inferiors a 30km/h
sistema
només
funciona
a
i la seva funció principal és
d’ajuda al conductor que es troba en un moment crític perquè s’ha distret. Quan aquest sistema detecta una col·lisió imminent activa una funció on els frens del cotxe es preaccionen per respondre amb mes eficàcia Safety
i rapidesa. Si el conductor no frena , City
acciona
automàticament
els
frens
i
desconnecta
el
accelerador per evitar la col·lisió o disminuir-la. Aquest sistema
utilitza
infrarojos
que
un
sensor
mesura
els
de
làser
reflexos
dels altres vehicles. Aquest sistema no és infal·lible, ja que pot tenir errors, cotxe
per no
exemple està
quan
alineat
perfectament.
el amb
altre ell Fig. 32 Exemple del City Safefty
Aquest sistema té moltes similituds amb el nostre projecte, ja que els dos basem el nostre treball en sensors de llum infrarojos,
en
el
càlcul de la proximitat i mantenir
una
distancia X per no impactar amb el objecte.
David González i Abel Sánchez
41
•Un assistent d'aparcament és el sistema conegut com el que facilita l'aparcament d'un vehicle en espais reduïts. Com que el nostre treball es basa en els sensors d'ultrasò, només explicarem el sistema actiu basat en ultrasons. Aquests sistemes funcionen amb sensors d'ultrasons que estan integrats al para-xocs del cotxe. Podem diferenciar sistemes de dos, quatre i sis canals o sensors circulars integrats i pintats del mateix color que el seu entorn. Com
més
sensors
té
el
cotxe
més
precisa
és
la
mesura
i
resultat de tots ells. Els sensors envien i reben senyals d'ultrasons, i envien aquestes dades rebudes a una central electrònica on són processats i es calcula la distància menor a un objecte. Per exemple, el Parking Sensor funciona amb una emissió i recepció d'ultrasons, a partir dels rebots dels obstacles que hi ha en el seu camp d'acció. Els ultrasons són generats per un circuit electrònic que és l'encarregat de rebre,
processar
l'obstacle,
això
i és
calcular indicat
la al
distància conductor
del
vehicle
mitjançant
a un
dispositiu acústic i visual que es troba instal·lat dins del vehicle.
Aquests
sistemes
no
tenen
un
preu
gaire
elevat,
tenint en compte la seva funció pràctica.
Fig. 33 Exemple d'assistent d'aparcament
David González i Abel Sánchez
42
8 Conclusions. A través dels diversos capítols dels que es composa el nostre treball d'investigació hem realitzat diverses observacions, discussions i comentaris, que tenen relació directa amb els objectius principals plantejats. La primera conclusió, i possiblement la més important, és que el controlador que millor respon a les nostres expectatives és el controlador PI no el PID. Això es degut a que les característiques del controlador PI s'adapten millor a les nostres necessitats, ja que volíem un sistema precís. El PI al amplificar l'error amb l'acció P i minimitzar el règim d'error
permanent
amb
l'acció
I,
tenim
un
controlador
perfecte per a assajos a l'aula i altres demostracions. El problema amb el PD i el PID era que l'acció D no s'adaptava gaire bé a aquests assajos perquè, com que, en un assaig a l'aula, les situacions que experimenta varien molt, no és capaç d'anticipar-se bé al error. La segona conclusió, i seguint encara amb la programació, vam fer una petita prova del doble PID, un per cada sensor i el motor corresponent a aquest. Aquest doble PID no ens responia gaire
bé
perquè,
en
fer
dues
accions
simultànies,
no
s'estableix un ordre en el funcionament dels motors, el que fa que vagi fent ziga-zagues i mai aconsegueixi mantenir un valor fix semblant a l'inicial. A
més
també
creiem
que,
a
part
d'aquests
errors,
altres
errors poden venir de la seva morfologia, ja que no està del tot adaptada a les característiques d'aquesta programació.
David González i Abel Sánchez
43
Seguint amb la morfologia, primer, vam donar un disseny poc pràctic ja que posava molt pes en el costat esquerre i poc al dret, a més, només tenia les dues rodes dels eixos del motor, i
una
altra
posterior.
fent
un
Aquests
triangle
dos
fets
amb
feien
aquestes que
a
la
a
la
part
avançar
o
retrocedir, el robot es decantés cap a un cantó sense poder seguir una línia recta. Tot seguit vam millorar la morfologia del
robot
creant
un
segon
disseny,
que
ha
esdevingut
el
definitiu. Aquest té quatre rodes, cadascuna en el seu eix, i una ubicació millor de la placa del BUS I2C, col·locant-la darrera del bloc NXT, fent així que el centre de gravetat del robot estigui al centre. Aquest robot responia millor a les nostres necessitats i objectius.
Fig. 34 A la esquerra el nostre robot amb el 1 disseny, a la dreta el disseny final del nostre robot.
Per
a
fer
el
nostre
projecte,
hem
utilitzat
dos
sensors
analògics d'ultrasò exteriors al Lego. El problema que teníem amb aquests sensors, era demostrar que funcionaven i, encara més complicat, que funcionaven correctament. Per a fer això, vam fer un programa especial que ens mostrava en la pantalla del Lego el valor que donava cadascun dels sensors. D'aquesta manera
vam
començar
a
creure
que
aquests
sensors
podien
mesurar la distància amb més precisió de la que creiem. David González i Abel Sánchez
44
En quant al sistema de comunicació BUS I2C, el disseny que vam utilitzar va ser suficient per a les finalitats que volíem. Va ampliar el nombre d'entrades del nostre bloc NXT i a més vam poder utilitzar sensors analògics, en comptes de digitals. Tots aquests fets, ens han fet arribar a la conclusió que els robots Lego Mindstorm han estat creats per a l'educació, el que els fa relativament senzills de programar i construir. A més
estan
molt
limitats
pel
mínim
nombre
d'entrades
i
sortides que tenen. Però, aplicant-li extensions com un BUS I2C per ampliar el nombre d'entrades o sortides i canviant el entorn de programació es poden arribar a fer projectes molt complexos. Per fer el nostre treball hem utilitzat la segona versió de Lego Mindstorm anomenada NXT v.1.0 que no esta tan limitada com la anterior. A nivell personal aquest treball ens ha aportat diferents aspectes positius. El primer i que cal destacar és que hem après a fer un treball de grans magnituds en equip. Això implica una bona planificació i repartició de la feina, i fer certes
parts
treball
hem
molt
important
après
a
en
interpretar
conjunt.
Gràcies
documents
a
aquest
tecnològics,
la
major part dels quals estaven en angles, i a programar de forma visual en blocs. A l'hora de fer la pràctica de la placa
de
components connectar
circuit
imprès
elèctrics diferents
ens
i punts.
ha
fer
calgut unions
Durant
el
aprendre que
proces
ens de
a
soldar
permetien crear
el
nostre treball de recerca ens hem donat compte que és molt important ser costant en el treball.
David González i Abel Sánchez
45
La conclusió final d'aquest treball és que és molt important triar bé el tema del qual el fas i que t'ha d'agradar, ja que hi dediques moltes hores. També és important tenir un bon tutor
per
adequada.
tenir Aquest
un
ritme
treball
bo
de
treball
i
una
ens
ha
semblat
molt
exigència
interessant
degut a que estem molt interessats en la robòtica i el seu desenvolupament actual.
David González i Abel Sánchez
46
9 Fonts d'informació. •
http://www.robolot.org/
•
http://ro-botica.com/
•
http://www.mindsensors.com/
•
http://www.hitechnic.com/
•
http://es.wikipedia.org/
•
http://electricbricks.com/
•
http://mindstorms.lego.com/
•
http://www.robotic-lab.com/
•
http://nxt-mindstorm.blogspot.com/
•
ExtremNXT.pdf
•
Carles llacer-Lego-mindstorm-i2C-NXT.pdf
•
Memoria.pdf
•
Lego_Mindstorms_NXT.pdf
•
PCF8591.pdf
•
GP2D120-DATA-SHEET.pdf
*Els .pdf estan en el material digital.
David González i Abel Sánchez
47