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

패스파인더

구성품 및 소모품

Arduino UNO
기본 구성요소 중 하나입니다.
× 1
초음파 센서 - HC-SR04(일반)
기본 구성요소 중 하나입니다.
× 1
리튬 이온 배터리 1000mAh
기본 구성요소 중 하나입니다.
× 2
RGB 확산 공통 음극
기본 구성요소 중 하나입니다.
× 1
부저
필요한 용품 중 하나
× 1
저항 330옴
필요한 용품 중 하나
× 3
USB-A-B 케이블
필요한 용품 중 하나
× 1
점퍼 와이어(일반)
필요한 용품 중 하나
× 20

필요한 도구 및 기계

Arduino Materia 101
기본 컴퓨터 중 하나입니다.
Digilent 드라이버
필요한 도구 중 하나입니다.

앱 및 온라인 서비스

Arduino IDE
기본 앱 중 하나입니다.
오토데스크 퓨전 360
온라인 서비스 중 하나입니다.

이 프로젝트 정보

시놉시스

이 문서는 경로에서 물체를 감지하고 적절한 결정을 내림으로써 해당 물체 주위를 탐색하는 기능을 갖춘 장애물 회피 로봇의 설계를 나타냅니다. Arduino IDE 소프트웨어로 코드가 작성된 Arduino UNO 및 Adafruit Motor Shield를 기반으로 하는 로봇 장치를 시연합니다. 장애물 회피는 모바일 로봇 개발에 있어 중요한 핵심 요소 중 하나입니다. Micro-Servo Motor에 초음파 거리 센서를 탑재하여 주변 물체를 보다 정밀하게 감지할 수 있었습니다. 이 설계된 로봇은 4가지 상황에서 물체 감지 절차를 지시하고 DC 기어 모터의 속도를 제어하는 ​​능력을 달성한 자기 부저와 CC RGB 확산 LED의 통합으로 인해 다른 사용 가능한 로봇과 다릅니다. 자율 로봇으로서 어떠한 충격도 일으키지 않고 미지의 조건에서 기동할 수 있는 가능성이 실행되었습니다. 또한, 이 설계된 기술은 다양한 환경에서 물체 감지 능력을 향상시켜 군사 작전 및 인도적 지원에 배치할 수 있습니다.

멀티미디어

해석

블록 코드에 추가된 포함 라이브러리는 다음과 같습니다.

AFMotor.h
Servo.h

인라인 코드에 할당된 정의된 연결은 다음과 같습니다.

BuzzPIN A0 정의

TrigPIN A1 정의

EchoPIN A2 정의

LEDBPIN A3 정의

LEDGPIN A4 정의

LEDRPIN A5 정의

DCMROFF 25 정의

로봇의 아키텍처에서 제공되는 예상 프로그램은 다음과 같습니다.

<울>
  • 미리 결정된 거리 범위 내에서 경로에 있는 물체를 감지하는 기능.
  • 열린 방향에 비해 비교적 새로운 길을 모색합니다.
  • 물체 감지를 표시하고 속도를 제어합니다.
  • 모든 작업은 외부 제어 없이 자율적으로 수행됩니다.

    이 프로젝트는 4가지 상황에서 CC RGB 확산 LED의 선택 색상을 켜서 장애물을 피하고 스스로 탐색하고 DC 기어 모터의 움직임을 표시하는 기능으로 구현된 모바일 로봇을 설계하기 위한 필수 세부 사항을 제시했습니다. 설계된 로봇은 로봇 앞에서 180도 범위의 장애물을 감지하여 광음 지시, 모터 속도 제어 및 강도 높은 기동 기술 측면에서 다른 장애물 회피 로봇에 비해 편차를 보였다. 적절한 프로그래밍을 통해 결합하기 어려운 작업이었습니다. 로봇은 필요한 기능을 획득하기 위해 적절한 어셈블리 코드를 통합하기 위해 Arduino IDE v1.8.5 소프트웨어의 도움으로 Arduino UNO Rev3 플랫폼에 구축되었습니다. 이러한 통합으로 인해 로봇은 사람의 개입 없이 상당한 정확도로 필요한 작업을 수행할 수 있었습니다. 방송 카메라와 무선 기술을 결합하여 추가 개발을 통해 이 로봇은 다양한 종류의 활동을 감지하는 군사 작전에 효과적으로 사용될 수 있으며 기본 유닛은 시각 또는 청각 장애가 있는 사람이 주변 물체의 위치를 ​​알려주도록 돕는 데 유용할 수 있습니다.

    청소년 열정 프로젝트 쇼케이스

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

    코드

    <울>
  • 프로그램
  • 프로그램Arduino
    이에 따라 이 자율 기계를 설정하기 위한 어셈블리 프로그램.
    #include  // Arduino 키트 라이브러리용 Adafruit 모터 쉴드 추가.#include  // 서보 모터 라이브러리 추가.#define BuzzPIN A0 // PIN A0을 BuzzPIN으로 할당(Arduino UNO "A0" PIN을 부저 "+" PIN으로 연결).#define TrigPIN A1 // PIN A1을 TrigPIN으로 할당(Arduino UNO "A1" PIN을 초음파 소나 센서 "Trig"와 연결) PIN).#define EchoPIN A2 // PIN A2를 EchoPIN으로 할당(Arduino UNO "A2" PIN을 초음파 소나 센서 "Trig" PIN과 연결).#define LEDBPIN A3 // PIN A3을 LEDBPIN으로 할당(Arduino UNO "A3" 연결) RGB 확산 공통 음극 "LEDB" PIN이 있는 PIN).#define LEDGPIN A4 // PIN A4를 LEDGPIN으로 할당(Arduino UNO "A4" PIN을 RGB 확산 공통 음극 "LEDG" PIN으로 연결).#define LEDRPIN A5 // PIN 할당 A5 as LEDRPIN(RGB 확산 공통 음극 "LEDR" PIN을 사용하여 Arduino UNO "A5" PIN 연결).#define DCMROFF 25 // 두 DC 견인 모터 간의 차이를 허용하도록 오프셋을 설정합니다.AF_DCMo 토르 M1(1, MOTOR12_64KHZ); // M1 출력을 사용하여 DCMotor #1 생성, 64kHz PWM 주파수로 설정.AF_DCMotor M2 (2, MOTOR12_64KHZ); // M2 출력을 사용하여 DCMotor #2 생성, 64kHz PWM 주파수로 설정.Servo SER1; // Servo를 제어하기 위한 Servo 객체 생성 Search (void) { // 정수형 변수 선언. 부동 시간 =0.0; // Float형 변수 선언. 부동 CM =0.0; // Float형 변수 선언. 디지털 쓰기(TrigPIN, LOW); // TrigPIN을 0V로 출력(Logic low level). 지연마이크로초(2); // 2us 동안 지연, 초음파 소나 센서 "TrigPIN"에 10us 하이 펄스를 보냅니다. 디지털 쓰기(TrigPIN, 높음); // 5V로 TrigPIN 출력(Logic high level). 지연 마이크로초(10); // 10us 동안 지연. 디지털 쓰기(TrigPIN, LOW); // TrigPIN을 0V로 출력(Logic low level). 지속 시간 =pulseIn(EchoPIN, HIGH); // 시간 계산을 시작하고 EchoPIN을 다시 "High Level"로 되돌리고 "Time"을 "Duration"이라는 변수에 넣습니다. CM =(지속시간/58.8); // 거리를 CM으로 변환합니다. 반환 CM; // CM으로 돌아갑니다.}int RightDistance, LeftDistance; // 양쪽의 거리.float Distance =0.00; // Float형 변수 선언.void setup () { // 루프를 설정합니다. 핀모드(BuzzPIN, OUTPUT); // BuzzPIN을 "출력 PIN"으로 선언합니다. 핀모드(TrigPIN, OUTPUT); // TrigPIN을 "출력 PIN"으로 선언합니다. 핀모드(EchoPIN, INPUT); // EchoPIN을 "출력 PIN"으로 선언합니다. 핀 모드(LEDBPIN, 출력); // LEDBPIN을 "출력 PIN"으로 선언합니다. 핀 모드(LEDGPIN, 출력); // LEDGPIN을 "출력 PIN"으로 선언합니다. 핀 모드(LEDRPIN, 출력); // LEDRPIN을 "출력 PIN"으로 선언합니다. SER1.attach(10); // 핀 10의 서보를 연결합니다(Arduino 키트용 Adafruit 모터 쉴드의 SER1을 서보 개체에 연결).}void 루프() { // 메인 루프. SER1.쓰기(80); // 서보에게 80도 위치(앞을 향함)를 지시합니다. 지연(100); // 0.1초 동안 지연됩니다. 거리 =검색(); // CM으로 거리를 측정합니다. if (Distance <30) { // 30cm 안에 장애물이 있는 경우. 디지털 쓰기(BuzzPIN, HIGH); // 5V로 BuzzPIN 출력(Logic high level). 디지털 쓰기(LEDBPIN, LOW); // 0V로 LEDBPIN 출력(Logic Low Level). 디지털 쓰기(LEDGPIN, LOW); // 0V로 LEDGPIN 출력(Logic Low Level). 디지털 쓰기(LEDRPIN, HIGH); // 5V로 LEDRPIN 출력(Logic high level). M1.setSpeed(100); // 속도를 줄이다. M2.setSpeed(100); // 속도를 줄이다. 경로 변경(); // 정방향이 차단된 경우 방향을 변경합니다. } else if ((Distance>=30) &&(Distance <60)) { // 30cm ~ 60cm 사이에 장애물이 있는 경우. 디지털 쓰기(BuzzPIN, LOW); // BuzzPIN을 0V로 출력(Logic low level). 디지털 쓰기(LEDBPIN, HIGH); // 5V로 LEDBPIN 출력(Logic high level). 디지털 쓰기(LEDGPIN, LOW); // 0V로 LEDGPIN 출력(Logic Low Level). 디지털 쓰기(LEDRPIN, LOW); // 0V로 LEDRPIN 출력(Logic Low Level). M1.setSpeed(150); // 속도가 약간 증가합니다. M2.setSpeed(150); // 속도가 약간 증가합니다. 앞으로 (); // 로봇이 정방향으로 이동합니다. } else if ((Distance>=60) &&(Distance <90)) { // 60cm ~ 90cm 사이에 장애물이 있는 경우. 디지털 쓰기(BuzzPIN, LOW); // BuzzPIN을 0V로 출력(Logic low level). 디지털 쓰기(LEDBPIN, LOW); // 0V로 LEDBPIN 출력(Logic Low Level). 디지털 쓰기(LEDGPIN, HIGH); // 5V로 LEDGPIN 출력(Logic high level). 디지털 쓰기(LEDRPIN, LOW); // 0V로 LEDRPIN 출력(Logic Low Level). M1.setSpeed(200); // 속도를 올리다. M2.setSpeed(200); // 속도를 올리다. 앞으로 (); // 로봇이 정방향으로 이동합니다. } else { // 90cm 내에서 장애물을 찾을 수 없는 경우. 디지털 쓰기(BuzzPIN, LOW); // BuzzPIN을 0V로 출력(Logic low level). 디지털 쓰기(LEDBPIN, HIGH); // 5V로 LEDBPIN 출력(Logic high level). 디지털 쓰기(LEDGPIN, HIGH); // 5V로 LEDGPIN 출력(Logic high level). 디지털 쓰기(LEDRPIN, HIGH); // 5V로 LEDRPIN 출력(Logic high level). M1.setSpeed(250); // 속도가 완전히 증가합니다. M2.setSpeed(250); // 속도가 완전히 증가합니다. 앞으로 (); // 로봇이 정방향으로 이동합니다. }}void ChangePath() { // 경로 변경 루프. 중지 (); // 로봇 정지. 뒤로(); // 로봇은 역방향으로 실행합니다. 중지 (); // 로봇 정지. SER1.쓰기(12); // 오른쪽까지의 거리를 확인합니다. 지연(500); // 0.5초 동안 지연됩니다. RightDistance =검색(); // 오른쪽 거리를 설정합니다. 지연(500); // 0.5초 동안 지연됩니다. SER1.쓰기(160); // 왼쪽까지의 거리를 확인합니다. 지연(1000); // 1초 동안 지연됩니다. 왼쪽 거리 =검색(); // 왼쪽 거리를 설정합니다. 지연(500); // 0.5초 동안 지연됩니다. SER1.쓰기(80); // 중앙으로 돌아갑니다. 지연(500); // 0.5초 동안 지연됩니다. 거리 비교(); // 가장 긴 거리를 찾습니다.}void CompareDistance () { // 거리 비교 루프. if (RightDistance> LeftDistance) { // Right가 덜 막힌 경우. 우회전 (); // 로봇이 우회전합니다. } else if (LeftDistance> RightDistance) { // 왼쪽이 덜 막힌 경우. 왼쪽으로 돌아 (); // Robot 좌회전. } else { // 둘 다 똑같이 막힌 경우. 돌아서 다 (); // 로봇 턴 어라운드. }}void Forward() { // 순방향 루프. M1.run(앞으로); // DCMotor #1을 앞으로 돌립니다. M2.run(앞으로); // DCMotor #1을 정방향으로 돌립니다.}void Backward () { // 역방향 루프. M1.run(뒤로); // DCMotor #1을 뒤로 돌립니다. M2.run(뒤로); // DCMotor #2를 뒤로 돌립니다. 지연(500); // 1초 지연.}void TurnRight () { // 우회전 루프. M1.run(뒤로); // DCMotor #1을 뒤로 돌립니다. M2.run(앞으로); // DCMotor #2를 앞으로 돌립니다. M1.setSpeed(100+DCMROFF); // DCMotor #1의 속도를 보정합니다. 지연(300); // Delay for 0.7s.}void TurnLeft () { // 좌회전 루프. M1.run(앞으로); // DCMotor #1을 앞으로 돌립니다. M2.run(뒤로); // DCMotor #2를 뒤로 돌립니다. M2.setSpeed(100+DCMROFF); // DCMotor #2의 속도를 보정합니다. 지연(300); // Delay for 0.7s.}void TurnAround () { // Trun Around 루프. M1.run(앞으로); // DCMotor #1을 앞으로 돌립니다. M2.run(뒤로); // DCMotor #2를 뒤로 돌립니다. M2.setSpeed(100+DCMROFF); // DCMotor #2의 속도를 보정합니다. 지연(700); // Delay for 2.1s.}void Stop () { // 루프를 중지합니다. M1.run(릴리스); // DCMotor #1을 해제합니다. M2.run(릴리스); // DCMotor #2를 해제합니다. 지연(100); // 0.1초 지연}

    맞춤형 부품 및 인클로저

    섀시
    이에 따라 이 자율 기계를 설정하기 위한 로봇 섀시입니다.

    회로도

    이에 따라 이 자율 기계를 설정하기 위한 회로도.

    제조공정

    1. 회로 구성요소
    2. 집적 회로
    3. Firebase를 사용하여 Arduino 간에 센서 데이터 보내기
    4. Arduino 디지털 주사위
    5. 다중 온도 센서
    6. Arduino 게임 컨트롤러
    7. MOSMusic
    8. 마이크로일렉트로닉스란 무엇입니까?
    9. 드릴링 머신의 구성 요소
    10. 내연 기관의 구성 요소