robot arm

แชร์
ฝัง
  • เผยแพร่เมื่อ 8 ก.พ. 2024
  • • How to Build a 3D Prin...

ความคิดเห็น • 23

  • @mr.q1880
    @mr.q1880 2 หลายเดือนก่อน +3

    hello, Did you make any improvements compared to the TH-cam tutorial? I see your Robot works very well. If I use 3D files on TH-cam, will it be as good as your robot?
    -can you please provide more details about those 3 gears used, like diameter size, number of teeth and hole size., if you print it yourself can you share the 3d printing file Is that Okay ?
    - What 4 types of servo motors are there (180 degrees or 270 degrees or 360 degrees)?
    Thanks a lot 🥰🥰🥰🥰🥰

    • @esp-el4do
      @esp-el4do  2 หลายเดือนก่อน

      No improvements, just that I used esp32 instead of Arduino, and I asked Chet gpt how to smooth the ADC to reduce fluctuations in the value of the potentiometer. The gear was made using the GF GEAR GENERATOR from Fusion 360. It probably made the same gear ratio as the producer suggested, but I don't remember it very well. I looked up the gear file I created, but I couldn't find it. Instead, I'll write down the link to the picture of the gear. Sorry for not being helpful. I'm more foolish than I thought
      drive.google.com/file/d/1CbgmspCT43WojeAv_6dsY9LjwRB5jNNt/view?usp=drive_link

    • @esp-el4do
      @esp-el4do  2 หลายเดือนก่อน

      All servos are using 180 degrees

    • @mr.q1880
      @mr.q1880 2 หลายเดือนก่อน

      @@esp-el4do Really thank you very much. I have started printing the parts and will finish in 40 hours.
      I have 1 more question:
      -I think what range should the potentiometer be in before inserting and closing the controller and before loading the program. do i have to have potentiometer at a particular position when attaching to the controller body?
      Can you tell me how to position the potentiometer when assembling?
      Thanks a lot

    • @esp-el4do
      @esp-el4do  2 หลายเดือนก่อน

      @@mr.q1880 This is the code I used
      It also includes setting minimum and maximum values for servos and potentiometers
      The code is not perfect, it's sloppy, but it works for me
      I'm not sure anyone else will work the same way I do
      When I first started making this project, I had the same concerns as you
      I started without understanding anything software or mechanical
      I've tried a lot to make it work, and I've been helped by Chetgpt in a lot of ways. I still don't understand how it works, but it works anyway
      drive.google.com/file/d/1ZcvgJ7b0P2AW8uCqIkWPjav0n1Ghxp5B/view?usp=drive_link

    • @mr.q1880
      @mr.q1880 2 หลายเดือนก่อน

      @@esp-el4do Can you open access to the 2 google drive links you just sent me?

  • @nickolastd21
    @nickolastd21 3 หลายเดือนก่อน +1

    love it, reminds me of the remote handling arms for nuclear fuel.
    must be lots or uses like hand controlled manipulator for an rov.

    • @esp-el4do
      @esp-el4do  3 หลายเดือนก่อน

      I'm so sorry. This is not a project that I created. I just copied it. The project that Build Some Stuff created is posted here at www.thingiverse.com/thing:6313449

  • @dsaamnetwork7628
    @dsaamnetwork7628 3 หลายเดือนก่อน +1

    Genial proyecto.

    • @esp-el4do
      @esp-el4do  3 หลายเดือนก่อน +1

      I'm so sorry. This is not a project that I created. I just copied it. The project that Build Some Stuff created is posted here at www.thingiverse.com/thing:6313449

  • @davidavery3182
    @davidavery3182 2 หลายเดือนก่อน +1

    What arm project is this?

    • @esp-el4do
      @esp-el4do  2 หลายเดือนก่อน +1

      www.thingiverse.com/thing:6313449
      th-cam.com/video/AIsVlgopqJc/w-d-xo.html
      The producer made it well, so it's easy to copy it. Try it

    • @davidavery3182
      @davidavery3182 2 หลายเดือนก่อน

      @@esp-el4do great, thank you!

  • @santoshkumar-ul6vz
    @santoshkumar-ul6vz 2 หลายเดือนก่อน +1

    Hii, I need help with the inverse kinematic solution to your robotic arm, can you help me with that

    • @esp-el4do
      @esp-el4do  2 หลายเดือนก่อน

      I just copied the project. I don't have the knowledge

  • @ElySeL
    @ElySeL 3 หลายเดือนก่อน +1

    저는 설명대로 하니까 모터가 덜덜 떨리던데 어떻게 해결하신거에요?

    • @esp-el4do
      @esp-el4do  3 หลายเดือนก่อน

      아.. 이게... 저도 잘 모르지만은...
      내부 ADC가 좀 부정확하다고 하더라구요 (외부 ADC 모듈로 하면 낫다고 하는데 저는 안해봤어요)
      포텐셔미터에 공급되는 DC전원의 노이즈도 영향이 있더라구요 ( ESP에 바로 공급하는것보다 확장 쉴드를 통해 공급하는게 ADC값이 덜 튀었어요..)
      챗GPT에 ADC값 스무딩해줘 평활화 해줘 하면 코드 짜줄꺼에요 복붙하시면 되요 (ADC 평균값을 내는 방식이라 조금 딜레이가 생겨요 그래도 이게 제일 효과 좋았어요)

    • @ElySeL
      @ElySeL 3 หลายเดือนก่อน

      const int numReadings = 10; // 스무딩을 위한 읽기 수
      int readings[numReadings]; // 읽기 값을 저장하는 배열
      int readIndex = 0; // 다음 읽기 위치
      int total = 0; // 읽기 값의 총 합
      void setup() {
      // 이전 설정 유지
      }
      void loop() {
      // 이전 루프 유지

      moveMotorSmoothed(potWrist, wrist);
      moveMotorSmoothed(potElbow, elbow);
      moveMotorSmoothed(potShoulder, shoulder);
      moveMotorSmoothed(potBase, base);
      }
      void moveMotorSmoothed(int controlIn, int motorOut) {
      total -= readings[readIndex]; // 이전 값을 총 합에서 제거
      readings[readIndex] = analogRead(controlIn); // 새로운 값을 읽음
      total += readings[readIndex]; // 새 값을 총 합에 추가
      readIndex = (readIndex + 1) % numReadings; // 다음 위치 계산
      // 평균 계산
      int average = total / numReadings;
      // 평균 값을 사용하여 모터 제어
      int pulse_wide = map(average, 800, 240, MIN_PULSE_WIDTH, MAX_PULSE_WIDTH);
      int pulse_width = int(float(pulse_wide) / 1000000 * FREQUENCY * 4096);
      pwm.setPWM(motorOut, 0, pulse_width);
      }

    • @ElySeL
      @ElySeL 3 หลายเดือนก่อน

      @@esp-el4do 혹시 이거일까요

    • @ElySeL
      @ElySeL 3 หลายเดือนก่อน

      @@esp-el4dopwm 기판 뭐사용하신거에요?

    • @esp-el4do
      @esp-el4do  3 หลายเดือนก่อน

      void setup()
      {
      Serial.begin(115200);
      delay(10);

      analogReadResolution(10);
      pinMode(switchPin, INPUT_PULLUP);
      // initialize all the readings to 0
      for (int thisReading = 0; thisReading < numReadings; thisReading++) {
      readingsWrist[thisReading] = 0;
      readingsElbow[thisReading] = 0;
      readingsShoulder[thisReading] = 0;
      readingsBase[thisReading] = 0;
      }
      // Connect to Wi-Fi network
      Serial.println();
      Serial.println();
      Serial.print("Connecting to ");
      Serial.println(ssid);

      WiFi.begin(ssid, password);

      while (WiFi.status() != WL_CONNECTED) {
      delay(500);
      Serial.print(".");
      }
      Serial.println("");
      Serial.println("WiFi connected");
      Serial.println("IP address: ");
      Serial.println(WiFi.localIP());
      webSocket.begin();
      }
      void loop()
      {
      webSocket.loop();

      // subtract the last reading:
      totalWrist = totalWrist - readingsWrist[readIndex];
      totalElbow = totalElbow - readingsElbow[readIndex];
      totalShoulder = totalShoulder - readingsShoulder[readIndex];
      totalBase = totalBase - readingsBase[readIndex];
      // read from the sensor:
      readingsWrist[readIndex] = analogRead(potWrist);
      readingsElbow[readIndex] = analogRead(potElbow);
      readingsShoulder[readIndex] = analogRead(potShoulder);
      readingsBase[readIndex] = analogRead(potBase);
      // add the reading to the total:
      totalWrist = totalWrist + readingsWrist[readIndex];
      totalElbow = totalElbow + readingsElbow[readIndex];
      totalShoulder = totalShoulder + readingsShoulder[readIndex];
      totalBase = totalBase + readingsBase[readIndex];
      // advance to the next position in the array:
      readIndex = readIndex + 1;
      // if we're at the end of the array...
      if (readIndex >= numReadings) {
      // ...wrap around to the beginning:
      readIndex = 0;
      }
      // calculate the average:
      int averageWrist = totalWrist / numReadings;
      int averageElbow = totalElbow / numReadings;
      int averageShoulder = totalShoulder / numReadings;
      int averageBase = totalBase / numReadings;
      int switchVal = digitalRead(switchPin);
      String message = String(averageWrist) + "," + String(averageElbow) + "," + String(averageShoulder) + "," + String(averageBase) + "," + String(switchVal);
      webSocket.broadcastTXT(message);
      Serial.println(switchVal);

      delay(20);
      }
      저는 이렇게 짜주더라구요@@ElySeL