Klassische Auto-Race Spiel auf einem Deskjet 520.
AVI video (1.5MB) von einen Race.
Klick auf ein Bild um das 4-Megapixel Orginalbild anzuzeigen (1.5MB)
Das Parkur-Papier (in diese Fall zwei A4 lang) wird geladen durch die Joystick nach vorne zu drucken.
Wenn der Parkur geladen ist zeigt das LCD “Positionieren”, jetzt kann der Deskjet-Pilot sein Bolide im Position bringen mit Joystick links/rechts. Der Race startet sobald der Joystick nach forne bewegt wird. Solange das Auto auf dem Parkur ist sind hohe Geschwindigkeiten moechlich. Sobald jedoch das Auto von Parkur abkommt, verringert sich die Hoechstgeschwindigkeit. Ziel ist jetzt den Parkur so schnell wie moeglich zu absolvieren.
Es gibt auch ein AVI video (1.5MB) von einen Race.
Beim erreichen des Ziels schaltet der Deskjet ab, und…
Die Rennzeit wird im Display angezeigt.
Bauanleitung
Oeffne ein Deskjet der 500er Reihe (hier 520).
Auf dem Haupplatine wirden folgende Leiterbanen abgetrennt und umgeleitet zum Microkontroller auf dem Breadboard:
- links-oben: Ground Leitung und +5Volt Leitung.
- links-mitte: 4x Stepper Motor Controller Leitungen
- links-unter: 2x Druckkopf Positions Encoder, und 1x “Papier-Aus” Sensor.
- rechts-oben: 3x Druckkopf DC Motor Controller Leitungen.
Der Papierfeederteil wird wieder installiert, wobei es wichtig ist das Druckkopfkabel (weisse Flachkabel unter-mitte) wieder anzuschliesen fuer die Druckkopf Position und “Papier-Aus” Sensoren. Auch werden zwei Holzkloeze installiert die die Bewegungsfreiheit des Druckkopfes auf die Papierbreite beschraenken.
Aus einem Phototransistor und Infrarot LED wird der (licht-dunkel) Parkursensor gebaut. Ein kleines Stueck Plexiglass haelt den Sensor auf ein4er fixen Hoehe ueber dem Papier, so kann der Sensor Ausgangswert kalibriert werden.
Im oberen Gehaeuse-Teil sind die Anschluesse fuer dem Reset-Knopf und Power-On LED.
Die Druckkopfabdeckung vor dem Ausschnitt.
Software
Das austausch Gehirn des Deskjets ist ein ATMega8 Microkontroller (Einzelhandelspreis Euro 3.50). Mit einem, im gcc programmiertem, Programm ist es moeglich Paperfeed Stepper motor und Druckerkopf DC Motor mit variabeler Geschwindigkeit zu steuern. Im Hauptloop des Programms wird die X und Y Position des Joysticks und der Photosensorwert ausgewertet und demensprechend wird die Geschwindigkeit der Motoren angepasst.
Microkontrollers Pin Benutzung:
Pin:Pinname Funktion 1:RESET programmmer 2:RXD serial port 3:TXD serial port 4:INT0 x position phase0 5:INT1 paperout 6:PD4 stepper phase0 7:VCC VCC 8:GRD GRD 9:PB6 dc motor1 10:PB7 dc motor2 11:PD5 stepper phase1 12:PD6 stepper phase2 13:PD7 stepper phase3 14:PB0 x position phase1 15:OC1A dc motor enable 16:PB2 lcd D4 17:PB3 lcd D5 / MOSI programmer 18:PB4 lcd D6 / MISO programmer 19:PB5 lcd D7 / SCK programmer 20:AVCC N/C 21:AREF VCC 22:GRD GRD 23:ADC0 joystick x 24:ADC1 joystick y 25:ADC2 light sensor 26: 27:PC4 lcd E 28:PC5 lcd RS
Microkontroller Resources:
- Interer Kalibrierte RC-Oscillator auf 8MHz.
- Drei ADC Kanaele: zwei fuer die Joystick-Position und eine fuer den Photosensor (schwarz-weiss).
- 8-Bit Timer2 wird benutzt zum Geschwindigkeit-Kontrolle des Paperfeed Stepper-Motor.
- 8-Bit Timer0 wird benutzt als Zeitbasis mit 4kHs Resolution.
- Interrupt0 wird benutzt zum Auswerten des Druckerkopfes Positions Enkoder.