SlideShare una empresa de Scribd logo
1 de 24
SAMSA Documentación
1) HARDWARE
ESTRUCTURA MECANICA ,[object Object],[object Object],[object Object],[object Object],peso:  9,0 g velocidad:  60º / 0,14s  torque:  1,3 Kg/cm trabajando a 6V
Detalle del ensamblaje, conexionado y cableado.
TARJETA WIRING Microcontrolador Atmel AVR / ATmega128 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
DISPLAY ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
ANTENAS + ENCODER ,[object Object],[object Object],[object Object],[object Object],[object Object]
Micrófono, IR ranger, Acelerómetro ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],El mini-circuito también contiene:
ALIMENTACION ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
2) SOFTWARE
Diagrama en bloques del software (rutinas principales - bajo nivel)
ISR (TIMER2_OVF_vect) servo2 act_display perifer angulo_des [6][3] incremento [6][3] display[8] accel [3] encoder ranger[20]  rngr_ps sound servo (1 servo) osc_ant antenas posicion (1 pata) global (6 patas) parcial (3 patas) acostado parado caminata1 alfabetagama (cinemática inversa) posicion2 (n patas) postura (6 patas) caminata3 active_delay mov_tronco paseo cls writePixel readPixel togglePixel readScreen writeScreen merge linea_v linea_h cuadrado borraZona borraCuadrante loadChr scroll lsm rotaciones conway scroll_text medidor umbral_rngr umbral_snd shape source espejaime[3] audio
CONTROL DE SERVOS FUNCIONAMIENTO DE UN SERVOMOTOR El espaciado de los pulsos no debe exceder los 20ms, de lo contrario el servo pierde fuerza y velocidad El servo tiene un rango de acción de 180º
¿Cómo controlar 18 servos independientes simultáneamente? 1) Cantidad de I/O en el microcontrolador ATmega128: 53 I/O 2) Función PWM del microcontrolador Permite gestionar el control “por hardware” sin consumir tiempo del programa… Pero, sólo está disponible en 6 salidas. 3) PWM “simulado” por software 4) un “timer” que genera interrupciones periódicamente, por ejemplo cada 20ms. Complica enormemente la programación, si pretendemos usar el mismo procesador para cumplir simultáneamente otras tareas… A menos que implementemos: Pero… si cada servo necesita un pulso de hasta 2,5 ms, en un período de 20ms apenas podríamos controlar 8 de ellos, y no nos quedaría tiempo para el resto de las tareas!!! ¿SOLUCIÓN?
5) Tenemos que generar varias señales al mismo tiempo. ¿Cómo? 6)  La clave es no usar “delays” sino generar las señales con los propios tiempos de procesamiento del programa. Ejemplo: ponemos varios  pines a “1” y en un “loop” los vamos apagando según el ángulo de cada servo.  7) Limitación: mayor cantidad de servos simultáneos mayor tiempo total del “loop” menor resolución de cada servo todos los pines a “1” x > ang1    servo1 “0” x > ang2    servo2 “0” x > angN    servoN “0” x ++ LOOP tiempo total del loop, TL(ms) = resolución de los servos
Solución práctica adoptada ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],encoder encoder encoder encoder encoder encoder encoder encoder 28 – 32ms 24 - 28ms 20 - 24ms 16 - 20ms 12 - 16ms 8 - 12ms 4 - 8ms 0 - 4ms tiempo periféricos display servos interrupción accel Z columna 7 Act. variables 7 accel Y columna 5 anillo3 (6 servos) 6 accel X columna 3 anillo2 (6 servos) 5 - columna 1 anillo1 (6 servos) 4 audio columna 6 Act. variables  3 det. “stop” P2 columna 4 anillo3 (6 servos) 2 det. “stop” P1 columna 2 anillo2 (6 servos) 1 IR ranger columna 0 anillo1 (6 servos) 0
LA “CAMINATA” grupo 1 grupo 2
CINEMATICA INVERSA (introducción) Hasta ahora hemos manejado los servos en forma directa, indicándoles el ángulo en que deben posicionarse. Agrupando los servos en “patas”, controlando simultáneamente subgrupos de estas patas y usando simetrías simples, pudimos realizar movimientos relativamente complejos, como la caminata.. Sin embargo, este sistema se muestra limitado para implementar otro tipo de movimientos, en los que precisamos controlar la posición de cada pata en coordenadas cartesianas (en cm) y no “a ciegas”, basados en los ángulos. Esto nos permitirá, por ejemplo, realizar movimientos “con el tronco”, cambios de “postura”, y cualquier tipo de movimientos en los que haya que variar controladamente una coordenada sin afectar a las otras.
CINEMATICA INVERSA (problema) El problema consiste en hallar los 3 ángulos de los servos de una pata, en función de las coordenadas x, y, z (en cm) de la punta de la misma. 2 de los servos actúan en un plano “vertical” y el otro en un plano “horizontal” a b x’ z c a =  “muslo”  = 4,63 cm b =  “pierna”  = 7,35 cm    y  son los ángulos buscados servo 3 servo 2 servo 1 y  x’ 4 cm 4 cm x 4 cm =  distancia entre el servo 1 y el eje del servo 2 eje del servo 2 x’  es la proyección del dibujo de la izquierda en el plano horizontal  es el ángulo buscado
CINEMATICA INVERSA (solución) ,[object Object],[object Object],[object Object],Nota: en el programa, los ángulos son calculados en rad. y convertidos a grados (*180/PI) y las funciones trigonométricas inversas son calculadas utilizando únicamente atan(). También puede haber un cambio de signo o la suma de un “desfasaje” para que los resultados queden en el cuadrante adecuado.
DISPLAY directo a un puerto paralelo de la Wiring 3 bits de control para seleccionar la columna funciones básicas del display 7445 Lee un carácter de la EEPROM y lo carga en el buffer loadChr Apaga todos los pixels de uno de los 4 cuadrantes en que se divide la pantalla borraCuadrante Apaga todos los pixels de una zona rectangular de la pantalla borraZona Dibuja un cuadrado cuadrado Dibuja una línea horizontal linea_h Dibuja una línea vertical linea_v Superpone el contenido del buffer en la pantalla, usando la funcion booleana “OR” merge Sustituye el contenido actual de la pantalla por el del buffer writeScreen Copia todo el contenido de la pantalla a un “buffer” readScreen Invierte el estado de un pixel togglePixel Lee el estado de un pixel readPixel Enciende un pixel writePixel Apaga todos los pixels de la pantalla cls comentario función
Encoder óptico El encoder óptico consiste en un emisor IR, una rueda perforada y dos fototransistores colocados de tal manera que generen sendas ondas cuadradas, desfasadas 90º (en “cuadratura”). en un sentido… en el otro sentido… señales generadas por el encoder siendo [n-1] y [n] dos lecturas consecutivas del encoder, hacemos un XOR “cruzado” de la siguiente manera: (FT1[n-1] xor FT2[n]) + 2*(FT2[n-1] xor FT1[n]) DECODIFICACION 1 – movimiento en un sentido 2 – movimiento en el otro sentido 3, 0 – no hay movimiento el resultado que obtenemos es siempre 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 FT2 FT1
AUDIO Es posible que en el futuro implementemos un segundo procesador hardware, completamente dedicado a procesar la señal proveniente del micrófono. Por el momento estamos utilizando un único microcontrolador para todas las tareas, lo cual, en el caso del audio, limita las posibilidades prácticamente a tener una medida aproximada de la intensidad del sonido, cada cierto lapso. Expresado en bloques, el procesamiento actual del audio sería el siguiente: HARDWARE SOFTWARE audio () interrupción rutinas de “alto nivel” ,[object Object],[object Object],[object Object],[object Object],ADC ATmega MIC AMP DC blocking rectificación noise gate logaritmo pasa-bajos
“ Multitasking” Una de las preocupaciones fundamentales en todos mis proyectos, es el aprovechamiento al máximo de los tiempos del procesador, y la posibilidad de controlar el mayor número posible de dispositivos simultáneamente, usando un solo microcontrolador. De esta manera, vemos como el robot puede efectuar movimientos complejos al mismo tiempo que despliega información en el display y monitorea todos los sensores. Esto se consigue, en SAMSA, usando varias estrategias: 1) Interrupciones periódicas para atender al hardware. 2) Sustituyendo todos los tiempos de espera (delay) por “active_delay”. 3) Implementando variables locales estáticas en las funciones y procedimientos y haciendo que su ejecución sea “segmentada”. Por ejemplo, cada vez que llamamos a la rutina que dibuja círculos, esta dibuja sólo un punto del círculo. active_delay ,[object Object],[object Object],[object Object],[object Object]

Más contenido relacionado

Más de Pablo Gindel

Microcontroladores 5 – comunicación (SPI & I2C)
Microcontroladores 5 – comunicación (SPI & I2C)Microcontroladores 5 – comunicación (SPI & I2C)
Microcontroladores 5 – comunicación (SPI & I2C)Pablo Gindel
 
Microcontroladores 4 – comunicación (uart)
Microcontroladores 4 – comunicación (uart)Microcontroladores 4 – comunicación (uart)
Microcontroladores 4 – comunicación (uart)Pablo Gindel
 
Microcontroladores 3 – conversor A/D; DSP
Microcontroladores 3 – conversor A/D; DSPMicrocontroladores 3 – conversor A/D; DSP
Microcontroladores 3 – conversor A/D; DSPPablo Gindel
 
Microcontroladores 2 – GPIO y PWM
Microcontroladores 2 – GPIO y PWMMicrocontroladores 2 – GPIO y PWM
Microcontroladores 2 – GPIO y PWMPablo Gindel
 
Microcontroladores 1 – arquitectura
Microcontroladores 1 – arquitecturaMicrocontroladores 1 – arquitectura
Microcontroladores 1 – arquitecturaPablo Gindel
 
Electrónica 5 – electrónica digital
Electrónica 5 – electrónica digitalElectrónica 5 – electrónica digital
Electrónica 5 – electrónica digitalPablo Gindel
 
Electrónica 4 – fuentes y baterías
Electrónica 4 – fuentes y bateríasElectrónica 4 – fuentes y baterías
Electrónica 4 – fuentes y bateríasPablo Gindel
 
Electrónica 3 – componentes activos y semiconductores
Electrónica 3 – componentes activos y semiconductoresElectrónica 3 – componentes activos y semiconductores
Electrónica 3 – componentes activos y semiconductoresPablo Gindel
 
Electrónica 2 – fundamentos 2; componentes pasivos
Electrónica 2 – fundamentos 2; componentes pasivosElectrónica 2 – fundamentos 2; componentes pasivos
Electrónica 2 – fundamentos 2; componentes pasivosPablo Gindel
 
Electrónica 1 – fundamentos 1
Electrónica 1 – fundamentos 1Electrónica 1 – fundamentos 1
Electrónica 1 – fundamentos 1Pablo Gindel
 
Microcontroladores 6 – interrupciones
Microcontroladores 6 – interrupcionesMicrocontroladores 6 – interrupciones
Microcontroladores 6 – interrupcionesPablo Gindel
 
Introducción a la robótica con arduino
Introducción a la robótica con arduinoIntroducción a la robótica con arduino
Introducción a la robótica con arduinoPablo Gindel
 

Más de Pablo Gindel (14)

Control remoto IR
Control remoto IRControl remoto IR
Control remoto IR
 
Audio con Arduino
Audio con ArduinoAudio con Arduino
Audio con Arduino
 
Microcontroladores 5 – comunicación (SPI & I2C)
Microcontroladores 5 – comunicación (SPI & I2C)Microcontroladores 5 – comunicación (SPI & I2C)
Microcontroladores 5 – comunicación (SPI & I2C)
 
Microcontroladores 4 – comunicación (uart)
Microcontroladores 4 – comunicación (uart)Microcontroladores 4 – comunicación (uart)
Microcontroladores 4 – comunicación (uart)
 
Microcontroladores 3 – conversor A/D; DSP
Microcontroladores 3 – conversor A/D; DSPMicrocontroladores 3 – conversor A/D; DSP
Microcontroladores 3 – conversor A/D; DSP
 
Microcontroladores 2 – GPIO y PWM
Microcontroladores 2 – GPIO y PWMMicrocontroladores 2 – GPIO y PWM
Microcontroladores 2 – GPIO y PWM
 
Microcontroladores 1 – arquitectura
Microcontroladores 1 – arquitecturaMicrocontroladores 1 – arquitectura
Microcontroladores 1 – arquitectura
 
Electrónica 5 – electrónica digital
Electrónica 5 – electrónica digitalElectrónica 5 – electrónica digital
Electrónica 5 – electrónica digital
 
Electrónica 4 – fuentes y baterías
Electrónica 4 – fuentes y bateríasElectrónica 4 – fuentes y baterías
Electrónica 4 – fuentes y baterías
 
Electrónica 3 – componentes activos y semiconductores
Electrónica 3 – componentes activos y semiconductoresElectrónica 3 – componentes activos y semiconductores
Electrónica 3 – componentes activos y semiconductores
 
Electrónica 2 – fundamentos 2; componentes pasivos
Electrónica 2 – fundamentos 2; componentes pasivosElectrónica 2 – fundamentos 2; componentes pasivos
Electrónica 2 – fundamentos 2; componentes pasivos
 
Electrónica 1 – fundamentos 1
Electrónica 1 – fundamentos 1Electrónica 1 – fundamentos 1
Electrónica 1 – fundamentos 1
 
Microcontroladores 6 – interrupciones
Microcontroladores 6 – interrupcionesMicrocontroladores 6 – interrupciones
Microcontroladores 6 – interrupciones
 
Introducción a la robótica con arduino
Introducción a la robótica con arduinoIntroducción a la robótica con arduino
Introducción a la robótica con arduino
 

Último

R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..RobertoGumucio2
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 

Último (20)

R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..Plan Sarmiento - Netbook del GCBA 2019..
Plan Sarmiento - Netbook del GCBA 2019..
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 

Samsa - Documentación

  • 3.
  • 4. Detalle del ensamblaje, conexionado y cableado.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 11. Diagrama en bloques del software (rutinas principales - bajo nivel)
  • 12. ISR (TIMER2_OVF_vect) servo2 act_display perifer angulo_des [6][3] incremento [6][3] display[8] accel [3] encoder ranger[20] rngr_ps sound servo (1 servo) osc_ant antenas posicion (1 pata) global (6 patas) parcial (3 patas) acostado parado caminata1 alfabetagama (cinemática inversa) posicion2 (n patas) postura (6 patas) caminata3 active_delay mov_tronco paseo cls writePixel readPixel togglePixel readScreen writeScreen merge linea_v linea_h cuadrado borraZona borraCuadrante loadChr scroll lsm rotaciones conway scroll_text medidor umbral_rngr umbral_snd shape source espejaime[3] audio
  • 13. CONTROL DE SERVOS FUNCIONAMIENTO DE UN SERVOMOTOR El espaciado de los pulsos no debe exceder los 20ms, de lo contrario el servo pierde fuerza y velocidad El servo tiene un rango de acción de 180º
  • 14. ¿Cómo controlar 18 servos independientes simultáneamente? 1) Cantidad de I/O en el microcontrolador ATmega128: 53 I/O 2) Función PWM del microcontrolador Permite gestionar el control “por hardware” sin consumir tiempo del programa… Pero, sólo está disponible en 6 salidas. 3) PWM “simulado” por software 4) un “timer” que genera interrupciones periódicamente, por ejemplo cada 20ms. Complica enormemente la programación, si pretendemos usar el mismo procesador para cumplir simultáneamente otras tareas… A menos que implementemos: Pero… si cada servo necesita un pulso de hasta 2,5 ms, en un período de 20ms apenas podríamos controlar 8 de ellos, y no nos quedaría tiempo para el resto de las tareas!!! ¿SOLUCIÓN?
  • 15. 5) Tenemos que generar varias señales al mismo tiempo. ¿Cómo? 6) La clave es no usar “delays” sino generar las señales con los propios tiempos de procesamiento del programa. Ejemplo: ponemos varios pines a “1” y en un “loop” los vamos apagando según el ángulo de cada servo. 7) Limitación: mayor cantidad de servos simultáneos mayor tiempo total del “loop” menor resolución de cada servo todos los pines a “1” x > ang1  servo1 “0” x > ang2  servo2 “0” x > angN  servoN “0” x ++ LOOP tiempo total del loop, TL(ms) = resolución de los servos
  • 16.
  • 18. CINEMATICA INVERSA (introducción) Hasta ahora hemos manejado los servos en forma directa, indicándoles el ángulo en que deben posicionarse. Agrupando los servos en “patas”, controlando simultáneamente subgrupos de estas patas y usando simetrías simples, pudimos realizar movimientos relativamente complejos, como la caminata.. Sin embargo, este sistema se muestra limitado para implementar otro tipo de movimientos, en los que precisamos controlar la posición de cada pata en coordenadas cartesianas (en cm) y no “a ciegas”, basados en los ángulos. Esto nos permitirá, por ejemplo, realizar movimientos “con el tronco”, cambios de “postura”, y cualquier tipo de movimientos en los que haya que variar controladamente una coordenada sin afectar a las otras.
  • 19. CINEMATICA INVERSA (problema) El problema consiste en hallar los 3 ángulos de los servos de una pata, en función de las coordenadas x, y, z (en cm) de la punta de la misma. 2 de los servos actúan en un plano “vertical” y el otro en un plano “horizontal” a b x’ z c a = “muslo” = 4,63 cm b = “pierna” = 7,35 cm    y  son los ángulos buscados servo 3 servo 2 servo 1 y  x’ 4 cm 4 cm x 4 cm = distancia entre el servo 1 y el eje del servo 2 eje del servo 2 x’ es la proyección del dibujo de la izquierda en el plano horizontal  es el ángulo buscado
  • 20.
  • 21. DISPLAY directo a un puerto paralelo de la Wiring 3 bits de control para seleccionar la columna funciones básicas del display 7445 Lee un carácter de la EEPROM y lo carga en el buffer loadChr Apaga todos los pixels de uno de los 4 cuadrantes en que se divide la pantalla borraCuadrante Apaga todos los pixels de una zona rectangular de la pantalla borraZona Dibuja un cuadrado cuadrado Dibuja una línea horizontal linea_h Dibuja una línea vertical linea_v Superpone el contenido del buffer en la pantalla, usando la funcion booleana “OR” merge Sustituye el contenido actual de la pantalla por el del buffer writeScreen Copia todo el contenido de la pantalla a un “buffer” readScreen Invierte el estado de un pixel togglePixel Lee el estado de un pixel readPixel Enciende un pixel writePixel Apaga todos los pixels de la pantalla cls comentario función
  • 22. Encoder óptico El encoder óptico consiste en un emisor IR, una rueda perforada y dos fototransistores colocados de tal manera que generen sendas ondas cuadradas, desfasadas 90º (en “cuadratura”). en un sentido… en el otro sentido… señales generadas por el encoder siendo [n-1] y [n] dos lecturas consecutivas del encoder, hacemos un XOR “cruzado” de la siguiente manera: (FT1[n-1] xor FT2[n]) + 2*(FT2[n-1] xor FT1[n]) DECODIFICACION 1 – movimiento en un sentido 2 – movimiento en el otro sentido 3, 0 – no hay movimiento el resultado que obtenemos es siempre 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 FT2 FT1
  • 23.
  • 24.