Autonome Slotcars worgtsone.scienceontheweb.com - mailto: worgtsone @ hush.com 2015-12-26 – 26. Dezember 2015 Inhaltsverzeichnis 1 Intro 2 Teile 2.1 Auto – s.o. . . 2.2 Bürsten – s.o. 2.3 12V . . . . . 2.4 5V . . . . . . 2.5 Funkweg . . 2.6 renn() . . . . 2.7 such() . . . . 2.8 debug . . . . 1 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2 2 2 2 2 3 3 3 Intro Man kann ein arduino programmieren. Zb kann es Blitzsignale aussenden (für Fliegerbeleuchtung) oder Lauflichter laufen lassen. Mit dem packet Servo.h kann es auch Servos treiben. (Vermutlich auch lesen, aber wer will denn schon einen Mixer bauen.) Interessanter wäre ein Stabi(lisator) für Fluglage... oder, für ganz schlaue, eine Anwendung zum Messen von (Quer-)Beschleunigung und Steuern eines PCM-MotorStellers (aka Brushed-Regler). Endergebnis ist ein Slotauto, das ein paarmal angepiept wird (ja, ohne Empfänger geht das nicht) und sodann allen anderen Autos auf der Rennbahn davonrast. Dummerweise muß sich der arduino dabei ganz viel merken. Das könnte aber in einem Feld[999] klappen. 2 Teile Ein genügend großes Auto, C*rrera pr*fessional oder Eigenbau. Bürsten, zur Stromübernahme aus der Bahn. Eine zuverlässige 12V-Versorgung zum Fahren. Eine noch zuverlässigere 5V-Versorgung. Er soll ja nicht dauernd neu lernen. Ein Drehknopfsender und Empfänger, vorzugsweise 2,4GHz. Da sind die Sender etwas teurer, aber dafür passen die Empfänger immer. 1 2 TEILE 2 2.1 Auto – s.o. 2.2 Bürsten – s.o. 2.3 12V Allzu zuverlässig ist vllt auch Mist – man sollte das Auto schon stoppen können, indem man der Bahn den Saft abdreht. 2.4 5V Tja... Ein Kondensator für 60sec ist wahrscheinlich zu groß, spaßeshalber rechne ich mit 100mA und komme auf 6C (6 Coulomb) zu halten. Wie war das: je mehr Kapazität, desto mehr Ladung bei gleicher Spannung (5V)? Ergo ist Ladung = Spannung ∗ Kapazitaet; Kapazitaet = Ladung = 1, 2F (arad) Spannung oder 12’000’000µFarad. Sowas gibts nicht. Aber NiMH-Akkus haben voll geladen 1,25V. Man könnte eine passende 4er Kette HINTER den Stabi hängen; sofern der Stabi sie nicht entlädt (???), wären sie immer voll und betriebsbereit. 750mAhDingerchen für rechnerisch 7 Stunden, praktisch höchstens die Hälfte, reicht auch für lange. 2.5 Funkweg HebelDrücken für Halt. Immer. Siehe loop(). Falls arduino erkennen kann, daß er gerade resettet wurde... pah, schreiben wir in setup() steh=true kalibrier hebel und drehknopf while (steh) wenn der hebel zwischen 500 und 999 msec gezogen wurde steh=false HebelDrück für Such: loop() if hebel=dr\"uck steh=true servoMotor=0 modus=steh // da kommt man nur raus mit ziehen... if hebelzug=1 such() if hebelzug=2 beendeSuch() // ich glaube nicht, da\ss{} er das Ziel beim Dr\"uberfahren // erkennt if hebelzug=3 legVor() // f\"ahrt 80\% der leistung if hebelzug=4 renn() // f\"ahrt 100% Wenn man eh schon zwei Kanäle hat (Gas und Lenken), kann man auch mit dem Lenkhebel Gas für den RennTeil geben. Keine Ahnung, wann die Routinen zurückkommen. such() wird am besten durch ein 2 TEILE 3 if hebel=dr\"uck steh=true servoMotor=0 modus=steh sucheFertig=true abgeschlossen. such() sollte abgesichert sein, zB durch vorher 2x bremsen. Wäre doch schade, wenn man endlich die Stellung für maximale Leistung gefunden hat und dann aus Versehen mal an den Hebel kommt. renn() sollte mindestens 2x ziehen haben, sowas passiert nämlich nicht aus Versehen. Lämpchen am Auto würden mir auch gefallen: eine grüne, die bei 1x ziehen angeht und bei 2x ziehen wieder aus. Und eine rote für Drücken. 2.6 renn() Beim Rennen kann alles mögliche passieren, und sei es, daß die Bahn auseinanderfällt oder bloß das Auto runter. Dann weiß es ja nicht mehr wo es ist. Es wäre schön, wenn es immer an Start wieder eingesetzt wird. Es wäre noch schöner, wenn das Auto das selbständig überprüfen würde: if gepurzelt und renn() verifiziereStartposition if startposition renn() else bleib stehen und blinke mit beiden Lampen fahr nach Knopfdruck bis 2x Bremsen oder 2x linksRechtsDrehen *** Ansonsten schätzt das Auto, wo es auf der Strecke sein mag, wählt die voreingestellte Geschwindigkeit, multipliziert sie mit der Drehknopfstellung (so kann man durch Trimmen mehr oder weniger Gas geben) und fährt damit. Schlaue Autos messen bei renn() die tatsächliche Querbeschleunigung und passen die Geschwindigkeitsvorwahl an. 2.7 such() Das Suchprogramm mißt für jede (vermuteten) 100mm Fahrweg die Querbeschleunigung. Falls hohe Werte auftreten, korrigiert es die Sollgeschwindigkeit am Ort der Querbeschleunigung und schon vorher herunter auf kluge Werte. Loopings funktionieren so nicht. 2.8 debug Man würde sich sowieso wünschen, daß das Auto nach such() die vorgeschlagenen Werte bekanntgibt. Am coolsten wäre wohl, die geloggten Daten (wieviel paßt da eigentlich rein???) und gleich auch die Geschwindigkeits-Vorschläge per USB auf einen Rechner (oder ein SchlauFon) zu übertragen. Falls arduino das nicht kann, bleibt wohl nur eine Blinzelorgie, dabei zählt grün (oder kurz oder piep...) für 1 und rot (oder lang oder bläh...) für 4: 0=rrr g gg ggg r rg rgg rggg rr rrg