• No se han encontrado resultados

Plataforma FPGA para Robótica Móvil

N/A
N/A
Protected

Academic year: 2023

Share "Plataforma FPGA para Robótica Móvil"

Copied!
121
0
0

Texto completo

(1)

Plataforma FPGA para Robótica Móvil

por

Juan Carlos Moctezuma Eugenio

Tesis sometida como requisito parcial para obtener el grado de

MAESTRO EN CIENCIAS EN LA

ESPECIALIDAD DE CIENCIAS DE LA COMPUTACIÓN en el

Instituto Nacional de Astrofísica, Óptica y Electrónica INAOE

Febrero 2009 Tonantzintla, Puebla

Supervisada por:

Dr. Miguel Octavio Arias Estrada

©INAOE 2009 Derechos reservados

El autor otorga al INAOE el permiso de reproducir y distribuir

copias de esta tesis en su totalidad o en partes

(2)
(3)

Enestetrabajodetesissepresentaeldiseñoeimplementacióndeunaplataformadecontroly

procesamientobasadaenFPGAparaaplicacionesdeRobóticaMóvil.Elrobotdepruebausado

paravalidacióndelsistema estábasadoenunrobotmóvilprogramabledelacompañía iRobot

llamadoCreate.Tambiénseañadenotroselementoscomosonares,sensoresinfrarrojosybrazo

manipuladorpara aumentar lafuncionalidaddel robot.El diseñodelaplataformaFPGAestá

basado en elconcepto desistemas empotrados, asíque ofrece una arquitectura hardwareque

incluye: procesador,buses, memoria yperiféricos (e.g. co-procesadores,sensores, brazo robot,

controladores, etc.), todo dentro de un mismo chip, porlo que disminuyeel costo, tamaño y

consumodepotenciadelsistema.Asímismopermitelaexibilidaddeagregaromodicarnuevos

componentes hardware mediante la recongurabilidaddel FPGA. Además, el trabajo incluye

la parte software conformada por un sistema operativo (SO) basado en Linux que junto con

un conjunto de bibliotecas que permiten manipular y controlarlos componentes hardware de

laplataformaFPGA. Todaslasfunciones estánen lenguaje Cyseencuentranorganizadasen

diferentes niveles deabstracción, porejemplohayfunciones que seencuentranen unlenguaje

defácilusoparalosprogramadoresderobots.

Lanalidadprincipaldeestaplataformaesmostrarlasventajasqueofrecenlosdispositivos

FPGA para diseñar plataformas robóticas, ésto se logra mediante una serie de experimentos

realizadosenunambientedeprueba.Dentrodeestasventajas,principalmentesetiene elpoder

deparalelismoylaexibidadquemanejan losFPGAs.Porotrolado,laplataformapropuesta

tienela propiedad de ser escalablepara incorporar nuevos elementos hardware, ya sea senso-

res,actuadoresuotrotipodedispositivohardwaredeusocomúnparaaplicacionesenrobótica

móvil. Muchos de éstos sensores/actuadores necesitan algún tipo de interfaz o de algún pre-

procesamiento, el FPGA ofrece soluciones exibles para tratarestas necesidades. Además, la

plataformaFPGApermitequelaarquitectura softwarequedeabiertaparaincrementarlafun-

cionalidaddelamisma,comoporejemplolacreacióndemapas,algoritmosdevisión,cinématica

debrazosmanipuladores,etc.

(4)
(5)

Abstract

Thisthesispresentsthedesignandtheimplementationof aFPGA-basedroboticplatformfor

applications on Mobile Robotics. A test robot was used for validation and it is based on a

commercial programmable mobile robot called Create from iRobot company. Also test robot

includes other components like sonars, infrared sensors and a robotic arm. These additional

componentsare used to increase platform's functionality. In fact, this platform is acomplete

embedded system. Hardware side includes processor,buses, memory and peripherals(e.g. co-

processors,sensors,roboticarm,controllers,etc.),allthesecomponentsinsideofthesamechip,

thereforethe systemachievesa reductionin size,powerconsumption and cost.And allowsto

addorto modifynewhardwarecomponentsthroughFPGArecongurability.With respectto

software side, it includes a Linux-based Operating System (OS) with a set of libraries that

perform dierent funcionalities and manipulate all components on FPGA platform, all these

functions are written in C code and theyare organizedin dierent levels of abstraction, e.g.

therearefunctionseasy-understandingforroboticprogrammers.

The main purpose of this FPGA-based platform is to showthe advantages achievedwhen

FPGAsareusedtoimplementroboticplatforms,advantagessuchasexibilityofimplementing

dierenthardwarearquitecturesordierentembeddedLinux-basedOS,orpowerofparalelism

to accelerate data processing, among others. Another advantage is scalability, this platform

allows the addition of dierent kind of hardware component, protocol bus or custom digital

logic. Furthermore software architecture is open to increase its functionality, for example by

creatingnavigationmaps,visionalgorithms,roboticarmkinematics,etc.

(6)
(7)

Agradecimientos

AlConsejoNacionaldeCienciayTecnología(CONACYT)porelapoyoeconómicootorgado

atravésdelabecaparaestudiosdemaestría.

Al Instituto Nacional de Astrofísica, Óptica y Electrónica (INAOE) y a la Coordinación

de Ciencias Computaciones por todaslas facilidades y apoyosque me otorgarondurante mis

estudiosdemaestría.

Amiasesor,Dr. MiguelO.AriasEstrada,porsuapoyo,consejosymotivaciónquehicieron

posiblelarealizacióndeestatesis.

Amissinodales,Dra.AngélicaMuñozM.,Dr.LuisEnriqueSucarS.,Dr.EduardoMorales

M.,Dr. RenéArmando CumplidoP., porsusútilesobservacionesycomentariosqueayudaron

amejorarestatesis.

(8)
(9)

Índice general vii

Índice de guras ix

Lista de Tablas xi

1. Introducción 1

1.1. Antecedentes . . . 1

1.2. Objetivos . . . 3

1.3. Alcancesylimitaciones. . . 3

1.4. Organizacióndelatesis . . . 4

2. Plataformas para robótica móvil 7 2.1. Deniciones . . . 7

2.2. Plataformasdedesarrollo . . . 8

2.2.1. Softwarederobots . . . 9

2.2.2. Sistemasoperativos . . . 10

2.3. Plataformascomerciales . . . 12

2.3.1. HandyBoard . . . 12

2.3.2. BotBoard. . . 14

2.3.3. KoreBot . . . 15

2.3.4. Gumstix . . . 15

2.3.5. PlataformasparaVisión . . . 16

2.4. Resumendeplataformas . . . 19

3. Sistemasembebidos yFPGAs 21 3.1. Sistemasembebidos . . . 21

3.1.1. Características . . . 22

3.1.2. Componentes . . . 22

3.2. FPGAs . . . 23

3.3. SistemasembebidosenFPGAs . . . 26

3.4. Resumendelcapítulo. . . 28

4. PlataformaFPGA propuesta 29 4.1. Introducción. . . 29

4.2. Arquitecturahardware . . . 30

4.2.1. Procesador . . . 32

4.2.2. Memoria. . . 32

4.2.3. Buses . . . 33

4.2.4. Periféricos . . . 33

4.2.5. Co-procesadores . . . 34

(10)

4.3. Arquitecturasoftware . . . 35

4.3.1. Linuxembebido . . . 36

4.3.2. Capashardwareycontroladores/SO . . . 37

4.3.3. Capa funcionesbásicas. . . 39

4.3.4. Funcionesintermedias . . . 40

4.4. FuncionalidaddelaplataformaFPGA . . . 42

5. Experimentosy resultados 45 5.1. Implementación . . . 45

5.1.1. Material yequipodeimplementación. . . 45

5.1.2. Herramientasdeimplementación . . . 48

5.1.3. Desarrollodelaarquitecturahardware . . . 49

5.1.4. Desarrollodebibliotecassoftware. . . 56

5.1.5. DesarrolloparamontarLinuxenelFPGA. . . 56

5.2. Criteriosdeevaluaciónyambientedeprueba . . . 58

5.3. Experimentos . . . 59

5.3.1. Incorporarprotocolosdecomunicación . . . 59

5.3.2. Hardwareenparalelo:Sonares . . . 60

5.3.3. Co-procesadorparaimágenes . . . 61

5.3.4. Pruebasgenerales:Seguidordeparedylaberinto . . . 64

5.4. Discusión . . . 65

6. Conclusiones 73 6.1. Conclusiones . . . 73

6.2. Trabajosfuturos . . . 75

A.Implementaciónen EDK 77 A.1. Desarrollodelhardwaredelsistema . . . 77

A.2. Desarrollodelsoftwaredelsistema . . . 80

A.3. Periféricosdelsistema . . . 81

A.3.1. Sonares . . . 82

A.3.2. BusI2C . . . 83

A.3.3. Sensoresinfrarrojos . . . 84

A.3.4. Brazomanipulador AX-12. . . 84

A.3.5. Co-procesadorparaimágenes . . . 86

B.Funciones software para el robotde prueba 91 B.1. Biblioteca:RobotmóvilCreate . . . 91

B.2. Biblioteca:Sonares . . . 94

B.3. Biblioteca:Brújula . . . 95

B.4. Biblioteca:Sensoresinfrarrojos . . . 96

B.5. Biblioteca:Brazorobot . . . 97

B.6. Biblioteca:Co-procesadorparaimágenes . . . 98

C.Montar Linux en FPGAs 99

(11)

2.1. Programaciónderobots . . . 9

2.2. ambientesdeMicrosoftRoboticStudio© . . . 11

2.3. TarjetasHandyBoardyHandyCricket . . . 12

2.4. TarejetadeexpansióndelaHandyBoard . . . 13

2.5. TarjetaBotBoardII . . . 14

2.6. TarjetaKoreBot . . . 15

2.7. TarjetaGumstix . . . 16

2.8. TarjetaEyeBot . . . 17

2.9. TarjetaCMUcam3 . . . 18

3.1. Componentes deunsistemaembebido . . . 23

3.2. FPGAsdeAlterayXilinx . . . 24

3.3. EstructurainternadelFPGA . . . 25

3.4. Niveles deintegraciónensistemas embebidos . . . 27

3.5. SolucionesenprocesadoresparaXilinx . . . 28

4.1. TarjetaFPGApropuesta . . . 30

4.2. PartehardwaredelaplataformaFPGA . . . 31

4.3. Ejemplodeejecuciónsoftwarevshardware . . . 34

4.4. PartesoftwaredelaplataformaFPGA . . . 35

4.5. Arquitecturasoftware:caps hardwareycontroladores. . . 37

4.6. Interacciónentre lacapahardwareylacapacontroladores. . . 38

4.7. Arquitecturasoftware:capabásica . . . 39

4.8. Interacciónentre lacapabásicaylacapadecontroladores . . . 39

4.9. Arquitecturasoftware:capaintermedia. . . 41

4.10.Interaccióndelacapaintermedia ylacapabásica . . . 41

5.1. Robotmóvildeprueba. . . 46

5.2. Vistageneraldelrobotmóvildeprueba . . . 47

5.3. Acercamientosalrobotmóvildeprueba . . . 47

5.4. TarjetaFPGASP3E1600EMicroBlazeEdition . . . 48

5.5. DiagramaparaelmódulohardwaredelsonarSRF05 . . . 51

5.6. DiagramadelmódulohardwareparaelsonarPINGUltrasonic . . . 52

5.7. DiagramadeconexiónparaelbrazomanipuladorAX-12 . . . 54

5.8. Procesodeconvoluciónutilizandomúltiplesmóduloshardware . . . 55

5.9. Subsistemaparaelco-procesadordeimágenes . . . 55

5.10.Programacióndinámicadelco-procesadordeimágenes . . . 56

5.11.Ejemplodeaplicacionesdeusuario . . . 57

5.12.Ambientedepruebaparaelrobotmóvil . . . 59

5.13.Tipos deltrosquesepueden usarconelco-procesadordeimágenes . . . 62

5.14.Coecientesparaelltrogaussiano . . . 63

(12)

5.15.Pruebasgeneralesparaelrobotmóvil . . . 66

A.1. EntornodelXilinxPlatformStudio© . . . 78

A.2. EjemplodecomoagregarmódulosenXPS. . . 79

A.3. XPS:conexióndelasseñalesE/S . . . 79

A.4. XPS:asignacióndeespaciodememoria . . . 80

A.5. Cuadrodeconguraciónparaelsoftwaredel sistema . . . 81

A.6. GeneracióndelarchivoELF . . . 81

A.7. DiagramadelmódulohardwareSRF05. . . 83

A.8. SonarSRF02ybrújulaCMPS03 . . . 84

A.9. Sensordeproximidadyseguidordelínea . . . 85

A.10.BrazomanipuladorAX-12 . . . 85

A.11.DiagramadeconexiónparaelbrazoAX-12 . . . 86

A.12.Conexióndelco-procesadorparaimágenesconlainterfazFSL. . . 87

A.13.Subsistemaparaelco-procesadordeimágenes . . . 88

A.14.Efectodelaprogramacióndinámicaenelco-procesador . . . 89

C.1. Diagramadeunacompilación cruzada . . . 100

C.2. ConguraciónLinux-WindowsparamontarLinuxenunFPGA . . . 100

C.3. DiagramadeunaarquitecturasoftwareconLinuxembebido . . . 101

C.4. FlujodediseñoenPetalinux. . . 101

C.5. GeneracióndelaimagenPetalinux . . . 102

C.6. ProcesoparabajarlaimagendePetalinux. . . 103

(13)

2.1. Resumendelasplataformascomerciales . . . 20

4.1. FuncionescapacontroladoresparaelrobotCreate© . . . 38

4.2. FuncionesdelacapabásicaparaelrobotCreate© . . . 40

4.3. Funcionesparalacapaintermedia delrobotCreate© . . . 42

5.1. Resultadosdecorreccióndegiro . . . 60

5.2. Resultadosparalapruebadesonares. . . 61

5.3. Comparacióndelprocesodeconvoluciónentreimágenessoftwareyhardware . . 63

5.4. Resultadosparalapruebadelco-procesadordeimágenes . . . 64

5.5. Tabla comparativa de ventajas y desventajas de usar FPGAs en plataformas robóticas . . . 65

5.6. Comparativaentre laplataformaFPGAylasplataformascomerciales . . . 69

A.1. Tabladecontrolconalgunosdelosregistrospara losDynamixels . . . 87

B.1. FuncionesdelacapacontroladoresdelrobotCreate© . . . 91

B.2. FuncionesdelacapabásicaparaelrobotCreate© . . . 92

B.3. Funcionesdelacapaintermediapara elrobot Create© . . . 93

B.4. Funcionesparalossonares . . . 94

B.5. FuncionesparaelmóduloI2Cylabrújula . . . 95

B.6. Funcionesparalossensoresinfrarrojos . . . 96

B.7. Funcionesparaelbrazomanipulador . . . 97

B.8. Funcionesparaelco-procesador. . . 98

(14)
(15)

Introducción

1.1. Antecedentes

Elprincipalobjetivodelarobóticaeslaconstruccióndemáquinascapacesderealizartareas

con la exibilidad, la robustez y la eciencia que exhiben los seres humanos. Los robots son

potencialmente útiles en escenarios peligrosospara el serhumano, tediosos, difícileso simple-

menteincómodos.En estesentido,setienenalosbrazosrobotsqueseempleanenlasfábricas

deautomóvilesparasoldarypintar,losrobotsmóvilesqueseenvíanaMarteoalgúnlugaren

dondeelserhumanonopuedeingresar,obien losqueseusanparalimpiarcentralesnucleares,

asícomotambiénlosrobots deservicioenloshogares;todosellossonejemplosdeaplicaciones

realesenlascualesseutilizanrobotshoyendía.

Dentrodelcampodelarobóticaexisteunavertientellamadarobóticamóvil,lacualcomosu

nombresugieretrataconrobotsmóviles,loscualessepuedendenircomounacombinaciónde

varioscomponentestanto físicos(hardware)comocomputacionales(software).Un robotmóvil

puedeserconsideradocomounacoleccióndesubsistemasparalocomoción,sensado,ciertonivel

deinteligenciaycomunicaciónentresuscomponentes(Dudek &Jenkin,2000).

Existeunagranvariedadderobots:conruedas,conpatas,brazosmanipuladores,reptantes,

humanoides, trepadores, etc. La forma de locomociónes una característica importante en un

robotmóvil,peroloqueidenticadeunaformamáselacualquierroboteslaformaencomo

combinaasensores,actuadoresyprocesadores.

Lossensoresmidenalguna característicadelentornoopropia(e.g.cámaras,sonares,para-

choques,infrarrojos,etc.),mientras quelosactuadorespermitenalrobothaceralgo,esdecir,

llevaracaboalgunaacciónenrespuestaalosensado,generalmentemoverse(e.g.motores).Los

procesadoreshacenloscómputosnecesariosyrealizanelenlacelógicoentresensoresyactuado-

res,materializandoelcomportamientodelrobotenelentornodetrabajo(Bräunl,2006).Eneste

último punto puedehaberrobots cuyoelementoprocesadorseaunmicroprocesadorobien un

microcontrolador;ambosteniendosusventajasydesventajasdependiendodelafuncionalidady

capacidaddecómputoquesequieraenelrobot.Enlaactualidadhaaparecidounanuevaforma

para la construcción de plataformas robóticas, y es mediante FPGAs, con estos dispositivos

sebuscaque sepuedan usarlasventajasde unmicrocontroladoryun microprocesadoren un

mismodispositivo.TambiénlosFPGAsposeencaracterísticasdeparalelismoyreconguración,

las cuales son buenas opciones para mejorarel poder de cómputode un robot, por ejemplo,

para elprocesamiento de videoeimágenes en tiemporeal. Adicionalmente,elFPGA permite

integrarenunsolochip procesadores,periféricos,memoria,puertos,etc.,reduciendoelespacio,

peso, costoyconsumodepotenciadelaelectrónicadecontrolyprocesamientodelrobot.

Unaplataformarobóticaesunrobotjuntoconlatarjetacontroladora,éstaúltimafunciona

comocerebrodel sistema.Este tipodeplataformasrobóticasseutilizanenlaexperimentación

einvestigaciónenambientesreales.Lasplataformasrobóticasseempleanprincipalmente enla

(16)

fasededesarrollode proyectosdesistemas robotizados,porejemploseutilizanparalaprueba

yvalidación dearquitecturas decontrol,opara examinar algoritmosde navegación autónoma

osemi-autónoma,todomediante diferentes tiposdesensores, actuadoresydemás dispositivos

electrónicos.AsíquerobotscomoPioneer(MobileRobots, Septiembre2008),Khepera(Kteam,

Diciembre2008),pueden serconsideradascomoplataformasrobóticas.

Ahora bien, una plataforma de desarrollo o simplemente plataforma, se reere solamente

alatarjetacontroladora,en estesentido,tarjetascomo laKoreBot (Kteam,Diciembre2008),

Gumstix (Gumstix, Diciembre 2008), Handy Board (HandyBoard, Diciembre 2008), pueden

ser consideradas como plataformas. En este trabajo de tesis se propone una plataforma de

desarrollobasadaenFPGA,alaquesellamaPlataformaFPGA,conestaplataformaFPGA

sebuscaresaltarlasventajasque seobtienen sobrelasplataformasbasadasen procesadoreso

microcontroladores.

Porotrolado,elaugeactualdelosdispositivoselectrónicossedebealaumentodelacapa-

cidaddeintegracióndelosfabricantesdecircuitosintegradosdigitales, dispositivostalescomo

memorias, Micros-Controladores, PLDs (Programmble Logic Devices), CPLDs (Complex Pro-

grammableLogic Devices)yFPGAs(FieldProgrammableGateArrays).Perodichoaumentono

hubierasidoposiblesinuncambioprofundoenlosprocedimientosdediseño,quetuvieronque

pasar desermanualesaestar basadosen herramientas queconsisten en complejosprogramas

decomputadora,esdecir,programasqueutilizanasuvezvariasherramientasparapoderfun-

cionar,coordinarestas herramientasy hacerquetodofuncione bajounsoloprograma,esuna

tareadifícil.Enestesentido,dejadeserprácticodescribirsistemasdigitalesmedianteunesque-

máticoomediante ecuacionesbooleanas,yporello hasidonecesarioeldesarrollodelenguajes

dedescripcióndesistemasdigitalesllamadosHDLs(LenguajesdeDescripciónHardware),entre

loscuales los más usadosson Verilog y VHDL. Aunado aesto se han desarrolladopoderosas

herramientas quepermiten eldiseño desistemas digitales paravarias áreasde aplicación,por

ejemplo,laempresaXilinx(Xilinx,Diciembre2008)cuentaconvariasopcionescomoXilinxSys-

temGenerator©queesunaherramientaquetrabajabajoelentornoSimulinkdeMATLAB©y

permiterealizarsistemasdigitalesoptimizados paraprocesamientodigitaldeseñales.Otrahe-

rramientadelamismacompañíaesPlanAhead©quepermiteoptimizarlosdiseñosdesistemas

digitalesencuantoarestriccionesdeespacioytiempo,ademásdepermitirrealizarrecongura-

ciónparcialdentrodelFPGA.Otradelasherramientasimportantesylausadaenestetrabajo

esEDK(EmbeddedDesignKit),lacualpermiterealizarsistemasembebidosconunaltogrado

deabstracciónencuantoaldiseñodeloscomponentes, deestaforma,elusuarioseenfocaala

funcionalidaddesudiseño,másqueasuconstrucción(Xilinx-2,Febrero2008).

Uno de losdispositivosdigitales hardware máspoderososque existen enla actualidad son

losFPGAs.LosFPGAssondispositivosprogramablesdepropósitogeneralcongrancapacidad

deintegración,sonmatricesdecompuertasprogramablesenelcampo,esdecir,lafuncionalidad

delFPGAesdenida por unprogramadeusuarioenlugarde estardenida porelfabricante.

También los FPGAs poseen característicascomo paralelismo y recongurabilidadque losha-

censer dispositivos interesantes para serusados enla fabricación de plataformas para robots

móviles.LosFPGAsofrecenventajassobrelossistemasbasadosenmicroprocesadoresymicro-

controladores como el paralelismo, reconguración yrealización de sistemas embebidos en un

chip,talycomosepresentaalolargodeestetrabajo.

(17)

1.2. Objetivos

El objetivo general de esta tesis es: proponer una plataforma FPGA Hardware/Software

básicapara aplicacionesen robóticamóvil. El conceptobásico paraeste trabajosedeneen

lasección1.3

Paracumpliresteobjetivogeneral,sejaronlossiguientes objetivosparticulares:

DesarrollarunaarquitecturahardwarebasadaenFPGAparaintegrardeformafuncional

unrobotmóvilconsuscomponentes.

Desarrollar una arquitectura software que permita controlar los elementos hardware e

implementaraplicacionesenunlenguajedealtonivel.

Desarrollaruna plataformaFPGA quede soporte atres componentes principales: robot

móvil,brazomanipuladorysensores.

Validarlaplataformaconaplicacionesyexperimentosquereejenlasventajasdeusarel

FPGA.

1.3. Alcances y limitaciones

Enestetrabajoserealizaunaplataforma(i.e.tarjetacontroladora/procesadora)pararobots

móvilesbasadaenFPGAs.Laplataformadasoporteaunrobotmóvilcomercialdelacompañía

iRobot llamadoCreate©,el cualpara sulocomociónconstaconunarreglo depardiferencial

con dos ruedas de tracción y una rueda tipo caster. Este robot se usa como base para ser

controladomediantelaplataformaFPGA, esdecir,seaprovechalacarcasa,lapartemecánica

y la parte de control de motores del robot. Pero la plataforma FPGA no ésta sujeta sólo a

este tipo de robot, es decir, la plataforma FPGA puede ser independiente del tipo de robot

móvil utilizado,siempreycuandoelrobot móviltengaunainterfaz abajonivel yesainterfaz

puedaserimlementadaconlalógicadelFPGA,entonceselrobotmóvilpuedeserincorporado

ycontroladomediantelaplataformaFPGA.LaplataformaFPGAtambiéncuentaconsensores

yactuadores, en concretocuenta con unbrazomanipulador,cinco sonares, unabrújula y dos

sensoresinfrarrojos.Laincorporacióndeestossensoresmuestralaexibilidaddelaplataforma

FPGA para poder incorporar una gran variedad de sensores/actuadores,nuevamente el tipo

deinterfaz de lossensores/actuadorestiene quesercompatible conlosrecursosdel FPGA, la

interfaz en un sensor/actuador comercial para robótica en la mayoría de los casos puede ser

incorporadousandolalógicadelFPGA.

ElalcanceprincipaldeestetrabajoesrealizarunaplataformabasadaenFPGApararobótica

móvil con elementos comunes en este tipo de robots, así como el proporcionar una serie de

experimentosquehagannotarqueunaplataformabasadaenFPGAstieneciertasventajascon

respecto a las plataformas basadas en microprocesadores o microcontroladores tradicionales.

Dentro de estos experimentos se tiene:añadir distintos tipos de sensoresa la plataforma con

elobjetivode demostrarquenoimportalaformade comunicacióndelossensores,siempre se

podráintegrarlamayoríadelossensoresutilizadosenrobótica.Otroexperimento eselprobar

elbeneciodel usodeco-procesadores,aumentandoasíelpoderdecómputoenunsistema,en

estecaso,serealizanpruebasdeprocesamientodeimágenesanivelhardware,aprovechandoel

paralelismoqueofrecenlosFPGAs.

La plataformapropuesta eneste trabajoes básica,donde básica signicaquedasoporte

sóloparaalgunossensores/actuadorestípicosdeunrobotmóvil(e.g.sonares,brújulaysensores

infrarrojos)ydasoportetambiénparaelcontroldeunrobotmóvilcomercial.Paraestetrabajo

loselementosquecontrolalaplataformaFPGAson:robotCreate,sonares,sensoresinfrarrojos

(de proximidad y seguidor de línea), brazo manipulador, control de motores (i.e. ruedas del

(18)

para controlar los elementos de la plataforma en un lenguaje que sea fácil de usar para los

programadoresconvencionales de robots, éstas funciones seencuentrandivididas en capas de

abstracción.

En cuanto alambientede prueba, setrabajaen unambiente estructuradoespecícamente

paravalidarelfuncionamientodelaplataformaFPGA.Eltipodeambienteesinteriorconcier-

tosobjetosextraparaeldesarrollodelosexperimentoscomomarcasenelsuelo,objetosparaser

transportados,basesparasostenerobjetos,entreotros.Laspruebasqueserealizanestánorien-

tadasprincipalmente alcorrectofuncionamientodelaplataformamásqueaprobaralgoritmos

inteligentes denavegación,odeevasióndeobstáculos,odecinemáticadelbrazomanipulador,

etc. Sin embargo, la plataforma debefacilitar la integración de este tipo de algoritmoscomo

trabajosfuturos.

LaplataformaFPGAestádivididaendospartes:laarquitecturahardwareylaarquitectura

software, aunque ambas partes funcionan en conjunto. La parte hardware debe tener toda el

hardware necesaria para dar soporte tanto al robot móvil como a lossensores. Mientras que

a nivel software, se debe ofrecer toda la programación necesaria y un conjunto de funciones

parapodermanipularelhardware delrobot. Ambasarquitecturas estánhechaspara quesean

abiertas, es decir, que se puedan añadir más componentes y funcionalidades tanto a nivel

hardwarecomosoftware.

La nalidad de incorporar el brazo manipulador es sólo para dar mayorfuncionalidad al

robot, nosepretendenexplorar nuevostécnicasparael manejode lacinemáticadelbrazo. El

brazosoloesusadopara transportarobjetos deunlugaraotroenelambiente deprueba.Las

funciones de alto nivel que seofrecen para el brazo permiten movercada uno de los motores

así como manipular sus parámetros (e.g. torque, ángulo de giro, velocidad de giro, etc.). Sin

embargo,la plataforma softwareesta diseñada para poder programarla cinemáticadel brazo

comountrabajofuturo.

Finalmente con este trabajo sepropone una plataforma para robots móviles en donde se

aprovechen las ventajas que ofrecen los dispositivosFPGA (e.g. paralelismo, reconguración)

para incrementar el desempeño delrobot. Laplataforma FPGA propuestaen este trabajono

ofrece ventajas signicativas aparentes, más bien los experimentos realizados y los resutados

obtenidos tienenel objetivode darun primer paso ydejar indicios clarosdelas posibilidades

que pueden alcanzarsepara realizaruna plataforma más robusta (i.e. soportar algoritmosde

visióneimplementar tareasen hardware queayuden alprocesador)ycompleta (i.e.que sirva

paradarsoporteamúltiplesrobots,sensoresyactuadores)quemuestrenelverdaderopotencial

deusardispositivosFPGAs.

1.4. Organización de la tesis

En esta tesis se propone una plataforma FPGA, cuya arquitecturas hardware y software

están orientadaspara aplicacionesen robótica móvil. La tesis seencuentraorganizada en seis

capítulos.

En elcapitulo 1sepresenta unabreveintroducciónaltrabajo ademásde losobjetivos,los

alcancesylaslimitaciones.En elcapítulo2semuestranlosfundamentosteóricosdelasplata-

formasexistentesenelmercadopararobóticamóvil,suscaracterísticas,algunasespecicaciones

decómoestánconstruidasycualessonlosprincipalessensoresyactuadoresconlosquecuentan.

Porotro ladoen el capítulo 3se expone brevemente lo que sonlos sistemas embebidos y los

FPGAsydecomoestosdossepuedenfusionarparaformarsistemascompletosenunsolodis-

positivo.Enelcapítulo4sepresentaeldiseñodelaplataformaFPGA,laplataformasedivide

en la parte hardware y la parte software, seilustran las funcionalidades de cada componente

delaplataforma asícomolasventajas queofrecelaimplementaciónenFPGA. En elcapítulo

5se muestrala implementación de laplataforma FPGA asícomo los experimentos y resulta-

dosobtenidos,también sedenen las característicasdel robot móvil de prueba queseutiliza.

(19)

vericar que la plataforma funciona correctamente yotros que muestran las ventajas de usar

FPGAs.Finalmente en elcapítulo 6 sedan aconocer lasconclusiones ylostrabajos afuturo

delatesis.

(20)
(21)

Plataformas para robótica móvil

2.1. Deniciones

Antes decomenzar aanalizaralgunas de lasplataformas para robóticamóvil que existen,

es necesario realizaralgunas deniciones que seseguirán en este trabajo de tesis y asíevitar

ambiguedades.Lassiguientesdenicionesestánrelacionadasconeltérminoplataforma,algu-

nosfabricantes einstitucionessiguenestas denicionesyporloquerespectaaestetrabajo se

tomarándelasiguientemanera:

Plataforma/Plataformade desarrollo. Eltérminoplataforma(oplataformadedesarrollo)

para estetrabajosereere aunatarjeta controladorapararobotsmóviles,esdecir,una

tarjeta que ofrece hardware (e.g. memorias, puertos de expansión, conectores, procesa-

dores,microcontroladores,FPGAs, etc.) y software (e.g. herramientasde programación,

ambientes de simulación, bibliotecas de funciones, etc.) que sirve para controlar robots

móviles. De estamanera tarjetascomo EyeBot, Gumstix, KoreBot, pueden ser conside-

radas como plataformas. Así que cuandose vea el términoplataforma (o plataforma de

desarrollo) se debe pensar en una tarjeta controladora, existen plataformas basadas en

microprocesadoresoenmicrocontroladores.

PlataformaFPGA. Es una tarjeta controladora/procesadora que funciona como cerebro

paralosrobotsmóvilesyqueestabasadaenunFPGA.Dichatarjetatiene alFPGAco-

moelementoprincipaljuntoconotroselementosadicionales(e.g.memoriasROM,FLASH,

RAM, conectores, botones, leds, pantallas LCD, etc.). Además dentro del FPGA seen-

cuentra implementado un sistema embebido que sirve para realizartareas de control y

procesamientodedatos.

Plataformarobótica. Seconsideraunaplataformarobóticaalrobotmóviljuntoconsutar-

jeta controladora,deestamaneralosrobotsquesevenden comercialmente (e.g.Pioneer,

PowerBot,Kephera,Surveyor,etc.)pueden serconsideradosplataformasrobóticas.

Lasplataformas robóticasseempleanprincipalmente enproyectosdeinvestigación,en donde,

porejemplo,seutilizanparalapruebayvalidacióndearquitecturasdecontrol,oparaexaminar

algoritmosdenavegaciónautónomaosemi-autónomaycuentancondiferentestiposdesensores,

actuadoresydemásdispositivoselectrónicos.

Una de las razones principales por la que grupos de investigación en robótica optan por

desarrollar sus propios prototipos de plataformas robóticas es el poder explorar y proponer

nuevos algoritmosynuevas alternativasarquitecturales anivel hardware que puedan sermás

interesantes(i.e.exibles,conmayorpoderdecómputo,etc.)comparadasconlasyaexistentes.

Esporéstoquevariasinstitucionesuniversitariasycentros deinvestigación entodoelmundo

handesarrolladodiversosrobotsexperimentales.

(22)

Ahorabien,existendiferentesnivelesdeprototipos,ungrupodeinvestigaciónpuederealizar

todalaplataformarobóticadesdecero,esdecir,conseguirlosmotores,ruedas,carcasa,sensores

(inclusoconstruirlos desde laelectrónica), etc., eir construyendo elrobot dependiendo de las

necesidades del proyecto. Esta forma puede ofrecer un robot totalmente hecho a la medida

pero difícil ytediosode realizar.Unaforma másdirectade construiruna plataforma robótica

es conseguir partes yaelaboradas (i.e. un robot comercialcon las necesidades de locomoción

sucientes, sensores especiales para robots y otros aditamentos como brazos manipuladores,

cámaras,etc.),eirconstruyendolaplataformauniendotodasestaspartes.Estotienelaventaja

dequesepuedeconstruirunrobot móvil tancomplejocomoserequiera,conlaspartes quese

necesiten,queseaaltamentemodular, expansibleyexible.

Con loanterior, laventajade construir una plataforma robóticapropia esprincipalmente

en la exibilidad y escalabilidad que se obtienen. La exibilidad se logra cuando se tiene un

dispositivo en el cual se pueda implementar una gran variedad de módulos electrónicos, que

puedanserprobadosunayotravezenelmismodispositivo,esdecir,dispositivosquepermitan

implementarunagranvariedaddearquitecturashardwarequeseadecuenalasnecesidadesdel

proyecto.Enlapartesoftwaretambiéntienequehaberexibilidad,esdecir,poderimplementar

variostiposdesistemasoperativosdeacuerdoalascaracterísticasqueseesténbuscando.Porlo

querespectaalaescalabilidad,unaplataformahardwaredebetenerlosrecursossucientespara

poderle añadir más dispositivos, protocolos de comunicación, sensores, procesadores, etc., sin

tenerquemodicartodoogranpartedelsistema.Anivelsoftware,seesperaquelaplataforma

sea escalable,esdecir, tener toda lainfraestructura abajonivel para poder implementar una

arquitectura software máselaboraday queéstasepueda ampliarpara realizarfuncionescada

vez máscomplejas,nuevamentesin tenerquerediseñartodalainfraestructurasoftwarequeya

setiene.

Las plataformas permiten al usuario programar de una manera más fácil sus algoritmos.

También una plataforma puede ofrecer distintas opciones a nivel hardware que permitan al

usuarioenriquecerlosrecursosconlosquecuentayasípoderrealizaraplicacionescadavezmás

complejas(Muñozetal.,2006).Enlasiguientesecciónsehablaendetalledelasplataformasde

desarrollo.

2.2. Plataformas de desarrollo

Lasplataformas dedesarrollosonlastarjetascontroladorasque sepueden adquirircomer-

cialmente obienrealizarlasdeformapersonalizada, ysirvenparacontrolarelrobotmóvil.

Lasaplicacionescon robotsmóvilespresentancadavezmayorcomplejidadyofrecenmayor

funcionalidad. De ahí la importancia de tener toda una infraestructura necesaria para poder

solventartodaesacomplejidad yfuncionalidadquepuedetener unrobotenespecíco.Enesta

parteesdondesedaelorigenyladiferenciaentrelapartehardwareylapartesoftwaredeuna

plataforma.

Lapartehardwareestodalaestructurafísicadelatarjetaelectrónicaquecontrolaalrobot.

Estaelectrónicageneralmenteconstadeunatarjetaquecontienedispositivoselectrónicospara

controlartodoslos elementos (i.e. sensores,actuadores, motores, cámaras,etc.) comoun con-

junto. Dentro deesta tarjeta,lacual podría considerarsecomo elcerebrodel robot, setienen

memoriasROM,RAM,FLASH,convertidoresA/D,convertidoresdenivelesdevoltaje,proce-

sadores,microcontroladores, FPGAs,DSPs, etc.Para poder controlarycoordinartodosestos

dispositivosserequieredesoftware.

Porloque respectaala parte softwarede laplataforma, setiene que elmodoen como se

programanlosrobotsha idoevolucionando. Históricamentelosrobots eran desarrollosúnicos,

no se producían en serie, y los programas de control se construían empleando directamente

loscontroladores(drivers)paraaccederalosdispositivossensorialesydeactuación.Elsistema

(23)

datosdelossensoresyenviarconsignasalosactuadores,invocandodirectamente lasfunciones

delabibliotecaqueofrecíaelfabricante ensus controladores.

Con el asentamiento de los fabricantes, el trabajo de muchos gruposde investigación y el

crecimiento en las aplicacionesrobóticas en cuanto a complejidad han ido apareciendoplata-

formasdedesarrolloqueofrecencapasdeabstracciónanivelsoftware,lascualessimplicanel

procesodeprogramacióndeaplicacionesrobóticas.Lascapasdeabstracciónenunaplataforma

de desarrollo ofrece acceso más sencillo a sensoresy actuadores, suelen incluir un modelo de

programación que establece una determinadaorganización del software y permite manejar la

crecientecomplejidad delcódigocuandoseincrementalafuncionalidaddelrobot(Cañasetal.,

2004;Cañas&Matellán,2002).El diseñadorprogramasusaplicacionesrobóticasnalessobre

estascapasdeabstracción,tal ycomo lomuestralagura2.1.

Figura 2.1: Programación de robots sobre controladores especícos de sensores y actuadores

(izquierda),sobrecapasdeabstracciónquehacenelmanejodelhardwaremássencillo(derecha),

yaquelascapasdeabstracciónofrecenbibliotecasdefuncionesqueestánenunlenguajefamiliar

paraunprogramadorconvencionalderobots.

Normalmenteelsoftwaredelasplataformasofrecenunaccesoabstractoysimpleasensoresy

actuadores.Porejemplo,sisedisponedeunrobotPioneerequipadoconunsensorláserSTICK,

laaplicaciónpuede acceder asus medicionesatravésde lasfunciones dela plataformaARIA

(MobileRobots,Septiembre2008)opedirlasyrecogerlasdirectamenteatravésdelpuertoserie.

El acceso abstracto también se ofrece para losactuadores. Por ejemplo, en vez de ofrecer

comandosdevelocidadparacadaunadelasdosruedasenunrobotconarreglopardiferencial,

sepuedeofrecerunasencillainterfazdeV-W(velocidaddetracciónydegiro)paralaactuación

motriz,lacualseencarga dehacerlastransformacionesoportunas,deenviaracadaruedalas

consignasnecesariasparaqueelrobotconsigaesasvelocidadescomandadasdetracciónygiro.

La uniformidad en las funciones software para el acceso al hardware es el primer paso para

favorecerlareutilizacióndesoftwaredentrodelarobótica.

Enlassiguientesdosseccionessehablaacercadelascaracterísticasquedebetenerelsoftware

paraunrobotmóvil,ademásseanalizanunpocolasdiferentesopcionesquesetienenencuanto

alossistemasoperativosqueexistenpararobotsmóviles.

2.2.1. Software de robots

Lacreacióndeaplicacionespararobotsnodiereenlogeneraldelacreacióndeaplicaciones

enotrosámbitosdelsoftware.Elprogramadortienequeescribirlaaplicaciónenciertolenguaje,

compilar y enlazar su códigocon las bibliotecas de la plataforma y/o del sistema operativo,

y nalmente ejecutarla en los procesadores abordo del robot. Aunque la dinámica sea simi-

lar, las aplicaciones de robots móviles sí presentan requisitos especícos que condicionan las

(24)

Escribirprogramaspararobotsmóvilesesunatareacomplicada,yaquelosrobotssonsiste-

mascomplejos,requierende estarsensandocontinuamenteyalmismo tiempotomar acciones.

Acontinuaciónsepresentanalgunascondicionespropiasdeestetipodeaplicaciones.

Losprogramasderobotsmóvilesestándirectamenteconectadosaambientesdeprueba,a

travésdesensoresyactuadores.Estoimplicaqueelsoftwaredebeserágil,tomardecisiones

con rapidez para controlar los actuadores. Por esta razón, se requiere de actuación en

tiemporeal 1

,sinoestricto,almenosblando 2

.

Una aplicación de robots móvilestípicamente debe estarpendiente de varias fuentes de

actividad yobjetivos alavez.Porelloestasaplicacionessuelenserconcurrentes,eneste

sentido,lossistemasoperativospararobotsdeberíanincorporarmecanismosdemultitarea

ycomunicacióndeinterprocesos.

Otracuestiónrelevantequedebencontemplarlasaplicacionesessuinterfazgráca.Aun-

quelainterfazgrácanoesindispensableparagenerarymaterializarelcomportamiento

autónomo en elrobot, normalmente resulta útil como herramienta deinteracción conel

usuario,yaseaparavisualizarresultados,depurar,seleccionaropciones,etc.

Los programadores de robots se enfrentan a una creciente heterogeneidad, en distintos

sentidos, que diculta su tarea. En cuanto al hardware, existe una gran diversidad de

dispositivos de percepcióny de actuación,así como de interfacesconlas cuales unpro-

gramador debe estar familiarizado si quiere escribir programasfuncionales para robots.

En cuanto al software, las aplicaciones de robots no cuentan con un marco estable, no

hay estándares abiertos que propicien la colaboración, la reutilización y la integración

decódigo.Esta faltasedebeenpartealaheterogeneidadimplícitaenrobótica,tantoen

hardwarecomoensoftwareyenpartealainmadurezdelmercadoderobotsprogramables.

Aunquehoyendíaexisteninteresantesalternativaseimportantesavancescomoporejem-

plo el software Player/Stage (PlayerStage,Junio 2008) oel Robotic Studio de Microsoft

(RoboticStudio,Junio2008).

2.2.2. Sistemas operativos

Lamisión principal delsistema operativo(SO) esofreceralosprogramasunaccesobásico

alhardwaredelrobot,permitirlamanipulaciónyusodeestehardwaredemaneratransparente

desdeestosprogramas.FundamentalmenteelSOdebeincorporarcontroladoresquedensoporte

softwaredebajonivelalosdispositivosfísicos.Elsistemaoperativosueleincluirtambiénsoporte

parael hardwarede comunicaciones(e.g. tarjetasde redinalámbricas,protocolosserial,USB,

etc.)yparaloselementosdeinteraccióndelrobot(e.g.botonesfísicos,interruptores,pantallas,

etc).

Gran parte delos robotsactualesincluyen sistemas operativosde propósito especíco.Sin

embargo,desde hace algún tiempo se ha extendido el usode sistemas operativosde propósi-

to general, empleandoen el robot bien computadoras portátiles ocomputadorasde escritorio

empotradas.El motivoprincipalde laamplia aceptacióndelosSOdepropósitogeneralessin

duda la ventajosarelación prestaciones-precio. Existen por otra parte algunas desventajas al

usarestetipodecomputadoras,comoeltamaño,potenciacomputacionallimitadaparaciertas

aplicaciones,consumodepotencia,nopuedenoptimizarseconfacilidadconrespectoalhardware

queusaporserdeusogenérico,entreotras.

1

Unsistemaentiemporealsignicaquelastareasquerealizadebenproducirsedentrodeunosintervalosde

tiempodeterminadosporladinámicadelsistemafísicoquesupervisanocontrolan.

2

Enunsistemadetiemporealblandoseintentancumplir losplazosdeejecución,peroencasoquealguna

(25)

LossistemasoperativosdepropósitogeneralcomoLinuxoWindowssehanadentradoenel

mundo delosrobots. Estos sistemas,ademásde loscontroladoreshardware,incluyen abstrac-

ciones y un conjunto extenso de bibliotecas genéricas, útiles para la programación de robots,

talescomolasbibliotecaseinterfacesparamultitarea,comunicacioneseinterfacesgrácas.

Hablandoen unsentidogeneral, GNU/Linux,esunsistema operativoquehaganadogran

aceptaciónenlacomunidadrobótica,porelpotentesoportedeGNU/Linuxparalamultitarea,

las comunicaciones remotas y las bibliotecas grácas existentes en ese entorno lo hacen un

sistema operativorelevantepara lasaplicacionesde robotsmóviles.En particularGNU/Linux

proporciona herramientas ecientes y exibles que permiten abordar con éxito la naturaleza

concurrente,distribuida y la necesidad de visualización típicas de los programaspara robots

(Cañasetal.,2004).

Recientementesehanhechoesfuerzosparadesarrollarsistemasoperativosenfocadosúnica-

mentearobots,unejemplodeelloeselRoboticStudiodeMicrosoft(RoboticStudio,Junio2008),

elcualsepuededenircomounainterfazvisualbasadaenWindowsparaelcontrolysimulación

derobotsmóviles,gura2.2.

Figura2.2:MicrosoftRoboticStudio: ambientesdeprogramaciónysimulación.Figuratomada

deRoboticStudio(Junio2008)

Robotics Studio está especialmente diseñado para programadores académicos, de entrete-

nimiento o comerciales y soporta una gran variedad de hardware para robots. Dentro de las

característicasprincipalesdeestaherramientaestán:

Plataformadedesarrollopara aplicacionesenrobótica.Herramientadeprogramaciónvi-

sual para creary depuraraplicaciones robóticas.El desarrolladorpuede interactuar con

(26)

Simulación3-D. Lasimulaciónrealista estáprovistaporel motorPhysX de AGEIA. Se

posibilitalasimulaciónporsoftware.

Entorno de ejecución orientado aservicios. El desarrolladorpuede acceder fácilmente a

lossensoresy actuadoresde losrobots, pormediode unalibrería deimplementaciónde

concurrenciabasadaen.NET. Lacomunicaciónestásbasadaenmensajes,permitiendola

comunicaciónentre módulos.

Existen otros ejemplos interesante de sistemas operativos para robots son el proyecto Pla-

yer/Stage (PlayerStage,Junio2008)yEvolution Robotics (Evolution,Agosto2008).

2.3. Plataformas comerciales

Enestasecciónsehablayseanalizanlascaracterísticasprincipalesdealgunasdelasplata-

formascomercialesexistentesenelmercado.Estasplataformassonalgunasdelasmásutilizadas

poracadémicos,estudiantesycentrosdeinvestigaciónengeneralyaqueofrecenunabuenavarie-

daddeprestacionesanivelhardwareyherramientassoftwareparapoderprogramarlas.Además

estastarjetassonunabuenaalternativaparaprobardesdealgoritmossimplesdecontrolhasta

algoritmosmáscomplejoscomodenavegación,seguimiento,visión,entreotros.

2.3.1. Handy Board

Handy Board (HandyBoard,Diciembre 2008)es unatarjeta controladorapara robots am-

pliamente utilizadaenelmercado. Estatarjetafue desarrolladaenel InstitutoTecnológicode

Massachusetts (MIT) por Fred G. Martin. La Handy Board es usada principalmente en las

universidades y por usuariospara proyectos académicos de mediana complejidad (i.e. control

demotores,controldemenosdetressonares,robots pequeñosde dimensionesaproximadasde

40 × 40

cm ysoportepara unos cuantos sensores más).En la gura2.3 semuestra la tarjeta

HandyBoardylaversiónsimplicadaHandyCricketdelacualsehablamásadelante.

Figura2.3:TarjetaHandyBoard(izquierda)yunaversiónsimplicadallamadaHandyCricket

(derecha).Ambastarjetassonusadascomocontroladoresderobots,sirvenparaaplicacionesde

medianonivelendondenoserequiereprocesargrandescantidadesdedatos,comoporejemplo

en algunos algoritmosde visión por computadoracomo larecuperación en 3D, extracción de

movimientoyseguimientomultiobjetivo,entreotros.Figuratomada deHandyBoard(Diciem-

bre2008)

DentrodelascaracterísticasimportantesdelaHandyBoardsetiene:

(27)

Relojdesistemaa2MHz

32KBdememoriaRAM

SoporteparamotoresDC,sensoresIR,bus SPI

Busdeexpansiónparaconectarotrastarjetas

Existen una tarjeta de expansión para la Handy Board, la cual añade otras características,

básicamente da mayorsoporte para controlar más dispositivos. Dentro de las características

principales de esta tarjeta de expansiónestán: 10 entradasanalógicas adicionales, 4 entradas

para sensores LEGO, 9 salidasdigitales, 6 señales para el control de servos,conector para el

sonarPolaroid6500y unáreadeprototipadodepropósitogeneral, éstaúltimaesuna especie

deprotoboard.Lagura2.4muestralatarjetadeexpansiónparalaHandy Board.

Figura 2.4: Tarjeta de expansión para la Handy Board. La tarjeta de expansión le da mayor

funcionalidada la Handy Board y da soportea más sensors y actuadores. Figura tomada de

HandyBoard(Diciembre2008)

En cuanto al software para programar la Handy Board se tienen 2 opciones: programar

directamente el microcontrolador con las herramientas de Motorola, o bien se puede usar la

herramienta Interactive C, ésta última es la más común. Interactive C (IC) es multi-tarea y

consiste en uncompilador y unmódulo de lenguaje máquina que funciona en tiempode eje-

cución(run-time machinelanguage). ICesunsubconjuntodel lenguajeC,incluyendoalgunas

estructuras de control, declaración de variables globales, locales, arreglos, apuntadores, entre

otrascaracterísticas.

Existe una versiónmodicada de la Handy Board llamada Handy Cricket (HandyBoard,

Diciembre2008).Handycricketesmenospotente quelaHandyBoardencuantoadesempeño

computacional,perolaHandyCrickettienelasventajasdesermáspequeña,ligeraybarataque

laHandy Board. En cuanto al softwareque usalaHandy Cricket,utiliza ellenguajeCricket

Logo,elcualesunaversiónsimplicadadellenguajeLogo.Acontinuaciónseenlistanalgunas

delascaracterísticasmásimportantesdelatarjetaHandyCricket:

Control paramotoresyluces.

(28)

Aplicacionesdeestetipodetarjeta:controlderobotspequeños, juguetesautomatizados,

lecturadetemperatura,etc.

Busde expansiónpormediodelcualsepueden conectardiversastarjetaspara controlar

másmotores,servos,desplegadores,reelevadores.

2.3.2. Bot Board

LaBotBoardII,desarrolladaporLynxmotion(Lynxmotion,Diciembre2008),esunatarjeta

quedasoporteavariosmicrocontroladoresBasicAtomdelamismacompañía.Latarjetaintegra

variosperiféricosparacontrolarmotoresyalgunossensoresperoquesucaracterísticaprincipal

es que puede ser controlada hasta por 6 diferentes microcontroladores de 24 ó 28 pines. La

gura2.5 muestra laBot Board junto con los microcontroladoresque soporta. Dentro de las

característicasprincipalesdeestatarjetaestán:

DasoporteparaservosymotoresDC

Entradasanalógicasydigitales

PuertoPS2paraconectaruncontroladorPlayStation

Interfaz de usuario por medio de leds y botones, en donde el usuario se da cuenta del

estadodelatarjeta

Bocinaparagenerarsonidosmediantecomandosespeciales

Figura 2.5: Tarjeta Bot Board II y los microcontroladores que pueden ser utilizados en ella.

FiguratomadadeLynxmotion(Diciembre2008)

En cuanto alsoftwareque seutilizapara programarlaBotBoard,seusaelAtomProLan-

guage, elcualesuna versiónlimitadadellenguajeBasic ytiene uncompiladorelcualincluye

funcionesespecícasparacontrolarlosperiféricosdelatarjeta.

Encuantoalastarjetasdeexpansión,setienenalatarjetaSSC-32quesirveparacontrolar

(29)

2.3.3. KoreBot

KoreBotesunatarjetadelaempresaK-team(Kteam,Diciembre2008)quefuediseñadapara

incrementareldesempeñodelrobotmóvilKoala.Estatarjetaposeeunsistemaoperativoembe-

bidobasadoenLinuxparaelfácildesarrollodeaplicaciones,estábasadaenunmicroprocesador

XSCALEPXA-255a400MHzytienelassiguientescaracterísticas:

MemoriaRAMde64MBymemoriaashde32MB.

BusI2C,SPI/SSP

InterfazUARTBluetooth

TarjetadesonidoAC97

50pinesE/Sdepropósitogeneral

ControladorLCD

PinesparaseñalesPWM

Enlagura2.6semuestralatarjetaKoreBotlacualtieneeltamañoaproximadodeunatarjeta

de crédito. En cuanto a las tarjetas de expansión, KoreBot tiene la capacidad de poder ser

conectadaconotrosmódulos delamismacompañía,comoelKoreMotor,KoreSound,KoreIO,

los cuales sirven para conectar motores DC, conectar señales de audio y puertos E/S tanto

analógicoscomodigitalesrespectivamente.

ElsoftwarequeseutilizaesunadistribucióndeLinux2.4.19yunprogramadorfamiliarizado

con Linux puede desarrollar aplicaciones para la KoreBot (Kteam, Diciembre 2008), sólo es

necesariotenerlasherramientasdecompilación-cruzada(cross-compilation)parapoderejecutar

elprogramaenlaplataformaKoreBot.

KoreBot es utilizada como cerebro para los robots Kephera III de la misma compañía.

También seusa en el Spiderbot el cuales un robot con patas y algunos otros proyectosen

centrosdeinvestigación.

Figura2.6:TarjetaKoreBotusadaparaaplicacionesembebidasderobótica,aunquetambiénse

usaparaaplicacionesdepropósitogeneral.Figura tomadadeKteam(Diciembre2008)

2.3.4. Gumstix

Gumstix (Gumstix, Diciembre 2008) es la marca registrada de una computadora en una

tarjetabasadaenelprocesadorIntelXScale(400MHz-600MHz).Alatarjetasepuedeacceder

(30)

empotradoy es utilizada para aplicacionesde propósito general, es simplemente una compu-

tadorapequeña que ofrececiertasprestaciones encuanto adesempeño yperiféricos.La gura

2.7muestralatarjetaGumstix VerdexPro,lacualesunadelastarjetasmáspopularesdentro

delagamaGumstix. Lascaracterísticasprincipalesdeestatarjetason:

64MBdeRAMy16MBdememoriaFlash

adaptadormicro-SD

3conectoresde60,80y24pinesparaconectartarjetasdeexpansión

InterfazUSB

3puertosUART

hasta90pinesE/S

BusI2CyBluetooth

Figura 2.7: Tarjeta Gumstix utilizada como computadora pequeña de propósito general, es

pequeña yliviana. GumstixesparecidaalaKoreBot,sóloque estaúltima estáorientadama-

yormenteparaaplicacionesrobóticas.FiguratomadadeGumstix(Diciembre2008)

2.3.5. Plataformas para Visión

Existenalgunasplataformasdedicadasalapartedevisiónenlosrobots. Lavisiónesquizá

unodelossensoresmásimportantes enunrobot.La visióncomputacionalesuna delasáreas

deinvestigacióncon muchointerés, yaqueel proveerdel sentidode lavista aunrobotmóvil

puede darle ventajas similares de navegación, localización y percepción que a los animales o

personas. Desafortunadamente los algoritmos de visión computacional son muy demandantes

computacionalmente (del ordende varios GOPS)para tareas de complejidad medianay alta,

estoha llevado alosalgoritmosasersimplicados parapoderusarlos en robóticamóvil. Una

alternativaesintegrarelprocesamientoalacámara(Rodriguez&Arias,2002;Arias&Torres,

2001),yasídescargaralprocesadordetareasdebajoniveldelavisión.Siguiendoestalosofía

sehandiseñadoalgunas plataformasparavisión robótica.Acontinuación seanalizandospla-

(31)

EyeBot

EyeBot (Eyebot, Diciembre 2008) es una tarjeta controladora para robots, la cual puede ser

usadaenrobots conruedas,robotscaminantes, etc.Sebasaenunmicrocontroladorde32bits

con un desplegador grácoy una cámara digital en escala de grises o acolor. La cámara es

unatarjetaapartedelaEyebotyseconectadirectamente alEyeBot.Estopermiteprogramar

potentesaplicacionessinlanecesidaddeunacomputadoragrandeypesadaquetengaquecargar

elrobotyademássintenerquesacricarlapropiedaddevisióndelrobot.Lagura2.8muestra

latarjetaEyeBotylacámaracompatibleconestetipodetarjeta.

Figura2.8:TarjetaEyebot(izquierda)ycámaraEyeCamcompatibleconEyeBot(derecha).La

tarjeta EyeBot seusa para aplicaciones sencillas de visión y maneja algunos motores. Figura

tomadadeEyebot(Diciembre2008)

DentrodelascaracterísticasprincipalesdelatarjetaEyeBotestán:

Programacióndeaplicacionesquecontenganprocesamientodeimágenes

Extensiónparacontrolarmecanismosysensorespropios

LCD grande(64x128pixels)

ProgramaciónmediantelenguajeColenguajeensamblador

2puertosseriales

puertosdigitalesdeE/S

puertosanalógicos

micrófonoybocina

En cuanto a la cámara EyeCam se tiene que es una cámara acolor de 24 bits de resolución

porpixel,tieneunabajaresolución(

80 × 60

)yunamedianaresolución(

480 × 640

),utilizaun

sensorcontecnologíaCMOS,elcualtiene unmejorrangodebrilloquelascámarasCCD,otra

característicadelaEyeCam essutamaño(

3 × 3,4

cm).

ElsoftwarequesenecesitaparaprogramarlaEyeBotylaEyeCamsellamaRoBIOS,que

consisteenunconjuntodebibliotecasqueofrecendiferentesfuncionesparaelprocesamientode

imágenes, salidaalLCD,conguraciónde lacámara, semáforos,manejo temporizadores, con-

trolde puertosseriales, etc.Dentro delasfunciones deprocesamiento deimágenessetiene:el

operadorlaplaciano,operadordesobel,operadordedithering,diferenciadeimágenesyconver-

sióndeimagenRGB aescaladegrises.EyeCamesunatarjetaquetiene pocasoperacionesde

(32)

CMUcam

CMUcam(CMUcam,Diciembre2008)esundispositivodebajocostousadoparaaplicacionesde

visiónpor computadora. Básicamente lagama decámarasCMUcams (CMUcam1,CMUcam2

y CMUcam3) se basan en una cámara de video pequeña y un microcontroladorcon interfaz

serial.LaCMUcamfuepensadaparaserliviana,pequeñaydebajocosto,ademásdepoderser

usadaporotrosmicrocontroladorescomotarjetaqueseadhiereaunaplataformamásgrande.

LaCMUcampuederealizartareasdeprocesamientodeimágenesydeseguimientodepequeños

objetos dentro de la imagen, la plataforma CMUcam es muy utilizada en los robots móviles

para agregarlela capacidadde visión a losrobots. Lacámara originalmente fue hecha por la

universidaddeCarnegie-Mellonydespuéssulicenciafuedadaparavariosfabricantes.Lagura

2.9muestralatarjetaCMUcam3,lacualtiene untamañopequeño(5.5x5.7cm).

Figura2.9:CMUcam3,tarjetabasadaenunmicrocontroladoryunacámaraparatareasdevisión

por computadora.LaCMUcam3 ofrecemayores ventajas sobrela tarjetaEyeBotencuanto a

lasoperacionesquepuederealizarsobrelasimágenescapturadas.Figura tomadadeCMUcam

(Diciembre2008)

Dentrodelasprincipalescaracterísticasdeestaplataformasetienen:

BasadaenunsensorCMOSOmnivision

Resoluciónde352x288RGB color

Cargaimágenesenmemoriaaunavelocidadde26FPS

EntornodedesarrollodecódigoabiertoparaWindowsyLinux

Controlahasta4servos

EmulacióndelatarjetapredecesoraCMUcam2

Sirvepara aplicacionesen Robótica,vigilancia,proyectosacadémicos,juguetesinteracti-

vos,reconocimientodeobjetos,etc.

La CMUcam3 puede programarse convarios imágenes rmware 3

. En donde dichas imágenes

pueden desempeñar diferentes y especícas tareas, por ejemplo se pueden programar aplica-

ciones de seguimiento, reconocimiento de rostros,vigilancia, etc. Si el usuario desarrollauna

3

Firmware esunbloquedeinstruccionesdeprogramaparapropósitosespecícos,yseencuentragrabadoen

unamemoriadetiponovolátil(e.g.ROM),elrmwareestablecelalógicademásbajonivelparacontrolarlos

(33)

aplicación propia necesita cargar en memoria Flash dicho programa, esto puede lograrse por

mediodelpuerto serial yusandounautilidaddeprogramación.Dentrodelasoperacionesque

puederealizarlaCMUcam3están:recortarunaseccióndelaimagen,submuestreodeimágenes,

funcionesdeconvoluciónyumbral,entreotras.EngenerallaCMUcam3ofrecemejordesempeño

encuantoalasoperacionesquepuederealizarquelaEyeCam.

2.4. Resumen de plataformas

Paranalizarenlatabla2.1seresumenlascaracterísticasmásimportantesdelasplatafor-

mascomerciales.Dondesepuedencompararlasdiversasopcionesquesetienenparatrabajaro

adquiriralgunadeestastarjetas.Alnaldelcapítulo5sevuelveacompararestasmismasplata-

formascomercialesconlaplataformaFPGApropuestaenestetrabajo.Adicionalmentesehace

unaestimación dela potenciacomputacional decada unade lastarjetaspara tenerunpunto

adecuadodecomparación,ydondeestapotenciacomputacionalgeneralmentenoesmencionado

abiertamentepor elfabricante.Lapotenciacomputacionalesunaestimaciónbasadaeneltipo

deCPU usadoy lafrecuencia deoperacióndelreloj. En estesentidolatarjeta Gumstixes la

máspotentecomputacionalmente.Lasprincipaleslimitantesquetienenestetipodetarjetasco-

mercialesesquealgunasfueronhechassolamentepararealizartareasdecontrolyporellousan

microcontroladores, algunasotrascomo la Gumstixy KoreBot tienenmayorpotenciacompu-

tacionalporelusodemicroprocesdores,otrascomolaEyeBotyCMUcam3hacenprocesamiento

paratareas devisiónpero porsísolassoportanuna cantidadlimitadadesensores/actuadores,

másbien seusan para incorporarsecomo unsensor inteligente aotraplataforma. Esto lleva

atenerdiversasplataformascomercialesparausosyobjetivosdiferentes,teniendoqueadquirir

varias de ellas para diferentes proyectosde robótica. Una opcióninteresante podríaser tener

una plataformaque pueda servirpara diferentes usosy objetivos, aparteque ofrezcarecursos

sucientesparatenerunapotenciacomputacionalaceptable(comolaKoreBotoGumstix).En

elsiguiente capítulo sepresentanlosdispositivosFPGA yeltema de sistemas empotradosen

FPGAs,endondesepodrávisualizarqueestetipodedispositivos(FPGA)puedencontrarestar

laslimitantes delasplataformascomerciales.

(34)

20CAPÍTULO2.PLATAFORMASPARAROBÓTICAMÓVIL

uC

Cricket

uC

+procesador

uC

uP uP uC uP

Procesador Motorola8bit

68HC11

2MHz

Microchip8bit

PIC16C715

4MHz

BasicAtom-

Pro16bit

H8/3664F

100KIPS

Intel32bit

XSCALE

PXA-255

400MHz

Verdexpro

Marvell

PXA270

400-600MHz

Motorola68332

32bitController

25MHz

NXPLPC2106

ARM7

60MHz

Potenciacomp.

estimada

0.5-1MIPS 1-2MIPS 0.1MIPS 200-300MIPS 200-500MIPS 15-20MIPS 40-50MIPS

Softwarede

programación

InteractiveC CricketLogo AtomPro

Language

Linux2.4.19 Linux2.6.27 RoBIOS CustomCcode

Memoria 32kB 4kB 4kB 64MB 64MB 1MB 64KB

Características

ysoportepara

Senso-

res/Actuadores

-4motoresDC

(1A)

-pantallaLCD

-7entradas

analógicas

-9entradas

digitales

-2IR

(trans/recep)

-Bocina

-4motoresDC

-1sensoresIR

-6sensores

digitales

-8servos

-bocina

-Bocina

-PlayStation

Conector

-Leds,botones

-16pinesE/S

-16bus

(Servos,

motoresDC,

pinesE/S)

-Socket24/28

pines

-1KB-250

Interfaz(3

Seriales,4USB,

1I2C,1SPI,1

AC97,53

GPIOs)

-2RS232

-1USBCliente

-USBhost

-3UARTs

-hasta90

GPIOs

-1I2CBus

-1Bluetooth

-cameradigital

-2motoresDC

conencoders

-12servos

-6sensoresIR

(o6entradas

digitales)

-2parachoques

(o2entradas

digitales)

-6entradas

analógicas

-LCD,bocina

-sensorRGB

color352x288

-4servos

Protocolos -SPI -IR -UART -I2C

-UART

-SPI

-USB

-I2C

-UART

-USB

-Bluetooth

-UART -UART

-SPI

Expansión -conectorSPI

-conector

analógico

-Tarjetade

Expansión

(sensores

analógicos,

LEGO,salidas

digitales,

servos)

-BusPort

(tarjetasde

display,motores

DC,servos,

reles,leds,etc)

-SSC-32

-SaberTooth

-KoreMotor(4

motoresDC)-

KoreConnect

(RS232yUSB)

-KoreSound

(audioE/S)

-KoreIO(pines

E/Sanalógicos,

salidas

digitales,

servos)

-RoboAudio

-Robostix(SPI,

I2C)

-GPSstix

(GPS,Audio,LCD,USB) -EyeCam

(sensorCMOS)

640x480pixels



Precio(USD) $299 $139 $25

+$60

processsor

$440

+$190expan.

$159

+($30-$130)

$1,000 $239

Tamaño(cm) 10.8x8 5.7x4.8 10x8 8.5x5.7 8x2 10.6x10 5.5x5.7

Peso(grs) 200aprox. <200 90aprox 35 8 115aprox 200aprox

Alimentación 12vDC,

500mA

5-6vDC,

500mA

9-5vDC,

500-250mA

5vDC,

250mA

3.6V-5.0VDC,

500mAaprox

7.2-9vDC,

270mA

5vDC,

130mA

Tabla2.1:Resumendelaspropiedadesdealgunasdelasplataformascomercialesmásutilizadaspararobotsmóvilesqueexistenenelmercado.

(35)

Sistemas embebidos y FPGAs

EnestasecciónsedaunabreveintroducciónteóricaalosconceptosdeSistemasEmbebidos

(SE)ydelosFPGAs,yaquelalaplataformapropuestaenestetrabajoestabasadaenrealizar

unSE enunFPGA.

3.1. Sistemas embebidos

Un sistema embebido o empotrado (Embedded System) es un sistema computacional de

propósito especial que se integra en un solo circuito integrado (o pocos circuitos integrados

íntimamente acopladosen un espacio reducido) un sistema computacional completo, esto es,

integraprocesadores,memoriasRAM, ROM,periféricos,buses, etc.Un SE estádiseñadopara

desempeñar unafunción/tareaenespecícoyusualmenteconpocosrequerimientos.Yaqueun

SEestáenfocadoparatareasespecícas,éstesepuedeoptimizar,reduciendoelcostoytamaño

del producto nal. Así que dos de las características principales son el precio y el consumo.

Puestoquelossistemasembebidossepuedenfabricarpordecenasdemillaresopormillonesde

unidades,unadelasprincipalesventajasesquesepuedenreducirloscostos,yaquesuelenusar

unprocesadoryuna memoriarelativamentepequeños(Donetal.,2005).

Los sistemas embebidos (SE) son sistemas altamente integrados. Suelen ocuparmuy poco

espacio y tener un consumo de potencia reducido. Con la entrada al mercado de lasFPGAs

los SEs aún se pueden reducir más, y se puede hablar de sistemas SoC (system on a chip, o

sistemaenuncircuitointegrado), esdecirtodounsistema compuestodeprocesador,memoria

ycircuitosdeapoyopersonalizadospuedenentrarenunsolocircuitointegrado.Laimportancia

de un SE también radica en su potenciacomputacional, yaque está optimizado en cuanto a

espacioycapacidaddeprocesamiento ysóloocupalosrecursosnecesariosparadesempeñar la

tareaparaelquefuehecho.

Un SEpuedellegarafuncionaraunaescalacompetitivadeMIPS (MegaInstruccionesPor

Segundo),mientrasqueunaPCpuedellegarafuncionaravariasGOPS(GigaOperacionesPor

Segundo),peroladesventajadeestoúltimoeslanecesidaddellevarunaLaptopounaPCenel

sistema,siendoparaciertotipodedispositivos(e.g.comoalgúnrobotmóvilpequeño)unacarga

grandeypesada,ademásdefuncionarconprocesadoresestrictamente secuenciales,impidiendo

asíexplotarelparalelismonecesarioparaalgunasaplicaciones.

Físicamente,unSEpuedeserdesdedispositivosdeusodiariocomo relojesdigitales,repro-

ductoresMP3,celulares,lavadorashastainstalacionesgrandescomouncontroladordelucesde

tráco,controladoresen fábricasosistemas enplantas nucleares.En términosde complejidad

un SE puede ir desde algo simple, porejemplo con un microcontrolador hasta sistemas más

elaboradoscon múltiples unidades,periféricos y redes montadas dentro deun mismo chasis o

estructurafísica.

(36)

3.1.1. Características

Dentrodelascaracterísticasmásimportantesdeunsistemaembebidosetienenlassiguientes:

Un SE está diseñado para realizaruna oalgunas tareas especícas, adiferencia de una

computadoradepropósitogeneral,diseñadaparadesempeñarmúltiplestareasdediferente

índole.

UnSEnosiempreesunbloqueseparadoocompletoporsísolo,muchasvecesesintroducido

físicamente dentrodel dispositivoalcualvaacontrolar.Porejemploen unautomóvil se

tienendecenasdesistemasembebidosfuncionando,sinembargodescubrirlosasimplevista

resultadifícilporqueseencuentranenformadeaireacondicionado,reproductordemúsica,

automatizacióndefrenos,etc.

ElsoftwareescritoparaunSE,avecesesllamadormware,esguardadoenunamemoria

FLASHdeloschips,másqueenundiscoduro.Estesoftwareamenudoseejecutaymaneja

pocosrecursoshardware.

En general,un SE consiste de un sistema con microprocesadorcuyohardware y software es-

tánespecícamentediseñadosyoptimizadospararesolverunproblemaconcretoecientemente,

comopor ejemploaparatoselectrodomésticos,controladoresdeprocesosenuna empresa,con-

troladoresdesemáforo,etc. NormalmenteunSE interactúacontinuamenteconelentornopara

vigilarocontrolaralgúnprocesomedianteunaseriedesensores.ElhardwaredeunSEsediseña

normalmenteaniveldecircuitosintegrados,odeinterconexióndePCBs,buscandolamínima

circuiteríayelmenortamañoparaunaaplicaciónenparticular.Otraalternativaeseldiseñoa

niveldePCBs queconsisteenelensambladode placasconmicroprocesadorescomercialesque

respondennormalmenteaunestándarcomoelPC-104.Esta últimasoluciónaceleraeltiempo

dediseño pero nooptimizani eltamaño delsistema,ni el númerodecomponentes utilizados,

ni elcosteunitario.En general,unsistema embebido simplecontaráconunmicroprocesador,

memoria,unos cuantos periféricos de E/S y un programadedicado a una aplicaciónconcreta

almacenadopermanentementeenlamemoria.Eltérminoembebidooempotradohacereferencia

alhechodeque lacomputadora estáencerradaoinstalada dentrodeunsistema mayorysu

existenciacomocomputadora puedenoseraparente.

MuchosSEssonsistemasdetiemporeal.Un sistemadetiemporealdeberesponder,dentro

de un intervalo restringido de tiempo, a eventos externos mediante la ejecución de la tarea

asociada con cada evento. Los sistemas de tiemporeal sepueden caracterizarcomo blandos 1

oduros(soft / hard).Si unsistema de tiempo realblando nocumple consus restriccionesde

tiempo,simplementesedegradaelrendimientodelsistema,perosielsistemaesdetiemporeal

duronocumple consusrestriccionesdetiempo,elsistema fallará.

Un SE complejo puede utilizar unsistema operativo como apoyopara la ejecución de sus

programas. La utilización de un sistema operativo de tiempo real (RTOS) es común en los

sistemas embebidos, un RTOS es un sistema operativo diseñado y optimizado para manejar

fuertesrestriccionesdetiempo(Li&Lao,2003).

3.1.2. Componentes

Comomuestralagura3.1unsistemaembebidoestácompuestoporcuatroelementosprin-

cipales:CPU,memoria,busesyperiféricos,aunquepuedehaberotroscomponentesdependiendo

del sistema.El CPU es elelemento procesadorde datosy puede serun microprocesador,mi-

crocontrolador,DSPobienunFPGA.Enloselementosdememoriavanalmacenadostantolos

datos comoel propioprogramaque ejecuta elsistema,también lamemoriapuede servirpara

guardarunsistema operativoobien comomemoriacache.En cuantoalosperiféricos estodo

1

Enunsistemadetiemporealblandoseintentancumplir losplazosdeejecución,peroencasoquealguna

(37)

aquelloqueelsistematieneparacomunicarseconelmundo exterior,puedenserelementosde

comunicación, sensores,motores, antenas, etc., aunquepuede haber periféricos quefuncionen

internamente.Ynalmentedebehaberconexionesquepuedan comunicaryuniratodosestos

elementos y para eso están losbuses, losencargados decolocarlas reglas de intercambiode

datosentre losdistintoscomponentesdelsistema.

Figura3.1:Componentesqueformanunsistemaembebido:Procesador,Buses,MemoriayPe-

riféricos.Una delascaracterísticasesquetodoseencuentraenunsolocircuitointegrado oen

unconjuntoreducidodecircuitosintegrados

Hablando enmás detalle deloscomponentes deun SE,setieneque enla partecentral se

encuentraelmicroprocesador,microcontrolador,DSP,etc.EsdecirlaCPUounidadqueaporta

elprocesamientodedatosalsistemaylagestióndetareasyrecursoshardware.Lacomunicación

adquieregranimportanciaenlosSEs.Lonormalesqueelsistemapuedacomunicarsemediante

interfacesestándardecable oinalámbricas,porejemplo RS232,RS485,SPI, I²C,CAN, USB,

IP,WiFi, GSM,GPRS, etc.Puedehabertambiénunsubsistemadepresentaciónquesueleser

unapantallagráca,táctil,LCD,alfanumérico,etc.

Sedenominanactuadores(tambiénconocidoscomoactivadoresoaccionadores)alosposibles

elementoselectrónicosqueelsistemaseencargadecontrolar.Puedeserunmotoreléctrico, un

conmutadortiporele,unosleds,etc.

Tambiénpuedehaberunmóduloderelojqueeselencargadodegenerarlasdiferentesseñales

derelojapartirde unúnicoosciladorprincipal.El tipo deosciladoresimportante porvarios

aspectos:porlafrecuencianecesaria,porlaestabilidadyporelconsumodecorrienterequerido.

Otromóduloimportanteeseldeenergía,elcualseencargadegenerarlastensionesycorrientes

necesariasparaalimentar losdiferentescircuitosdel sistema.Elconsumodeenergíapuede ser

determinanteeneldesarrollodealgunosSEsquenecesariamentesealimentanconbaterías,por

loqueeltiempodeusodelSEsueleserladuracióndelacargadelasbaterías.

3.2. FPGAs

LosFPGAs (Field Programmable Gate Arrays)están revolucionandolamanera enque los

diseñadoresdesistemasimplementanlógicadigital,reducenradicalmenteloscostosyeltiempo

de desarrollo para implementar sistemas digitales completos dentro de un solo chip (Xilinx,

Diciembre2008).

Undiseñadordesistemaselectrónicosdisponedediversasopcionesparaimplementarlógica

Referencias

Documento similar