Computarizado de Etch a Sketch (13 / 16 paso)

Paso 13: programación

Ahora es el momento de programar el atmel. He utilizado avr-gcc (un compilador libre) para compilar mi código y avrdude para quemar a mi chip.

Por desgracia, dejó mi código en el equipo de la tienda cuando me mudé a LA al principio del verano, y existe la posibilidad que el código es perdido y desaparecido para siempre. En lugar de intentar volver a escribirlo (aunque probablemente encontraré una copia cuando vuelva a LA en unos días, estoy en frisco ahora), voy a intentar guiarte por programación técnicas puede utilizar para este bebé. ¿No aprendes algo de pescado que comen los pescados, de todos modos?

Aquí ' s la teoría básica detrás del código:
El dibujo es un proceso de bucle abierto. La única manera que tenemos de saber hasta qué punto ha dibujado el etch a sketch es averiguar cuánto tiempo hemos sido cambiamos el motor a una velocidad constante. El problema, por supuesto, es que los motores varían su velocidad basado en el voltaje de la batería, que podría cambiar de día a día. Podía regular la tensión del motor, pero encontrar esa idea horrible e innecesaria. En cambio yo a sentarse y escuchar la canción 'Francamente, Mr Shankly' de los Smiths con una expresión petulante en mi cara.

Para conseguir alrededor de esto, yo fingir que estoy dibujando imágenes vectoriales (es decir, imágenes que se componen de curvas y líneas escalables). Hacer una variable global en mi código llamado escala, y si tuviera una función como drawLine (ángulo, longitud), yo diría con un número arbitrario para la longitud, decir 3. Dentro de la función, tiene código que dice: dibuja una línea en el ángulo apropiado para 3 * escala de segundos

¿Eso hace sentido? Buena.

Aquí están algunas funciones básicas:

void drawRight(distancia de char sin signo)
{
PORTB = 1;
Wait(Distance*Scale);
PORTB = 0;
}

void drawLeft(distancia de char sin signo)
{
PORTB = 2;
Wait(Distance*Scale);
PORTB = 0;
}

void drawUp(distancia de char sin signo)
{
PORTB = 4;
Wait(Distance*Scale);
PORTB = 0;
}

cancelar retirada(distancia de char sin signo)
{
PORTB = 8;
Wait(Distance*Scale);
PORTB = 0;
}

para aquellos de ustedes que no quieren escribir, aquí de la función de esperar :
void espera(int tiempo)
{
int cuenta, count2;
para (cuenta = 0; cuenta < 1000; cuenta ++) //we're va a quemar un montón de ciclos aquí.
para (count2 = 0; count2 < tiempo; count2 ++)
;
}

OK, esto debería de ponerte en marcha. Jugar con este código un poco y sacar un montón de líneas horizontales y verticales. Tal vez un cuadro. En la siguiente sección a hablar a usted acerca de las curvas.

Mientras programa, revisa la etiqueta de indie Kill Rock Stars. Junto al Matador, es uno de mis sellos favoritos. OK, cool.

Artículos Relacionados

Etch-a-Sketch LOGO - EASiLOGO

Etch-a-Sketch LOGO - EASiLOGO

¿Qué obtienes cuando cruzas una tortuga con un Etch-a-Sketch?LOGO interactivo de Etch-A-Sketch - 'EASiLOGO'!Este es el primer lenguaje de programación diseñado específicamente para el juguete famoso mundo de las artes de Ohio - Etch-a-Sketch. Si nunc
Etch a Sketch alimentación

Etch a Sketch alimentación

Como alguien que le gusta desarmar cosas electrónicas, que con frecuencia tirar cosas como LED, motores, perillas y cambia de trastos viejos con planes para reutilizarlas más tarde. Este instructable es no sólo un ejemplo de esa reutilización, pero t
Controlado por Arduino bolsillo Etch A Sketch paseo aleatorio simulación

Controlado por Arduino bolsillo Etch A Sketch paseo aleatorio simulación

este proyecto es el resultado de Wal-Mart compra por impulso salida carril de Etch A Sketch de bolsillo por $3.99.Dos motores paso a paso conducen los ejes de mando de Etch A Sketch, y un motor servo gira Etch A Sketch para borrar la pantalla.  Uso a
Robot dibujo mural de $100 (también funciona como un gigante etch-a-sketch)

Robot dibujo mural de $100 (también funciona como un gigante etch-a-sketch)

en Hack-a-day!Lo que me encanta de robots es que usted puede hacer una cosa que hace otras cosas.  Meta así!  Utiliza gcode dibujar cualquier imagen que te gusta, o usted puede conducirlo alrededor como un etch-a-sketch.  Puede escalar este robot has
SK3TCH - tablero de equilibrio controlado de Etch-A-Sketch

SK3TCH - tablero de equilibrio controlado de Etch-A-Sketch

SK3TCHCómo usar una Wii Balance Board para controlar un Etch-A-SketchSólo para WindowsContenido:1. intro y partes de la lista2. engranajes3. construir el marco4. Asamblea5. conectar el WiiMote y Balance Board6. GlovePIE7. Arduino + Control del Motor8
Etch a Sketch de LED

Etch a Sketch de LED

mi LED Etch-a-Sketch es mi primer proyecto de electrónica completamente terminada. Estoy usando cuatro 8 x 8 matrices de LED para hacer una matriz de LED de 16 x 16 superficie de dibujo. Dos potenciómetros permiten entrada de usuario para el movimien
Cortador del Laser del Etch A Sketch basados en Arduino.

Cortador del Laser del Etch A Sketch basados en Arduino.

En este proyecto tomo un Arduino Mini Pro conectarlo a un encargo hecho Etch A Sketch panel y utilizarlo para controlar un cortador del laser amarillo. El resultado es horas de diversión de corte láser loco, que nos va a tomar alrededor de la mayoría
Electroluminiscente Etch A Sketch

Electroluminiscente Etch A Sketch

Hi, aftergetting algunas cosas electroluminiscente para un ejercicio para http://hci.rwth-aachen.de/mcp1314 a jugar, que es mi (primer) intentan construir una EAS electroluminiscente (y hacer un Instructable):He utilizado:-un Telesketch (obvio :-)-lá
Cómo establecer un permanente Etch A Sketch (como profesionales)

Cómo establecer un permanente Etch A Sketch (como profesionales)

como un grabado A Sketchist yo mismo, siento que lo peor que cualquier artista EAS puede hacer por sí mismos es también conseguir conectado a uno de sus "obras de bosquejo". He visto esto suceder antes y artistas han vuelto locos tratando de pro
Virtual Etch A Sketch

Virtual Etch A Sketch

The Etch A Sketch: famoso, creativo y único. Lamentablemente no tengo ninguna pista donde uno desde mi infancia es, por lo que decidí hacer mi propio virtual! Compruebe hacia fuera (y mis habilidades de dibujo horrible) a continuación.Este Telesketch
Etch a sketch creaciones

Etch a sketch creaciones

recientemente encontré un etch a sketch en mi armario y se interesó por el dibujo con ella. Llamo sobre todo imágenes de los libros mientras estoy sentado en clase de inglés, o imágenes de carteles en otras clases. Es una gran manera de utilizar su t
Telecran (Etch a Sketch) + Arduino = Telecranduino!

Telecran (Etch a Sketch) + Arduino = Telecranduino!

me encontré con un montón de motores paso a paso y desde entonces he estado buscando para que un proyecto para hacer con los niños.Un viejo Telecran (Francés para Etch-a-Sketch) más tarde, estamos en el negocio!Lo que utilicé para este proyecto:-un a
Reloj de Arduino Etch-A-Sketch

Reloj de Arduino Etch-A-Sketch

he visto varios Arduino por Etch-A-Sketch relojes en la web, pero ninguno con las instrucciones (¿es algún tipo de secreto? Es alguien pensando en hacer rico en el mercado global de reloj Etch-A-Sketch?). He usado Arduino, pero nunca utilizar motores
LED Etch-a-Sketch (instructivo completo)

LED Etch-a-Sketch (instructivo completo)

mi LED Etch-a-Sketch es mi primer proyecto de electrónica completamente terminada. Cuando llegué primero en electrónica con que yo estaba buscando un proyecto para comenzar y durante la navegación en Sparkfun.com me encontré con matrices de LED y sup