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

Arduino Biped(아기 공룡)

구성품 및 소모품

Arduino Mega 2560
× 1
9V 배터리(일반)
× 1
SparkFun 초음파 센서 - HC-SR04
× 1
SG90 마이크로 서보 모터
× 5

이 프로젝트 정보

Baby Dino는 Arduino를 기반으로 한 두 다리 로봇입니다. 기본적으로 각 다리에 2개, 머리에 1개 등 5개의 서보 모터를 사용합니다. 또한 초음파 센서를 사용하여 장애물을 감지하고 회피합니다. 자, 만드는 방법을 알아볼까요?

1단계:소개

<울>
  • Baby Dino는 Arduino를 사용한 DIY 로봇입니다.
  • 골판지로 만들어졌습니다.
  • 장애물을 찾은 다음 왼쪽 또는 오른쪽으로 이동합니다.
  • 2단계:필수 구성 요소

    <울>
  • 1 X Arduino Uno, Nano 또는 Mega
  • 5 X 9g 서보
  • 1 X HC-SR04 초음파 센서
  • 1 X LiPo 배터리(2초 또는 9v 배터리)
  • 3단계:서보 고정

    <울>
  • 프로그램 다운로드
  • Arduino에 업로드
  • 아래 그림과 같이 서보를 연결하십시오.
  • 서보 혼 고정
  • 모든 것이 90도에 있는지 확인
  • 수정.이노

    4단계:디자인

    <울>
  • 디자인 다운로드
  • A4에 인쇄
  • 판지에 붙여넣기
  • 잘라내기
  • 5단계:최종 단계

    <울>
  • 카드보드에 서보 부착
  • Arduino에 프로그램 업로드
  • 서보와 초음파 센서 연결
  • 케이블을 테일로 관리
  • 배터리 연결
  • 그게 다야!

    uBipedino.ino

    <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

    코드

    <울>
  • fix.ino
  • 이족
  • fix.ino아두이노
    #include 서보 s1; 서보 s2; 서보 s3; 서보 s4; 서보 s5; 무효 설정() { s1.attach(8); s2.attach(9); s3.attach(10); s4.attach(11); s5.attach(12);} 무효 루프() { s1.write(90); s2.write(90); s3.write(90); s4.write(90); s5.write(90); }
    바이페드Arduino
    원하는 대로 서보 및 초음파 핀 편집
    #include  #include // 연결에 따라 핀 편집#define IRsensorPin 13// 대신 IR 센서를 사용하는 경우 초음파 센서#define TRIGGER_PIN 12 // 초음파 센서의 트리거 핀에 연결된 Arduino 핀.#define ECHO_PIN 11 // 초음파 센서의 에코 핀에 연결된 Arduino 핀.#define LEFTLEG 7#define RIGHTLEG 10#define LEFTFOOT 8#define RIGHTFOOT 9#define HEAD 6#define MAX_DISTANCE 200 // 핑할 최대 거리(센티미터). 최대 센서 거리는 400-500cm입니다.NewPing 소나(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE); // 핀과 최대 거리의 NewPing 설정.Servo Lleg; // 서보를 제어하기 위한 서보 객체 생성 Servo Rleg;Servo Lfoot;Servo Rfoot;Servo Head;int Hcenter =70; // 센터 서보 위치를 저장하기 위한 변수 int RLcenter =100;int RFcenter =65; // 센터 서보 위치를 저장할 변수 int LLcenter =90;int LFcenter =75;int tAngle =30; // 기울기 각도int uAngle =35; // 각도 회전int sAngle =35; // 스윙 각도int hAngle =Hcenter; void Forward(바이트 단계, 바이트 속도){ Serial.println("앞으로"); TiltRightUp(tAngle, 속도); for (byte j=0; j0; i-=5){ Lfoot.write(LFcenter+i); Rfoot.write(RFcenter+i); 지연(sp); }}void TiltLeftUp(byte ang, byte sp){ // 왼쪽 위로 기울이기 for (int i=0; i<=ang; i+=5){ Lfoot.write(LFcenter-i); Rfoot.write(RFcenter-i); 지연(sp); }}void TiltLeftDown(byte ang, byte sp){ // 왼쪽 아래로 기울이기 for (int i=ang; i>0; i-=5){ Lfoot.write(LFcenter-i); Rfoot.write(RFcenter-i); 지연(sp); }}void LeftFootUp(char ang, byte sp){ //왼쪽 위로 기울이기 for (int i=0; i<=ang; i+=5){ Lfoot.write(LFcenter-i); 지연(sp); }}void LeftFootDown(byte ang, byte sp){ // 왼쪽 아래로 기울이기 for (int i=ang; i>0; i-=5){ Lfoot.write(LFcenter-i); 지연(sp); }}void RightFootUp(byte ang, byte sp){ //(int i=0; i<=ang; i+=5){ Rfoot.write(RFcenter+i); 지연(sp); }}void RightFootDown(byte ang, byte sp){ // 오른쪽 아래로 기울이기 for (int i=ang; i>0; i-=5){ Rfoot.write(RFcenter+i); 지연(sp); }}void SwingRight(byte ang, byte sp){ //(int i=0; i<=ang; i+=5){ Lleg.write(LLcenter-i); Rleg.write(RLcenter-i); 지연(sp); }}void SwingRcenter(byte ang, byte sp){ // 스윙 r->center for (int i=ang; i>0; i-=5){ Lleg.write(LLcenter-i); Rleg.write(RLcenter-i); 지연(sp); }}void SwingLeft(byte ang, byte sp){ //(byte i=0; i<=ang; i=i+5){ Lleg.write(LLcenter+i); Rleg.write(RLcenter+i); 지연(sp); }}void SwingLcenter(byte ang, byte sp){ // 스윙 l->center for (byte i=ang; i>0; i=i-5){ Lleg.write(LLcenter+i); Rleg.write(RLcenter+i); 지연(sp); }}void RightLegIn(byte ang, byte sp){ //(int i=0; i<=ang; i+=5){ Rleg.write(RLcenter-i); 지연(sp); }}void RightLegIcenter(byte ang, byte sp){ // 스윙 r->center for (int i=ang; i>0; i-=5){ Rleg.write(RLcenter-i); 지연(sp); }}void RightLegOut(byte ang, byte sp){ //(int i=0; i<=ang; i+=5){ Rleg.write(RLcenter+i); 지연(sp); }}void RightLegOcenter(byte ang, byte sp){ // 스윙 r->center for (int i=ang; i>0; i-=5){ Rleg.write(RLcenter+i); 지연(sp); }}void LeftLegIn(byte ang, byte sp){ //(byte i=0; i<=ang; i=i+5){ Lleg.write(LLcenter+i); 지연(sp); }}void LeftLegIcenter(byte ang, byte sp){ // 스윙 l->center for (byte i=ang; i>0; i=i-5){ Lleg.write(LLcenter+i); 지연(sp); }}void LeftLegOut(byte ang, byte sp){ //(byte i=0; i<=ang; i=i+5){ Lleg.write(LLcenter-i); 지연(sp); }}void LeftLegOcenter(byte ang, byte sp){ // 스윙 l->center for (byte i=ang; i>0; i=i-5){ Lleg.write(LLcenter-i); 지연(sp); }} 무효 설정() { Serial.begin(19200); Serial.println("Bipedino 설정이 실행 중입니다."); Lleg.attach(LEFTLEG); Rleg.attach(RIGHTLEG); Lfoot.attach(LEFTFOOT); Rfoot.attach(RIGHTFOOT); 헤드.부착(HEAD); 센터서보(); 지연(500); (int i =0, i <5, ++i) { GetSonar(); 지연(1000); } Serial.println("Bipedino가 준비되었습니다.");} // setup()void loop() { unsigned int cmCenter =MAX_DISTANCE; unsigned int cmLeft =MAX_DISTANCE; unsigned int cmRight =MAX_DISTANCE; 헤드센터(); cmCenter =GetSonar(); if (cmCenter <20) { HeadRight(); cmRight =GetSonar(); 헤드센터(); if (cmRight> 20) { 우회전(1, 30); } else { 왼쪽 머리(); cmLeft =GetSonar(); 헤드센터(); if (cmLeft> 20) { TurnLeft(1, 30); } } } else { int nSteps =cmCenter / 5; if (nSteps> 5) { nSteps =5; } else { nSteps =1; } Serial.print("단계 <"); Serial.print(nSteps); Serial.println(">"); for (int n =0; n   

    맞춤형 부품 및 인클로저

    회로도


    제조공정

    1. 젖꼭지
    2. 유아용 캐리어
    3. 아기 물티슈
    4. 분유
    5. 유모차
    6. Arduino 스파이봇
    7. FlickMote
    8. 수제 TV B-Gone
    9. 마스터 시계
    10. 서보 모터로 로봇을 피하는 장애물