Anleitung µC-Steuerung von FlyWheels

Wald12

Lernender Modder
Es hat ein paar Tage länger gedauert aber nun habe ich es endlich geschafft mein aktuelles Projekt mit allen optionalen Bäumen niederzuschreiben:

µC-gesteuerter Flywheels ... warum? Wir geben uns bei unseren Blastern enorme Mühe die vorhandene Technik zu optimieren, was die Elektrik angeht gibt es aber meist nur AUS und VOLLE POWER ... dabei bietet die moderne Welt doch soviele Möglichkeiten..
Steuerung der Flywheels über einen µC, Ansteuerung der Motoren wahlweise per PWM und MosFet oder PPM und ESC:
  • Vorteil der PWM Steuerung: simpel, sehr kostenkünstig
  • Nachteil der PWM Steuerung: ohne "komplexen" Aufbau mit H-Brücke dahinter keine Motorbremsung
  • Vorteil der PPM Steuerung mit ESC: robustes Bauteil mit Überlastschutz, Akkuüberwachung und Motorbremse
  • Nachteil der PPM Steuerung: Frisst wesentlich mehr Speicher und das Bauteil kostet zwischen 5 und 10€
Was mich am meisten stört: die aktuellen 3S Motoren liefern ca. 35k Umdrehungen pro Minute im Leerlauf (580 pro Sekunde), dies entspricht bei einem 33mm Flywheel (103mm Umfang) einer Oberflächengeschwindigkeit von knapp 60m/s, effektiv reichen (mir) aber echte 35-40m/s die auf den Dart übertragen werden - lasse ich die Motoren aber konstant mit 60-70% Leistung laufen erhöhen sich die Spin-Up Zeiten unnötig und bei Kontakt mit dem Dart bricht die Drehzahl noch stärker ein.

Dies führt zu folgenden Projektzielen:
  • möglichst kurze Spin-Up Zeit der Flywheels
  • Einstellen von x möglichen Leerlaufgeschwindigkeiten
  • Erhöhen der Spannung / Leistung des Motors bei Kontakt mit dem Dart
Wo stehe ich gerade:

Proof of Concept erfolgreich abgeschlossen:
Vor mir liegt eine Stryfe mit verbauten DigiSparkPro, 20A ESC und 2 OOD Valkyrie Motoren, sowie einer zusätzlichen Lichtschranke im FW-Cage, das I2C OLED Display ist noch extern und sucht noch einen Einbauort.
Was funktioniert:
  • Beim einschalten der Stryfe führt diese über das OLED-Display einen Selbsttest durch:
    • Hochfahren der Flywheels für je 1 Sekunde mit den konfigurierten Geschwindigkeiten
    • Aufforderung zum öffen und schliessen der JamDoor
    • Aufforderung zum drücken und loslassen des FW-Triggers
  • Beim drücken des Rev-Triggers beschleunigen die FWs für 500ms mit 100%, danach laufen diese mit der eingestellten Leistung weiter
  • Sobald ein Dart die Lichtschranke im FW-Cage unterbricht während die FWs bereits laufen beschleunigen die FWs um einen Faktor X, sollte dies länger als eine Zeit Y der Fall sein wird ein Jam erkannt und die FWs stoppen, dieser wird erst durch öffnen und schliessen der JamDoor zurück gesetzt.
  • Unterbricht ein Dart die Lichtschranke während die FWs im Ruhezustand sind beschleunigen die FWs ebenfalls für 500ms mit max. Leistung (Notfallplan für hektische Situation)
  • Es kann eine beliebige Anzahl von Geschwindigkeitsstufen im Code hinterlegt werden (Array-basiert)
  • Auswahl der Geschwindkeitsstufen über den FW-Trigger bei geöffneter Jam-Door
  • Auf dem Display werden Statusmeldungen und die Anzahl der abgegebenen Schüsse angezeigt
  • Anzeige der (geschätzten) Spannung (Vmin, Vmax, Vakt), bei unterschreiten eines bestimmten Wertes wird ein Spannungsalarm ausgelöst welcher nur durch öffnen und schliessen der Jamdoor zurück gesetzt werden kann
Belegung des µC (Attiny85):
P0 - I2C Display
P2 - I2C Display
P1 - PWM/PPM Ausgang
P4 - Lichtschranke
P5 - FW-Trigger
P6- Analog Eingang für VCC und Jamdoor (etwas getrickst, bei geschlossener JamDoor wird die Spannung des LiPos über einen Spannungsteiler auf den Pin gelegt, beim Öffnen der Jamdoor werden +5V auf den Pin gelegt, bei der Auswertung wird über den zurück gemeldeten Wert entschieden ob eine Spannung gemessen werden soll oder ob die Jamdoor aufsteht)
To Dos:
  • Zurücksetzen des Ammo-Counters bei einsetzen eines neuen Magazins
Probleme während der Umsetzung:
  • Primär der Speicher des zuerst verwendeten Attiny85 (Digispark), bei Nutzung von OLED und PPM (Servo Steuerung) bleib nicht genug Speicher um unterschiedlich große Schriftarten zu verwenden, sowie die aktuelle Spannung zu errechnen.
Derzeitige Builds/Optionen:
Die "kleine Lösung":
DigiSpark mit ATTiny85, Ansteuerung der FWs per PWM (MosFet), mit OLED Display für Statusanzeigen, max. 3 unterschiedliche Geschwindigkeiten, Anzeige der abgegebenen Schüsse, Vakt. - nicht in einer Nerf verbaut, liegt auf dem Steckbrett zum testen / rumspielen.

Die "große" Lösung:
DigiSpark Pro, Ansteuerung der FWs per PPM (ESC), mit OLED Display, nahezu unbegrenzte Anzahl von Geschwindigkeiten, Anzeige der der abgegebenen Schüsse, Vakt, Vmin, Vmax, unterschiedliche Schriftarten.

Der Code ist so geschrieben dass er schnell auf andere Hardware angepasst werden kann (Define der PINs auf eindeutige Namen), allerdings müssen bestimmte Teile des Quelltexts für kleine Prozessoren auskommentiert werden, auf Dauer werde ich den Attiny85 nicht mehr nutzen da die Abmessungen des Digispark Pro nur unwesentlich größer sind und ich bestimmte Funktionen auf mehr PINs verteilen kann (JamDoor / Mag-Schalter).

Bilder des Ganzen kommen am langen Wochenende, die Komponenten sind jetzt fest eingebaut, allerdings ist der Akku noch extern und kein "Not-Aus" verbaut, dafür muss ich die Shell-bearbeiten und das geht nicht wenn die Kinder schlafen :)
Quellcode ist noch closed Beta (auf Anfrage gerne per PN), sobald ich meine Kommentare überarbeitet habe und die Benamung der Variablen etwas sprechender ist poste ich den hier in den Thread.
 

Crash Override

Auf Blasted zuhause
Da nichts Definiertes dabei steht - ist da kein elektrischer Pusher verbaut sondern nur der normale Trigger, der Manuell funktioniert?
 

Wald12

Lernender Modder
Genau, das Projekt jetzt steuert nur die Flywheels dynamisch an.
Das nächste Projekt ist ein Chroni/Ammocounter und danach ist die Hyperfire dran mit Select Fire, die baut vom Code dann auf diesem Projekt auf, steuert aber den Pusher mit an.
Im Grunde sind es ja nur zwei (evtl. drei) weitere Eingänge für den Trigger und die Pusher Rückmeldung (en) und ein Ausgang für den Pusher.
 

Wald12

Lernender Modder
Naja, ich mache beschäftige mich seit 30 Jahren mit wechselender Ausprägung mit Logikschaltungen und Quellcode jeglicher Art... Assembler, Basic,C C++, Visual Basic, HTML, PHP und ein paar die ich verdrängt habe, dazu Siemens Logo und S7, diverse Arduino und Raspberry Pi Projekte.
Mittlerweile nur noch "privat" aber wenn die Grundlagen einmal sitzen sind es nur noch ein paar Zeilen Quelltext.
Dafür kann ich mir weder Namen noch Gesichter merken und verlaufe mich in meiner Nachbarschaft...

Edit, so alt bin ich noch gar nicht
 
Zuletzt bearbeitet:

NIGHTHUNTER79

Auf Blasted zuhause
Wow... bin zwar noch skeptisch, was den Nutzen von diesem Leerlauf-feature angeht, aber ich bin überwältigt von der Technik, die dahinter steckt... Wenn das ganze irgendwann noch Selectfire, Ammocounter, Muzzleflash Generator und Co. beinhaltet, möchte ich bitte eine idiotensichere Einbaueinleitung und ne Teileliste xD Bis dahin bin ich aber mit meiner Ein/Aus-Stryfe voll zufrieden... ^^

Echt großes Kino! :)
 

Wald12

Lernender Modder
Den Nutzen des Leerlauf Features werde ich erst mit Chronie wirklich bewerten können.
Und im Dauertest was den Dartwear angeht.

Btw. definiere bitte das und Co :)
Kommt dann auf die Wunschliste für das nächste Projekt.
 
Zuletzt bearbeitet:

Sam

Blasted Kenner
Assembler, Basic,C C++, Visual Basic, HTML, PHP und ein paar die ich verdrängt habe, dazu Siemens Logo und S7, diverse Arduino und Raspberry Pi Projekte.
Ich hab nicht eins davon je überhaupt gehört aber bitte, go for it. Klingt spannend, wenn du das alles kontrolliert hast, n solenoid pusher mit safe/semi/burst/fullauto switch eingebaut hast, selbst zurücksetzender ammocounter, farblich programmierbaren muzzleflash, Killswitch, programmierbare feuerrate für die beiden auto modi und das ganze steuerbsr über ne app hast will ich auch so ein ding ;)
 

Wald12

Lernender Modder
Ich merke schon, das Thema Pushersteuerung ist ein Dauerbrenner :)
Wenn mir jemand den jeweiligen Pusher zum testen zur Verfügung stellt entwickel ich gerne was dafür, Hyperfire und Rapidstrike habe ich hier, die funktionieren von der Ansteuerung ja gleich, nur eine Timingfrage.
DPS-Steuerung ist auch kein Thema.
Farbliche Muzzleflash ist spielerei, farblich passende Led und gut ist (RGB Leds belegen drei PWMs, das ist Perlen vor die Säue).
Steuerung per Bluetooth Terminal ist auch kein Thema, aber eine App werde ich nicht machen... Wer Ahnung von App Programmierung hat darf das aber keine Übernehmen, ich stelle eine serielle Schnittstelle...
 

medusa

Auf Blasted zuhause
Bei allem Respekt für das was Du da baust (bin beruflich im Bereich Embedded Software unterwegs, ich weiß also wovon ich da spreche) -- ich hab ein Problem mit den ganzen modernen Gadgets, die alles von selbst machen und mich ggfs. meinen eigenen Blaster nicht mehr benutzen lassen, weil beim Startup-Selbsttest irgendwas nicht ganz nach Spec war. Ich selbst neige deshalb dazu,, Geräte mit Occams Rasiermesser auf die wesentlichen Funktionen zu reduzieren. ;)
Noch einmal, ich hab Respekt, daß Du so ein Projekt angehst, und es gibt sicher viele hier, die das total cool finden. Das ist keine Kritik. Nur eine andere Philosophie, sozusagen.
 

Wald12

Lernender Modder
@medusa auch ohne deine Einleiten hätte ich es nicht als Kritik angesehen, würde ich den Blaster tatsächlich für etwas "wichtiges" brauchen wäre so ein Schnickschnack auch nicht drin ;)

Aber für ein Spielzeug mit Display finde ich das genau nerdig genug - stell dir mal vor der JamDoor Schalter funktioniert nicht, nicht auszudenken was da passieren könnte...
 

Shuzz

Angehender Modder
Wow, ich war hier schon lange nicht mehr aktiv, aber es freut mich, dass noch jemand Interesse an µC in elektrischen Dartblastern hat... :)

Vorschlag zur App-Steuerung: Nen ESP8266 als Controller verwenden, schon spannt Dein Dartblaster ein WiFi auf und Du kannst einfach ne simple WebApp über Dein Handy aufrufen über die sich die diversen Parameter einstellen lassen.
Glaube ne Infinus wäre ein geiles Teil für so ein Projekt, allein schon die Möglichkeit die geladenen Darts automatisch mitzuzählen... :-D

Wie weit bist Du denn bisher mit dem Quellcode gekommen? ;-)
 

TheOrk

Auf Blasted zuhause
Und dann mit same-day delivery nachschub aufs Schlachtfeld... Da ist DocWagon ein mist gegen ;)
 

Dominik

Auf Blasted zuhause
Wann wird dann eine EloKa-Truppe zum Battle mitgenommen?
Ich weiß schon, warum ich Offline-Lösungen und physikalische Verbindungen bevorzuge.
 

Crash Override

Auf Blasted zuhause
Jolt im Dual - Wielding like a Boss.

Oder man baut sich aus der Jolt gleich nen Demo-Granaten werfer... Zumindest mit Scope und Stock gabs ja schonmal eine. Oder war das ne Bigshock?
 

NIGHTHUNTER79

Auf Blasted zuhause
Jolt im Dual - Wielding like a Boss.

Oder man baut sich aus der Jolt gleich nen Demo-Granaten werfer... Zumindest mit Scope und Stock gabs ja schonmal eine. Oder war das ne Bigshock?

kann mir nicht vorstellen dass die beiden Blaster genug Kraft aufbringen ne Demogranate abzufeuern... das schafft meine Kronos noch nichtmal annähernd befriedigend... die fliegt dir einfach direkt vor die Füße xD
 

Crash Override

Auf Blasted zuhause
wer sagt denn, das man dafür die jolt abfeuern muss? ;) "werfer", also ne Demogranate an der ne Jolt hängt - geworfen :p
 
Zuletzt bearbeitet:

TheOrk

Auf Blasted zuhause
Vielleicht kann auch der demo-werfer die Jolt abfeuern? Die sind eh handlicher als munition...
Oder unterlauf rough-cut unter die jolt?
Jetzt hab ich wieder Lust den Proxxon anzuwerfen und keine Zeit :-(
 
Zuletzt bearbeitet:

Being blasted

Du bist Dartblaster Fan? Dann lass' dir blasted.de nicht entgehen!
Wir sind die größte deutsche Community rund um Nerf und Dartblaster-Modding.
Finde tausende Anleitungen für Mods, Hilfe bei Problemen, Antworten auf deine Fragen.
Verpasse keine Neuigkeiten aus der großartigen, bunten Welt der Schaumstoff-Guns.
Die Mitgliedschaft im Forum ist kostenlos und die Community freut sich auf dich!

Noch Fragen? Dann kontaktiere uns. Wir sind nur ein bisschen verrückt. ;)

Get blasted

Oben Unten