RailFX-Truppenübungsplatz für Modellbahn und Modellbau

Dieses Modul des RailFX-Systems steuert einen Truppenübungsplatz, bietet Action der besonderen Art. Es verfügt über eine Schießbahn-Steuerung, auf der sechs LEDs Mündungsfeuer simulieren. Über ein Audio-Modul wird der dazugehörige Gewehrknall abgespielt. Wie oft und wie schnell geschossen wird, wird per Zufall bestimmt. So kommt keine Langeweile auf. Für die Freunde größeres Kalibers gibt es die Steuerung für einen Panzer. Dabei wird ein Schrittmotor verwendet, um z.B. den Panzerturm auf das Ziel auszurichten oder um den ganzen Panzer zu bewegen. Die Abfolge hat drei Phasen: Vor, Zurück, Vor. Nach kurzer Pause löst sich ein Schuss. Der Abschusssound erklingt aus dem Soundmodul und eine LED blitzt als Mündungsfeuer auf. Einen Wimpernschlag später schlägt die Ladung in einem Bombenkrater ein. Auch hier blitzt eine LED als Explosion, ein Elektromagnet schlägt von unten gegen die Einschlagstelle und schleudert Dreck nach oben. Eine rote und eine gelbe LED simulieren noch ein kleines Feuer im Krater, dann herrscht wieder gespenstische Ruhe über der Szene. Die Häufigkeit der beiden Animationen lässt sich leicht im Konfigurationsabschnitt im Code einstellen. Wir benötigen Ihre Zustimmung um den Inhalt von YouTube laden zu können. Mit dem Klick auf das Video werden durch den mit uns gemeinsam Verantwortlichen Youtube [Google Ireland Limited, Irland] das Video abgespielt, auf Ihrem Endgerät Skripte geladen, Cookies gespeichert und personenbezogene Daten erfasst. Damit kann Google Aktivitäten im Internet verfolgen und Werbung zielgruppengerecht ausspielen. Es erfolgt eine Datenübermittlung in die USA, diese verfügt über keinen EU-konformen Datenschutz. Weitere Informationen finden Sie hier. Hier klicken um den Inhalt zu aktivieren. Jmx0O2RpdiBjbGFzcz0mcXVvdDtudi1pZnJhbWUtZW1iZWQmcXVvdDsmZ3Q7Jmx0O2lmcmFtZSB0aXRsZT0mcXVvdDtSYWlsRlggVHJ1cHBlbnXMiGJ1bmdzcGxhdHomcXVvdDsgd2lkdGg9JnF1b3Q7MTIwMCZxdW90OyBoZWlnaHQ9JnF1b3Q7Njc1JnF1b3Q7IHNyYz0mcXVvdDtodHRwczovL3d3dy55b3V0dWJlLmNvbS9lbWJlZC9MSG9HdEJzSHEwUT9mZWF0dXJlPW9lbWJlZCZxdW90OyBmcmFtZWJvcmRlcj0mcXVvdDswJnF1b3Q7IGFsbG93PSZxdW90O2FjY2VsZXJvbWV0ZXI7IGF1dG9wbGF5OyBjbGlwYm9hcmQtd3JpdGU7IGVuY3J5cHRlZC1tZWRpYTsgZ3lyb3Njb3BlOyBwaWN0dXJlLWluLXBpY3R1cmU7IHdlYi1zaGFyZSZxdW90OyBhbGxvd2Z1bGxzY3JlZW4mZ3Q7Jmx0Oy9pZnJhbWUmZ3Q7Jmx0Oy9kaXYmZ3Q7 Bauteile LEDs Schrittmotore und Treiberplatine DFPlayer Mini MP3 Player Modul (Bitte nicht das ähnlich aussehende MP3-TP-16P Modul kaufen) MicroSD-Karte Lautsprecher 10x 220 Ohm Widerstände 1x 1 kOhm Widerstand 1x Diode z.B. 1N4001 1x Relais-Platine für Elektromagnet-Steuerung 1x Elektromagnet mit Rüchholfeder 1x Netzteil für Elektromagnet Schaltplan Die Schaltung basiert auf dem Arduino Nano Board. Die LEDs der Schießbahn sind mit der Kathode (kurzes Beinchen) an den Arduino-Pins 13, A0, A1, A2, A3 und A5 verbunden. Die Anode (langes Beinchen) verbindet die LED über einen 220 Ohm Widerstand mit dem 5V+. Anstelle der großen 5mm LEDs kann man natürlich auch SMD-LEDs und Lackdraht verwenden. Als Schrittmotor verwende ich hier den 28BYJ-48 mit der ULN2003 Treiberplatine. Sie ist mit den Arduino-Pins 5, 6, 7 und 8 verbunden. Das ganze Set sollte um die drei Euro kosten. Die LED für das Mündungsfeuer des Panzers ist mit dem Pin 12 verbunden. Der Elektromagnet für den Bombenkrater wird mit einem externen Netzteil betrieben, das per Schaltrelais-Modul ausgelöst wird. Die Spannung des Netzteils muss zum Elektromagneten passen. Eine Diode in Sperrrichtung fängt die induzierte Spannung ab, die beim Abschalten des Elektromagnetes auftritt. Das Schaltrelais-Modul ist mit 5V+, GND und dem digitalen Pin 4 des Arduino-Boards verbunden. Die Explosion wird mit der LED am Pin 9 des Arduinos visualisiert. Sie blitzt beim Einschlag auf. Zusätzlich simulieren die LEDs an den Pins 10 und 11 ein Nachbrennen im Bombenkrater. Akustisch begleitet werden die Animationen durch das DF-Player-Modul. Es ist mit den Pins 2 und 3 am Arduino angeschlossen. Zusätzlich erhält es die Versorgungsspannung 5V+ und GND. Der DF-Player spielt MP3-Dateien von einer SD-Karte ab. Die Karte sollte in FAT-16 oder FAT-32 formatiert sein. Die Dateien müssen auf der SD-Karte im Verzeichnis 01 gespeichert werden. Sounds Herunterladen Nähere Infos zum DF-Player auf dieser Seite: DFPlayer Mini-MP3-Player für Arduino. Normalerweise wird am Pin A4 das Control-Signal des RailFX Control-Moduls angelegt. Es steuert die Tageszeit, ist aber für dieses Modul nicht erforderlich. Einstellungen im Code Im Code lassen folgende Einstellungen vornehmen: Schießwahrscheinlichkeit Panzerschuss-Wahrscheinlichkeit Lautstärke Anzahl der Gewehre auf der Schießbahn Im folgenden Teil des Programmes lassen sie die genannten Parameter anpassen: int schiesswahrscheinlichkeit = 10; int panzerwahrscheinlichkeit = 20; int lautstaerke = 20; // Lautstärke des DFPlayers (0 – 30); int mp3Anzahl = 6; // Menge der MP3-Dateien auf der SD-Karte int mp3Dauer[] = {2, 1, 1, 6, 5, 16}; // Dauer der MP3-Dateien in Sekunden int gewehrAnzahl = 6; // Anzahl der Gewehre Beim Upload muss man darauf achten, dass das richtige Board im Arduino-Menü ausgewählt ist. Dazu muss ebenfalls im Werkzeuge-Menü im Unterpunkt Prozessor »ATmega328P (Old Bootlaoder)« ausgewählt sein. Der folgende Programmcode kann mit den oben erwähnten Änderungen einfach kopiert und auf das Arduino-Nano geladen werden. Code für das RailFX-Modul Truppenübungsplatz /* Rail-FX Truppenübungsplatz Schießbahn StartHardware.org */ #include <CheapStepper.h> #include "SoftwareSerial.h" // Wird für den DFPlayer benötigt #include "DFRobotDFPlayerMini.h" // Wird für den DFPlayer benötigt /* ***** ***** Einstellungen ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** ***** */ int schiesswahrscheinlichkeit = 10; int panzerwahrscheinlichkeit = 20; int lautstaerke = 20; // Lautstärke des DFPlayers (0 – 30); int mp3Anzahl = 6; // Menge der MP3 Dateien auf der SD-Karte int mp3Dauer[] = {2, 1, 1, 6, 5, 16}; // Dauer der MP3 Dateien in Sekunden int gewehrAnzahl = 6; // Anzahl der Gewehre /* ***** ***** Ab hier beginnt der Programmcode, der nicht angepasst werden muss ***** ***** ***** ***** */ int gunPins[6] = {13, 14, 15, 16, 17, 19}; int magnetPin = 4; // Pin des Relais, an dem der Elektromagnet angeschlossen ist int cannonPin = 12; int impactPin = 9; int fire1Pin = 10; int fire2Pin = 11; /* Timer Variablen */ long wartezeiten = 2000; // Allgemeine Wartezeit im Loop /* Objekte anlegen */ SoftwareSerial mySoftwareSerial(3, 2); // RX, TX für den DFPlayer DFRobotDFPlayerMini myDFPlayer; // DFPlayer Objekt CheapStepper stepper1 (5, 6, 7, 8); // Erstellen eines Stepperobjekts für den Panzerturm void setup() { Serial.begin(115200); // started die serielle Kommunikation mySoftwareSerial.begin(9600); // started die serielle Kommunikation für den DFPlayer stepper1.setRpm(16); pinMode(magnetPin, OUTPUT); pinMode(cannonPin, OUTPUT); pinMode(impactPin, OUTPUT); for (int i = 0; i < 6; i++) { pinMode(gunPins[i], OUTPUT); digitalWrite(gunPins[i], HIGH); } digitalWrite(cannonPin, HIGH); digitalWrite(impactPin, HIGH); /* DFPlayer Setup */ Serial.println(F("Initializing DFPlayer ... ")); if (!myDFPlayer.begin(mySoftwareSerial,false)) { // nutze softwareSerial um mit dem DFPlayer zu sprechen Serial.println(F("Fehler: Prüfe Verbindung zum DFPlayer und SD-Karte")); } Serial.println(F("DFPlayer Mini online.")); myDFPlayer.volume(lautstaerke); // Lautstärke wird zugewiesen } void loop() { if (random(schiesswahrscheinlichkeit)<2) schiessbahn(); if (random(panzerwahrscheinlichkeit)<2) panzerschuss(); delay(wartezeiten); } void schiessbahn() { // Abfolge auf der Schießbahn int theRepeations = random(30); for (int i = 0; i < theRepeations; i++) { myDFPlayer.playFolder(1, 3); int theGun = random(gewehrAnzahl); delay(100); digitalWrite(gunPins[theGun], LOW); delay(50); digitalWrite(gunPins[theGun], HIGH); delay(random(1000)); } } void panzerschuss() { // Abfolge für das Abfeuern der Kanone myDFPlayer.playFolder(1, 4); for (int i = 0; i <= 1000; i++) { stepper1.run(); stepper1.newMoveDegrees (true, 1); delay(1); } for (int i = 0; i <= 1200; i++) { stepper1.run(); stepper1.newMoveDegrees (false, 1); delay(1); } for (int i = 0; i <= 200; i++) { stepper1.run(); stepper1.newMoveDegrees (true, 1); delay(1); } delay(2000); myDFPlayer.playFolder(1, 1); delay(50); digitalWrite(cannonPin, LOW); delay(20); digitalWrite(cannonPin, HIGH); delay(1500); myDFPlayer.playFolder(1, 2); delay(50); digitalWrite(impactPin, LOW); delay(30); digitalWrite(impactPin, HIGH); delay(50); digitalWrite(magnetPin, HIGH); digitalWrite(impactPin, LOW); delay(100); digitalWrite(magnetPin, LOW); digitalWrite(impactPin, HIGH); for (int i = 0; i < 5; i++) { analogWrite(fire1Pin, 125 + random(125)); analogWrite(fire2Pin, 125 + random(125)); delay(random(500) + 50); } for (int i = 0; i < 5; i++) { analogWrite(fire2Pin, 125 + random(125)); delay(random(500) + 50); } analogWrite(fire1Pin, 255); analogWrite(fire2Pin, 255); } void printDetail(uint8_t type, int value) { // DF Player Fehlermeldungen switch (type) { case TimeOut: Serial.println(F("Time Out!")); break; case WrongStack: Serial.println(F("Stack Wrong!")); break; case DFPlayerCardInserted: Serial.println(F("Card Inserted!")); break; case DFPlayerCardRemoved: Serial.println(F("Card Removed!")); break; case DFPlayerCardOnline: Serial.println(F("Card Online!")); break; case DFPlayerUSBInserted: Serial.println("USB Inserted!"); break; case DFPlayerUSBRemoved: Serial.println("USB Removed!"); break; case DFPlayerPlayFinished: Serial.print(F("Number:")); Serial.print(value); Serial.println(F(" Play Finished!")); break; case DFPlayerError: Serial.print(F("DFPlayerError:")); switch (value) { case Busy: Serial.println(F("Card not found")); break; case Sleeping: Serial.println(F("Sleeping")); break; case SerialWrongStack: Serial.println(F("Get Wrong Stack")); break; case CheckSumNotMatch: Serial.println(F("Check Sum Not Match")); break; case FileIndexOut: Serial.println(F("File Index Out of Bound")); break; case FileMismatch: Serial.println(F("Cannot Find File")); break; case Advertise: Serial.println(F("In Advertise")); break; default: break; } break; default: break; } } Alle RailFX-Module Ansehen » Der Beitrag RailFX-Truppenübungsplatz für Modellbahn und Modellbau erschien zuerst auf Arduino Tutorial.

zum Artikel gehen

Erfahrung Hodis Modellbau Ecke

Hallo zusammen, Ich kenne diese Seite https://www.hodis-modellbau-ecke.de/ Kennt jemand den Shop und Erfahrungen damit. Ich wollte mir was kaufen bin aber unsicher. Danke und Grüße

zum Artikel gehen

RailFX-Raumbeleuchtung: Tag und Nacht für die Modellbahn

Dieses Modul des RailFX-Systems steuert die Raumbeleuchtung der Modellbahn-Anlage. Dazu wird ein RGBW-LED-Strip als Lichtquelle verwendet. Natürlich ist auch dieses Modul vom Miniatur-Wunderland inspiriert :-) Schaltplan Der LED-Strip besteht au

zum Artikel gehen

Kostenlos bei Epic - Nur noch wenige Stunden könnt ihr euch zwei Gratis-Spiele dauerhaft sichern

Jede Woche verschenkt der Epic Games Store eines oder mehrere Spiele an seine Benutzer. Dieses Mal gibt es etwas für Fans von Modellbau und saftiger Action.

zum Artikel gehen

Reservisten wieder beim Marsch in Elsenborn

Es ist mittlerweile gute Tradition, dass Reservisten aus Mechernich am alljährlich Ende Mai stattfindenden internationalen Marsch auf dem belgischen Truppenübungsplatz Elsenborn teilnehmen. Auch in diesem Jahr hatte die Reservistenkameradschaft Bad Münste

zum Artikel gehen

Cen Genesis 46 und ThunderTiger MTA4 Umbau?

Hallo zusammen, nach ca. 15 Jahren widme ich mich wieder dem Thema Modellbau. In der Zwischenzeit hat sich, wie ich jetzt erfahren musste, einiges getan. vor ein paar Wochen habe ich meinen Cen Genesis 46 und TT MTA4 mit sämtlichen Zubehör wiedergefunden

zum Artikel gehen