"tap-walkman" - diego serrón y sergio da silva

52
Pagina 1 TAP_WALK-MAN

Upload: dangdat

Post on 12-Feb-2017

228 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 1

TAP_WALK-MAN

Page 2: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 2

Indice del contenido:

Tema desarrollado Pagina1.0 Integrantes del equipo 32.0 OBJETIVO2.1 FILOSOFÍA2.2 PROPUESTA PEDAGÓGICA2.3 ReCiClAjE

4

53.0 MATERIALES ELECTRÓNICOS Y COSTOS 64.0 ARMADO –ELECTRONICA- 84.1 Creando el Impreso 84.12 DIAGRAMAS ELECTRONICOS PARA “ARMAR” LOS DIFERENTES CIRCUITOS:

14

4.121 ARDUINO 144.122 PUENTE H Y ALGUNOS FUNDAMENTOS 164.123 SENSOR (LDR) 184.124 UNION DE LOS TRES CIRCUITOS: ARDUINO-PUENTE H- SENSOR

20

4.125 MODIFICACIONES REALIZADAS AL CIRCUITO DEL ARDUINO PARA utilizar cable USB-Serial

22

4.126 CIRCUITO PROGRAMADOR 254.127 TEMAS EN LOS CUALES iNVESTIGAMOS 264.2 ARMADO: MECÁNICA Y CARCASA 334.3 PROGRAMACIÓN 394.31 GRABANDO EL GESTOR DE ARRANQUE (BOOTLOADER)

39

4.32 ENTORNO DE DESARROLLO PARA ARDUINO 404.33 PARA CREAR EL PROGRAMA 454.34 Atención!!! 485.0 GALERIA DE IMÁGENES: 49LINKS A VIDEOS DE PRUEBA 49REFERENCIAS 51

Page 3: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 3

1.0 Integrantes del equipo:

Sergio Da Silva

Dahiana Curbelo

Diego Serrón

Montevideo – Canelones-.URUGUAY.-

Page 4: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 4

Aclaramos que las paginas Mencionadas al final del documento (referencias) que no cumplen con las normas GPL, fueron consultados sus respectivos webmasters, habitándonos a utilizar esta información y adaptarla a nuestro documento.

2.0 OBJETIVO

Construir un móvil autónomo capaz de seguir un curso –circuito- trazado.

2.1 FILOSOFÍA Nuestra idea es vincular a mas gente interesada que no se atreve a aventurarse a crear por si mismos proyectos, los cuales despertaran su asombro al ver lo capaz que es de hacer uno, correctamente guiados con el material adecuado para cada persona.

2.2 PROPUESTA PEDAGÓGICALas versiones anteriores de autos realizados en el marco del Taller de Arte y Programación, Universidad de la República del Uruguay, fueron utilizadas como motivadores en varios talleres en escuelas públicas del país desde el 2007. Estos artefactos eran electro-mecánicos y conectados directamente a una fuente de poder de 12 V.

Los objetivos de estos talleres son:• Acercamiento de los escolares a las tecnologías actuales• Incentivarlos a investigar en forma autonoma, que pierdan el

miedo • Sensibilizar sobre la importancia de la reutilizacion de chatarra

electronica y basura tecnologica • Despertales la curiosidad sobre estos temas

Page 5: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 5

La propuesta pedagogica incluye una parte teorico-practica donde se muestra a los participantes como fue construido y los principios de funcionamiento del objeto: y otra parte practica donde los escolares experimentan por si mismo

El tap walkman tiene un nivel de complejidad superior al de los autos anteriores y es comandado por un microcontrolador por lo cual pensamos que sería adecuado para talleres con jóvenes adolescentes liceales. Otra diferencia muy importante es que permitirá explorar juntos nociones básicas de programación.

2.3 ReCiClAjEEs un punto a tener muy en cuenta puesto que hoy en día con el consumo y descarte creciente que existe, provocando un aumento en la contaminación ambiental en todos los aspectos, podemos encontrar en un material que para muchos es inservible, una gran fuente de recursos, tecnología y conocimientos latentes.

Page 6: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 6

3.0 MATERIALES ELECTRÓNICOS Y COSTOS

ARDUINO SERIAL SINGLE SIDED VERSION 3 (S3V3) - REVISION 2

# PRODUCTO P UNITA

2 4,1 8,2

4 25 100

2 2,5 5

1 1 1

1 1 1

2 1 2

1 50 50

1 130 130

1 20 20

1 0 0

1 38 38

1 35 35

1 38 38

1 0 0

1 0 0

1 25 25

1 2 2

1 2 2

1 2 2

1 2 2

1 18 18

1 0 0

5 1 5

5 1 5

1 1 1

20 0

1 1,2 1,2

1 1,2 1,2

1 X1 9 PIN FEMALE RIGHT ANGLE PC MOUNT D-SUB CONNECTOR DE-9 CONNECTOR 40 40

1 jumper 0.1" (or 2.54 mm.) 0 0

1 jumper 0.1" (or 2.54 mm.) 0 0

1 Chapa pertinax laminada 10x10cm o una mas grane e ir cortando a medida que se necesita 50 50

8 0

TOTAL ARDUINO 582,6

1 PUENTE H ( tener en cuenta que lleva 2 )

2 1 2

2 R2 27ohm 1 2

2 TIP32 PNP transistor 20 40

2 TIP31 NPN transistor 20 40

4 1N4007 diodo 1 4

2 2N222 NPN transistor 6 12

1 pertinax laminado cobre 3x2cm 10 10

TOTAL PUENTE H 110

SENSOR

2 1 2

2 LDR 120mm 20Kohm - 5Mohms 250v 47 94

2 led blancos 0 0

TOTAL SENSOR 96

PROGRAMADOR

2 0 € 0

1 transistor bc547 1,2 1,2

3 R1 3.3kohm 1 3

1 R1 10Kohm 1 1

1 R1 15Kohm 1 1

1 DB9 hembra 0 0

TOTAL PROGRAMADOR 6,2

ACICIONALES

1 Sw jumper 0 0

3 0 0

1 9 PIN FEMALE conector 0 0

1 20 20

1 cable de cobre 1mm - 3mts 10 10

1 estaño1.0mm 3mts. 41 41

1 lana de acero 30 30

4 80 320

TOTAL ADICIONALES 421

TOTAL DE GASTOS 1209,6

Sub total

C1 22pF (22 pico Farad) ceramic disc capacitor

C3 100nF (100 nano Farad - or 0.1 micro Farad) ceramic or poly ester capacitor

C5 100μF (100 micro Farad) electroly tic capacitor 16v olts (or more: 25v ) radial-lead

C9 10μF (10 micro Farad) non-polarized electroly tic capacitor 16v olts (or more: 25v , 50v ) radial-lead

D1 1N4004 diode DO41-10

D3 1N4148 diode DO35-10

DC1 2.1mm. DC power jack

IC1 ATMEGA8 (or ATMEGA168) 28P3 package

IC2 7805C Tension Regulator

ICSP 2x3 male pin header ICSP

J1 1x8 f emale pin header 0.1" (or 2.54 mm.) PORT D(D0-D7)

J2 1x6 f emale pin header 0.1" (or 2.54 mm.) PORT C(A0-A5)

J3 1x8 f emale pin header 0.1" (or 2.54 mm.) PORT B(D8-D13)

JP0 1x3 right angle pin header 0.1" (or 2.54 mm.)

JP4 1x2 right angle pin header 0.1" (or 2.54 mm.) AUTO RESET

L1 100μH leaded inductor axial leaded (silv er)brown, black, brown, golden

LED0 3 mm. LED choose a color Rx Led

LED1 3 mm. LED choose a color Tx Led

LED13 3 mm. LED choose a color Pin13 Led

LED14 3 mm. LED choose a color Power Led

POWER 1x6 f emale pin header

Q1 16 MHz cry stal

R1 1kohm (1.0 kilo ohm) Resistor 1/4 Watt, ±5% brown, black, red, gold

R5 10kohms (10.0 kilo ohms) Resistor 1/4 Watt, ±5% brown, black, orange, gold

R9 4k7ohms (4.7 kilo ohms) Resistor 1/4 Watt, ±5% y ellow, v iolet, red, gold

S1 6x6 mm., 4 terminals Switch Tactile B3F-10XX

T1 BC547 Transistor NPN general purpose transistor TO92

T2 BC557 Transistor PNP general purpose transistor TO92

zocalo 28p para CI (atmega8)

R1 1kohm (1.0 kilo ohm) Resistor 1/4 Watt, ±5% brown, black, red, gold

R1 1kohm (1.0 kilo ohm) Resistor 1/4 Watt, ±5% brown, black, red, gold

diodo zener 5.1v

conector de baterias 9v (para el arduino, para los 2 puentes H)

IC2 7805C Tension Regulator

baterias energizer 9v

Page 7: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 7

Los valores en – 0 – (cero) representan los componentes que fueron reciclados de otros dispositivos electrónicos, principalmente de motherboards, ratones, etc.Los valores numéricos expresados son representados en moneda nacional Uruguaya (pesos Uruguayos) al día 20 pesos uruguayos equivalen a un dólar Americano o a 12 reales.

Page 8: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 8

4.0 ARMADO –ELECTRONICA-

4.1 Creando el Impreso

A lo largo de este punto aprenderemos a desarrollar placas de circuito impreso (PCB, por Printed Circuit Board) para nuestros proyectos, utilizando para ello elementos de fácil adquisición, y que tendrán un acabado muy profesional. Sobre ellas montaremos los componentes de nuestros proyectos de electrónica, y si somos prolijos, resultaran indistinguibles de uno comercial. Antes de comenzar, debemos asegurarnos de tener a mano todo lo necesario para llevar a cabo nuestro PCB.En primer lugar, necesitamos una impresora láser o una fotocopiadora. Como veremos mas adelante, el toner de la impresión es el que formara las pistas de nuestro PCB, así que el dibujo de las pistas que podemos realizar con algún programa especializado, o hasta con el mismísimo Saint incluido en Windows debe ser impreso con una impresora de tecnología láser. Si no disponemos de una, podemos usar cualquier impresora, y luego llevar el impreso a una fotocopiadora y hacer una copia. Las fotocopias también son hechas mediante toner, por lo que mediante este procedimiento nos haremos de un original para nuestro PCB.También deberemos comprar en una tienda especializada en componentes electrónicos (donde compramos los demás componentes para nuestros circuitos) una placa de PCB virgen, del tamaño adecuado para nuestro proyecto. Estas placas generalmente se consiguen fabricadas en pertinax o sobre fibra de vidrio. Cualquiera de las dos sirve. Prestar atención a que tenga solo una de sus caras cabreadas, salvo que queramos hacer un circuito impreso de doble faz.También compraremos un cuarto litro de percloruro férrico, que es el elemento que atacara la superficie de cobre, para eliminar todas las partes que no necesitamos.Para acondicionar la placa virgen vamos a necesitar algún polvo limpiador y un poco de lana de acero, de los mismos que se utilizan para lavar los cacharros de cocina, que utilizaremos para dejar bien

Page 9: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 9

limpia y desengrasada la superficie de la placa.Deberemos tener a mano alguna hoja de papel ilustración, como explicaremos mas adelante.Por ultimo, necesitamos algunas herramientas o accesorios, como ser una agujereadora, con una broca de 1.00 mm y otra de 0.75 mm, un recipiente plástico en el que entre nuestra placa, uno metálico en el que entre el recipiente plástico, una sierra de cortar metales y una plancha, de las usadas normalmente para planchar nuestra ropa.

Percloruro férrico.En este punto, debemos tener en cuenta un par de consejos para que el resultado final sea óptimo. En primer lugar, la escala del dibujo debe ser la adecuada para que cuando vayamos a montar los componentes en nuestro PCB, las medidas coincidan. Por ejemplo, la separación estándar entre dos pines consecutivos de un circuito integrado es de 0.1 pulgada (2,54 mm). Si nos atenemos a esto, no tendremos problemas. En segundo termino, como veremos mas adelante, al transferir el dibujo del papel al cobre la imagen quedara invertida, como si la viéramos en un espejo, así que debemos tener esto en cuenta al dibujarlo en el ordenador para no terminar con una imagen invertida en el PCB. No es conveniente imprimir nuestro circuito con la opción de economía de tinta activada, ya que necesitamos una buena cantidad de toner en la copia, dado que es el que se va a transferir al cobre.Si nuestra impresora no es láser, como dijimos antes, llevaremos nuestra impresión a una fotocopiadora y haremos una copia de ella, cuidando que la escala sea exactamente 1:1 (no todas las fotocopias son idénticas al original) y que la copia no presente rayas o cortes, ya que de ser así, estas imperfecciones se transferirán al PCB. Si no estamos conformes con la calidad de la fotocopia, hagamos sacar otra hasta que veamos que no tiene defectos.Respecto del papel a utilizar, los mejores resultados los he obtenido utilizando papel ilustración, que es un papel de una calidad mayor al de resma común, con un grano mas fino y ligeramente satinado. Respecto a este punto, lo mejor es hacer algunas pruebas hasta encontrar el adecuado antes de comprar grandes cantidades de papel.

Page 10: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 10

Dibujamos el PCB en el ordenador.Una vez cortada la placa virgen a las medidas de nuestro PCB con la sierra de cortar metales, comenzaremos la limpieza concienzuda la placa de circuito impreso virgen, para que quede libre de suciedad, grasa, etc. Utilizaremos para ello el polvo limpiador y la lana de acero, que debe ser lo mas fina posible para que no queden rayas. Algún agente químico puede resultar útil, como por ejemplo un limpia metales y un trapo en lugar de la lana de acero. Podemos probar distintos métodos, de acuerdo a los elementos que tengamos a mano. Mientras llevamos a cabo esta tarea, podemos aprovechar a enchufar la plancha para que vaya tomando temperatura.Una vez que el cobre esta limpio, alinearemos sobre el PCB el papel con la impresión que hemos hecho, con las pistas hacia el cobre (debemos ver la parte sin imprimir), de manera que cuando apliquemos calor, el toner se funda y se transfiera al cobre.Con la plancha bien caliente, y con cuidado de no mover el papel (puede ser una buena idea agarrarlo por detrás del PCB con alguna cinta adhesiva) “planchamos” la hoja durante uno o dos minutos presionando la plancha, aunque este tiempo puede variar de acuerdo al tipo de toner y la temperatura exacta de la plancha, con lo que casi todo el toner habrá pasado de la hoja de papel a la cara de cobre del PCB.

Para remover el papel del PCB deberemos sumergir todo en agua del grifo durante unos 5 o 10 minutos (depende del tipo de papel), y luego con los dedos iremos desmenuzando el papel hasta eliminarlo por completo del PCB. En este momento deberíamos tener la placa con el dibujo listo. Solo resta asegurarnos que todas las pistas y nodos se hayan calcado correctamente, y que no hayan quedado pedacitos de papel que puedan evitar la acción del percloruro, dando lugar a cortocircuitos en nuestro PCB terminado.

Page 11: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 11

Para ello, pondremos algo de agua en el recipiente metálico que mencionamos al principio de la nota, y dentro de el ponemos el recipiente plástico con el percloruro. Ponemos todo el conjunto en una hornalla de la cocina, a fuego mínimo, como para que el agua caliente a unos 40 o 50 grados el percloruro que se encuentra en el recipiente plástico. Esto hará las veces de un catalizador positivo,

provocando que el percloruro ataque con mayor velocidad las zonas de cobre desnudo. Ponemos la placa dentro del percloruro, y esperamos unos 5 o 10 minutos hasta que el cobre que esta sin cubrir desaparezca. A veces, da buen resultado mover suavemente la placa durante este tiempo, para evitar que el percloruro que ya se combino con el cobre se deposite sobre la placa y actúe como un “aislante” que evita el contacto del PCB con el percloruro sin combinar.

Caso1 - mal planchado Caso2 - bien planchado

PCB en el baño de percloruro.

Page 12: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 12

Esta operación no reviste peligro, pero por las dudas conviene llevarla a cabo en un lugar ventilado para no aspirar los vapores del percloruro férrico, y por supuesto evitar salpicaduras, ya que si bien el percloruro es inocuo para la piel, nos puede manchar permanentemente la ropa. Un vez que terminamos este proceso, lavamos todo con abundante agua.

El percloruro que utilizamos podemos guardarlo para otra placa, ya que en general, y dependiendo de la superficie del PCB realizado, se puede emplear varias veces. Cuando notemos que el tiempo necesario para acabar el trabajo es demasiado largo (25 o 30 minutos) será el momento de comprar otro bidón de percloruro.

Con la placa ya libre de percloruro, utilizamos nuevamente la lana de acero con el polvo limpiador para remover todos los restos de toner que hay sobre el PCB, y ya deberíamos tener nuestro PCB casi listo, restando solamente efectuar los agujeros para los componentes.Para agujerear la placa, usaremos el taladro y las brocas, cuidando de que los agujeros queden centrados sobre los pads del PCB, y que el diámetro de los mismos sea el adecuado para los terminales de los componentes que usaremos. Agujeros demasiado grandes o pequeños impedirán que el resultado final sea prolijo.

Page 13: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 13

Para dibujar el PCB en el ordenador, se puede utilizar programas comerciales de uso general, como Corel Draw, Autocad, o incluso el sencillo Paint, siempre cuidando de que las dimensiones de los objetos que dibujemos sean las correctas. No es mala idea imprimir en un papel común una copia y sobre ella “medir” los componentes para ver si las distancias entre pines son las adecuadas.Existen programas específicos para la realización de PCB, como PCBWizard, Pad2Pad, FreePCB o Spicycle, algunos de ellos disponibles en forma gratuita. De todos modos, si nuestro proyecto no es muy complejo, se puede realizar el diseño del PCB tranquilamente sin necesidad de software especializado.Por ultimo, cundo hagamos nuestros dibujos, podemos “pintar” los espacios que quedan entre componentes o entre pistas, para que sea menor la superficie que debe atacar el percloruro. Esto hará que el tiempo necesario para llevar a cabo la tarea sea menor, y que el percloruro nos sirva para un mayor número de placas. El liquido sobrante deberemos guardarlo bien tapado, en un lugar fresco y si es posible que no este expuesto a la luz del sol directa, para evitar que se degrade prematuramente.

Una vez creado el circuito, ya estamos listos para comenzar a colocar y soldar los componentes de acuerdo a las indicaciones siguientes:

4.12 DIAGRAMAS ELECTRONICOS PARA “ARMAR” LOS DIFERENTES CIRCUITOS:

4.121 ARDUINO

Page 14: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 14

O EL DIAGRAMA REAL con la disposición de los componentes electrónicos.

Los materiales son los mencionados en le punto 3.0

Page 15: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 15

Page 16: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 16

4.122 PUENTE H Y ALGUNOS FUNDAMENTOS

Se utilizo el mismo procedimiento que en el 4.1 del para fabricar los 2 puentes H del proyecto.Mostramos los casos prácticos y aclaramos que este impreso no fue hecho por computadora sino que a mano con un marcador indeleble en lugar de toner de impresora (caso del impreso arduino que es mas complejo).

Control de motores de CCPuente H

En el circuito de abajo vemos un Puente H de transistores, nombre que surge, obviamente, de la posición de los transistores, en una

distribución que recuerda la letra H. Esta configuración es una de las más utilizadas en el control de motores de CC, cuando es necesario

que se pueda invertir el sentido de giro del motor.

Page 17: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 17

Funcionamiento:Aplicando una señal positiva en la entrada marcada AVANCE se hace conducir al transistor Q1. La corriente de Q1 circula por las bases, de Q2 y Q5, haciendo que el terminal a del motor reciba un positivo y el terminal b el negativo (tierra).

Page 18: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 18

Si en cambio se aplica señal en la entrada RETROCESO, se hace conducir al transistor Q6, que cierra su corriente por las bases, de Q4 y Q3. En este caso se aplica el positivo al terminal b del motor y el negativo (tierra) al terminal a del motor.

Una de las cosas muy importantes que se deben tener en cuenta en el control de este circuito es que las señales AVANCE y RETROCESO jamás deben coincidir. Si esto ocurre los transistores, Q2, Q3, Q4 y Q5 cerrarán circuito directamente entre el positivo de la fuente de alimentación y tierra, sin pasar por el motor, de modo que es seguro que se excederá la capacidad de corriente Emisor-Colector y los transistores, se dañarán para siempre. Y si la fuente no posee protección, también podrá sufrir importantes daños. Al efecto existen varias formas de asegurarse de esto, utilizando circuitos que impiden esta situación (llamados "de interlock"), generalmente digitales, basados en compuertas lógicas.

4.123 SENSOR (LDR)

Los materiales a utilizar son los mencionados en el capitulo 3.0.El esquema de conexión a la placa es como indica la figura:

Page 19: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 19

Las LDR (Light Dependent Resistor, o Resistor Dependiente de la Luz) son, como su nombre lo indica, resistencias cuyo valor varia de acuerdo al nivel de luz al que están expuestas.

Page 20: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 20

Si bien los valores que puede tomar una LDR en total oscuridad y a plena luz puede variar un poco de un modelo a otro, en general oscilan entre unos 50 a 1000 ohmios (1K) cuando están iluminadas (por ejemplo, con luz solar) y valores comprendidos entre 50K (50,000 Ohms) y varios megohmios (millones de ohms) cuando está a oscuras. El voltaje a medir se realiza entre la resistencia y la LDR.

4.124 UNION DE LOS TRES CIRCUITOS: ARDUINO-PUENTE H- SENSORPara que nuestro seguidor de curso funcione en la parte electrónica basta con interconectar los 3 circuitos en los que trabajamos, agregándoles una leve modificación para que el sensor detecte mejor los cambios de superficie: Un led a cada sensor (llevara 2)Se adjunta el diagrama de cómo deberá ir conectado de acuerdo a la programación realizada, la cual, se muestra en los puntos siguientes el código donde se seleccionan.

Page 21: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 21

CIRCUITO LISTO CON EL PUENTE H CONECTADO

Aclaramos que GND en este circuito es común tanto para el sensor como al arduino, como al puente H para que una vez cerrado el circuito éste funcione.

Page 22: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 22

4.125 MODIFICACIONES REALIZADAS AL CIRCUITO DEL ARDUINO PARA utilizar cable USB-Serial

Para evitar problemas de compatibilidad con diferentes pc a donde vayamos, buscamos la forma de adaptar nuestro circuito conexión serial DB-9 a usb.

Para ello utilizamos un cable USB que adapta a Serial DB-9, adquirido de un viejo celular nuestro sony Ericsson k700i, cable el cual tiene un integrado AS8303DS.

Pues bien, si ya disponemos de un Arduino, podremos utilizarlo para estos menesteres. Lo primero será mantener el ATmega8 en un estado de reset para que no interfiera en la comunicación, para ello basta con conectar la señal de RESET a GND. Hecho esto toca pensar un poco, cuando conectamos el Arduino al PC con el cable USB aparece un nuevo dispositivo de puerto serie, si abrimos una consola a este puerto podemos enviar datos al micro controlador del Arduino, es decir, que lo que escribimos (TX del PC) le llega al micro controlador por la patita de recepción (RX del Arduino), y lo que recibimos en el PC (RX del PC) es lo que circula por la patita de envío del micro controlador (TX del Arduino).

Por tanto, imaginemos que queremos conectar un dispositivo con un puerto TTL serie. Llamemos a los pines de este puerto serie TTL-Rx y TTL-Tx. Para conectarlo a nuestro PC tendríamos que conectar TTL-Rx al pin RX (pin 0) del Arduino y el TTL-Tx al TX (pin 1). Esto es así por lo que se ha explicado anteriormente. Además normalmente tendremos que conectar también al pin GND del Arduino el pin GND del dispositivo.

Page 23: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 23

También hay que hacer notar que se pueden usar las señales CTS, DSR, DCD y que se encuentra en la placa de Arduino y que viene sin montar. Basta con retirar el estaño y soldar ahí un conector. También puede usarse la señal RTS y DTR pero exigen unos cambios. Para usar la señal RTS, habrá que extraer el micro controlador del zócalo y sacar esta señal directamente del pin de RESET (quitando el puente entre RESET y GND que se explicó antes).

Page 24: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 24

Para usar la señal DTR habría que cortar la pista que pasa entre el jumper RESET-EN, situado entre el conector serial y el AS8303DS. Posteriormente podríamos soldar los pads del jumper para dejarlo como al principio. Habría que tomar la señal del pad más alejado al conector X3. Si no queremos cortar esa pista también podríamos desoldar el condensador de 100nF y podríamos tomar la señal de cualquiera de los pads del jumper RESET-EN. En cualquier caso, si no se pone el condensador o no se rehace el puente del jumper, lo único que perderemos es la opción de resetear la placa por software desde el PC.

Page 25: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 25

4.126 CIRCUITO PROGRAMADOR

Los materiales utilizados son los mencionados en el punto 3.0

Basta con realizar tales conexiones como muestra el diagrama y conectarlo al ICSP de nuestra placa arduino.

4.127 TEMAS EN LOS CUALES iNVESTIGAMOSHARDWARE

AVR

Los AVR son una familia de micro controladores RISC [(del inglés Reduced Instruction Set Computer), Computadora con Conjunto de Instrucciones Reducidas] de Atmel.

El micro controlador que utilizamos es un ATMEGA8-16PC que esta basado en la arquitectura del AVR.

ATMEGA8-16PC

Page 26: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 26

PDIP

Plastic Dual Inline Package

The footprints created for each individual package should be used as a reference only. Since these footprints are not part specific you will have to adjust the dimension to best fit your requirements.

COMPONENTES

Cada componente de la familia se ha diseñado para que guarde cierta compatibilidad con el resto.

Desde comienzos de los 90 todos los elementos del controlador se han podido incluir en un solo circuito integrado, el cual recibe el nombre de micro controlador Es decir, un micro controlador es un chip que posee en su interior a un microprocesador, memoria de programa, memoria de datos y puertos para comunicarse con el exterior.

Según lo dicho, un micro controlador dispone normalmente de los siguientes componentes:

• Procesador o CPU (Unidad Central de Proceso). • Memoria RAM para contener los datos.• Memoria para el programa tipo ROM/EPROM/EEPROM/Flash.• Líneas de E/S para comunicarse con el exterior.

Page 27: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 27

SOFTWARE

COMPILADOR

Un compilador es un programa informático que traduce un programa escrito en un lenguaje de programación a otro lenguaje de programación, generando un programa equivalente que la máquina será capaz de interpretar. Usualmente el segundo lenguaje, es lenguaje de máquina, pero también puede ser simplemente texto. Este proceso de traducción se conoce como compilación.Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior (típicamente lenguaje de máquina). De esta manera un programador puede diseñar un programa en un lenguaje mucho más cercano a como piensa un ser humano, para luego compilarlo a un programa más manejable por una computadora.

En nuestro caso utilizamos un compilador llamado AVR-GCC.

El AVR-GCC es un compilador del lenguaje de programación C para los micro controladores AVR.

Este fue diseñado desde un comienzo para la ejecución eficiente de código C compilado.

La familia de micro controladores AVR es bastante extensa y todas comparten el mismo núcleo AVR, pero tienen distintos periféricos y cantidades de RAM y ROM.

LENGUAJE DE PROGRAMACIÓN

Sistema de símbolos y reglas que permite la construcción de programas con los que la computadora puede operar así como resolver problemas de manera eficaz.Estos contienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, calculo, manipulación de textos, lógica / comparación y almacenamiento / recuperación.Los lenguajes de programación se clasifican en:

Lenguaje Máquina: Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la CPU pueda comprender y ejecutar el programa. Las instrucciones en lenguaje maquina se expresan en términos de la unidad de memoria más pequeña el bit (dígito binario 0 ó 1).

Lenguaje de Bajo Nivel (Ensamblador): En este lenguaje las instrucciones se escriben en códigos alfabéticos conocidos como mnemotécnicos para las operaciones y direcciones simbólicas.

Lenguaje de Alto Nivel: Los lenguajes de programación de alto nivel (BASIC, pascal, cobol, fortran, etc.) son aquellos en los que las

Page 28: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 28

instrucciones o sentencias a la computadora son escritas con palabras similares a los lenguajes humanos (en general en ingles), lo que facilita la escritura y comprensión del programa.

CÓDIGO MNEMOTÉCNICO

Un código mnemotécnico (o código nemotécnico), es un sistema sencillo utilizado para recordar una secuencia de datos, nombres, números, y en general para recordar listas de items que no pueden recordarse fácilmente.

Los Código mnemotécnico utilizan letras y símbolos del producto para describirlo en una forma que comunique visualmente. Por ejemplo; para describir un televisor a color de 21", un código útil es TV-CL-21", (en blanco y negro seria TV-BW-21"). Es difícil confundir el mnemotécnico TV con el de otro producto, las universidades siempre utilizan mnemotécnico para codificar a los estudiantes: Msc. Master en ciencias, Dra. Doctores en ciencias.

La codificación de los datos y las transacciones reduce la cantidad de datos que se necesita introducir y simplifican el proceso, de manera que se reduce la probabilidad de errores. La selección de un código sobre otro depender` por su puesto, de los datos y de los objetivos del analista.

DIAGRAMA

Diagrama a bloques de la operación de un buen compilador.

Page 29: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 29

RAZON POR LA CUAL CREARON UN COMPILADOR

En un principio tenían el código de máquina, pero para facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible, crearon un programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. A partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador.

ENSAMBLADOR (ASSEMBLER)

Page 30: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 30

El término ensamblador (del inglés assembler) se refiere a un tipo de programa informático que se encarga de traducir un fichero fuente escrito en un lenguaje ensamblador, a un fichero objeto que contiene código máquina, ejecutable directamente por la máquina para la que se ha generado. El propósito para el que se crearon este tipo de aplicaciones es la de facilitar la escritura de programas, ya que escribir directamente en código binario, que es el único código entendible por la computadora, es en la práctica imposible. La evolución de los lenguajes de programación a partir del lenguaje ensamblador originó también la evolución de este programa ensamblador hacia lo que se conoce como programa compilador.

Funcionamiento El programa lee el fichero escrito en lenguaje ensamblador y sustituye cada uno de los códigos nemotécnicos que aparecen por su código de operación correspondiente en sistema binario para la plataforma que se eligió como destino en las opciones específicas del ensamblador.

LENGUAJE ENSAMBLADOR (ASSEMBLER)

El lenguaje ensamblador es un tipo de lenguaje de bajo nivel utilizado para escribir programas informáticos, y constituye la representación más directa del código máquina específico para cada arquitectura de computadoras legible por un programador.Fue usado principalmente en los inicios del desarrollo de software, cuando aun no se contaba con los potentes lenguajes de alto nivel. Actualmente se utiliza con frecuencia en ambientes académicos y de investigación, especialmente cuando se requiere la manipulación directa de hardware, se pretenden altos rendimientos o un uso de recursos controlado y reducido.Muchos dispositivos programables (como los micro controladores) aun cuentan con el ensamblador como la única manera de ser manipulados.

INTERPRETAR

1. En informática, la interpretación es la realización de un paso intermedio entre el texto escrito y su significado.

Page 31: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 31

Por ejemplo, el texto plano no es interpretado por una computadora, dado que no hay nada que interpretar, es simplemente texto que no tiene ni siquiera formato. En cambio los archivos ejecutables (por ejemplo, .exe, .com) deben ser interpretados para poder ejecutarse. Esto es, la computadora debe poder "entender" (interpretar) el archivo para que pueda ser ejecutado.Otro ejemplo: si tenemos un archivo de video AVI y lo abrimos con un editor de texto, veremos miles de caracteres que no tienen ningún sentido, es un texto sin interpretar. En cambio si abrimos el mismo archivo con un programa reproductor de videos y este programa cuenta con las herramientas necesarias para leer ese tipo de videos, podrá interpretar ese texto y reproducirlo en forma de video.

2. En el contexto de la programación, interpretar es utilizar un intérprete para ejecutar sentencias de programación.

3. Interpretar como traducción de rendering: "interpretación" es una posible traducción para la palabra inglesa "rendering", aunque suele preferirse usar la españolización renderización para ser más precisos. Un ejemplo de uso de la palabra: Motor de renderizado.

EJECUTAR

En informática, introducir un mandato en el ordenador con el fin de que éste realice una operación determinada.Definición de Ejecutar(execute, run, correr). En informática, ejecutar es la acción de iniciar la carga de un programa o de cualquier archivo ejecutable.En otras palabras, la ejecución es el proceso mediante el cual una computadora lleva a cabo las instrucciones de un programa informático.Se pueden ejecutar programas compilados (por ejemplo, en Windows, los .EXE) o programas interpretados (por ejemplo, los scripts).Ejecutar un programa implica que éste estará en estado de ejecución y, por ende, en memoria, hasta que se finalice.Algunas bibliografías extienden la definición de ejecutar e incluyen la carga de archivos que no son ejecutables. Por ejemplo, cuando se ejecuta una imagen JPG y se abre el programa para visualizar la misma, o cuando se ejecuta un sonido MP3 y se abre el reproductor de audio. Técnicamente hablando, lo que está realmente en ejecución es el programa que se encarga de interpretar el archivo no ejecutable.En Windows, la mayoría de los programas que están en ejecución se listan en el Administrador de tareas, desde donde pueden ser finalizados.

Page 32: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 32

4.2 ARMADO: MECÁNICA Y CARCASA

Selección de materiales:El chasis fue adquirido de un viejo walkman. Los motores y los engranajes fueron adquiridos de 2 lectoras de cd idénticas (por el motivo de que ambos motores y engranajes deben de ser iguales).2 de las 3 ruedas son 2 scrooll de mouses, la tercera es una rueda de arrastre de un casetero.Los tornillos son los utilizados para gabinetes de computadora y fuentes de poder.El sostén del arduino es la chapa ciega de una bahia NIC.Los led fueron sacados de una linterna led.Los conectores en general son retazos de frontpanel de gabinetes.El interruptor de encendido del móvil fue sacado de un MODEM.El disipador utilizado para el 7805 fue quitado de una fuente quemada.

Las siguientes imágenes muestran el proceso de montado de todos estos materiales.

Proceso de selección en imágenes:

Page 33: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 33

Chasis de un walkman

Quitamos el sistema de apertura de la bandeja de cd.

Quitamos con una sierra el mecanismo a utilizar

Los montamos en el chasis por medio de tornillos.

Page 34: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 34

Se saca el scrooll de 2 mouses

Se diseña un modo de agarre de las ruedas puesto que el eje no es igual de un lado y del otro

Se colocan las ruedas al chasis por medio de tornillos

Se colocan los 2 puentes H sostenidos por tornillos

Se coloca el circuito arduino, se interconecta a los puentes H y V+

Page 35: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 35

Se prepara para ser conectado por baterías

Se hace una selección de 2 leds para el móvil

Se selecciona y adapta a baterias9v un sw para el encendido del móvil

Se pega con -la gotita- el soporte del led, dejando los leds para poder ser intercambiables

Muestra de los led funcionando

Sw de encendido del móvil Móvil, una vez unidos todos los

Page 36: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 36

materiales

En el proceso de ensayo nos vimos frente al problema de que nuestro regulador de voltaje 7805 estaba calentando demasiado, lo que nos llevo a encontrar como solución, la selección y colocación de un disipador de temperatura.

Se selecciona de una fuente de poder un disipador de temperatura para nuestro 7805

Modificamos el disipador para que encaje en nuestro chasis de forma que no quede tapando nuestro sw de encendido del móvil

Presentamos el disipador y lo aseguramos al chasis por medio de un tornillo y arandela de una lectora

Una vez finalizado el montado sin mas cambios a hacer.

Imágenes del diseño finalizado:

Page 37: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 37

Una vez finalizado, esta listo para ser embalado.

Page 38: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 38

4.3 PROGRAMACIÓN

BootloaderEl bootloader es una pequeña pieza de software que se debe quemar en los atmega. Cuando se reinicia la placa Arduino, se ejecuta el bootloader (si existe). El bootloader esta conectado al pin digital 13 (se puede conectar un LED para asegurarse de que el bootloader está instalado). Una vez iniciado el bootloader queda unos pocos segundos en espera de datos que llegan desde el ordenador. Por lo general, se trata de un sketch que el bootloader escribe en la memoria flash en el chip ATmega8. Unos segundos más tarde, el gestor de arranque inicia el programa recién subido. Si no hay datos desde el ordenador, el bootloader pone en marcha cualquier programa que haya sido subido por última vez en el chip. Si el chip es todavía "virgen" el bootloader es el único programa en la memoria y se va a empezar de nuevo.

4.31 GRABANDO EL GESTOR DE ARRANQUE (BOOTLOADER).

Para grabar un gestor de arranque necesitaras construir un programador. El programador se puede conectar la los pines ICSP ( las 2 filas de 3 pines ) - Asegurate de de conectarlo de la forma correcta. La placa debe ser alimentada por una fuente de energía externa o directamente por un cable Serial.

Una vez conectado, nos dirigimos en la carpeta atmel donde esta instalado el programa de arduino y buscamos el archivo con el nombre - Burn_Bootloader_Ser –y lo ejecutamos. Se vera lo que muestra la imagen de la derecha.

Page 39: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 39

Programador Cargando programa bootloader

4.32 ENTORNO DE DESARROLLO PARA ARDUINO

El entorno de Desarrollo Arduino está constituido por un editor de texto para escribir el código, un área de mensajes, una consola de texto, una barra de herramientas con botones para las funciones comunes, y una serie de menús. Permite la conexión con el hardware de Arduino para cargar los programas y comunicarse con ellos.

Arduino utiliza para escribir el software lo que denomina "sketch" (programa). Estos programas son escritos en el editor de texto. Existe la posibilidad de cortar/pegar y buscar/remplazar texto. En el área de mensajes se muestra información mientras se cargan los programas y también muestra errores. La consola muestra el texto de salida para el entorno de Arduino incluyendo los mensajes de error completos y otras informaciones. La barra de herramientas permite verificar el proceso de carga, creación, apertura y guardado de programas, y la monitorización serie:

Verify/Compile Chequea el código en busca de errores.Stop Finaliza la monitorización serie y oculta otros botonesNew Crea un nuevo sketch.Open Presenta un menú de todos los programas sketch de su "sketchbook", (librería de sketch) . Un click sobre uno de ellos lo abrirá en la ventana actual.

Nota: Debido a un error bug en Java, la barra de desplazamiento scroll no funciona en este menú; si necesita abrir un programa que no se vea en la lista, utilice File | Sketchbook en el menú.Save

Page 40: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 40

Salva el programa sketch.Upload to I/O Board Compila el código y lo vuelca en la placa E/S de Arduino. Ver Volcado más detalles abajo.Serial Monitor Inicia la monitorización serie Monitorización Serie.

Encontrará otros comandos en los cinco menús: File, Edit, Sketch, Tools, Help. Los menús son sensibles al contexto, lo que significa que estarán disponibles sólo los elementos relevantes para la tarea que este realizando en ese momento.

Edit

• Copy for Discourse Copia el código de su sketch en el portapapeles para con el formato adecuado para publicarlo en un foro, incluyendo la sintaxis coloreada.• Copy as HTML Copia el código de un programa(sketch) al portapapeles en formato HTML, adecuándolo para incrustarlo en una página web.

Sketch

• Verify/Compile Verifica los errores de su programa (sketch)• Import Library Añade una librería a su programa(sketch) insertando la sentencia #include en el código. Para más detalles verLibrerías más abajo.• Show Sketch Folder Abre la carpeta de programas (sketch) en el escritorio.• Add File... Añade un fichero fuente al programa (se incluirá desde su ubicación actual). El fichero aparece en una nueva pestaña en la ventana del programa. Los ficheros pueden ser quitados del programa (sketch) utilizando el menú "tab".

Tools

• Auto Format Da formato al código proporcionando estética: por ejemplo realiza tabulaciones entre la apertura y cierre de llaves, y las sentencias que tengan que ser tabuladas lo estarán.• Board Selecciona la placa que estás usando Ver más abajo Descripción de las placas.• Serial Port Este menú contiene todos los dispositivos serie (reales o virtuales) de su equipo. Se refrescará automáticamente cada vez que abras el menú tools.• Burn Bootloader Este elemento del menú le permite grabar un gestor de arranque

Page 41: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 41

( bootloader ) dentro del micro controlador de la placa Arduinio. Aunque no es un requisito para el normal funcionamiento de la placa Arduino, le será útil si compra un nuevo ATmega (el cual viene normalmente sin gestor de arranque). Asegúrese que ha seleccionado la placa correcta en el menú Boards antes de grabar el bootloader. Cuando use AVR ISP, tendrá que seleccionar en el menú Serial Port el puerto correspondiente.

Sketchbook (Librería de Sketch)

El entorno de Arduino incluye el concepto de "sketchbook": que es el lugar estándar para el almacenamiento de sus programas (o "sketch"). Los "sketches" dentro de su "sketchbook" pueden abrirse desde el menú File > Sketchbook o desde el botón de la barra de herramientas Open. La primera vez que arranque el software Arduino, se creará un directorio para su "sketchbook". Puede visualizar o cambiar su localización dentro de "sketchbook location" desde el apartadoPreferences

Tabs, Multiple Files, and Compilation (Pestañas, Ficheros múltiples y compilación)

Permite manejar "sketches" con más de un fichero (cada uno de los cuales aparece en su pestaña). Pueden ser normalmente ficheros de código Arduino (no extensiones), ficheros C (extensiones .c), ficheros c++ (.cpp), o ficheros de cabecera (.h)

Uploading (Volcado)

Antes de volcar su "sketch", necesita seleccionar los elementos correspondientes desde los menús Tools > Board y Tools > Serial Port. Las boards (placas) están descritas abajo. En los Mac, el puerto serie será probablemente algo como/dev/tty.usbserial-1B1 (para una placa USB), o /dev/tty.USA19QW1b1P1.1 (para una placa serie conectada con un adaptador Keyspan USB-to-Serial). En Windows, probablemente sea COM1 o COM2 (para una placa serie) o COM4, COM5,COM7, o superior (para una placa USB)- para encontrarlos, debes buscar los dispositivos serie USB en la sección de puertos del Administrador de Dispositivos de Windows. En Linux, debería ser /dev/ttyUSB0, /dev/ttyUSB1 o similar.

Una vez que ha seleccionado el puerto serie y la placa, presione el botón de volcado en la barra de herramientas o selecioneUpload to I/O Board desde el menú File. Las actuales placas de Arduino se resetearán automáticamente y comenzará el volcado. Como las placas antiguas carecen de auto-reset, necesitará presionar el botón de reset en la placa, justo antes de iniciar el volcado. En muchas placas verá el led RX y TX parpadeando cuando el "sketch" está actualizándose. El entorno de Arduino mostrará un mensaje cuando el volcado esté completado, o mostrará un error.

Page 42: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 42

Cuando se vuelca un "sketch", está utilizando el "bootloader" de Arduino, un pequeño programa que ha sido cargado en el micro controlador en su placa. Permite el volcado del código sin utilizar hardware adicional. El "bootloader" está activo durante unos segundos cuando la placa es reseteada; después se incia el "sketch" que más recientemente se hubiera actualizado en el micro controlador El "bootloader" produce un parpadeo en el LED de la placa (pin 13) cuando se inicia (p.e. cuando las placas son reseteadas)

Libraries (Librerías)

Las librerías proporcionan funcionalidad extra para la utilización en "sketches", por ejemplo para trabajar con hardware o manipular datos. Para utilizar una librería en un "sketch", seleccione el menú Sketch > Import Library. Esto insertará una o más sentencias #include al principio del "sketch" y compilará la librería con su "sketch". Debido a que las librerías se vuelcan a la placa junto con su "sketch", incrementan la ocupación del espacio disponible. Si un "sketch" no precisa de una libreria, simplemente borra su sentencia #include en la parte inicial de su código.

Existe una Lista de librerías en las referencias. Algunas librerias están incluidas en el software Arduino, otras pueden ser descargadas desde una gran variedad de fuentes. Para instalar estas librerías de terceros, crea un directorio denominadolibraries en su Directorio sketchbook. Después descomprime la librería allí. Por ejemplo, para instalar la librería Data Time, sus ficheros deberían estar en una subcarpeta /libraries/DateTime en su carpeta de sketchbook.

Para escribir su propia librería, revisa este tutorial

Third-Party Hardware (Hardware de terceros)

Se puede agregar soporte para hardware de terceros en el directorio hardware del directorio "sketchbook". Las plataformas instaladas aquí pueden incluir la definición de las placas (que aparecen en el menú board), librerías del núcleo, "bootloaders", y definiciones de programador. Para instalarla, cree un directorio hardware, y en él descomprima la plataforma de terceros con su directorio. (No utilices "arduino" como nombre del subdirectorio o sobreescribirás la plataforma Arduino). Para desinstalarlo, simplemente borre ese directorio.

Para más detalles sobre la creación de paquetes de hardware de terceros visita Páginas de Plataformas en la web de Google Code developers.

Serial Monitor (Monitor Serie)

Page 43: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 43

Muestra los datos enviados desde la placa Arduino (placa USB o serie). Para enviar datos a la placa, teclee el texto y pulsa el botón "send" o enter. Seleccione la velocidad (baud rate) en el menú desplegable que coincida con el configurado enSerial.begin dentro de su "sketch". Advertir que en Mac o Linux, la placa Arduino se resetea (su "sketch" es reiniciado desde el principio) cuando conecta con el monitor serie.

Se puede también comunicar con la placa desde Processing, Flash, MaxMSP, etc (ver Web de interface ('interfacing page') para más detalles)

Preferences (Preferencias)

Pueden configurarse otras preferencias en el apartado preference (lo podrás encontrar bajo el menú Arduino para los Mac, o en File para Windows y Linux). El resto de opciones puede ser localizado en el fichero de preferencias, que se podrá encontrar dentro del mismo apartado preference.

Boards (Placas)

La selección de placa tiene dos efectos: los parámetros utilizados cuando compila(por ejemplo, CPU usada y velocidad (baud rate)) y vuelcan los "sketches"; y el fichero y configuración utilizados por el gestor de arranque (bootloader)) al ser cargado. Algunas de las definiciones de las placas difieren sólo en lo segundo, incluso si ha sido cargado satisfactoriamente con una particular selección, usted podrá comprobarlo antes de grabar el "bootloader"

• Arduino Duemilanove o Nano w/ ATmega328 Un ATmega328 trabajando a 16MHz con auto-reset. También usado para las versiones 16 MHz (5V) de los Arduino Pro o Pro Mini con ATmega328.• Arduino Diecimila, Duemilanove, o Nano w/ ATmega168 Un ATmega168 trabajando a 16MHz con auto-reset. En cuanto a la compilación y volcado es equivalente al Arduino NG o el más antiguo w/ATmega168, pero el "bootloader" tiene un timeout rápido (el LED en el pin 13 parpace sólo en el reset).También usa las versiones 16 MHz (5V) de los Arduino Pro y Pro Mini con ATmega168.• Arduino Mega Un ATmega1280 trabajando a 16MHz con auto-reset.• Arduino Mini Equivalente al Ardunio NG o el más antiguo w/ATmega168 (por ejemplo un ATmega168 trabajando a 16MHz sin auto-reset)• Arduino BT ATmega168 trabajando a 16MHz. El bootloader incluye código para iniciar el módulo bluetooth de la placa.• LilyPad Arduino w/ ATmega328 Un ATmega328 trabajando a 8MHz (3.3V) con autor-reset. Equivalente al Arduino Pro o Pro Mini (3.3V 8 MHz)w/ATmega328.

Page 44: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 44

• LilyPad Arduino w/ ATmega168 Un ATmega168 trabajando a 8MHz. En cuanto a la compilación y volcado es equivalente a Arduino Pro o Pro Mini (8MHz) w/ARmega168. El "bootloader", sin embargo, tiene un lento timeout (el LED 13 parpadea 3 veces y realiza el reset) debido a que la versión original del LilyPad no soporta auto-reset. Tampoco incluyen un reloj externo, por lo que el boottloader se ha cargado configurando los fuses del ATmega168 con el reloj interno de 8MHz.

Si tenes una versión actual del LilyPad, (con un conector de programación de 6 pines) tendrás que seleccionar Arduino Pro o Pro Mini (8MHz) con ATmega168 antes de grabar el "bootloader"• Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega328 Un ATmega328 trabajando a 8MHz (3.3V) con auto-reset. Equivalente a LilyPad Arduino w/ ATmega328.• Arduino Pro or Pro Mini (3.3V, 8 MHz) w/ ATmega168 Un ATmega168 trabajando a 8 MHz (3.3V) con auto-reset.• Arduino NG or older w/ ATmega168 Un ATmega168 trabajando 16MHz sin auto-reset. En cuanto a la Compilación y volcado es equivalente al Arduino Diecimila o Duemilanove w/ATmega168, pero el grabado del "bootloader" es más lento (el LED 13 parpadea 3 veces y realiza el reset)• Arduino NG or older w/ ATmega8 Un ATmega8 trabajando en 16MHz sin auto-reset

Los textos de la guía "Como empezar con Arduino" están licenciados bajo Creative Commons Attribution-ShareAlike 3.0 License. El código fuente de los ejemplos en la guía están liberados como dominio público.

4.33 PARA CREAR EL PROGRAMA NOS BASAMOS EN EJEMPLOS YA EXISTENTES COMO El “blink” y “sensor”. Creando un híbrido de esos 2 programas llegamos al siguiente código final, por el cual se rige nuestro “seguidor de curso”:

//se declaran las variables//estas variables se van a usar en para la dirección de los motores //los valores son el numero de puerto que se va a utilizar en el arduino

int DmAV = 13; int DmRE = 12;int ImAV = 11;int ImRE = 10;

Page 45: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 45

//estas variables se van a utilizar para la lectura de los sensores

int analogIn1 = 1;int analogIn2 = 2;

int sensI = 0;int sensD = 0;//int refI = 120; //valor de refencia izquierdoint refD = 35; //valor del referencia derecho

//configuracion inicial al arrancar el programa

void setup() { // initialize the digital pin as an output: pinMode(DmAV, OUTPUT); pinMode(DmRE, OUTPUT); pinMode(ImAV, OUTPUT); pinMode(ImRE, OUTPUT); Serial.begin(9600);}

// mientras el arduino tenga poder, se van a repetir las instrucciones dentro del loop

void loop() { //los sensores leen la pista y guardan los valores en las variables sensI = analogRead(analogIn1); // lee y almacena el dato en "sensI" sensD = analogRead (analogIn2); // lee y almacena el dato en "sensD"

//en esta parte verifica, si no lee la linea avanza if (sensI > refI) { if (sensD > refD) { digitalWrite(DmAV, HIGH); digitalWrite(ImAV, HIGH); digitalWrite(DmRE, LOW); digitalWrite(ImRE, LOW); } } //en esta parte verifica, si ambos sensores leen la linea retrocede un poco if (sensI < refI){ if(sensD < refD){ digitalWrite (DmAV, LOW); digitalWrite (ImAV, LOW);

Page 46: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 46

digitalWrite (DmRE, HIGH); digitalWrite (ImRE, HIGH); Serial.print("reversa"); delay(700); } } //al haber un delay de tiempo si pasa alguno de los casos anteriores //los sensores leen nuevamente y se guarda en las variables sensI = analogRead(analogIn1); // lee y almacena el dato en "sensI" sensD = analogRead (analogIn2); // lee y almacena el dato en "sensD" //en esta parte compara lo leido por el sensor derecho //si encuentra la linea el móvil dobla a la izquierda

if (sensD < refD){ digitalWrite (DmAV, LOW); digitalWrite (ImAV, LOW); digitalWrite (DmRE, HIGH); digitalWrite (ImRE, HIGH); delay(300);

digitalWrite (DmAV, HIGH); digitalWrite (ImAV, LOW); digitalWrite (DmRE, LOW); digitalWrite (ImRE, HIGH); delay(200); }

//en esta parte compara lo leido por el sensor izquierdo //si encuentra la linea el móvil dobla a la derecha if (sensI < refI){ digitalWrite (DmAV, LOW); digitalWrite (ImAV, LOW); digitalWrite (DmRE, HIGH); digitalWrite (ImRE, HIGH); delay(300);

digitalWrite (DmAV, LOW); digitalWrite (ImAV, HIGH); digitalWrite (DmRE, HIGH); digitalWrite (ImRE, LOW); delay(200); } //cuando esta conectado a la pc//imprime en el monitor serial lo leido por los sensores

Page 47: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 47

//se usa para verificar la lectiura de los sensores //y para corregir los valores de referencia

Serial.print(sensI); // imprime el valor del sensor izquierdoSerial.print(" "); // imprime un espacioSerial.print(sensD); // imprime el valor del sensor derechoSerial.println(); //salta un renglon}

4.34 Atencion!!!A nuestra experiencia ahora adquirida tras haber dado por muertos 2 atmega8 y proceder comprando nuevos sustitutos, lo que provocó un gran gasto no previsto en nuestro proyecto, nos llevo a ahondar en el tema de los atmega8 supuestamente quemados y encontramos el siguiente texto:

“No es nada extraño que por algun problema hardware/software el bootloader del arduino quede corrupto y no se pueda volver a subir sketchs para mucha gente es un error faltal y creen que ya no se puede recuperar, pero no es asi la cosa pues hay varias alternativas para volver a cargar el bootloader.

La opcion mas fácil, rápida y asequible es una que realizando una pequeña modificación en la propia placa de arduino podemos volver a cargar el bootloader y revivir nuestra plaquita alegrándonos el día, éste sistema usa el modo BitBang del chipset usb-serie que lleva incorporado el arduino permitiendo usarlo como programador AVR.”

Page 48: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 48

5.0 GALERIA DE IMÁGENES:

LINKS A VIDEOS DE PRUEBA:http://www.youtube.com/watch?v=b0q8yM8TFnchttp://www.youtube.com/watch?v=nCm1KLlC5AAhttp://www.youtube.com/watch?v=tfKUnWfGxqAhttp://www.youtube.com/watch?v=_Sufg3aq5Schttp://www.youtube.com/watch?v=GfYDFx3iUGIhttp://www.youtube.com/watch?v=YdvFXaacNdchttp://www.youtube.com/watch?v=RK-fz4ix8_g&feature=BF&list=UL&index=6http://www.youtube.com/watch?v=S910MxAvNUI&feature=BF&list=UL&index=8

Page 49: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 49

Nuevo wallpaper! Testeando Puente H en protoboard

Diodos reciclados

Page 50: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 50

REFERENCIAS:

( http://www.atmel.com/corporate/)(http://www.arduino.cc/)

Bootloaderhttp://www.arduino.cc/en/Main/Bootloader

Circuito Arduino y sus diagramas y explicaciones:http://arduino.cc/en/uploads/Main/ArduinoSeverinoManual2.pdf

Puente H y sus explicaciones (previa autorización por el creador del sitio – Edu - ):http://robots-argentina.com.ar/MotorCC_PuenteH.htm

punto 4.0 crear impresos PCBhttp://www.neoteo.com/construyendo-circuitos-impresos.neo

punto 4.124 circuito listo Informacion recopilada y modificada de:http://webzone.k3.mah.se/projects/arduino-workshop/projects/arduino_meets_processing/instructions/ldr.htmlhttp://robots-argentina.com.ar/MotorCC_PuenteH.htm

punto 4.125 modificación del arduino para conectar a usbhttp://www.mipixel.com/2009/12/13-usar-arduino-como-adaptador-usb-ttl-serie

PROGRAMADOR ICSPhttp://extremeelectronics.co.in/avr-tutorials/part-iii-making-programmer-and-target/

ATMEL ( http://www.atmel.com/corporate/)

SUB OBJETIVO http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1205801789

www.ladyada.netpunto 4.32 Bootloaderhttp://arduino.cc/estemp/Guide/Environment?from=Tutorial.Bootloader

punto 4.34 ATENCION!!!!

http://www.sherkhan.net/blogs/frikadas/?p=53

IMAGEN DEL ATMEGA

Page 51: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 51

http://www.atmel.com/dyn/resources/prod_documents/2486s.pdf

INFO

http://www.analog.com/en/technical-library/packages/dip-dual-inline-package/pdip-plastic/index.html

COMPONENTES

INFO: http://www.clubse.com.ar/DIEGO/NOTAS/2/nota18.htm

IMAGEN: logica-digital.blogspot.com

ARQ AVR

IMG http://www.dinastiasoft.com.ar/Tecnologia/AT90S2313.htm

SUBObjetivo:Creación de una placa Atmel8 simil a las placas Arduino (http://www.arduino.cc/)con nuestro micro controlador(ATMEGA8-16PC) para desarrollar/programar/aprender/hacer proyectos y/o prototipos.[2]www.ladyada.net IMAGEN ATMEGA816PC

COMPILADOR : http://es.wikipedia.org/wiki/Compilador

AVR GCC http://www.clubse.com.ar/DIEGO/NOTAS/2/nota18.htm

LENGUAJE DE PROG: http://www.monografias.com/trabajos38/programacion/programacion.shtml

CODIGO MNOMNOTECNICO

http://es.wikipedia.org/wiki/C%Código_mnemotécnico

QUE UTILIZAN: http://www.mailxmail.com/curso-teoria-general-sistemas-informaticos/codigo-mnemotecnico

DIAGRAMA COMPILADOR: http://es.wikipedia.org/wiki/Compilador

RAZON COMPILADOR: http://es.wikipedia.org/wiki/Ensamblador

FUNCIONAMIENTO ASSEMBLER: http://es.wikipedia.org/wiki/Ensamblador

es.wikipedia.org

Page 52: "TAP-walkman" - Diego Serrón y Sergio da Silva

Pagina 52

LENGUAJE ENSAMBLADOR: INFO E IMG: http://es.wikipedia.org/wiki/Lenguaje_ensamblador

INTERPRETAR: http://www.alegsa.com.ar/Dic/interpretar.php

EJECUTAR

http://www.alegsa.com.ar/Dic/interpretar.php

AGRADECIMIENTOS

Danilo Da RosaInes BouvierSebastián TapDanilo CesarAlvaro GalanteMaidaE.I.

Este trabajo está realizado bajo la Licencia Creative Commons:Atribución - CompartirDerivadasIgual 2.5http://creativecommons.org/licenses/by-sa/2.5/deed.es_GT