본문 바로가기
파킨슨병/다이어트

간단한 코딩을 쳇지피티에게 시켜봤어여

by 헬싱 웰싱 2024. 3. 3.
반응형

파병최신치료법공개클릭

장애물회피 장난감자동차의 코드입니다 아주간다한 거예여 cht gpt 에게 시켜보니 모듈이름만 잘갯수와 미리써주면
가능한게 무궁무진하겠네어 내가 꿈꾸던 거를 한발작더 가까이 다가간 모습이 그려지는거 같아여~!
아두이노를 이용하여 초음파 센서와 서보 모터, DC 모터를 사용하는 간단한 장애물 회피 로봇을 만드는 코드를 작성해봅니다.

c
#include <Servo.h>
#define TRIG_PIN 9
#define ECHO_PIN 10
#define SERVO_PIN 11
#define ENA 5
#define IN1 6
#define IN2 7
#define ENB 4
#define IN3 3
#define IN4 2

Servo myservo;

void setup() {
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
  
  myservo.attach(SERVO_PIN);  // attaches the servo on pin 11 to the servo object
  myservo.write(90);  // center the sensor
}

void loop() {
  int distance = readUltrasonicDistance(TRIG_PIN, ECHO_PIN);

  // If an obstacle is closer than 20cm
  if (distance < 20) {
    stopMotors();
    myservo.write(0);  // turn sensor to the left
    delay(500);
    int leftDistance = readUltrasonicDistance(TRIG_PIN, ECHO_PIN);

    myservo.write(180);  // turn sensor to the right
    delay(500);
    int rightDistance = readUltrasonicDistance(TRIG_PIN, ECHO_PIN);

    // Decide the direction to turn
    if (leftDistance > rightDistance) {
      turnLeft();
    } else {
      turnRight();
    }
  } else {
    moveForward();
  }
}

int readUltrasonicDistance(int triggerPin, int echoPin)
{
  digitalWrite(triggerPin, LOW);
  delayMicroseconds(2);
  digitalWrite(triggerPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(triggerPin, LOW);
  return pulseIn(echoPin, HIGH) / 58;
}

void moveForward() {
  digitalWrite(ENA, HIGH);
  digitalWrite(ENB, HIGH);
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
}

void stopMotors() {
  digitalWrite(ENA, LOW);
  digitalWrite(ENB, LOW);
}

void turnRight() {
  digitalWrite(ENA, HIGH);
  digitalWrite(ENB, HIGH);
  digitalWrite(IN1, HIGH);
  digitalWrite(IN2, LOW);
  digitalWrite(IN3, LOW);
  digitalWrite(IN4, HIGH);
  delay(500);
  stopMotors();
}

void turnLeft() {
  digitalWrite(ENA, HIGH);
  digitalWrite(ENB, HIGH);
  digitalWrite(IN1, LOW);
  digitalWrite(IN2, HIGH);
  digitalWrite(IN3, HIGH);
  digitalWrite(IN4, LOW);
  delay(500);
  stopMotors();
}

이 코드는 초음파 센서로 감지된 장애물까지의 거리에 따라 로봇의 동작을 제어합니다. 장애물이 20cm 이내에 있으면 로봇은 멈추고, 초음파 센서가 좌우로 움직여 어느 쪽이 더 넓은 공간인지 판단합니다. 그리고 더 넓은 쪽으로 회전한 후 전진합니다. 장애물이 20cm보다 먼 경우에는 계속 전진합니다.
이 코드는 각 하드웨어의 실제 연결 방식에 따라 변경이 필요할 수 있습니다. 또한, 특정 환경에서 로봇의 성능을 향상시키려면 추가적인 조정이 필요할 수 있습니다.
 
 
c언어로  아두이노우노로 간단한 장애물회피 자동차를 만들어보았다
이것도 레인트레이서 처럼 잘작동하리라 믿어의심치 않는다
이젠 코딩도 컴터가 알아서 척척해주니 너무 편한세상아닌가 정말 뭘해먹고살아야하지 하는 불안감 마져 감돈다 ㅎㅎ
대단한친구네 이친구
이거 그대로 하드웨어 구성해서 장난감차 만들어 팔아도 되겠다 이거 참 진짜 세상 좋아졌따
아마 저번 거 로 봐서는 환우들도와줄수있는 로봇팔달린 자동차도 잘머리만 굴리면 만들수있겠는데여...

파병최신치료법공개클릭

반응형

여러분의 후원이 큰 힘이 됩니다!

후원하러 가기