EDV-Etch eine Skizze (13 / 16 schritt)

Schritt 13: Programmierung


Jetzt es Zeit ist, den Atmel zu programmieren. Ich habe Avr-Gcc (einen freien Compiler), meinen Code zu kompilieren, und Avrdude, auf meinem Chip brennen.

Leider hinterließ ich meinen Code auf dem Computer Shop wenn ich nach Los Angeles zu Beginn des Sommers zog, und es besteht die Möglichkeit, dass der Code verloren und für immer verschwunden. Anstatt zu versuchen, es neu zu schreiben (obwohl ich wahrscheinlich eine Kopie finden werde, wenn ich wieder nach Los Angeles in ein paar Tagen--ich bin in Frisco jetzt), ich werde versuchen, gehen Sie durch die Programmierung Techniken Sie für dieses Baby können. Lernen würden nicht Sie lieber sowieso als Essen Fisch, Fisch?

Hier ' s die grundlegende Theorie hinter dem Code:
Die Zeichnung ist eine Open-Loop-Prozess. Die einzige Möglichkeit, die wir haben zu wissen, wie weit der Etch-a-Sketch gezogen hat ist herauszufinden, wie lange wir den Motor mit einer konstanten Geschwindigkeit gedreht habe. Das Problem ist natürlich, dass die Motoren ihrer Geschwindigkeit basierend auf die Batteriespannung, die sich von Tag zu Tag ändern können variieren. Ich könnte die Motorspannung regulieren, aber ich finde diese Idee verabscheuungswürdig und unnötig. Stattdessen werde ich lehnen Sie sich zurück und hören Sie das Lied "Ehrlich gesagt, Herr Shankly" von the Smiths mit einem selbstgefälligen Ausdruck auf meinem Gesicht.

Um dies zu umgehen, pretend ich zeichne ich Vektor-Bilder (z.B. Bilder, die skalierbare Linien und Kurven bestehen). Ich mache eine globale Variable in meinem Code genannt Skala, und hätte ich eine Funktion wie DrawLine (Winkel, Länge), es mit einer beliebigen Anzahl für Länge, fordere ich sagen 3. Innerhalb der Funktion habe ich Code, der sagt: Zeichnen Sie eine Linie im richtigen Winkel für 3 * skalieren Sekunden

Macht das Sinn? Gute.

Hier sind einige grundlegenden Funktionen:

void DrawRight(unsigned Char Abstand)
{
PORTB = 1;
Wait(Distance*Scale);
PORTB = 0;
}

void DrawLeft(unsigned Char Abstand)
{
PORTB = 2;
Wait(Distance*Scale);
PORTB = 0;
}

void DrawUp(unsigned Char Abstand)
{
PORTB = 4;
Wait(Distance*Scale);
PORTB = 0;
}

void DrawDown(unsigned Char Abstand)
{
PORTB = 8;
Wait(Distance*Scale);
PORTB = 0;
}

für diejenigen unter Ihnen, die nicht wollen, um es, hier warten Funktion zu schreiben:
leere Zeit, warten(Int)
{
Int Count, count2;
für (Count = 0; Graf < 1000; Graf ++) //we're gonna viele Zyklen Hier verbrennen.
für (count2 = 0; count2 < Zeit; count2 ++)
;
}

OK, sollte dies wirst du bekommen. Mit diesem Code für ein bisschen herumspielen und Auslosung der horizontalen und vertikalen Linien. Vielleicht eine Box. Im nächsten Abschnitt werde ich Ihnen über Kurven sprechen.

Während Sie programmieren, lesen Sie in dem Indie-Label Kill Rock Stars. Neben Matador gehört es zu meinen Lieblings-Labels. OK, cool.

In Verbindung stehende Artikel

Etch eine Skizze Stromversorgung

Etch eine Skizze Stromversorgung

Als jemand, die gerne elektronische Dinge, ich häufig ziehen Sachen wie LED, Motoren, Regler, und schaltet aus alten Kram mit Plänen, um sie später wiederverwenden auseinander zu nehmen. Diese instructable ist nicht nur ein Beispiel für die Wiederver
Riesige Etch eine Skizze-Kostüm

Riesige Etch eine Skizze-Kostüm

diese instructable beschreibt die Schritte, die ich durchgemacht habe, die riesigen Etch eine Skizze-Kostüm für Halloween 2008 erstellen. Sehen Sie das fertige Kostüm unten.Jedes Jahr unsere Familie ist eine Thema-Kostüm und in diesem Jahr beschlosse
Etch eine Skizze Kostüm (funktionsfähig!)

Etch eine Skizze Kostüm (funktionsfähig!)

Hier ist ein zweites Video mit Nahaufnahmen der Verdrahtung von Etch eine Skizze Kostüm näher.
Telecran (Etch eine Skizze) + Arduino = Telecranduino!

Telecran (Etch eine Skizze) + Arduino = Telecranduino!

Stieß ich auf eine Reihe von Schrittmotoren und ich habe seitdem gesucht für ein Projekt mit den Kindern zu tun.Eine alte Telecran (Französisch für Etch-a-Sketch) später, wir sind im Geschäft!Was habe ich für dieses Projekt:-ein Arduino Uno-2 Schritt
EtchABot: Eine vielseitige CNC Ätzen eine Skizze

EtchABot: Eine vielseitige CNC Ätzen eine Skizze

Die EtchABot nutzt einen Arduino, um ein Etch A Sketch in eine selbstlöschende Ziehmaschine CNC (Computer Numerical Control) zu verwandeln. Es ist weit weg von den ersten Etch A Sketch im Internet motorisiert. Andere Projekte haben Schrittmotoren, um
Wie erstelle ich eine Skizze Kunst auf Gimp Ätzen

Wie erstelle ich eine Skizze Kunst auf Gimp Ätzen

auch seine Kunst nicht wörtlich, aber es tun wird.Haben Sie jemals die Jungs im Fernsehen, die er die Mona Lisa oder Barrack Obama auf die Etch eine Skizze machen kann? Ich weiß, jeder hat ein nutzlos Talent wie haben wollte, aber das einzige Problem
Gewusst wie: Arduino #1 - Installation von Arduino und Hochladen einer Skizze

Gewusst wie: Arduino #1 - Installation von Arduino und Hochladen einer Skizze

ich zeigen, wie man Arduino auf einem Mac installieren, sprechen ein wenig über den Arduino Nano, eine Skizze auf dem Arduino hochladen, dann sprechen Sie über die Funktionsweise von Breadboards.
Erstellen Sie eine Skizze-Catalog-Funktion

Erstellen Sie eine Skizze-Catalog-Funktion

A Catalog-Funktion ist eine vordefinierte Skizze oder Feature, das in ein Modell mit einem einzigen Befehl eingefügt werden kann. Die Skizze Variante des Katalog-Features können einfügen eine Skizze, die vollständig gezeichnet, eingeschränkt und dime
Eine Komponente aus einer Skizze für eine neue Skizze in Fusion 360 Moveing

Eine Komponente aus einer Skizze für eine neue Skizze in Fusion 360 Moveing

Diese Instructable ist unterwegs eine Komponente aus einer Skizze im fusion360 zu einer neuen Skizze mit Vergangenheit neu.Ich werde auch zeigen, wie die Komponente zu beheben, wenn die Skizze auf einer Ebene erstellt wurde.Es ist ganz einfach, aber
Wie zu Electro-Etch eine solide Metallplatte

Wie zu Electro-Etch eine solide Metallplatte

Dies ist eine Technik, die von den Menschen für eine sehr lange Zeit verwendet worden ist.Erfahren Sie, wie erstelle ich ein Elektro-etched Metallplakette mit Haushaltsgegenstände oder Gegenstände aus dem Baumarkt in dieser Instructable.  Es gibt kei
Laser-Etch ein Holzschild

Laser-Etch ein Holzschild

dieses Zeichen befindet sich in Palo Alto und Erlebnisgartens und ehrt ein Master-Gärtner, eine Inspiration für viele von uns und einer der Gründer des Gartens war.Schritt 1: Erstellen der Design-Layout in Adobe Illustrator. Die Zeichen ist ein Holz
Gewusst wie: eine Skizze mit Inkscape digitalisieren

Gewusst wie: eine Skizze mit Inkscape digitalisieren

Ich oft mache einige Skizzen oder zeichnen Sie zufällige Sachen, die recht gut herausstellt. Also suchte ich nach einem Weg, sie abzunehmen das Altpapier waren sie stützte sich auf. Ich habe Inkscape in Vektor-Bilder umzusetzen und Ihnen ein bisschen
Ein Foto in eine Skizze umwandeln

Ein Foto in eine Skizze umwandeln

Zurück in den 90er Jahren, wenn Photoshop 6 Kosten eine Menge Geld und es gab keine GiMP, gab es ein Plug-in für Photoshop genannt X-Luke von einer Firma namens Inklination. Es war ein unglaublich leistungsstarke kleine Plug-in erlaubt den Benutzer a
Laser-Etch ein Baseball

Laser-Etch ein Baseball

ich habe es bei laufenTechshophttp://TechShop.WSLetzte Woche habe ich gelernt, die Drehvorrichtung für den Trotec Laser verwenden. In der Regel wird diese Anlage zur zylindrischen und konischen Objekte wie Gläser und Flaschen zu ätzen. Ich wollte etw