Kevin Rivera Baldiviezo
Ervin Salazar Rocha
Giovanni Challapa Villca
Control inalámbrico de un motorizado mediante acelerómetro para personas con capacidades diferentes
Integrantes: Ervin Salazar R.
C6428-9
Giovanni Challapa V.
C5880-7
Kevin Rivera B.
A17528-5
CBBA,BOLIVIA
Introducción. -
El propósito del proyecto es reflejar un modelo de silla de ruedas eléctrica (Prototipo) para personas con capacidades distintas, parapléjicos , etc . El control se realizara en un guante y con el componente Adxl 335 (acelerómetro) que es un control de posición en 3 ejes X, Y , Z el cual será el sensor principal del sistema, en su mayoría las sillas de ruedas e léctricas tienden a tener un control c ontrol (joystick) con el cual direccionan la silla pero esto dificulta el manejo para algunas personas, es por ello se realizó este prototipo.
Objetivos:
Realizar un prototipo de una silla de ruedas Realizar el sistema de control para dicha silla de ruedas (prototipo). Materiales.
Materiales y equipo utilizado Resistencias
Cables de conexion
Regulador 7805
Cristal de cuarzo (16MHz)
Atmega 16
HT12D Y HT12E (DECODER Y ENCODER)
Modulo tx y rx
Fuente de Alimentación(5Vdc-12Vdc-24Vdc) Alimentación(5Vdc-12Vdc-24Vdc)
L293D (controlador para motores)
AcelerometroADXL335 AcelerometroADXL335
HK15138 Standard Analog Servo
Multímetro
Marco teórico. Características generales del ATmega16/16L *Microcontrolador AVR de 8 bit de alto rendimiento y bajo consumo. * Arquitectura RISC avanzada. - 131 instrucciones. La mayoría de un simple ciclo de clock de ejecución. - 32 x 8 registros de trabajo de propósito general. - Capacidad de procesamiento de unos 16 MIPS a 16 MHz.
* Memorias de programa y de datos no volátiles. - 16K bytes de FLASH autoprogramable en sistema. Resistencia: 1.000 ciclos de escritura / borrado. Operación de lectura durante la escritura. - 512 bytes de EEPROM. Resistencia: 100.000 ciclos de escritura / borrado. - 1K bytes de SRAM interna. inter na. - Bloqueo (cerradura) programable para la seguridad del software.
* Interface JTAG. - Mantenimiento de eliminación de errores On-Chip. - Programación de FLASH, EEPROM, fusibles y bits de bloqueo a través de la interface JTAG. - Capacidades de Boundary Scan de acuerdo con el Standard (norma) JTAG.
* Características de los periféricos. - Dos Timer/Contadores de 8 bits c on prescaler separado y modo comparación. - Un Timer/Contador de 16 bits con prescaler separado, modo comparación y modo de captura. - Comparador analógico On-Chip. - Timer watchdog programable con oscilador separado On-Chip. - Interface serie SPI maestro/esclavo. - USART serie programable. - Contador en tiempo real con oscilador separado. - ADC de 10 bit y 8 canales. 8 canales de terminación simple 7 canales diferenciales sólo en el encapsulado TQFP. 2 canales diferenciales con ganancia programable a 1x, 10x o 200x. - 4 canales de PWM. - Interface serie de dos hilos orientada a byte.
* Características especiales del microcontrolador. - Reset de Power-on y detección de Brown-out programable. - Oscilador RC interno calibrado. - Fuentes de interrupción externas e internas. - 6 modos de descanso: Idle, reducción de ruido ADC, Power-save, Power-down, Standby y Standby extendido.
* I/O y encapsulados - 32 líneas de I/O programables. - PDIP de 40 pines, TQFP y MLF de 44 pines. * Tensiones de funcionamiento. - 2.7 - 5.5V (ATmega16L). - 4.5 - 5.5V (ATmega16).
* Niveles de velocidad. - 0 - 8 MHz (ATmega16L). - 0 - 16 MHz (ATmega16).
Acelerómetro ADXL335 El sensor acelerómetro ADXL335 nos permite medir la aceleración en los tres ejes espaciales X,Y,Z. Es un sensor compacto y de tamaño muy reducido. Funciona a 3.3v y normalmente lo encontramos en forma de módulo con los componentes necesarios para su conexión directa a la placa Arduino. El rango capaz de medir este sensor es de -3G a +3G (G=aceleración (G=aceleración de la gravedad, 1G=9.8m/s2)
El sensor se conecta a tres entradas analógicas, una por cada eje de medición, el conector VCC se conecta a 3.3v Con los valores de aceleración podemos medir la velocidad, detectar “ sacudidas “, detectar sacudidas“, “gestos gestos”” o analizar movimientos como andar o correr (( podómetro podómetro). Un ejemplo del uso de
acelerómetros es el famoso mando de la videconsola Wii (a (a parte de acelerómetros incluye otros sensores como giroscopios)
Con el sensor ADXL335 además de obtener los valores de aceleración, mediante algunos cálculos trigonométricos (que ArduinoBlocks realiza automáticamente) podemos obtener los valores de rotación: roll (ángulo (ángulo de rotación en ejex X) y pitch (ángulo de rotación en eje Y).
El valor de yaw (ángulo de rotación en eje Z) no podemos calcularlo sólo con un acelerómetro pues en este sentido de giro la aceleración por efecto de la gravedad no varía, por lo que necesitaríamos otros sensores más sofisticados que que combinan acelerómetros con giroscopios o sensores magnéticos (IMU). Características del HT12D
El Circuito integrado HT12D es un decodificador serial de datos para aplicaciones de control remoto. Este circuito es especialmente util para ensamblar dispositivos receptores de control remoto que usan canales de RF o medios infrarrojos como medio de transmisión. El circuito convierte un flujo de datos serial en 4 bits de datos de salida. Durante el proceso de recepción se realiza una comparación de la dirección en el flujo de datos con la dirección seleccionada localmente antes de colocar los cuatro bits de salida en los pines correspondientes.
Voltaje de operación 2.4 a 12V
Bajo consumo de corriente en Standby
Capaz de decodificar 12 bits de información
Ajuste de dirección binaria
Decodifica 8 bits de dirección y 4 bits de datos
Oscilador integrado que solor equiere un resistor de 5% de tolerancia
Pin de salida de recepcón válida Características del HT12E:
El Circuito integrado HT12E es un codificador (encoder) serial de datos para aplicaciones de control remoto. Este circuito es especialmente util para ensamblar dispositivos transmisores de control remoto que usan canales de RF o medios infrarrojos como medio de transmisión. El circuito codifica 4 bits de datos y 8 bits de dirección en un flujo de datos que es transmitido en
forma serial a través de un módulo de radio frecuencia o señales infrarrojas. La señal debe ser recibida con el decodificador correspondiente (HT12D).
Voltaje de operación 2.4 a 12V
Bajo consumo de corriente en Standby
Capaz de codificar 12 bits de información
Ajuste de dirección binaria
Codifica 8 bits de dirección y 4 bits de datos
Oscilador integrado que solor equiere un resistor de 5% de tolerancia
Pin de salida de recepcón válida
Módulo TX:
Voltaje de Operación: 3.5V~12V
Entrada de datos: TTL
Corriente de trabajo: Máximo <= 40mA (12V), mínimo <= 9 mA (3.5V);
Alcance: 20 metros~200 metros (a mayor voltaje, mayor potencia de transmisión)
Potencia de transmisión: 10 mW (5V);
Frecuencia de transmisión: 433MHz
Tasa de transferencia de datos: 4KB/seg
Baud Rate recomendado: 2400
Modulación: ASK/OOK
Antena (no incluida): Alambre de cobre de 25cm (recomendado)
Pines de salida: DATA(TX)/VCC/GND
Módulo RX:
Voltaje de Operación: 5V DC
Consumo de corriente: 4mA
Sensibilidad del receptor: -105dB
Frecuencia de recepción: 433MHz
Modulación: ASK/OOK
Principio de funcionamiento: Receptor Superregenerativo
Antena (no incluida): Alambre de cobre de 25cm~32cm (recomendado en forma de espiral)
Pines: GND/DATA(RX)/VCC
L293D El Circuito Integrado L293D y L293 incluye en su interior 4 drivers o medio puente H. La corriente
máxima que el L293 puede manejar es de 1A a voltajes desde 4.5 volts a 36 volts, mientras que la corriente constante es de 600 mA. Todas las entradas del Circuito Integrado L293D son compatibles con TTL, por lo que pueden manejarse con la mayoría de los micro controladores y circuitos lógicos del mercado. La salida de los drivers puede activarse y desactivarse en pares, mediante señales de habilitación. Cuando se presenta un 1 lógico en los pines de habilitación, las señales correspondientes de salida estarán activas y en fase con la señal de entrada. Cuando las entradas de habilitación presentan un estado lógico 0, las salidas se encuentran en estado de alta impedancia. Gracias a que este circuito integrado es capaz de producir corriente bidireccionales es útil en aplicaciones que requieran controlar la dirección de giro y potencia de motores de DC, inclusive también pudiera utilizarse para controlar Relés, motores de paso bipolares, solenoides y cualquier otro dispositivo electrónico de corriente contínua.
Características del Circuito Integrado L293D :
Corriente de salida de 600 mA
Corriente pico de salida 1 A por canal (no repetitiva).
C.I. que consta con 16 pines
Alta inmunidad al ruido electrónico
Alimentación de 45. a 36v
Protección contra exceso de temperatura
Diodos de protección incorporados
HK15138 Standard Analog Servo Spec. Torque: 3.8kg @ 4.8v, 4.3kg @ 6v Weight: 38g
Speed: 0.21 / 60deg @4.8v, 0.17 / 60deg @ 6v Voltage:4.8v~6v
Tablas de calibración para ADXL335 ESTABLE INICIO:
Vref= 5V
X
Y
Z
PRUEBA 1
330
360
351
PRUEBA 2
324
321
360
PRUEBA 3
330
330
360
PRUEBA 4
328
332
370
PRUEBA 5
324
324
354
PRUEBA 6
300
300
360
PRUEBA 7
310
315
365
PRUEBA 8
310
310
370
VRef=5V
X
Y
Z
PRUEBA 1
360
340
370
PRUEBA 2
370
342
360
PRUEBA 3
360
330
355
PRUEBA 4
368
335
360
PRUEBA 5
310
300
330
PRUEBA 6
325
290
325
PRUEBA 7
320
280
335
AVANZAR
REVERSA
Vref=5V
X
Y
Z
PRUEBA 1
310
335
385
PRUEBA 2
300
315
360
PRUEBA 3
315
315
380
PRUEBA 4
290
320
370
PRUEBA 5
290
320
385
PRUEBA6
320
345
385
Vref=5V
X
Y
Z
PRUEBA 1
340
290
370
PRUEBA 2
330
290
360
PRUEBA 3
330
280
330
PRUEBA 4
340
288
355
PRUEBA 5
327
284
327
PRUEBA 6
330
270
330
PRUEBA 7
280
240
330
Vref=5V
X
Y
Z
PRUEBA 1
320
365
310
PRUEBA 2
300
345
330
PRUEBA 3
305
335
335
PRUEBA 4
327
360
340
PRUEBA 5
290
340
320
GIRO DERECHA
GRIO IZQUIERDA
ESTABLE INICIO
Vref=3V
X
Y
Z
PRUEBA 1
500
485
600
PRUEBA 2
499
500
615
PRUEBA 3
505
510
625
Vref=3V
X
Y
Z
PRUEBA 1
550
485
580
PRUEBA 2
610
590
600
PRUEBA 3
570
510
605
Vref=3V
X
Y
Z
PRUEBA 1
500
485
580
PRUEBA 2
460
497
600
PRUEBA 3
420
510
603
Vref=3V
X
Y
Z
PRUEBA 1
500
420
480
PRUEBA 2
530
400
499
PRUEBA 3
547
380
620
AVANZAR
REVERSA
GIRO DERECHA
GIRO IZQUIERDA
Vref=3V
X
Y
Z
PRUEBA 1
500
550
540
PRUEBA 2
520
600
590
PRUEBA 3
540
630
630
Procedimiento 1) Revisar la hoja de especificaciones de cada componente antes de utilizarlo, ver su correcto funcionamiento Conocer los voltajes de toleración en alimentación, esto para evitar daños a los componentes. 2) Realizar pruebas de todos los sensores y actuadores para verificar su correcto funcionamiento antes de unir todo el sistema. 3) Realizar una verificación del atmega 16 grabando un programa básico para encender un led,etc 4)Calibrar el acelerómetro ADXL335 haciendo pruebas y tomando datos de los rangos que abarca todos sus movimientos ( adelante , reversa ,derecha , izquierda). 5)Probar el sistema completo con leds como verificadores antes de conectar los motores 6) Armar el prototipo de la silla de ruedas con cañerias de agua de ½ pulgada 7) Acoplar los motores con las llantas que se utilizaran y posteriormente terminar de armar el prototipo con las ruedas listas para la prueba 8) Realizar pruebas con el rango de alcanze que llegara a tener los mo dulos TX y RX.
Código en Atmel estudio: #define F_CPU 16000000UL #include
unsigned int leer_adc(unsigned char entrada_adc) { ADMUX=entrada_adc|(1<
int ervin; PWM_init(); ADCinit(); while(1) { muestra1=leer_adc(0); x=muestra1; muestra2=leer_adc(1); y=muestra2; muestra3=leer_adc(2); z=muestra3; if (x>=500 && x<=549 && y>=485 && y<=520 && z>=595 && z<=620 ) { PORTC=0; } if (x>=10 && x<=490 && y>=480 && y<=515 && z>=576 && z<=610) { //OCR0=240; //OCR2=240; PORTC=10; } if (x>=550 && x<=1000 && y>=480 && y<=515 && z>=550 && z<=615) { PORTC=5;
} if (x>=495 && x<=550 && y>=10 && y<=415 && z>=475 && z<=650) { //OCR0=240; //OCR2=240; PORTC=9; } if (x>=500 && x<=555 && y>=550 && y<=1000 && z>=540 && z<=650) {
//OCR0=240; //OCR2=240; PORTC=6;
} //if(X
Y
Z)
DIAGONAL DERECHA
//{ //OCR0=255; //OCR2=240; //} //if(X
Y
//{ //OCR0=240; //OCR2=255; //}
Z)
DIAGONAL IZQUIERDA
Conclusiones y recomendaciones:
Se realizo con éxito el sistema para el manejo de una silla de ruedas prototipo realizado con tubos de cañería.
Se necesito servomotores para lograr el movimiento del prototipo ya que motores dc no poseen mucho torque para mover el prototipo. Para ello se utilizaron servosmotores de 4.3kg
Tener en cuenta la c alibración del sensor para un buen funcionamiento del sistema
Alimentar con 9V de referencia para el controlador del motor (L293d).
Los módulos de TX y RX pueden aumentar el rango de transmisión añadiendo una antena de cobre en espiral.
El acelerómetro es recomendable utilizar un voltaje de referencia a 3V para un mejor control.
Se trabajo el código para un PWM pero no se implemento en el proyecto porque se requiere de otro atmega