Pages: [1] 2   Go Down
Author Topic: Erstprojekt - Looping Loui  (Read 3407 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Full Member
***
Karma: 1
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Guten Abend zusammen,

als Arduino-Neueinsteiger habe ich gleich eine verrückte Projektidee.
Und zwar gibt es das Kinderspiel Looping Louie. (mehr im nächsten Post. Kann/Darf noch keine Bilder & Links posten)
Dies wurde häufiger schon zu einem Trinkspiel umfunktioniert.
Die Regeln sind einfach:
Loui dreht sich im Kreis und muss mit der Wippe von den eigenen Hühnern (Münzen) weggehalten werden. Diese fallen sonst hinunter.
Hat Loui dem Spieler alle 3 Hühner geklaut, wird ein Schluck getrunken und die Hühner werden wieder aufgefüllt.

Mittlerweile ist eine große Community entstanden, die dieses Spiel aufmotzen und z.B. 4 extra Wippen einbauen.

Meine Idee wäre nun den Motor in verschiedenen Geschwindigkeiten verstellen zu können. Quasi einen + & - Schalter und ein paar LED´s in Reihe, die die eingestellte Geschwindigkeit anzeigen.
Dazu benötige ich einen MOSFET, richtig?

Die nächste Stufe wäre dann zu kontrollieren ob die 3 Hühner gefallen sind. Für einen Schalter wären die Coins zu leicht, denke ich. Daher evtl. eine Lichtschranke? (Natürlich am Ende, wenn das 3. Huhn gefallen ist, sonst müsste ich mitzählen und das halte ich für zu fehleranfällig)
Dann stellt der Motor automatisch ab um die Hühner wieder auffüllen zu können. (trinken inbegriffen smiley-wink )
Schön wären dann natürlich ein paar nett blinkende LED´s und optional ein bisschen Sound. (Nur was einfaches. Wie ein PC Speaker z.B.)

Weitere Ideen wären dann ein Display um auszuwerten wer wie viel getrunken hat, usw.

Idealer Weise sollte ich mir die Möglichkeit offen halten, später auf 8 Spieler "upgraden" zu können.

Was haltet Ihr von so einer Projektidee? Ist die für einen Anfänger realisierbar? Programmieren kann ich. Löten sollte ebenfalls klappen. Nur die Schaltungen machen mir noch etwas Sorgen. Dazu habe ich aber einige Elektriker an der Hand die mich sicherlich gerne unterstützen.

Gruß,
Thomas
Logged

Germany
Offline Offline
Full Member
***
Karma: 1
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Damit man sich vorstellen kann worum es geht:

Die "Hühner" sind in diesem Beispiel leider alle schon heruntergefallen. Am Anfang der höher gelegenen Schiene ist eine Aussparung, wo das Huhn runterfällt, wenn das Flugzeug dagegen stößt.

Unter http://www.loopinglouie.de/ kann man sich ein paar Videos und Modifikationen ansehen.
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 236
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Denke, das ist realisierbar, auch als "halbanfänger".

Mir fäll dazu noch "Hall-Sensor" statt Lichtschranke ein. Nen Minimagnet aufs letzte Huhn, und jeweils nen Sensor in den "Hinfall-bereich".

Also, die Motorgeschwindigkeit sollte kein Problem darstellen. Über PWM nen Motor über einen Transistor ansteuern (Freilaufdiobe dazu). Schalter +/-/random/random-geschwindigkeitwechsel während einer Runde.... wären Software-Dinge die mir noch einfielen.

Schaltungen sollten auch klappen, sobald du dir was gebaut hast, die Leute hier mit Fotos deiner Arbeit glücklich machst, dann werden sie dir auch viel helfen.

Display ansteuern ist auch keine Magie. Wirst zwar hören: Such hier im Forum... aber sobald du feine Fotos fertigst, sind eh genug hilfsbereit. smiley-grin
Logged

Germany
Offline Offline
Full Member
***
Karma: 1
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Alles klar!
Vielen Dank für dein Feedback, Pumbaa.

Die Idee mit Random hatte ich auch schon, das ist sicherlich eine tolle Sache smiley

Im Moment bin ich gerade dabei meinen Warenkorb zusammen zu stellen. Nur frage ich mich immer noch womit ich am einfachsten die Hühner prüfe. Zu fortgeschrittener Stunde wird sicherlich die Reihenfolge mit den Hühnerchips nicht mehr eingehalten :-/

Wenn ich mir dann den Dremel und den Lötkolben geschnappt habe, werde ich das ganze dokumentieren und auch hier posten. Kann sich nur noch um Wochen handeln bis ich alles zusammen habe smiley-wink
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 236
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Du könntest das ganze auch abstrakter machen. Louie berührt nen Kontakt/Schalter.Und der Arduino zählts....

Aber würde irgendwie den Reiz vernichten.
Logged

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Lichtschranke ist mindestens genauso einfach wie ein Hall Sensor und braucht keinen Magnet.

Die Sache mit dem Display würde ich erst angehen wenn der Rest klappt. Als Anfänger hast Du damit genug zu tun. Immer erst einen Schritt machen und wenn der klappt zum nächsten übergehen. Auf keinen Fall 5 Baustellen aufmachen und keine zu.

Udo
Logged

Check out my experiments http://blog.blinkenlight.net

0
Offline Offline
Faraday Member
**
Karma: 23
Posts: 3470
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Als Lichtschranke nimmt vorzugsweise sowas:

http://www.rn-wissen.de/index.php/Gabellichtschranke

Udo
Logged

Check out my experiments http://blog.blinkenlight.net

Germany
Offline Offline
Full Member
***
Karma: 1
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Udo,

danke für den Tipp. Mein Warenkorb ist gerade um 4Stck angewachsen smiley

Eine Sache habe ich aber immer noch nicht so ganz verstanden. Da diese Spiel bereits einen Batteriebetriebenen Motor mit sich bringt, benötige ich doch nur einen einstellbaren Wiederstand um die Geschwindigkeit zu verändern. Da fehlt mir noch das richtige Teil. Was ich im Internet so gefunden habe ist alles für Schrittmotoren. Aber einen "Schritt" benötige ich ja garnicht, sondern An/Aus und Schneller/Langsamer.

Gruß
Thomas
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 236
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gucke dir "Pulsweitenmodulation" an. Ich denke das wird deine Fragen klären. Der arduino steuert sozusagen nen Schalter (Transistor) damit.
Schaltet maximal (gesteuert von Arduino) 500x pro sek an/aus.
Wenn 300x an und 200x aus =>60% leistung (geschwindigkeit)
wenn 100x an und 400x aus => 20% leistung. usw.

Mit dem Vowissen einfach die Pulsweitenmodulation angucken.


Logged

Germany
Offline Offline
Full Member
***
Karma: 1
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Guten Tag zusammen,

es ist so weit! Endlich ist das Meiste angekommen und ich konnte die ersten Gehversuche mit dem Arduino starten.
Ganz Zielorientiert habe ich gleich den Loui in die ersten Tutorials mit eingebaut. Ein Button um 3 Geschwindigkeiten einzustellen und je eine LED zur Anzeige derselben.



Nun stehe ich vor 2 Problemen:
Zum einen frage ich mich immer noch wie ich die "Hühner" kontrollieren soll. Eine Lichtschranke klingt gut. Aber wohin??? (siehe Bild unten) Baue ich diese in einen gefrästen Spalt, dann könnte auch mal ein Chip daneben gehen und Loui stoppt nicht.



Das 2. Problem ist eher ne Frage nach Clean coding. Da ich bereits einen kleine Zufallsgenerator gebaut habe, stehe ich vor dem Problem, das ich mittels delay() mir den Button-Input sperre ;-)
Also einen Counter bauen, der mir die Milisekunden zählt und dann erst reagieren? Ist das nicht sehr inperformant und ne Resourcen-Verschwendung?
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 236
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hab dein Problem nicht verstanden, aber:
Aber, wenn ein delay deine "wie auch immer"-abfragen unterbricht, dann ist nen counter, der erst ab überlauf was tut schon die richtige wahl. Wenn eh nen Motor nonstop durchläuft, ist's egal ob der arduino nen paar mA verbrät.....

Ansonsten: Wo die Lichtschranke (oder sonstwas) gesetzt ist, ist ziemlich deine Sache. Was mir dazu nocheinfällt: Könntest auch gucken, ob nochn Huhn oben ist, anstatt zu prüfen, ob 3e unten sind. Dann haste dein "Huhnn ging daneben"-problem gelöst.

PWM zum geschwindigkeit-steuern läuft?
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 249
Posts: 21200
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Trib

Bei der delay() -Funktion wartet der Prozessor bis die Zeit abgelaufen ist und macht nichts anderes. ALso keine abfragen von inputpin oder sonstiges. Interrupteingang funktioniert.

Normalerweise verwendet man millis() um diesen Effekt zu verhindern.
In der loop() - Funktion speichert man zuerst den aktuellen millis() - Wert und kontrolliert dann per if - Anweisung ob die Zeit die man warten will verstrichen ist. Gadurch ist es möglich Eingänge abzufragen.
siehe http://arduino.cc/en/Tutorial/BlinkWithoutDelay
Grüße Uwe  
Logged

Germany
Offline Offline
Full Member
***
Karma: 1
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Pumbaa,
der PWM läuft super! Die Spannung vom Arduino ist per Netzteil mehr als ausreichend. Irgendwie hab ich im Vorhinein zu sehr um die Ecke gedacht  smiley-wink
Die Lichtschranke nach oben zu verfrachten halte ich ebenfalls für die Beste Idee. Dann ist sie nur deutlich zu sehen. Die Kabel wohl auch :-/

Hi uwefed,
so in etwa hatte ich mir das vorgestellt. Man muss eben nur die passende Funktion kennen smiley

Code:
if((btnPowerState == 1) && (milisecondsDelay < millis()))
  {    
    speed = random(1,4); //Geschwindigkeit 1-3
    milisecondsDelay = millis() + random(1000,10000);//1-10Sek warten
  }

Nun heißt es auf Teile warten. Der Rest funktioniert schon wunderbar. Durch Zufall habe ich noch ein Soundmodul aus einer Stoffente gefunden. Zwar kein Huhn, aber das wäre schon der Knüller etwas Stimmung zu machen, wenn Jemand verliert!
Logged

0
Offline Offline
Full Member
***
Karma: 1
Posts: 236
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

:o)
Freut mich zu hören.
Miss aber dennoch mal nach, wieviel Strom der Motor dem Arduino zieht.
mehr als 20-40mA sollten es nicht sein, sonst ist dein PWM-Pin bald nicht mehr.

Und hast du eine Freilaufdiode am Motor? Falls nein, nachlesen was es ist. Und bis dahin nicht laufen lassen.
Nen Motor direkt über nen Pin wird nicht lange gutgehen...


EDIT: Sehe grad aufm Bild von dir, dass du wohl nen Transistor benutzt. Dennoch ne Diode nehmen!

Und falls du für dein Entenmodul nen "Knopfdrücker" brauchst, das google-stichwort ist optokoppler.
« Last Edit: June 20, 2010, 12:46:36 pm by willich » Logged

Germany
Offline Offline
Full Member
***
Karma: 1
Posts: 130
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hmm, das klingt ja nicht so toll.
Also fummel ich gerade auf dünnem Eis :o

Der Motor besitzt nur einen Thermistor und ein Kondensator. Also sollte ich mir da fix ne Freilaufdiode einlöten. Habe nur keine Ahnung was für eine. Normal sind 2 AA Batterien im Spiel.

Über den VIn-Pin gebe ich per analogWrite zwischen 30-50 aus. Das entspricht dann im Ergebnis etwa 2,8 - 3,5 Volt. Dazwischen habe ich einen MOSIrf540. Den soll ich dann durch eine Diode ersetzen? (Habe das nach einem Tutorial gebaut...)

Wahrscheinlich sollte ich mich mal mit Jemandem zusammensetzen, der Ahnung von Elektrotechnik hat., bevor ich mir das ganze Teil abfackel  smiley-grin

EDIT:
Achso, eigentlich wollte ich den Schalter ausbauen, das Kabel zusammenlöten und dann genau wie den Motor mit 3Volt per PWM betreiben. So spare ich mir einen Batteriesatz. Aber anscheinend sollte ich das besser lassen.
« Last Edit: June 20, 2010, 02:04:57 pm by TriB » Logged

Pages: [1] 2   Go Up
Jump to: