manual de prÁcticas - ing.ens.uabc.mxing.ens.uabc.mx/docencia/manuales/electronica/manual de...
TRANSCRIPT
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
MANUALDEPRÁCTICAS
UNIDADDEAPRENDIZAJE:SISTEMASEMPOTRADOS
PROFESOR:
DR.EVERARD0INZUNZAGONZÁLEZ
Ensenada,BajaCalifornia,Febrerodel2016
FORMATODELREPORTEDEPRÁCTICASDELLABORATORIO
PORTADA
Nombredelauniversidad
NombredelaFacultad
Carrera
Materia
Alumno
NombreynúmerodePráctica
Nombredelmaestro
Lugaryfecha
CONTENIDO
Objetivo
Listadematerialyequipo
Antecedentesrelacionadosaltemadelapráctica
Desarrolloexperimental
Diagramaabloques
Descripcióndetalladadelprocedimiento
Fotografíasdelosprototiposyexperimentosrealizados
Análisisydiscusiónderesultados
Códigofuentedelosprogramasrealizados
Screenopantallazosdelosresultadosvisualizadosenelmonitorydeltrabajorealizadoenlapráctica(deloscomandososoftwareutilizado)
Conclusionesindividuales
Bibliografía
Elaboró:Dr.EverardoInzunzaGonzález
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
SISTEMASEMPOTRADOS
PRÁCTICA#1
Nombre:InstalacióndeSistemaOperativoLINUX/RASPBIAN.
Objetivo: Formatear una memoria MicroSD para que sea compatible con el sistemaoperativoLINUX/RASPBIAN,ademásinstalarelsistemaoperativoLINUX/RASPBIANenlaMicroSD.Material:1ComputadoraRaspberryPi21MonitorHDMI1Tecladoymouse1DongleWiFi1FuentedepoderparaRaspberryPi(5VDC@2A)1Conexiónaredethernet(NodoycablederedconconectoresRJ-45)1MemoriaMicroSDclase10osimilarconcapacidadmínimade8GB
A) PROCEDIMIENTO
1. UsandounacomputadorapersonaldescargarelsistemaoperativoLINUX/RASPBIANdesdeelsitiooficialdeRaspberryPi
https://www.raspberrypi.org/https://www.raspberrypi.org/downloads/
Elaboró:Dr.EverardoInzunzaGonzález
2.SeleccionarlaversiónNOOBS(New Out Of the Box Software)
3. HacerclickenDownloadZIPdebajodeNOOBS(offlineandnetworkinstall)yseleccioneelfolderdondedeseaguarderelarchive.zip
4. Descomprimaelarchivo.zip5. InsertelamemoriaMicroSDenellectordesucomputadorapersonal,observe
queletradediscoduroseleasignó(Ej.D:/,E:/,etc)6. FormateesumemoriaMicroSD,elijaformatooFAT32.(Puedeutilizarelsoftware
SDFromatter4.0osuperior)(ElijabieneldrivedesumicroSD).
Elaboró:Dr.EverardoInzunzaGonzález
COPIANDOLOSARCCHIVOSDENOOBSALAMICROSD
7. UnavezquelamemoriaMicroSDhasidoformateada,copielosarchivosextraídosenlacarpetaNOOBShacialamemoriaMicroSD.(LosarchivosdelsistemaoperativodebensertrasnferidosalamemoriaMicroSD).
8. UnavezfinalizadolatransferenciadearchivosenlaMicroSD,retirecuidadosamentelaMicroSDdellector.
9. InsertelamemoriaMicroSDenellectordelaRaspberryPi(Asegúresequeestébienconectadaynoquedehaciendofalsocontacto).
Primerarranque(FirstBoot)
10. ConecteeltecladoalaRaspberry11. ConecteelmonitorHDMIalaRaspberry.12. ConecteelcablederedEthernet13. ConectelafuentedealimentaciónenelpuertoMicroUSBdelaRaspberry14. Conectelafuentedealimentaciónaltomacorriente.15. LaRaspberrydeberáarrancaryapareceráunaventanaconlalistadediferentes
sistemasopersativosquesepuedeninstalar.16. SerecomiendaqueutiliceRASPBIAN.
Elaboró:Dr.EverardoInzunzaGonzález
17. Posteriormente,seleccioneelidiomayhacerclickeneliconoInstall.18. Elprocesodeinstalacióndemoraaproximadamente20minutos.19. Cuantoestécompletalainstalación,hacerClickenelbotónOKyesperaraque
re-inicieelsistema.20. Unavezre-iniciadoelsistema,escojaelambientedearranque(Consola,
EscritoriooScratch).
21. ExploreelEscritoriodeRaspberry,pruebeelnavegadordeinternetycomienceainstalarelsoftwaredesuinterés.
22. DisfrutelaRaspberryPi.
Elaboró:Dr.EverardoInzunzaGonzález
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
SISTEMASEMPOTRADOS
PRÁCTICA#2
Nombre:ConociendolaRaspberry,actualizandoelsistemaoperativoeinstalandopaquetes.
Objetivo:FamiliarizarseconelentornodetrabajodelaRaspberryPi,conocerelsistemaoperativoRaspbian,actualizarelsistemaeinstalardiferentespaquetes.Material:1ComputadoraRaspberryPi2osuperior1MonitorHDMI1Tecladoymouse1DongleWiFi1FuentedepoderparaRaspberryPi(5VDC@2A)1Conexiónaredethernet(NodoycablederedconconectoresRJ-45)I) PROCEDIMIENTO
A)CONECTANDOLARASPBERRY1) Conectartecladoymouse
2) Conectarmonitor
3) ConectarDongleWiFiocableEthernetRJ-45
4) Encendermonitor
5) ConectarfuentedepoderaRaspberry
6) EsperaraquearranquelaRaspberry(sieslaprimeravezquearranca,configurar
zonahoraria,idiomadeteclado,expandirparticióndedisco,etc.)
Elaboró:Dr.EverardoInzunzaGonzález
B)Configurandolaconexióndered(SitieneRaspi3,pasealincisoC)
D) Enlaconsolaoterminalejecutarelcomandowpa_gui
2.)HacerclickenelBotónSCAN
3)Seabreunasegundaventanaconellistadodelasredesdetectadas.Damosdobleclickenlaredcorrespondiente,escribimoslacontraseñaenelcampoPSKyelegimosAdd.
Elaboró:Dr.EverardoInzunzaGonzález
4) En la ventana principal de configuración damos click en Connect y listo, ahoratenemosconexiónainternet,inclusopodemosverladirecciónIPenlaparteinferiordelaventana.
C)ACTUALIZANDOELSISTEMAD) Primerosetienequeactualizar(descargar)lalistadelospaquetesconelsiguiente�ommando:
$sudoapt-getupdate
2)Luegoseinstalantodaslasactualizaciones
$sudoapt-getupgrade
Elaboró:Dr.EverardoInzunzaGonzález
D)INSTALANDOSOFTWARENota:SiemprequesevainstalarunnuevosoftwareopaqueteenRaspi,serecomiendaprimerohacerunactualizacióndelsistema(updateyupgrade).
Nombredelpaquete/software ComandoRaspbian
ProgramaparahacerScreenShotsconRaspi sudo apt-get install scrot
LibreOffice(Similar/compatibleconMicrosoftOffice) sudoapt-getinstalllibreoffice
Okular(ParaabrirarchivosPDF) sudoapt-getinstallokular
ActualizandonavegadordeinternetdeRaspberry sudoapt-getupdate
sudoapt-getdist-upgrade
sudoapt-getinstallepiphany-browser
InstalandonavegadorMozillaFireFox(IceWeasel) sudoapt-getinstalliceweasel
EditordetextoparaprogramarenLenguajeCoPython sudo apt-get install geany
Reproductordevideos sudo apt-get install omxplayer
Editordeimágenes sudo apt-get install gimp
Paracomprimirarchivosycrear.zip
Paradescomprimirarchivoszip
sudo apt-get install zip sudo apt-get install unzip
ParaDes-instalarunprogramaopaquete:
sudo apt-get remove <nombre-del-paquete/software>
Nota:ParaejecutarelSistemaoperativoLINUXenambientegráfico:startxE)NAVEGANDOENLARED
1.ProbarlosnavegadoresdeinternetutilizandoelbuscadorGOOGLE.2.Probarlavizualizacióndevideosenyoutube.3.RevisarelcorreodeUABCoGMAIL.4.Iniciarsesiónenfacebookoalgunaotraredsocial.
Elaboró:Dr.EverardoInzunzaGonzález
F)Revisar/ConsultarelHardwaredelaRaspberryutilizandoloscomandosdeRaspbian
Elaboró:Dr.EverardoInzunzaGonzález
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
SISTEMASEMPOTRADOS
PRÁCTICA#3
Nombre:InstalaciónyconfiguracióndeescritorioremotoenRaspberryPi2.
Objetivo: Conectar la Raspberry Pi a través de una red LAN con una PC/Laptop paraejecutarelescritoriodelaRaspberreyPidesdeelsistemaoperativodelaPC/Laptop.Material:1ComputadoraRaspberryPi21DongleWiFi1FuentedepoderparaRaspberryPi([email protected])1CabledeconexiónaredEthernet1PuertoderedEthernet(RouteroAccespointconpuertoEthernet)1MemoriaMicroSDclase10osimilarconcapacidadmínimade8GB1PCoLaptop
1. PROCEDIMIENTO
1. Conectardonglewifi,mouse,teclado,monitorpormediodelcableHDMIyconectarlafuentedepoderalaraspberry.
2. ParaencenderconectarlafuentealalíneadeAC
3. Enlaraspberryactualizarlospaquetesysistemaoperativosudoapt-getupdatesudoapt-getupgrade
4. Instalarlossiguientesprogramas,empleandolossiguientescomandosenelShelldelaRaspberryPy:
sudoapt-getinstallvnc4server sudoapt-getinstallxrdp
Elaboró:Dr.EverardoInzunzaGonzález
HayqueconfigurarelprogramaVNCSERVER,pediráunaclavede8dígitosyquelaverifiquedosveces,ejecuteelsiguientecomando.
1. ConectarlaRaspberryalaPColaptopconelcableEthernet
(VerifiquequelaluzEthernetestéencendida)
2. Después haremos que la IP del adaptador Ethernet de la raspeberry seaestático para evitar problemas en conexiones futuras. Escribimos en laterminalelsiguientecomandoifconfigyaparecerálosiguiente:
Elaboró:Dr.EverardoInzunzaGonzález
3. Anotamosaddr ymask deeth0, yaque senecesitaráposteriormente, ennuestrocasoson.
addr:169.254.57.126
mask:255.255.0.0
4. Ejecutar:sudonano/etc/dhcpcd.conf
5. Alfinaldelarchivoabierto,agregarlosiguiente:
#CustomstaticIPaddressforeth0.interfaceeth0staticip_address=192.168.0.200staticrouters=192.168.0.1staticdomain_name_servers=192.168.0.1
(RecuerdequelotienenquehacerconsusnúmerosIPs,esteessolounejemplo).
Elaboró:Dr.EverardoInzunzaGonzález
10. Guardarloscambiosalarchivoysalir.
Salvarlaconfiguración(Ctr+X)+Yyre-iniciarlaRaspberryPi,conelcomandosudoshutdown-rnow.
11. .ReiniciarlaRaspberryPi.
12. Ahora en nuestra computadora personal abrir acceso a la red LAN de forma
manual dando clic derecho en el icono mostrado en el recuadro rojo, seleccionarCentrodeRedesyRecursoscompartidos.
13. SeleccionarCambiarconfiguracióndelAdaptador
Elaboró:Dr.EverardoInzunzaGonzález
14. Seleccionar las propiedades del adaptador Wi-Fi y en la pestaña de usocompartidoseleccionamoslasiguienteopcióncomosemuestraenlafiguraydamosaceptar.
15. SeleccionarlaspropiedadesdelpuertoEthernetdandoclicderechosobreél.
Elaboró:Dr.EverardoInzunzaGonzález
16. SeleccionarlaspropiedadesdelTCP/IPv4.
Elaboró:Dr.EverardoInzunzaGonzález
17. Ahorallenamosloscamposcomoenlasiguientefigura.EnDirecciónIPpondráslomismoquepusimosengatewayenelpaso8,al igualquemascarade subred seránetmask,damosaceptarparaguardarloscambiosrealizados.
18. Buscamosescritorioremoto.
Elaboró:Dr.EverardoInzunzaGonzález
19. En laventanadeescritorioremototecleamos la IPdenuestraRaspberry (addrdel
paso8)ydamosclickenConectar.
20. Despuésaparecerálosiguiente
Paraaccedertecleamos:
Elaboró:Dr.EverardoInzunzaGonzález
Username:piPassword:raspberry
Yconestologramoslaconexionanuestraraspberry.
Elaboró:Dr.EverardoInzunzaGonzález
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
SISTEMASEMPOTRADOS
PRÁCTICA#4
Nombre:ControlsecuencialdelucesempleandoRaspberryPiObjetivo: Desarrollar un programa en C para que controle el encendido/apagado enformasecuencialconunretardoentresecuenciasdemediosegundosegundo.
Requerimientos:
Se requiere que el sistema encienda secuencialmente 8 luces con retardo inter-
secuenciasde500mS.Posteriormenteque lasvayaapagandoconelmismotiempode
retardo.
ListaMaterialyequipo1ComputadoraRaspberryPi21MonitorHDMI1Tecladoymouse1DongleWiFi1FuentedepoderparaRaspberryPi(5VDC@2A)1Conexiónaredethernet(NodoycablederedconconectoresRJ-45)1MemoriaMicroSDclase10osimilarconcapacidadmínimade8GB8LED’s
A) PROCEDIMIENTO
1. Escribir el programa en lenguaje C para Raspberry Pi. 2. Compilar el programa. 3. Conectar los leds a los pines GPIO con su respectiva resistencia limitadora de corriente.
4. Probar el circuito incluyendo la Raspberry Pi 5. Realizar los ajustes correspondientes al programa/circuito.
6. Compilar programa y revisar circuito nuevamente 7. Probar el circuito.
Elaboró:Dr.EverardoInzunzaGonzález
Códigoejemplo
Elaboró:Dr.EverardoInzunzaGonzález
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
SISTEMASEMPOTRADOS
PRÁCTICA#5
Nombre:ControlsecuencialdemotoresconRaspberryPiObjetivo: DesarrollarunprogramaenCparaqueencienda5motoresdeCDenforma
secuencialconunretardoentresecuenciasdedossegundos.
Requerimientos:
Elsistemadeberátenerunbotóndearranqueparaqueinicieelencendidosecuencialy
un botón de paro secuencial en orden inverso a la secuencia de arranque. Además
considere el uso de un botón de paro de Emergencia para apagar inmediatamente (al
mismotiempo)todoslosmotores.LosmotoresdeberánconectarsealospinesGPIOpor
medio de una etapa de potencia (Por ejemplo usar transistor de potencia TIP 41C). El
tiempointer-secuenciaesde2000mS.
ListaMaterialyequipo1ComputadoraRaspberryPi2osuperior1MonitorHDMI1Tecladoymouse1DongleWiFi1FuentedepoderparaRaspberryPi(5VDC@2A)1Conexiónaredethernet(NodoycablederedconconectoresRJ-45)1MemoriaMicroSDclase10osimilarconcapacidadmínimade8GB5motoresdeDC5switchesopushbuttons
Elaboró:Dr.EverardoInzunzaGonzález
A) PROCEDIMIENTO
1. Escribir el programa en lenguaje C para Raspberry Pi. 2. Compilar el programa. 3. Conectar los swtiches, etapa de potencia y motores a los pines GPIO programados
utilizando las resistencias limitadoras de corriente (330 Ohms) 4. Probar el circuito incluyendo la Raspberry Pi
5. Realizar los ajustes correspondientes al programa/circuito. 6. Compilar programa y revisar circuito nuevamente 7. Probar el circuito.
8. Elaborar el reporte de práctica.
Elaboró:Dr.EverardoInzunzaGonzález
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
SISTEMASEMPOTRADOS
PRÁCTICA#6
Nombre:AlarmadigitalbasadaenRaspberryPiObjetivo:DiseñaryconstruírunaalarmadigitalutilizandolaRaspberryPiylenguajedeprogramaciónC.
1ComputadoraRaspberryPi21MonitorHDMI1Tecladoymouse1DongleWiFi1FuentedepoderparaRaspberryPi(5VDC@2A)1Conexiónaredethernet(NodoycablederedconconectoresRJ-45)1MemoriaMicroSDclase10osimilarconcapacidadmínimade8GB1LEDultra-brillante4sensoreson/offparaalarma(Movimiento,Reedswitch,ópticos,etc.).1dipswitch(paraActivarodesactivarlaalarma)RequerimientosgeneralesdelsistemaEl sistema tendrá como entrada 4 sensores del tipo ON/OFF y una entrada para ACTIVAR/DESACTIVAR la alarma. Estas 5 entradas serán a través de los puertos GPIO de la Raspberry Pi, pueden ser activadas en ALTO/BAJO, esto depende del tipo de sensor. Cuando la alarma esté habilitada y cualquiera de los sensores se active, la alarma deberá encender una luz de emergencia, un BUZZER de 5V y un LED ultra-brillante. Cuando la alarma esté des-habilitada, deberá ignorar todas las señales provenientes de los sensores.
Figura 1. Diagrama a bloques de la alarma basada en Raspberry Pi.
Nota 1: Recuerde que todas las entradas GPIO de la Raspi deben ser de 3.3V.
Elaboró:Dr.EverardoInzunzaGonzález
A) PROCEDIMIENTO
1. Escribir el programa en lenguaje C para Raspberry Pi. 2. Compilar el programa. 3. Conectar los sensores, Buzzer y LED’s a los pines GPIO programados utilizando las resistencias
limitadoras de corriente (330 Ohms) 4. Probar el circuito. 5. Realizar los ajustes correspondientes al programa/circuito. 6. Compilar programa y revisar circuito nuevamente 7. Probar el circuito.8. Escribir el reporte de la práctica
Nota2:EsimportanteinterconectardiversossensoresalaRaspiparaquelaprácticaseaválida.
Elaboró:Dr.EverardoInzunzaGonzález
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
SISTEMASEMPOTRADOS
PRÁCTICA#7
Nombre:ConfiguraciónyusodepuertosserialesRS-232enunaRaspberryPi2utilizandoPython.
Objetivo:ConfiguraryhabilitarelpuertoserialRS-232delaRaspberrypi2yhacerunprogramaenPythonqueutilicedichopuertoyunpuertogenéricoUSBparatransmisiónyrecepcióndedatosenformaserial.Material:1ConvertidorTTLaRS-232(ChipintegradoMAX232)1ConvertidorRS-232aUSB1ConectorDB-9Hembra1ConectorDB-9Macho1ComputadoraRaspberryPi21MonitorHDMI(opcional)1Tecladoymouse(opcional)1DongleWiFi1FuentedepoderparaRaspberryPi(5VDC@2A)1Conexiónaredethernet(NodoycablederedconconectoresRJ-45)1SoftwarePython2.7.4
A) PROCEDIMIENTO1. Primeroesnecesarioactualizarlaconsolasudoapt-getupdateysudoapt-getupgrade.
2. Unavezactualizadalaconsola,escribaenlaterminaldmesg|greptty,estecomandobuscaenlascaracterísticasde laconsolael texto tty,el cual se relacionaa laconfiguracióndelpuertoserial, buscamos deshabilitar una configuración de fábrica, ya que ciertas características decontrolfueradeltemadeestudiosehacenpormediodelacomunicaciónserial.
Seobservaránalgunospuertosttyencolorrojo.
Elaboró:Dr.EverardoInzunzaGonzález
Despuesdeejecutarelcomandodmesg|greptty,sedebevisualizaralparecidoalasiguienteinformación:
3. ParavisualizarlostodospuertosserialesdisponiblesenRaspberryPi,tecleeelcomando:
ls -l /dev/tty*
GPIOserialportis/dev/ttyAMA0
En linux los puertos seriales típicamente se llaman de la siguiente manera:
• Built-in (standard) Serial Port: the Linux standard is /dev/tty0, /dev/tty1, and so on. • USB Serial Port Adapter: /dev/ttyUSB0, /dev/ttyUSB1, and so on.
o Some types of USB serial adapter may appear as /dev/ttyACM0 ...
4. Sedebeconfigurarelpuertoserial,enlaterminalescribesudoraspi-config,seabriráunmenú
enentornográfico.
Elaboró:Dr.EverardoInzunzaGonzález
5. Seleccionaraslaopción,AdvancedOptions.
6. SeleccionarasA8Serial.
Elaboró:Dr.EverardoInzunzaGonzález
7. Posteriormente,SeleccionasNO,conestoaparecedeshabilitadoelpuertoserial,deestaformapodemosutilizardeformagenéricaelpuertoserial.
8. SeleccionarFINISH
9. RE-INICIARLARASPBERRYPARAQUESECONFIGURENLOSCAMBIOS.
Nota:Esmuyimportantehacerestare-inicializaciónparaqueseactualicenloscambios.
10. Escribadenuevoelcomando:dmesg|greptty(Paraverificarqueyaestádes-activadalacnonsolattyAMA0),sedebevisualizaralgosimilaralasiguientefigura:
Observequeenelprimerpárrafodebeaparecer:console=tty1
Elaboró:Dr.EverardoInzunzaGonzález
11. AntesdecontinuardebeconectardeformaapropiadaelconvertidorTTLaRS-232,elpinel8y10sonlospinesdecomunicaciónUART,RXyTX,respectivamente.
12. SitieneelconvertidorTTLaRS-232pasealnúmero9,delocontrario,armeelsiguientecircuito:
Nota:Vccesde5Volts
Elaboró:Dr.EverardoInzunzaGonzález
13. Escribirelsiguientecódigoejemplo,connombredearchivoserial_wryte.py
(TRANSMISORDEINFORMACIÓN)
Elaboró:Dr.EverardoInzunzaGonzález
14. Escribirelsiguientecódigo,serial_read.py(RECEPTORDEINFORMACIÓN)
15. EjecutarlosdoscódigosendosterminalesLinuxporseparado(AsegúresequeestéconectadoelcircuitoconvertidorTTLaRS-232yelconvertidorRS-232aUSB),obienconecteunpuenteentrelospinesfísicos8y10(TxyRx).
serial_wryte.pypythonserial_read.py
16. Para finesprácticos se armaráun lazo cerrado (loop) con lospuertos serialesde lamisma
Raspi, SOLO ASEGURESE CAMBIAR EL NOMBRE DEL PUERTO SERIAL EN EL RECEPTOR, sinembargotambiénesválidoutilizarunaPColaptopconpuertoserial.
a) Ejecuteprimeroelcódigotransmisordecaracteres,posteriormenteelreceptoryanotesus
observaciones.
b) Ahoraejecuteprimeroel código receptorde información,posteriormenteel transmisor yanotesusobservaciones.
Elaboró:Dr.EverardoInzunzaGonzález
ANEXOSARREGLOEXPERIMENTAL
Max232
ConvertidorRS-232aUSB
Elaboró:Dr.EverardoInzunzaGonzález
CableEthernet
ConvertidorRS-232aUSB
Max232
LAPTOP(Escritorioremoto)
Elaboró:Dr.EverardoInzunzaGonzález
TambiénpuedeprobarlossiguientescódigosCódiogoPythondeltransmisordedatosseriales
Elaboró:Dr.EverardoInzunzaGonzález
CódiogoPythondelreceptordedatosseriales
Elaboró:Dr.EverardoInzunzaGonzález
Sihacemoselloop(esdecirconectamoselTxconRxdeRaspiyejecutamoslosdosprogramas(transmisoryreceptor),seobservaríaalgocomolasiguientefigura:
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIA
FACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑOSISTEMASEMPOTRADOS
Práctica#8
Nombre:ComunicaciónSerialentreArduidoyRaspberryPiObjetivo: Desarrollar un programa para comunicar una Raspberry Pi con Arduinomediante puerto serial y realizar algunas consultas de componentes conectados conArduino.InstalacióndeSoftwareArduinoIDEparalaRasberryPi:$sudoapt-getupdate$sudoapt-getupgrade$ sudo apt-get dist-upgrade (Para asegurar que se tiene instalada la
versiónmasrecientedeRPi.GPIO)$ sudoapt-get installarduino (ClickYencasoquepreguntesobrealgunas
dependencias)ParavisualizarlospuertosserialesdisponiblesenRaspberryPi,tecleeelcomando:
ls -l /dev/tty*
GPIOserialportis/dev/ttyAMA0
En linux los puertos seriales típicamente se llaman de la siguiente manera:
• Built-in (standard) Serial Port: the Linux standard is /dev/tty0, /dev/tty1, and so on. • USB Serial Port Adapter: /dev/ttyUSB0, /dev/ttyUSB1, and so on.
o Some types of USB serial adapter may appear as /dev/ttyACM0 ...
También se pueden visualizar los puertos seriales asignados a sus periféricosconectadosaRaspi
dmesg|grepttyProcedimientodelapráctica:DesdelaRaspberryPi,ymedianteuncódigoenPython,seenviaráncomandosalArduino
paraquenosdevuelvalosdatosqueestéleyendo.
Siporejemplomandamosuna‘P‘,nosdevolveráelvalordelpotenciómetro.Simandamos
una‘B‘,Arduinonosinformarádesielbotónestápulsadoono.
Finalmente,simandamosuna‘L‘,podremosleerelvalordelLDR.
Paso#1
1.Armarelcircuitoeléctricodelafigura#1.
Figura1.DiagramaesquemáticodeconexionesdeArduinoconpotenciómetro,LDRypush
button.Paso#2.
EncasodenotenerloscomponenteelectrónicosconectadosaArduino,setienequecargarelsiguientecódigoenArduino,delocontrariopasealpaso#3.
Figura2.CódigoparaArduinosinLDR,potenciómetro,pushbutton.
Paso#3En caso tener los componentes electrónicos conectados a Arduino, cargar el siguientecódigoenArduino.
Figura3.CódigodeArduinoparalacomunicaciónserial.EnlaRaspberryPi,setienequeinstalarlabiblioteca(librería)paracomunicaciónserial:
AcontinuaciónescribirelsiguientecódigoparaPython
EnestemomentolaRaspiesperalarespuestadeArduino,lacualdependerádelcomandoocaracterenviado.Comandos válidos para realizar las pruebas de comunicación serial entre Arduino yRasberry.BeselcomandoparavisualizarelestadodelpushbuttonconectadoaArduino.L esel comandoparavisualizarelvalordelLDRenporcentajeconectadoal canalA0delADCdelArduino.
PeselcomandoparavisualizarelvalorqueentregaelpotenciómetroconectadoalcanalA1delADCdeArduino.ParaejecutarelprogamadepythondelaRaspi
SedeberánmostraralgunosresultadosenelmonitordelaRaspi,talcomosemuestraenlasiguientefigura:
REFERENCIAS:https://geekytheory.com/arduino-raspberry-pi-lectura-de-datos/http://www.instructables.com/id/Read-and-write-from-serial-port-with-Raspberry-Pi/
Elaboró:Dr.EverardoInzunzaGonzález
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
SISTEMASEMPOTRADOS
PRÁCTICA#9
Nombre:ProcesamientodeimágenesdigitalesempleandoPythonyOpenCV.
Objetivo: Realizar operaciones básicas y de filtrado con imágenes digitales mediantePythonyOpenCV.Material:1ComputadoraRaspberryPi2oequivalente1MonitorHDMI1Tecladoymouse1DongleWiFi1FuentedepoderparaRaspberryPi(5VDC@2A)1Conexiónaredethernet(NodoycablederedconconectoresRJ-45)1MemoriaMicroSDclase10osimilarconcapacidadmínimade8GB
A) PROCEDIMIENTO
1. ActualizarlaRaspberry.Con el fin de poder encontrar librerías en los repositorios, es necesario teneractualizada laRaspberrypor lo cualdesde la terminal se ingresan los siguientescomandos:$sudoapt-getupdate$sudoapt-getupgrade
2. InstalarOpenCV.ParapodertrabajarconimágenesenPython,esnecesarioutilizaradicionalmentelaherramientaOpenCV,elprimerpasoparapoderutilizarloesinstalarlalibreríanumpy:$sudoapt-getinstallpython-numpy
Elaboró:Dr.EverardoInzunzaGonzález
Ahoraparainstalaropencv2esnecesariorealizarlassiguientesinstrucciones:$sudoapt-getinstallpython-opencv$sudoapt-getinstallpython-scipy$sudoapt-getinstallipython$sudoapt-getinstalllibgl1-mesa-driFinalmentesedebereiniciarlaRaspberry:$sudorebootUnavezquesehayareiniciado,desdelaterminalseejecutapython:$idleYapareceráelShelldepython:
Pararealizarunapruebaesnecesariocrearunnuevoprograma,seleccioneFileydeclicenNewwindow,posteriormenteescribaelsiguientecódigoyguárdeloconalgún nombre con extension “.py”, en este caso se le dió el nombre deejemplo.py:
Elaboró:Dr.EverardoInzunzaGonzález
Hayqueponerespecialatenciónenlalíneadelcódigo:img=cv2.imread(‘/home/pi/image.jpg’)enella se indicaentreapóstrofes la rutadearchivodondeseencuentra la fotooriginalqueseabrirá,laimagenusadaenesteejemploeslasiguiente:
se presiona F5 para correr el programa y como resultado aparecerá la imagenprincipal,sisepresionalatecla“s”seguardaralafotooriginalconelnombrede“imagen2.jpg”
Ahora se modificará el código para que la imagen de salida sea en escala degrises,elcódigoeselsiguiente:
Elaboró:Dr.EverardoInzunzaGonzález
Yelresultadoeselsiguiente:
Elaboró:Dr.EverardoInzunzaGonzález
3. ObtenerelhistogramadeunaimagenmediantepythonyOpenCVParaobtenerelhistogramadeuna imagenenescaladegrisesesnecesario instalar lasiguientelibrería:$sudoapt-getinstallpython-matplotlibLaimagenconlaquesetrabajaráenestesegundoprogramaseráladecameraman.tifqueeslasiguiente:
posteriormenteseescribeelcódigoendondeseobtieneelhistogramadelaimagen:
Elaboró:Dr.EverardoInzunzaGonzález
4. RealizacióndeunprocesodefiltradoOpenCV también tiene la capacidad de realizar filtros, por ejemplo el filtropromedio,elcuales logradomediante laconvoluciónde la imagenconunfiltrodecajanormalizada.Elsiguientecódigorealizadichofiltro:
Elaboró:Dr.EverardoInzunzaGonzález
Yelresultadoeselsiguiente:
5. Tarea:Investigar5filtrosadicionalesdeprocesamientodeimágenesyrealizarunejemploenpythondecadaunodeestosfiltros.
Elaboró:Dr.EverardoInzunzaGonzález
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
SISTEMASEMPOTRADOS
PRÁCTICA#10
Nombre:Uso,manejoyconfiguracióndelacámaraCSIconPython.
Objetivo:HabilitarlacámaradelaRaspberryyusarlamediantePython.Material:1ComputadoraRaspberryPi21MonitorHDMI1Tecladoymouse1DongleWiFi1FuentedepoderparaRaspberryPi(5VDC@2A)1Conexiónaredethernet(NodoycablederedconconectoresRJ-45)1MemoriaMicroSDclase10osimilarconcapacidadmínimade8GB1CámaraparaRaspberryPi5MP(conpuertoCSI)1WebCam(USB)
A) PROCEDIMIENTO
1. ActualizarlaRaspberry.Con el fin de poder encontrar librerías en los repositorios, es necesario teneractualizadalaRaspberryPi,porlocualdesdelaterminalseingresanlossiguientescomandos:$sudoapt-getupdate$sudoapt-getupgrade
2. Habilitarlacámara:Desdeterminalingreseelsiguientecomando:$sudoraspi-configPosteriormenteseleccionelaopcion“Enablecamera”parahabilitarlacámara:
Elaboró:Dr.EverardoInzunzaGonzález
Nuevamenteseleccionehabilitar(Enable)
Presionefinalizar(Finish)
Elaboró:Dr.EverardoInzunzaGonzález
Yfinalmentereinicieelsistema(Rebootnow)$sudorebootnow
3. Instalacióndelibrerias:ParaquelacámarafuncionecorrectamenteesnecesariodesdeTerminalinstalarlaslibrerias:$sudoapt-getinstallpython-picamera
4. ComprobacióndePython:AhoraesnecesariocomprobarquesecuentaconPythonintaladoporlosedebeteclearlosiguiente:$ls/usr/bin/pythonydebeaparecerlosiguientelocualindicaquesiseencuentrainstalado:
Encasocontrariosetendríaqueinstalarmediantelasiguienteinstrucción:$sudoapt-getinstallpython
5. Instalacióndeeditordetextos:Ahora es necesario contar con un editor de textos, uno de los editores másversátiles y recomendados es geany, por lo que desde terminal se instalarátecleandolosiguiente:$sudoapt-getinstallgeany
Elaboró:Dr.EverardoInzunzaGonzález
6. PrimercódigodelusodelacámaraenPython:A continuación un ejemplo desde python sobre el uso de la cámara. Ingrese elsiguientecódigodesdegeany:
Seguardaconextensión.py(enestecasocamara1.py)paraindicarqueseusarácon python, posteriormente se ejecuta mediante Terminal. Para ejecutar estearchivosedebeintroducirlasiguienteinstrucción:$pythonruta_archivo/nombre_archivo.pyenestecasosería:$pythoncamara1.pyylisto,laimagendelacámaraserámostradadurante10segundos.
Elaboró:Dr.EverardoInzunzaGonzález
7. Tomarunafoto.
Ahorasemodificaunpocoelprogramaparapodergrabarlaimagentomadaporlacámara.
Elarchivode la fotoseencontraráen lamismacarpetaqueelprogramaque loejecuta:
Elaboró:Dr.EverardoInzunzaGonzález
Ejercicios
8. Grabarfotosenotrosformatos.En este ejemplo se guardó una captura con el formato JPG, a continuacióncaptureunafotoconcadaunadelasextensionesquesoportalacámara,esdecircon: png, gif, bmp, yuv, rgb y raw, con lo cual se comprobará que resultabastantecómodoyútilcontarconunavariedaddeformatos.
9. Instalacióndewebcam(cámaraUSBenRaspberryPi)
InvestigarelprocesodeinstalaciónyconfiguracióndewebcamparaRaspberry,enelsiguienelinksepresentaunaguía.https://www.raspberrypi.org/documentation/usage/webcams/
Elaboró:Dr.EverardoInzunzaGonzález
UNIVERSIDADAUTÓNOMADEBAJACALIFORNIAFACULTADDEINGENIERÍA,ARQUITECTURAYDISEÑO
SISTEMASEMPOTRADOS
PRÁCTICA#11
Nombre:ProcesamientodeseñalesdeaudioempleandoOctave.
Objetivo:Procesardeseñalesdeaudioeneldominiodeltiempoyfrecuencia.Material:1ComputadoraRaspberryPi2oequivalente2Archivosdeaudioenformato.wav(unoconmensajedeaudioenespañolyelotroconmensajedeaudioeninglés.1BocinasdePC1UncableRCAparaaudioyvideo(3.5mmtripleaRCA,dondeRCAamarilloesparalaseñaldevideo,RCAblancoyrojosonparalaseñaldeaudioestereofónico).1PlugparaconvertirdeRCAa3.5mmhembra1MonitorHDMI1Tecladoymouse1DongleWiFi1FuentedepoderparaRaspberryPi(5VDC@2A)1Conexiónaredethernet(NodoycablederedconconectoresRJ-45)1MemoriaMicroSDclase10osimilarconcapacidadmínimade8GB
A) PROCEDIMIENTO
1. ActualizarlaRaspberry.Con el fin de poder encontrar librerías en los repositorios, es necesario teneractualizada laRaspberrypor lo cualdesde la terminal se ingresan los siguientescomandos:$sudoapt-getupdate$sudoapt-getupgrade
2. InstalarOctave$sudoapt-getinstalloctave
Elaboró:Dr.EverardoInzunzaGonzález
3.VerificarlostoolboxesdisponiblesparaOctave$sudoapt-cachesearchoctave-4.Instalarlostoolboxesparagraficadodeinformación$sudoapt-getinstalloctave-plplotoctave-plot5.Instalarlostoolboxesparaprocesamientodeaudioydeseñales
$sudoapt-getinstalloctave-audio$sudoapt-getinstalloctave-signal
6.FinalmentesedebereiniciarlaRaspberry:$sudoreboot7.Unavezquesehayareiniciado,desdelaterminalseejecutaOctave:$octaveYapareceráelShelldeOctave:
Figura1.Prompt(shell)deOctave
Elaboró:Dr.EverardoInzunzaGonzález
8.RealizarelsiguienteprogramaeneleditorGeanyonano,yguardarelarchivocomoproc_audio.m
Elaboró:Dr.EverardoInzunzaGonzález
Resultadosesperados
Figura2.Señaldeaudioenespañoleneldominiodeltiempoy
frecuencia.
Figura3.Señaldeaudioenidiomainglésmostradaeneldominiodel
tiempoyfrecuencia.
Elaboró:Dr.EverardoInzunzaGonzález
9.Investigareimplementarunfiltropasaaltasconfrecuenciadecortede2.5KHz(PuedeserChebyshevoButterworth)deorden3o4.Mostrarunagráfica/figuracomparativadelaseñaloriginalversuslaseñalfiltrada.Enunafiguradebeestarlaseñalenespañolvslaseñalespañolfiltrada.Enlasiguientefiguraseñaleninglésversusseñaleninglésfiltrada.Describirdetalladamentelasobservacionesdelasseñalesfiltradas.