Eigenbau Cod Kn-57

Martin19

Lernender Modder
hier nun der Code, im Simulator geht´s schon mal...
C++:
#include <Servo.h>
const int button_abzug = 2;
const int button_feuerstoss = 4;
const int button_einzelfeuer = 6;
const int button_flywheel = 8;
Servo flywheel;
Servo pusher;
int buttonAbzug = 1;
int buttonFeuerstoss = 1;
int buttonEinzelfeuer = 1;
int buttonFlywheel = 1;
boolean grundstellung = false;


void setup() {
  Serial.begin(9600);
  pusher.attach(11); 
  pusher.write(140); //Pusher auf Null
  delay(5000);
  flywheel.attach(10);
  flywheel.write(26);
  delay(5000);
  pinMode(button_abzug, INPUT_PULLUP);
  pinMode(button_feuerstoss, INPUT_PULLUP);
  pinMode(button_einzelfeuer, INPUT_PULLUP);
  pinMode(button_flywheel, INPUT_PULLUP);
}
void loop() {
  buttonAbzug = digitalRead(button_abzug);
  buttonFeuerstoss = digitalRead(button_feuerstoss);
  buttonEinzelfeuer = digitalRead(button_einzelfeuer);
  buttonFlywheel = digitalRead(button_flywheel);
  if ((buttonFlywheel == LOW) && (buttonFeuerstoss == LOW || buttonEinzelfeuer == LOW))
  {
    delay(30);
    flywheel.write(80);
    delay(30);
    } else {
      flywheel.write(26);
      delay(30);
    }
 if ((buttonAbzug))grundstellung=false;
  if ((buttonFlywheel == LOW) && (buttonAbzug == LOW)&&(buttonEinzelfeuer == LOW)&&(!grundstellung))
   {
    delay(30);
    pusher.write(40);
    delay(300);
    pusher.write(140);
    delay(300);
    grundstellung=true;        
  }
  if ((buttonFlywheel == LOW) && (buttonAbzug == LOW)&&(buttonFeuerstoss == LOW)&&(!grundstellung))
   {
    delay(30);
    pusher.write(40);
    delay(300);
    pusher.write(140);
    delay(300);
    pusher.write(40);
    delay(300);
    pusher.write(140);
    delay(300);
    pusher.write(40);
    delay(300);
    pusher.write(140);
    delay(300);
    grundstellung=true;
              
  }
   }

PS.: der Code ist nirgends geklaut. Hab ich alles selber gebastelt und getestet mit sehr viel Recherche ;-)
 
Zuletzt bearbeitet:

Martin19

Lernender Modder
😳
Deine Threads schau ich mir nicht mehr an.

Da kriegt man ja Minderwertigkeitskomplexe.

Also andere. Ich kann da mithalten.

Ich hab gestern nen AR aus ner Xshot Micro gepopelt.
Und am Tag dafür den Standfuß für ne Pappspielfigur aus nem Sendung mit Maus Brettspiel designt.
😭
Als nächstes stelle ich meine Modelle beim 3d Druck fertig ein (ic-1 meine fav. Knarre).
Update zur Technik. Hab viele unterschiedliche Regler bestellt. Billig bis teuer. Die ersten billigen sind eingetroffen. Die test außerhalb des Modells waren bei 2 von 6 Reglern erfolgreich. Morgen werde ich ein neuen arduino einlöten und nochmal alles probieren. Hab jetzt 2200kv Motoren rein genommen die 14er waren müll.... Zum allgemeinen Verständnis hab ein arduino auf einem steckbrett damit teste ich alles vor dem Einbau, geht das löte ich einen anderen direkt ein.... manchmal klappt es manchmal gibs ne ganz kleine Rauch Wolken.... warum ist das so. Nun einige Regler benötigen vorab ein hoch Siganl und kurze Zeit später ein tief Signal. Soweit so gut bekommen wir hin. Aber dann haben sie ne motor bremse und die kann man nicht rausnehmen (ich spreche hier nur von den ganz ganz billigen Reglern, die teureren bis teuren machen alles mit) AAAAber es muss auch mit den ganz billigen gehen, ohne programmieren und so!!!! PS.: es sind immer 2 regler erforderlich..... wer rechnen kann weiß wie viele ich nur hier hab die nicht mit dem arduino das tun was ich möchte. Ach ja ich habe auch da internet auf den kopf gestellt und alle möglichen Varianten probiert die billigen zu programmieren... ohne Erfolg!
Ich könnte Stundellang berichten.
 

Martin19

Lernender Modder
Mach gerne ein Video von dem Blaster, wenn er komplett fertig ist :) ich will sehen wie er funktioniert:D
Auf jeden Fall, wenns denn mal Läuft. Ich hab mir schon gedacht das die Pros ausm Arduino Forum direkt in den ersten Sekunden schreiben mach es mit millis nicht mit delay.... Dafür bin ich aber nicht logisch genug 🤣
 

medusa

Auf Blasted zuhause
Weißt Du, ich mache so einen Kram beruflich. Nicht in meiner Freizeit, bitte. Ich hab das einmal für Leute in einem Retro-Computing Forum gemacht und bin deshalb fast in einen Burnout gerast. Mach ich nicht wieder, sorry.
 

Martin19

Lernender Modder
Weißt Du, ich mache so einen Kram beruflich. Nicht in meiner Freizeit, bitte. Ich hab das einmal für Leute in einem Retro-Computing Forum gemacht und bin deshalb fast in einen Burnout gerast. Mach ich nicht wieder, sorry.

Kein Ding, Habs für diese Zusammenstellung mit den billo ESC´s fast selber hinbekommen. Ein Pro hatte heute morgen einen Code gepostet, der hat leider nicht ganz funktionier. Darin war aber ein winziger Hinweis. Nennt sich Funktionen. Die haben das Rätzel (für diese Zusammenstellung) gelöst. Außerhalb läuft jetzt alles wie es soll.

C++:
#include <Servo.h>
const int button_abzug = 2;
const int button_feuerstoss = 4;
const int button_einzelfeuer = 6;
const int button_flywheel = 8;
Servo flywheel;
Servo pusher;
int buttonAbzug = 1;
int buttonFeuerstoss = 1;
int buttonEinzelfeuer = 1;
int buttonFlywheel = 1;
boolean grundstellung = false;

   void ef(){
    pusher.write(40);
    delay(300);
    pusher.write(140);
    delay(300);
    grundstellung=true;
   }  
   void fs(){
    pusher.write(40);
    delay(300);
    pusher.write(140);
    delay(300);
    pusher.write(40);
    delay(300);
    pusher.write(140);
    delay(300);
    pusher.write(40);
    delay(300);
    pusher.write(140);
    delay(300);
    grundstellung=true;
   }

void setup() {
  Serial.begin(9600);
    pinMode(button_abzug, INPUT_PULLUP);
  pinMode(button_feuerstoss, INPUT_PULLUP);
  pinMode(button_einzelfeuer, INPUT_PULLUP);
  pinMode(button_flywheel, INPUT_PULLUP);

  pusher.attach(9);
  pusher.write(140); //Pusher auf Null
  delay(100);

    flywheel.writeMicroseconds(1000);

  flywheel.attach(11, 1000, 2000);
  delay(5000);
}

void loop() {
  buttonAbzug = digitalRead(button_abzug);
  buttonFeuerstoss = digitalRead(button_feuerstoss);
  buttonEinzelfeuer = digitalRead(button_einzelfeuer);
  buttonFlywheel = digitalRead(button_flywheel);

  if ((buttonFlywheel == LOW)  )
  {
    flywheel.write(92);
    delay(10);
    if ((buttonAbzug == LOW) && (buttonEinzelfeuer == LOW) && grundstellung == false)
       {
ef();
           
  }
  if ((buttonAbzug == LOW) && (buttonFeuerstoss == LOW) && grundstellung == false)
       {
fs();
           
  }
    } else {
      flywheel.write(0);
      delay(30);
    }
 
  if ((buttonFlywheel == LOW) )
  {
    flywheel.write(92);
    delay(10);
        if ((buttonAbzug == LOW)  && (buttonEinzelfeuer == LOW) && grundstellung == false)
       {
   
    ef();
       }
    if ((buttonAbzug == LOW)  && (buttonFeuerstoss == LOW) && grundstellung == false)
       {
   
    fs();
           
  }
    } else {
      flywheel.write(0);
      delay(30);
    }
 if ((buttonAbzug == HIGH)) {
    grundstellung=false;
    }
}


testaufbau.jpeg
 
Zuletzt bearbeitet:

medusa

Auf Blasted zuhause
Ich hatte Dir den Hinweis mit Interrupts gegeben, was beim Arduino nicht wirklich schwer ist. Frag mal Deine Lieblingssuchmaschine. Der Code wird dadurch einfacher und übersichtlicher, und Du läufst nicht mehr Gefahr, dass ein Tastendruck nicht registriert wird, weil der Arduino in irgend einer Verästelung Deines if - then - else - Baumes unterwegs ist und die Tasten gerade nicht abfragen kann. ;)
 

Martin19

Lernender Modder
Ich hatte Dir den Hinweis mit Interrupts gegeben, was beim Arduino nicht wirklich schwer ist. Frag mal Deine Lieblingssuchmaschine. Der Code wird dadurch einfacher und übersichtlicher, und Du läufst nicht mehr Gefahr, dass ein Tastendruck nicht registriert wird, weil der Arduino in irgend einer Verästelung Deines if - then - else - Baumes unterwegs ist und die Tasten gerade nicht abfragen kann. ;)
Ja ich weiß, danke dafür! Jetzt soll diese knarre erstmal laufen. Die Fortbildung in c&c++ führe ich mit dem nächsten Projekt weiter.
 

NIGHTHUNTER79

Auf Blasted zuhause
Hast du die Druckteile nochmal nachbearbeitet? Auf den ersten Bildern sieht man deutliche Spuren von Underextrusion auf den glatten Oberflächen, auf den späteren nur noch auf den schwarzen Teilen... Ansonsten finde ich das Projekt mega spannend ^^ auch wenn mir die Arduino-Geschichte wahrscheinlich zu kompliziert wäre um es nachzubauen, die Vorgehensweise bei deinen Konstruktionen finde ich super =) Da kann man noch das ein oder andere lernen ^^

Im ersten code den du gepostet hast, hattest du btw mehrfach "els if" geschrieben, müsste das nicht "else if" heissen? Vielleicht hats deswegen nicht funktioniert? =)

Bin gespannt aufs Endergebnis!
 

Martin19

Lernender Modder
Hast du die Druckteile nochmal nachbearbeitet? Auf den ersten Bildern sieht man deutliche Spuren von Underextrusion auf den glatten Oberflächen, auf den späteren nur noch auf den schwarzen Teilen... Ansonsten finde ich das Projekt mega spannend ^^ auch wenn mir die Arduino-Geschichte wahrscheinlich zu kompliziert wäre um es nachzubauen, die Vorgehensweise bei deinen Konstruktionen finde ich super =) Da kann man noch das ein oder andere lernen ^^

Im ersten code den du gepostet hast, hattest du btw mehrfach "els if" geschrieben, müsste das nicht "else if" heissen? Vielleicht hats deswegen nicht funktioniert? =)

Bin gespannt aufs Endergebnis!
Danke, ne nix nachbearbeitet. Der Extrusionsfaktor war noch auf das andere Filament eingestellt.... habs erst bei der Hälfte des Modells umgestellt.

Arduino hab ich gelernt, es gibt ganz einfache Wege und ganz kompliziert. Ja else ist richtig.

Dieses Modell an sich ist fertig, mach noch eins (ist aber ein skin ausm spiel) dort setzte ich die Verbesserungen um und was ich da raus lerne lasse ich dann bei der Ic Knarre einfließen.
 

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