Hallo Profis.. ich bin neu auf dem Gebiet der Mikrocontroller, bzw. hab noch nicht mal richtig angefangen, bin aber ehrgeizig. Ich würde gerne ein kleines Projekt in Angriff nehmen, das eigentlich wie ein Dartautomat ablaufen soll. Ich habe eine Dartscheibe, die ja wie eine Tastaturmatrix aufgebaut ist. Anzeige der Punkte etc. soll über 7 Segmentanzeigen funktionieren. Anzahl der Würfe über LEDs..., wie das theoretisch funktionieren soll kann ich mir vorstellen auch das Programm kann ich bestimmt mit ein bisschen Zeit in C hinbekommen, da ich selbst Software-Entwickler bin. Nur mit dem Speichern des Programmes/Spieles bin ich mir noch nicht sicher wie das funktionieren soll. - Reicht dafür ein ATmega2560 oder ATmega328 aus? - Oder sollte es doch lieber ein ARM sein? - Wenn das Spiel nicht auf dem Mikrocontroller passt wie kann ich es auslagern? - Wie werden z.B. Spielstände oder Credits gespeichert auch wenn der Strom weg ist? Ich hätte gedacht das ich zum üben etc. ein Arduino Kit benutzen könnte da dort z.B. auch schon 7-Segmentanzeigen und ein Ultraschallsensor dabei ist. Also wenn ihr mir ein paar Tipps geben könntet wäre das super. Ich will keinen vorgefertigten Code oder ähnliches. Auch ist mir klar das ich noch Grundlagen zum Mikrocontroller brauche etc. Ein paar Stichwörter zu meinen Fragen, wonach ich dann im Netz suchen kann, würden mir erstmal weiterhelfen. Alles andere ergibt sich dann :) Mfg Thorsten
Thorsten S. schrieb: > Nur mit dem Speichern des Programmes/Spieles bin ich mir noch nicht > sicher wie das funktionieren soll. > - Reicht dafür ein ATmega2560 oder ATmega328 aus? Dicke > - Oder sollte es doch lieber ein ARM sein? Wofür? Damit der aus lauter Langeweile Selbstmord begeht? > - Wenn das Spiel nicht auf dem Mikrocontroller passt wie kann ich es > auslagern? Warum soll das nicht draufpassen? Du kommst von der PC-Schiene - stimmts? und du bist gewöhnt, dass selbst das popeligste Programm gleich mal ein paar Megabytes belegt. Nun, auf einem µC kann man einfache Programme in ein paar 100 Bytes unterbringen :-) > - Wie werden z.B. Spielstände oder Credits gespeichert auch wenn der > Strom weg ist? Na zb im EEPROM. Genau dafür ist es gedacht. > Ein paar Stichwörter zu meinen Fragen, wonach ich dann im Netz suchen > kann, würden mir erstmal weiterhelfen. Wenn du mit Arduino anfangen willst, wie wärs mit "Arduino Tutorial"
Hallo Karl-Heinz, vielen Dank für die schnelle Antwort. Ja ich komme von der PC-Schiene und ja ein popeliges Programm braucht direkt mehrere MB ;) Aber klar wenn da viel mit Grafischer Oberfläche ist etc. Ist für mich immer noch schwer vorstellbar was alles auf so nen kleinen Dingen drauf passt ;) Das mit dem Tutorial ist schon fast klar, die Stichwörter wie EEPROM und Selbstmord aus Langeweile haben mir schon weitergeholfen. Wenn noch jemand Tipps hat super, aber denke da komme ich hoffentlich erst einmal mit klar. Vielen Dank, Gruß Thorsten
Neben dem AVR Tutorial hier gibt es, speziell für Arduino, auch zwei empfehlenswerte Bücher, die bei den absoluten Grundlagen anfangen, aber auch schon ganz spannende Sachen machen: Englisch: Arduino Workshop A Hands-On Introduction with 65 Projects von John Boxall Deutsch: Die elektronische Welt mit Arduino entdecken (O'Reillys Basics) Von Erik Bartmann Bei Oreilly gibts beide ebooks 50% billiger mit dem Code DSUG2.
Wenn man von der PC-Seite kommt, ist es kaum vorstellbar, dass man in ein paar Kilobyte Flash ein ausgewachsenes Programm hineinbekommt. Aber es ist so und die meisten Atmel-Prozessoren haben, wie schon erwähnt, auch ein Eingebautes EEPROM. Willst Du allerdings die Spielstände der letzten 100 Spiele, von 8 verschiedenen Leuten sichern, so kommst Du wahrscheinlich um eine Erweiterung (kein Problem) desselben oder eine kleine Flash-Karte (auch kein Problem) herum.
> Ich hätte gedacht das ich zum üben etc. ein Arduino Kit benutzen könnte
Kannst du.
Zählen und Anzeigen kann schon ein ATmega8.
Spielstände speichern kann man im EEPROM, falls erwünscht.
Interessanter ist die Mechanik, und die damit einhergehenden Fehler.
Beispielsweise wenn ein Pfeil einschlägt, wackelt der andere.
Philipp K. schrieb: > Neben dem AVR Tutorial hier gibt es, speziell für Arduino, auch zwei > empfehlenswerte Bücher, die bei den absoluten Grundlagen anfangen, aber > auch schon ganz spannende Sachen machen: > > Englisch: > > Arduino Workshop > A Hands-On Introduction with 65 Projects > von John Boxall > > Deutsch: > > Die elektronische Welt mit Arduino entdecken (O'Reillys Basics) > Von Erik Bartmann > > Bei Oreilly gibts beide ebooks 50% billiger mit dem Code DSUG2. Die Bücher klingen von dem Inhaltsverzeichnissen schon mal sehr interessant. Werde mir erstmal das Deutsche besorgen und dann ggf. durch das englische ergänzen. Auch vielen Dank für diesen Tipp. MaWin (Gast) schrieb: >Interessanter ist die Mechanik, und die damit einhergehenden Fehler. >Beispielsweise wenn ein Pfeil einschlägt, wackelt der andere. Ja das denke ich auch, aber jetzt wird mir klar warum an den Dartautomaten nach dem schmeißen erstmal die Rote lampe für "nicht schmeißen" leuchtet und man erst wieder schmeißen sollte wenn die grüne lampe leuchtet. Programm stell ich mir theoretisch vor wie: Pfeil wurde geschmissen und die Zahl erkannt, dann wird z.b. ne variable gesetzt, solange diese aktiv ist rote lampe anzeigen, sollten keine eingaben mehr erfolgen + gewisse zeit evtl. dann wieder zurücksetzen und grüne lampe anzeigen. Naja ich werd es ja sehen. Danke euch!
Thorsten S. schrieb: > Programm stell ich mir theoretisch vor wie: Pfeil wurde geschmissen und > die Zahl erkannt, dann wird z.b. ne variable gesetzt, solange diese > aktiv ist rote lampe anzeigen, sollten keine eingaben mehr erfolgen + > gewisse zeit evtl. dann wieder zurücksetzen und grüne lampe anzeigen. Im Grunde ist das Problem nichts anderes als eine Entprellung von Tasten. Nur dass die Prellzeit um einiges länger ist. Der Automat schaltet auf rot, sobald er eine Veränderung bemerkt und dann wird in regelmässigen Zeitabständen nachgesehen ob es immer noch Veränderungen gibt. Ist, hausnummer, 5 mal hintereinander keine Veränderung mehr feststellbar, dann kann man davon ausgehen dass jetzt wieder alles ruhig ist und der Automat geht wieder auf grün. INteressant ist das Thema aber trotzdem, denn wie erkennt man in welchen Feldern Pfeile stecken, bzw. wieviele da eigentlich drinn stecken. Oder geht das nach dem Muster: welcher 'Taster' ist zuletzt gedrückt worden, selbst wenn er jetzt nicht mehr gedrückt ist (1 Feld == 1 Taster)
jup, so gesehen ist jedes feld ein eigener taster, ähnlich wie eine computer tastatur. hier ein beispiel bild: http://p1.grando.hu/photos/0d/f2/ed75_1_1600.jpg wird ein pfeil geschmissen muss man halt rausbekommen bei welchem matrixpunkt der pfeil eingetroffen ist und zählt die Punkte runter. dann wenn der nächste das gleiche feld trifft wird wieder nur einmal runtergezählt, da ist es egal wieviele in einem Feld stecken. Normalerweise gehen die Felder (Segmente) wieder zurück so das der kontakt nicht geschlossen wird. Bleibt doch mal einer hängen, so wird das bei Professionellen Geräten in Display angezeigt und dann steht da sowas wie E17 und das 17er Segment klemmt feste ... aber so wie du es beschrieben hast, so meinte ich das auch ^^
Dieses Feld ist als Matrix verschaltet. Um schnell entdecken zu können, wann ein Pfeil trifft, legt man ALLE Spalten auf LOW und wartet bis IRGENDEINE Zeile auch auf LOW gezogen wird (die sonst durch den pull up am Eingang des uC auf high liegen). Da kann man per pin change Interrupt drauf warten. DANN erst taktet man schnell jede Spalte einzeln durch und guckt jedesmal ob die Zeile noch Kontakt hat. Und weil das ganze eventuell prellt, macht man das einige Zeit lang falls nicht gleich eine Zeile detektierbar ist. Dann wartet man einige Zeit ab, bevor man den Interrupt wieder einschaltet und auf alle Spalten wartet. Derweil kann das Programm ja das Display ansteuern.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.