산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 아이언맨 제작: 부품, 센서, 단계별 가이드

부품 및 소모품

아두이노 우노 1개
점퍼 와이어 1세트
초음파 센서 HC-SR04 1개
MP3 모듈 DFPlayer Mini 1개
4채널 릴레이 모듈 1개

필요한 도구

앱 및 온라인 서비스

프로젝트 개요

아이언맨 피규어에 생명을 불어넣는 프로젝트입니다. 아두이노 우노가 모든 것을 제어하며, DFPlayer Mini 라이브러리와 random() 함수로 아이언맨 음성 파일을 랜덤 재생합니다.

준비물

작동 원리

  1. 초음파 센서로 약 1.3m 이내 접근 감지
  2. 아두이노가 랜덤 음성 파일 번호 선택 (1~18번)
  3. DFPlayer Mini로 해당 음성 재생
  4. 릴레이 4채널로 머리, 가슴, 양팔 액추에이터 동기 작동

음성 파일은 토니 스타크 영화 대사에서 추출, 001~018번으로 명명해 SD카드에 저장. GitHub에서 음성 파일 다운로드 가능.

회로도

첨부 이미지 4장 참조 (메인 회로, 릴레이 회로, 램프 회로, 배선도)

코드

#include 
#include 
#include 

// 소프트웨어 시리얼: 핀 6(RX), 7(TX) - DFPlayer 통신용
SoftwareSerial mySoftwareSerial(6, 7);
DFRobotDFPlayerMini myDFPlayer;

String buf;
int pausa = 0;
int equalizacao = 0;
int maxSongs = 0;

#define GND 5
#define ECHO 4
#define TRIG 3
#define VCC 2

Ultrasonic ultra(TRIG, ECHO);
int distancia;

#define CABECA 13   // 릴레이 1: 머리
#define PEITO 12    // 릴레이 2: 가슴
#define ESQUERDA 11 // 릴레이 3: 왼팔
#define DIREITO 10  // 릴레이 4: 오른팔

int x = 3;

void setup() {
  mySoftwareSerial.begin(9600);
  Serial.begin(115200);

  // DFPlayer 초기화
  if (!myDFPlayer.begin(mySoftwareSerial)) {
    Serial.println(F("DFPlayer 초기화 실패: 연결 확인 / SD카드 삽입"));
    while (true);
  }
  Serial.println("DFPlayer Mini 초기화 완료!");

  myDFPlayer.setTimeOut(500);
  myDFPlayer.volume(30);  // 0~30
  myDFPlayer.EQ(0);       // 일반 이퀄라이저

  maxSongs = myDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD);
  Serial.print("SD카드 음원 수: "); Serial.println(maxSongs);

  pinMode(CABECA, OUTPUT);
  pinMode(PEITO, OUTPUT);
  pinMode(ESQUERDA, OUTPUT);
  pinMode(DIREITO, OUTPUT);
  pinMode(VCC, OUTPUT);
  pinMode(GND, OUTPUT);

  digitalWrite(GND, LOW);
  digitalWrite(VCC, HIGH);
  digitalWrite(CABECA, HIGH);  // 릴레이 OFF (Active LOW 가정)
  digitalWrite(PEITO, HIGH);
  digitalWrite(ESQUERDA, HIGH);

  distancia = ultra.Ranging(CM);
}

void loop() {
  distancia = ultra.Ranging(CM);
  Serial.println(String(distancia) + " cm 감지");

  if (distancia <= 150 && x == 3) {
    buf = String(random(1, 19));  // 1~18 랜덤
    play();
    delay(3000);
    while (ultra.Ranging(CM) <= 150) {
      digitalWrite(ESQUERDA, HIGH);
      x = 2;
      delay(1200);
    }
  } else {
    digitalWrite(DIREITO, LOW);
    Serial.println("미감지");
    x = 3;
  }
}

void play() {
  digitalWrite(DIREITO, HIGH);  // 릴레이 ON
  Serial.println("POU");
  delay(300);
  digitalWrite(DIREITO, LOW);
  delay(300);
  digitalWrite(DIREITO, HIGH);
  Serial.println("POU");
  delay(300);
  digitalWrite(DIREITO, LOW);
  delay(300);

  // 시리얼 입력 대기 후 재생 (실제로는 buf에 저장된 번호로 바로 재생)
  while (Serial.available() >= 0) {
    int track = buf.toInt();
    if (track >= 1 && track <= maxSongs) {
      Serial.print("재생: "); Serial.println(track);
      myDFPlayer.play(track);
      buf = "-1";
      break;
    }
  }
}

회로도

첨부 이미지 참조 (브레드보드 배선도)

개선 포인트

제조공정

  1. 아두이노 디지털 주사위: LCD 기반 랜덤 넘버 제너레이터 만들기
  2. 아두이노와 블루투스로 만드는 스마트 물건 찾기 'Find Me'
  3. 아두이노 구동 3D 프린팅 로봇 팔 만들기: 단계별 가이드
  4. 아두이노 릴레이 제어 가습기 자동화 – 고전압 안전 설계
  5. 비접촉 체온 측정 게이트: 아두이노 MKR1000으로 구현하는 자동 발열 검사 시스템
  6. 피봇(PiBot): 아두이노 기반 88건반 피아노 연주 로봇
  7. 아두이노 나노와 네오픽셀 매트릭스로 만드는 네온 퐁 게임
  8. 아두이노 & ThingSpeak로 실시간 날씨 모니터링 IoT 구축
  9. 게이밍용 커스텀 아두이노 조이스틱 스티어링 휠 만들기
  10. 아두이노와 TEA5767 모듈로 만드는 고성능 FM 라디오 수신기