Kann mir jemand mit dem programmieren helfen?

Ich habe den Arduino-Doodlebot ( ein roboter der malen kann ) gebaut und versuche nun ihn so zu programmieren, dass er "HALLO" schreibt, jedoch schreibt er statt "HALLO" einfach ein H und dann noch eins undso weiter (er hört nicht auf ).

Hier ist der Code:

//

#include <Servo.h>

// setup servo

int servoPin = 8;

int PEN_DOWN = 90; // angle of servo when pen is down

int PEN_UP = 180;   // angle of servo when pen is up

Servo penServo;

float wheel_dia=82; //    # mm (increase = spiral out)

float wheel_base=112; //    # mm (increase = spiral in, ccw)

int steps_rev=128; //        # 512 for 64x gearbox, 128 for 16x gearbox

int delay_time=6; //         # time between steps in ms

// Stepper sequence org->pink->blue->yel

int L_stepper_pins[] = {12, 10, 9, 11};

int R_stepper_pins[] = {4, 6, 7, 5};

int fwd_mask[][4] =  {{1, 0, 1, 0},

                      {0, 1, 1, 0},

                      {0, 1, 0, 1},

                      {1, 0, 0, 1}};

int rev_mask[][4] =  {{1, 0, 0, 1},

                      {0, 1, 0, 1},

                      {0, 1, 1, 0},

                      {1, 0, 1, 0}};

void setup() {

  randomSeed(analogRead(1));

  Serial.begin(9600);

  for(int pin=0; pin<4; pin++){

    pinMode(L_stepper_pins[pin], OUTPUT);

    digitalWrite(L_stepper_pins[pin], LOW);

    pinMode(R_stepper_pins[pin], OUTPUT);

    digitalWrite(R_stepper_pins[pin], LOW);

  }

  penServo.attach(servoPin);

  Serial.println("setup");

 

  penup();

 

  delay(1000);

}

void loop(){ // draw a calibration box 4 times

  pendown();

  for(int x=0; x<12; x++){

    pendown();

    forward(80);

    backward(40);

    right(90);

    forward(30);

    left(90);

    forward(40);

    backward(80);

    penup();

    right(90);

    forward(10);

    left(90);

    pendown();

    forward(80);

    right(90);

    forward(30);

    right(90);

    forward(40);

    right(90);

    forward(30);

    backward(30);

    left(90);

    forward(40);

    left(90);

    penup();

    forward(10);

    left(90);

    pendown();

    forward(80);

    backward(80);

    right(90);

    forward(30);

    penup();

    forward(10);

    left(90);

    pendown();

    forward(80);

    backward(80);

    right(90);

    forward(30);

    penup();

    forward(10);

    left(90);

    pendown();

    forward(80);

    left(90);

    forward(30);

    left(90);

    forward(80);

    left(90);

    forward(30);

    penup();

    left(90);

    forward(100);

    penup();

  }

  penup();

  done();      // releases stepper motor

  while(1);    // wait for reset

}

// ----- HELPER FUNCTIONS -----------

int step(float distance){

  int steps = distance * steps_rev / (wheel_dia * 3.1412); //24.61

  /*

  Serial.print(distance);

  Serial.print(" ");

  Serial.print(steps_rev);

  Serial.print(" ");  

  Serial.print(wheel_dia);

  Serial.print(" ");  

  Serial.println(steps);

  delay(1000);*/

  return steps;  

}

void forward(float distance){

  int steps = step(distance);

  Serial.println(steps);

  for(int step=0; step<steps; step++){

    for(int mask=0; mask<4; mask++){

      for(int pin=0; pin<4; pin++){

        digitalWrite(L_stepper_pins[pin], rev_mask[mask][pin]);

        digitalWrite(R_stepper_pins[pin], fwd_mask[mask][pin]);

      }

      delay(delay_time);

    }

  }

}

void backward(float distance){

  int steps = step(distance);

  for(int step=0; step<steps; step++){

    for(int mask=0; mask<4; mask++){

      for(int pin=0; pin<4; pin++){

        digitalWrite(L_stepper_pins[pin], fwd_mask[mask][pin]);

        digitalWrite(R_stepper_pins[pin], rev_mask[mask][pin]);

      }

      delay(delay_time);

    }

  }

}

void right(float degrees){

  float rotation = degrees / 360.0;

  float distance = wheel_base * 3.1412 * rotation;

  int steps = step(distance);

  for(int step=0; step<steps; step++){

    for(int mask=0; mask<4; mask++){

      for(int pin=0; pin<4; pin++){

        digitalWrite(R_stepper_pins[pin], rev_mask[mask][pin]);

        digitalWrite(L_stepper_pins[pin], rev_mask[mask][pin]);

      }

      delay(delay_time);

    }

  }  

}

void left(float degrees){

  float rotation = degrees / 360.0;

  float distance = wheel_base * 3.1412 * rotation;

  int steps = step(distance);

  for(int step=0; step<steps; step++){

    for(int mask=0; mask<4; mask++){

      for(int pin=0; pin<4; pin++){

        digitalWrite(R_stepper_pins[pin], fwd_mask[mask][pin]);

        digitalWrite(L_stepper_pins[pin], fwd_mask[mask][pin]);

      }

      delay(delay_time);

    }

  }  

}

void done(){ // unlock stepper to save battery

  for(int mask=0; mask<4; mask++){

    for(int pin=0; pin<4; pin++){

      digitalWrite(R_stepper_pins[pin], LOW);

      digitalWrite(L_stepper_pins[pin], LOW);

    }

    delay(delay_time);

  }

}

void penup(){

  delay(250);

  Serial.println("PEN_UP()");

  penServo.write(PEN_UP);

  delay(250);

}

void pendown(){

  delay(250);  

  Serial.println("PEN_DOWN()");

  penServo.write(PEN_DOWN);

  delay(250);

}

Computer, Cplusplus, CPP, Programmiersprache, Algorithmus, C (Programmiersprache), Arduino Uno
Wie stehst du zur Nutzung von TikTok?

Hallo,

wie steht ihr zur TikTok-Nutzung?

Ich persönlich habe seit 2014 Erfahrungen mit der damaligen Plattform musical.ly gemacht, die nur für Tanzvideos genutzt wurde.

Beim Verkauf an ByteDance wurde die App komplett umstrukturiert, sodass eine neue Instagram-ähnliche Plattform für Videos entstand, die sich nicht mehr nur auf Tanzvideos, sondern hauptsächlich auf Comedy konzentriert. 

Nach einiger Zeit wurde TikTok von großen Firmen entdeckt, die dort zwischen den Kurzvideos Werbung schalten. Außerdem haben deutsche Parteien TikTok für sich entdeckt, da sich das junge Publikum dort sehr leicht manipulieren lässt. Die AfD nutzt dies klar für sich aus.

Im Jahr 2022 und 2023 erzielte die AfD im Durchschnitt weit über 400.000 Impressions mit ihren Beiträgen. Im Vergleich dazu erzielte die FDP als größter Verfolger im selben Zeitraum lediglich etwa 53.000 Aufrufe pro Beitrag, was nur ein Achtel der AfD entspricht.

TikTok nutzt außerdem die eine Taktik die wie Spielsucht funktioniert, nur jedes fünfte bis zehnte Video ist ein Video, das dir besonders gefällt und dich glücklich macht. Alle Videos, die dazwischen kommen, sind uninteressant für dich, weshalb du sie skippst. 

TikTok kooperiert mit der chinesischen Stasi und dient als Geheimwaffe, um die Bevölkerungen anderer Länder zu beeinflussen und von ihrer gesellschaftlichen Entwicklung abzuhalten, indem sie mit permanentem Nonsens unterhalten werden.

Die App sammelt massiv Daten über Nutzer (großteils minderjährige), fördert Suchtverhalten und beeinträchtigt die Konzentration sowie das Arbeitsgedächtnis. Die kurzfristige Belohnung auf der Plattform kann langfristige Glücksmomente im realen Leben ersetzen, während die auf den Nutzer zugeschnittene Inhalte negative Auswirkungen auf die mentale Gesundheit haben können, einschließlich Depressionen, Angst und Stress. Insgesamt stellt TikTok eine Gefahr für die individuelle und gesellschaftliche Gesundheit dar.

Weshalb nutzt du TikTok dann noch, würdest du diese App deinen Kindern erlauben?

Bild zu Frage
Ich nutze TikTok nicht weil… 70%
Ich nutze TikTok weil… 16%
Ich nutze TikTok nicht mehr weil… 14%
Account, YouTube, App, Urheberrecht, Kommentare, Konto, Algorithmus, Follower, Likes, Instagram, TikTok, Influencer, TikTok LIVE
Labyrinth Algorithmus (mutierend) Tipps?

Guten Tag,

ich habe mich mal an mutierende Algorithmen als Amateur Programmierer herangewagt. Mein erstes Projekt ist ein Algorithmus, welcher den effizientesten Weg durch ein Labyrinth finden soll (Ich weiß, dass A* besser ist).

Ich bin wie folgt vorgegangen:

  1. Labyrinth als zwei dimensionales Array (0 = Frei, 1 = Mauer)
  2. Start- und Endpunkt festgelegt
  3. STart Population erstellt aus zufälligen Pfaden (Ein Pfad ist ein Array, welches als Elemente 0,1,2 oder 3 enthalten, welche wiederum die Bewegungsrichtung vorgeben, die anschließend abgelaufen wird. Bspw. Hoch, hoch, links, rechts, runter.
  4. Dann score für jeden Agent aus Entfernung zum Ziel (Satz des Pythagoras) und Länge des Pfades gebastelt. Kürzere Entfernung gibt mehr Punkte, unnötiger Weg Abzug
  5. Danach werden für die 500 neuen agents jeweils zwei Eltern mit der Wahrscheinlichkeit basierend auf dem Score ausgewählt.
  6. Das „Kind“ wird aus den zwei Hälften der Pfade der Eltern erstellt, wobei jedes Element des neuen Pfades eine Chance hat zu mutieren (Hier sehe ich bedarf zur Verbesserung)
  7. Dies wiederholt sich solange ich will

Mein Problem ist, dass es bei kleinen Labyrinths den weg auch findet, aber die Wege noch teilweise sehr unnötig sind, obwohl ab dem Punkt, wo die meisten agents das Ziel erreichen, ja der längere weg rausselektiert werden sollte. Hatte überlegt auch minus punkte zugeben, wenn eine wand oder der Rand berührt wird, aber das hat nicht so funktioniert.

Mich würden eure Gedanken dazu interessieren und einfach ein paar Tipps zu der Thematik.

Code: https://hastebin.skyra.pw/aboladewoc.java

JavaScript, Algorithmus, maschinelles Lernen
GUI in Taschenrechner integrieren (Java)?
import java.util.Scanner;
import javax.swing.JTextField;
public class App {
    public static void main(String[] args) {
    
        Scanner scanner = new Scanner(System.in);


        new GUI();
        
        try {
        System.out.println("Bitte geben Sie ihre Berechnung ein: ");
        String eingabe = scanner.nextLine();
        String[] teile = eingabe.split(" ");
        
        double zahl1 = Double.parseDouble(teile[0]);
        double zahl2 = Double.parseDouble(teile[2]);
        char operator = teile[1].charAt(0);
        
        System.out.println(taschenrechner(eingabe, zahl1, zahl2, operator));
        
    } catch (NumberFormatException e) {
            System.out.println("Bitte geben Sie einen gültigen Wert ein!");
        } finally {
            scanner.close();
        }
    }
    
    static double taschenrechner (String eingabe, double zahl1, double zahl2, char operator) {


        double ergebnis = 0.0;


        if (operator == '/' && zahl2 == 0) {
            throw new ArithmeticException("Das dividieren durch 0 ist nicht erlaubt!");
        }
        
        switch (operator) {
            case '-': ergebnis = zahl1 - zahl2; break;
            case '+': ergebnis = zahl1 + zahl2 ; break;
            case '*': ergebnis = zahl1 * zahl2; break;
            case '/': ergebnis = zahl1 / zahl2; break;
        }
            return ergebnis;
    }    
}

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import java.awt.*;


public class GUI extends App{


    private JTextField textFieldZahl1;
    private JTextField textFieldZahl2;
    private JTextField textFieldOperator;
    private JLabel labelErgebnis;
    private JButton buttonBerechnen;
    
    public GUI () {


    JFrame frame = new JFrame("Taschenrechner");
        frame.setLayout(new FlowLayout());
        frame.setSize(500, 500);
        frame.add(new JButton("+"));
        frame.add(new JButton("-"));
        frame.add(new JButton("*"));    
        frame.add(new JButton("/"));
        frame.add(new JTextField(20));
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

Wie kann ich die GUI jetzt mit der Taschenrechner-Logik verknüpfen?

Java, Code, Eclipse, Programmiersprache, Algorithmus, Java Swing
Bitte um eure Meinung, ist youtube Kanal icrimax für Kinder ungefährlich?

Hallo, auf dem (sehr erfolgreichen) youtube-Kanal "icrimax" erzählt ein 26jähriger Mann in schneller oberflächlicher Weise Videospiele, das sind harmlose Spiele, mitunter aber auch weniger harmlose Spiele. Er bewirbt eine Anzahl von hauseigenen Marketingprodukten. Auf seinem Kanal gibt es Verlinkungen (Werbung) für andere Youtuber aus diesem Bereich, vielleicht, um denen auch zu Erfolg zu verhelfen (Wobei es mir schwer fällt einzuschätzen, ob diese alle lupenrein sind und keiner davon auf die Idee kommt, Drogen, Kriminalität in welcher Form auch immer, eventuell gefährliche Challenges etc. zu bewerben und Kinder auf schwierigste Wege zu locken). Er macht viele Projekte, darunter auch Lieder alias "Candy", in denen er hypnotisierenderweise die Internetwelt als einzig wahre heile Welt besingt, sich als Freund, der die Hand gibt, bewirbt und garantiert, dass "wir" schon so viel zusammen geschaffen haben. Er wirbt inständig darum, ihm auf eine fiktive Insel von Youtubern zu folgen, die von allen Problemen befreit.

Ihr müsst es kennen oder euch wirklich erst damit vertraut machen, um wirklich zu erfassen, wie tiefenpsychologisch angelegt mir selbst die Texte erscheinen.

Ich habe Kinder erlebt, die extrem besessen von ihm sind und ihm alles abkaufen würden. Davon abgesehen, nehmen sie sich an ihm ein großes Beispiel und glauben , die Schule nicht mehr zu brauchen, weil sie, wie er, auf diese Insel möchten.

Mache ich mir zu viele Sorgen? Wie seht ihr das?

Account, YouTube, Webseite, Kanal, Internetsucht, Suchtgefahr, YouTuber, Algorithmus, Likes, YouTube-Kanal, Influencer
CPP Anfänger Code hilfe?
#include <iostream>
#include <cmath>
using namespace std;


double Addition(double zahl1, double zahl2)
{
    cout << "Gebe die erste Zahl ein, die addiert werden soll: ";
    cin >> zahl1;
    cout << "Gebe die zweite Zahl ein, die addiert werden soll: ";
    cin >> zahl2;
    double Summe = zahl1 + zahl2;
    cout << "Die Summe ist: " << Summe << endl;
    return zahl1 + zahl2;
}


double Subtraktion(double zahl1, double zahl2)
{
    cout << "Gebe die erste Zahl ein, die subtrahiert werden soll: ";
    cin >> zahl1;
    cout << "Gebe die zweite Zahl ein, die subtrahiert werden soll: ";
    cin >> zahl2;
    double Differenz = zahl1 - zahl2;
    cout << "Die Differenz ist: " << Differenz << endl;
    return zahl1 - zahl2;
}


double Multiplikation(double zahl1, double zahl2)
{
    cout << "Gebe die erste Zahl ein, die multipliziert werden soll: ";
    cin >> zahl1;
    cout << "Gebe die zweite Zahl ein, die multipliziert werden soll: ";
    cin >> zahl2;
    double Produkt = zahl1 * zahl2;
    cout << "Das Produkt ist: " << Produkt << endl;
    return zahl1 * zahl2;
}


double Division(double zahl1, double zahl2)
{
    cout << "Gebe die erste Zahl ein, die dividiert werden soll: ";
    cin >> zahl1;
    cout << "Gebe die zweite Zahl ein, die dividiert werden soll: ";
    cin >> zahl2;
    double Qoutient = zahl1 / zahl2;
    cout << "Der Quotient ist: " << Qoutient << endl;
    return zahl1 / zahl2;
}


double Potenz()
{
    double Basis;
    double Potenz;
    double Ergebnis;
    cout << "Gebe die Basis ein" << endl;
    cin >> Basis;
    cout << "Gebe die Potenz ein" << endl;
    cin >> Potenz;
    Ergebnis = pow(Basis, Potenz);
    cout << "Die Potenz ist: " << Ergebnis << endl;
    return pow(Basis, Potenz);
}


int main()
{
    char Rechenoperator;
    cout << "UNIVERSAL RECHNER" << endl;
    cout << "Bitte wähle die Rechenoperation aus" << endl;
    cout << "Addition(+)\nSubtraktion(-)\nMultiplikation(*)\nDivision(/)" << endl;
    cout << "Potenz(^)\nWurzel(<)\nProzent(%)" << endl;
    cin >> Rechenoperator;


    switch (Rechenoperator)
    {
    case '+':
        Addition(zahl1, zahl2);
        break;
    case '-':
        Subtraktion(zahl1, zahl2);
        break;
    case '*':
        Multiplikation(zahl1, zahl2);
        break;
    case '/':
        Division (zahl1, zahl2);
        break; 
    case '^':
        Potenz(Basis, Potenz);
        break;


    default:
        cout << "Ungültige Eingabe" << endl;
    }


    return 0;
}

main.cpp: In function ‘int main()’:
main.cpp:75:18: error: ‘zahl1’ was not declared in this scope
   75 |         Addition(zahl1, zahl2);
      |                  ^~~~~
main.cpp:75:25: error: ‘zahl2’ was not declared in this scope
   75 |         Addition(zahl1, zahl2);
      |                         ^~~~~
main.cpp:87:16: error: ‘Basis’ was not declared in this scope
   87 |         Potenz(Basis, Potenz);
Cplusplus, Array, Code, CPP, Programmiersprache, Visual Studio, Algorithmus

Meistgelesene Fragen zum Thema Algorithmus