Autonome Slotcars - worgtsone.scienceontheweb.net (mail

Werbung
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
Herunterladen