Pequeño programador

si estás en Arduino- y debe- entonces sabes que hay aplicaciones que no utiliza toda la potencia de procesamiento o en y salidas.  Para estas aplicaciones, $30 parece mucho gastar en un proyecto.  Por suerte, ATMel, la empresa que hace los "cerebros" en la mayoría de Arduinos, tiene una solución: la a minúscula línea de microprocesadores.  Hay varios modelos en diferentes configuraciones con diferentes conexiones y niveles de memoria.  La buena noticia es que puede usar el Arduino para programar estas unidades sin tener que dedicar permanentemente tu placa Arduino al proyecto.  Esto se conoce como usar el Arduino como un "En el programador de sistema" o ISP, que es lo "ArduinoISP" bosquejo en su carpeta de dibujo es todo sobre.

Los ingenieros en MIT Tech High-Low tienen un gran conjunto de tutoriales que entran en el meollo de la cuestión arenoso de este proceso basado en cables de diseño y puente.  Este tutorial se centrará en una solución más permanente para aquellos que se encuentran utilizando la Tinys en más con frecuencia.  También se supone un nivel de principiante no de experiencia con la técnica de soldadura, pero no tienes que ser un robot en Shenzhen para hacerlo funcionar.

EN Tinys están disponibles a través de la mayoría de los sospechosos habituales cuando se trata de proveedores de semiconductores de pedidos por correo y, a veces en gran cantidad en eBay.  Al hacer el pedido, asegúrese de obtener la versión de inmersión.  Si usted pide la variedad de montaje superficial, estás de suerte cuando se trata este tutorial.

A limitar la discusión a la a minúscula 45/85 y 2313 porque estas unidades tienen asignacion de terminales lo suficientemente similares para reducir al mínimo los componentes y que representan una amplia gama de la memoria y las configuraciones de entrada/salida.  (Desde que por primera vez en Tinys, he ido a través de proyectos con un diminuto media docena de 45 y soy no profesional de la ingeniería.)  Si nos fijamos en la segunda imagen, a ver las configuraciones de pin para estas dos unidades.  Los pines importantes aquí son Vcc, tierra, Reset, MISO (Master en / esclavo hacia fuera), MOSI (receptor en / maestro hacia fuera) y SCL o SCK (que son dos maneras de decir "Reloj Serial.")  Aviso que casi todos estos pernos están en el mismo lugar en los dos paquetes con excepción de la tierra, que en el 45/85 es en pin 4 y en el 2313 es en el pin 10.  En una solución permanente, si ejecutaste pin 4 a masa en el 2313, se estar conectada a los pines destinados el reloj externo, que podría causar problemas.  Vamos a resolver este problema mediante el uso de un puente.

La primera cosa a hacer, como siempre, es recoger sus materiales.  Para este Instructable, necesitarás lo siguiente:
-Una placa Arduino.  Unos, Megas y Duemillanoves debe todo el trabajo pero yo uso un Uno.  Es el único que sé que funciona seguro aquí.
-Un Protoshield Arduino (alrededor de $18 en RadioShack con precios diferentes en las interwebs.)  Esto es una gran herramienta para la construcción del escudo de una sola vez. Está a medio camino entre un pan y un PCB personalizado combinando los mejores aspectos de ambos.  (Supongo que usted podría utilizar un PCB estándar perf-perforado con pins de cabecera, pero hay problemas con la orientación si haces eso.  No entraré en la mecánica de este enfoque.)  Ver la tercera imagen.
-Uno de 20 Pin socket DIP (también en la tercera imagen).
-Un zócalo más de DIP (número de pin no es importante aquí, como hay al menos dos de cada lado-te sacrificas esto.) Por otra parte, un puente del pin de encabezado estándar funcionará
-En por lo menos dos pernos de ruptura encabezado, no apilar.
10-1 condensador del microfaradio.
-Gancho encima del alambre.  (Yo prefiero usar la clase que electricistas líneas telefónicas en las paredes de su hogar detrás del alambre cuando la gente todavía utiliza líneas de tierra.  Este es el calibre adecuado y te permite color-código tu trabajo constantemente).

Herramientas:
-Baja potencia de hierro y, por supuesto, la resina núcleo de soldadura de la soldadura.  (Me gusta usar resina extra cuando trabajo).
-Diagonal Snipping alicates/pelacables (pueden ser dos herramientas independientes)
-Disipador de calor
-A alicates de nariz de aguja también pueden venir prácticos
0
Comenzar por el zócalo de 20 Pin DIP de soldadura en su lugar en el escudo de Proto, como en la imagen 4.  Intentar ser mejor que estaba.  (Era reutilizar el escudo de otro proyecto y tenía algunos puentes de soldadura a través de perforaciones conectados que tomaron un tiempo para limpiar).  Asegúrese de que no superar cualquier miedo adyacente.

A continuación añadir el cable de conexión como en las imágenes 5 y 6.  Como mencioné, me gusta color-código las cosas, así que rojo va del pin 20 (Vcc) para Arduino + 5v, el negro va de Pin 10 (Gnd en el 2313) a Arduino Gnd, amarillo va de (Reset) el Pin 1 a 10 de Arduino, verde los cables van desde el Pin 17 (MOSI) Pin 18 (MISO) a 12 Arduino Arduino 11 y del Pin 19 (reloj Serial) a 13 de Arduino.  También, gancho encima de un negro extra de alambre para el segundo abierto perf en pin 10 y correr al agujero exterior perf desconectado junto al pin 5, dejando el plomo un poco mas de lo normal, pero no soldadura en tira pero sólo al final y ejecutarlo a través de ese agujero.

Ahora a poner el puente, que las dos clavijas de cabecera snap-off, en el pin 4 (Gnd en el ATtiny 45/85) y el externo perf agujero junto al pin 4.  Introducir los pernos de la rúbrica para que peguen los extremos largos de metal hacia arriba, no hacia abajo a través de la Junta como las otras cabeceras apilamiento preinstaladas en la Junta.  Soldar el pin que se conecta al pin 4 traza en primer lugar, a continuación, doble el cable de tierra que se pega a través del orificio perf en pin 5 sobre ponerse en contacto con la pines restantes encabezado.  La soldadura de estos dos juntos como en la imagen 7.

Añadir el condensador de microfaradio reset 10 en el Arduino Reset y el conector de tierra restantes de ese lado, asegurándose de tener en cuenta la polaridad ("-" a la tierra) como en la imagen 8.  Usa el disipador de calor entre la Junta y el cuerpo de la tapa no freírlos y Soldándola.  (El olor a quemado electrolíticos es simplemente horrible).

En este punto, usted querrá hacer su conector jumper si no comprar uno o tenerlo tendido alrededor.  Para hacer un conector puente rápida y sucia, tome el enchufe DIN de "sacrificio" y doblarse las dos clavijas en una fila para que toquen y soldarlos juntos (también en la imagen 8, en el lado izquierdo.)  Entonces toma tus tijeras para cortar el carril de centro de la inmersión del extremo que trabajó y separar las dos clavijas del enchufe por corte en el tercer pin desde el extremo, que debe salir de tus patillas soldadas en el tacto.  Deslice el conector del puente hacia abajo sobre los pernos de dos cabecera que sobresalen hacia arriba de la Junta como en la imagen 1 (sí, 1,-se de más o menos completa en este punto por lo que usé como la imagen principal.)  Este puente es sólo para ser utilizado cuando la programación en pequeña 45/85 fichas, para quitarlo cuando se programa un ATTiny 2313.

Ahora, para la parte de programación.

Supondré que sabes lo que estás haciendo con un Arduino aquí.  El primer paso en esta fase es para descargar los dos archivos siguientes:
uno para el 2313 y otro para el 45/85.  El primero también tiene núcleos para las virutas en pequeños 84/44, pero este programador que no trabajo con estas dos variedades.  Las conexiones son demasiado diferentes.  Si intenta conectar uno en esto obtendrá resultados de nada a confundir a un fuego pequeño en su banco de trabajo.

Una vez que has descargado y descomprimido estos "corazones" como se les llama, abra el archivo en su computadora que contiene su sketchbook de Arduino y crear una carpeta llamada "Hardware" si uno ya no existe y copia estos archivos descomprimidos en la carpeta hardware: la carpeta attiny entera y desde la carpeta arduino-minúsculo-0100-0010 la subcarpeta minúscula.  (Nota: me gusta mantener estos en mi escritorio y copiarlos de uno a la vez como necesite.  De lo contrario el submenú usted a ser seleccionándolos en consigue largo y headachey.)  Si se ejecuta el entorno de Arduino al instalar los corazones, usted probablemente debería haber sabido mejor, pero no hay daño hecho.  Salir y reiniciar.  Si no fueras, solo ejecutarlo.  (Asumiremos que ya tienes el tablero instalado y funcionando).  Una vez el medio ambiente, sólo para los diablos, busque en "Herramientas > Junta Directiva >" y usted debería ver un montón de opciones que nunca fueron antes.  Por el momento, sólo deja la placa Arduino real que usas seleccionada (o si por alguna razón el mal uno es seleccionado, seleccione el correcto.)

Ahora, se sientan en pequeños IC en el zócalo del perno 10 usted soldado en el protector antes.  Pin 1 de este IC se caracteriza por una poca hierba en la parte superior de la viruta.  Asiento el IC para que este pin está más cerca del interruptor de reinicio.  (Que te ser usando un 85 en pequeño de este Instructable.)

Para la siguiente parte del tutorial, es importante hacer cosas en el orden especificado o de lo contrario tendrás algunos errores extraños al tratar de programar su minúsculo en.

Ahora vamos a hacer algo limpio que reduce realmente la funcionalidad de la Arduino a una fracción de su capacidad.  Al utilizar el tablero como programador en el sistema, eres casi saltándose el procesador integrado en el Arduino (en realidad es como usar como un panel de control a las señales de ruta, pero que es realmente de un trabajo servil para qué un Arduino puede hacer).  En el entorno de Arduino, abrir "archivo > ejemplos > ArduinoISP" y subirlo a la placa Arduino.

Luego introduzca con cuidado el escudo en la placa de Arduino (ver imagen 9).

A continuación, abra un dibujo nuevo y copie y pegue el siguiente código:

/*
TinyBreather
Efecto "Luz de sueño" para uno llevó algo similar a un indicador de monitor de ordenador cuando entra en modo de reposo.
Este ejemplo de código es de dominio público.
*/
brillo de int = 0;    Cómo brillante es el LED
void setup() {}
pinMode (0, salida);
}

void loop)
{
Delay(10);
ajustar el brillo de pin 0:
para (brillo int = 0; brillo < 255; brillo ++) {}
analogWrite (0, brillo);
retardo (5);
}
Espere 30 milisegundos ver el efecto de atenuación
Delay(30);
para (int brillo = 255; brillo > 0; brillo--) {}
analogWrite (0, brillo);
retardo (5);
}
Espere 30 milisegundos ver el efecto de atenuación
Delay(30);
Delay(10);
}

dejar de copiar el dibujo aquí

Una vez que este esbozo nueva insertada en el medio ambiente, seleccione "Herramientas > Junta Directiva > en Tiny85 (con Arduino como ISP)" y compilar el bosquejo.  Debería funcionar sin incidentes.  Una vez que una compilación limpia, subir el boceto (realmente esto será a través de Arduino en minúscula, no Arduino).  Casi puedo garantizar que obtendrá el siguiente mensaje de error:
avrdude: definir en el archivo de configuración por parte ATtiny85 señales PAGEL y BS2

Dos veces en una fila, de hecho.  No te preocupes, es realmente una buena señal.  Ahora a probarlo tomando un LED y colocar en el escudo con el positivo (más) plomo en toma 11 y el cable negativo en tierra en el mismo lado.  (Nota: mejores prácticas probablemente dictaría que pones un resistor limitador de corriente en alguna parte entre el LED y el circuito pero tengo bastantes de ellos ahí que no me importa correr el riesgo de la smokeshow para esta demostración.)  Los resultados deben ser más o menos lo que se ve en el video aquí:
http://youtu.be/zlhP15mu9Bo

Para ejecutar el mismo circuito independiente de escudo/Arduino, usted correría sólo una fuente de alimentación regulada (+ 5v) pin 8 de su IC programado con tierra a 4 y conecte el LED en el pin 5 y la tierra.  Al igual que el Arduino, en diminutos mantendrá el último programa se carga en él durante un buen rato.

El proceso es lo mismo para el en 45 pequeños excepto por supuesto usted seleccionaría "En Tiny 45 (con Arduino como ISP)" como el tablero del programa.  Si fueses a seleccionar el en 2313 diminuto para su proyecto, el proceso sería el mismo excepto que le queremos quitar el conector de puente, asegúrese de que el conjunto correcto de núcleos se instala en la carpeta "Hardware" y cambiar las asignaciones de pines en el sketch de "0" a "5" - por ejemploanalogWrite (0, brillo): se convierte analogWrite (5, brillo); Ver imagen 2 para hacer sentido de esto.

La mayoría de los comandos de control que se utilizaría para el Arduino está disponible en pequeño, pero algunos de los comandos de mayor función (cosas como tomar el control de los registros de Control de salida y los relojes internos) no absolutamente el puerto directamente porque los contadores de tiempo y por supuesto salidas no son lo mismo).  Acuerdo con el High-Low Tech, deben disponerse de los siguientes comandos de Arduino:

pinMode()
digitalWrite()
digitalRead()
analogRead()
analogWrite()
shiftOut()
pulseIn()
Millis()
micros()
Delay()
delayMicroseconds()
SoftwareSerial (se ha actualizado en Arduino 1.0)

He utilizado todos estos y otros.  Por ejemplo, Tone() parece funcionar sin problemas.

Así que la próxima vez usted tiene un gran proyecto de Arduino pero no quiere asignar permanentemente tu Arduino a, digamos, una alerta de puerta abierta o una tarjeta de felicitación intermitente, considere la línea en pequeño y si adicto, merecerá la pena el tiempo para hacer este programador hardware en lugar de gastarse su protoboard.

Artículos Relacionados

Programación 'AtTiny85' con el 'pequeño programador de AVR' y suplido 'Arduino IDE'

Programación 'AtTiny85' con el 'pequeño programador de AVR' y suplido 'Arduino IDE'

Con pasador de 8 pequeños de Atmel AtTiny85 microcontrolador como un independiente es una gran alternativa al más grande pin 28 AtMega328 montada en una placa Arduino Uno. He cambiado de uno a otro por diversos medios, pero lo que me pareció más fáci
Comunicación serie ATTiny con pequeño programador AVR

Comunicación serie ATTiny con pequeño programador AVR

ATTinies (como el 85 ATTiny) son super impresionantes! Son super baratos, baja potencia y lo hacen qué proyectos de Arduino más logran de todos modos (dar una simple salida o disfrutar de una entrada simple).Una dificultad puede ver rápidamente lo qu
Star Trek timbre Hack

Star Trek timbre Hack

Siempre he sido un fan de la estrella Treks y como tal estaba muy emocionado cuando mi compañera trajo a casa un original serie estilo Star Trek comm panel. Nunca había visto uno de estos pero una rápida búsqueda nos llevó a la Web de Thinkgeek donde
Reloj de bolsillo de nerd

Reloj de bolsillo de nerd

Esta es mi entrada para el concurso de Remix 2.0. Se basa en el reloj de Nerd instructable por othermachine. Si te gusta este voto por favor para mí.Me gustó la idea del original instructivo, pero no he comenzado todavía grabado mis propios tableros
Hacer su planta de sonrisa

Hacer su planta de sonrisa

Este es un proyecto divertido que hace que nuestras plantas "hablar" a nosotros. Es muy sencillo y se pueden crear en pocas horas. Utilizamos un sensor para leer la humedad del suelo de nuestra planta y matriz led a visualizador cómo las plantas
Placa de desarrollo para microcontrolador Attiny84

Placa de desarrollo para microcontrolador Attiny84

Se trata de una placa de desarrollo para microcontrolador Attiny84. Tha Attiny84 chip tiene 11 pines direccionables con el IDE de Arduino, 8k de memoria flash para el almacenamiento de programa y 512 bytes de RAM disponible para las variables de pila
Detector de proximidad de punto fijo vehículo de Arduino.

Detector de proximidad de punto fijo vehículo de Arduino.

Esta es la versión de alta tecnología de colgar una pelota de tenis desde el techo de un trozo de cuerda.  Por supuesto, si usted tiene dos tipos diferentes de vehículos, pelota de tenis no va a tierra en el mismo lugar en ambos.  Este proyecto puede
Alarma de humedad de la planta

Alarma de humedad de la planta

Hay un evento proximos en el Fablab Umeå con la planta de ser humano tema relacionada, así que decidimos construir una alarma sencilla humedad para las plantas mantenerlas como plantas felizes.El foco de este instructable es no construir la alarma de
ATtiny programación Shield para Arduino

ATtiny programación Shield para Arduino

este circuito poco sienta bien ontop de una placa Arduino y te permite conectar rápidamente un ATtiny chip de programación usando la Arduino "lengua" y IDE para escribir el código y la placa Arduino como programador ISP para cargar el código en
AVRisp Micro REDisp V1

AVRisp Micro REDisp V1

La REDisp Micro AVRisp es serio pequeño programador ISP (1 pulgada cuadrada) que es reconocido como un USBtinyISP usando los mismos controladores y por lo tanto está listo para usar con los gustos de AVRdude y el IDE de Arduino. Disponibles en mi Tie
Attiny85 Mini-Arduino

Attiny85 Mini-Arduino

Se trata de un Arduino como tablero que utiliza un microcontrolador Attiny85. Puede ser programado usando el IDE de Arduino.Se necesita:Adafruit Perma-cuarto de Proto-tamaño placa PCB http://www.adafruit.com/products/16082,1 mm barril jack http://www
Malla de simple Arduino Wireless

Malla de simple Arduino Wireless

Crear una malla inalámbrica simple bajo costo usando arduinos y módulos APC220 de radio de largo alcance. Redes de malla inalámbrica pueden manejar los nodos individuales no funciona y son tolerantes a ambientes como los bosques y colinas donde los d
¿Condujo el juego de escalera (Attiny85)

¿Condujo el juego de escalera (Attiny85)

que siempre quisiste construir un juego verdadero? Es la derecha instructable. Las reglas son simples: hay una escalera hecha de LED, el que está parpadeando; Si usted pulsa el botón cuando el led está encendido, vas al siguiente paso, hasta que "sub
Pote de flor del ATtiny

Pote de flor del ATtiny

Esta maceta tiene una estructura en el sensor que detecta cuando la suciedad en el interior es seca y le permite saber. Esto utiliza un ATtiny85 como el cerebro y la cinta de cobre como el sensor. Es alimentado por 2 pilas AAA. Todos los componentes