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

초음파 눈

구성품 및 소모품

초음파 센서 - HC-SR04(일반)
× 2
Arduino Nano R3
× 1
포토 저항기
× 1
Maxim 통합 8x8 LED 매트릭스 MAX7219
× 2
납땜 브레드보드 절반 크기
× 1
점퍼 와이어(일반)
× 1
저항 330옴
× 1

앱 및 온라인 서비스

Arduino IDE

이 프로젝트 정보

저는 8x8 매트릭스 LED와 일부 초음파 센서를 사용하여 기발한 프로젝트를 만들고 싶었습니다... 다른 사람들이 일반적으로 초음파로 만드는 것과는 다른 것 - 그리고 재미있고 유쾌하기를 바랐습니다.

그래서 저는 UltrasonicEyes 라고 부르는 것을 만들었습니다. - 사람들이 돌아다니는 곳 근처에 앉아서 사람들이 있는 곳을 둘러보고 깜박거리고 잘, 재미있고 소름 끼치는 방식으로 당신을 이상하게 만드는 재미있는 프로젝트!

무엇이 필요할까요?

초음파 센서 모듈은 장애물을 감지하고 장애물이 얼마나 멀리 있는지 판단하도록 설계되었으므로 일반적으로 최대 3-4m의 감지 거리를 가지므로 이 프로젝트가 거실이나 사무실 내부에 배치하기에 좋은 거리입니다. 지역.

e-Bay에서 가져온 2x HC-SR04 모듈을 사용하고 있습니다. 당신은 그들을 매우 저렴하게 찾을 수 있습니다.

모듈은 사용이 매우 간단하며 Arduino 마이크로 컨트롤러에 연결하는 데 3개 또는 4개의 와이어만 필요합니다.

내가 사용하기로 선택한 8x8 led Matrix 모듈은 연결을 허용하므로 그 중 하나만 Arduino에 연결하고 두 번째 모듈은 첫 번째 모듈에 연결하면 됩니다.

모듈은 SPI를 사용하므로 두 디스플레이에서 눈 이미지를 제어하기 위해 Arduino로 이동하는 데 5개의 와이어만 필요합니다. 물론 2개가 필요합니다!

참고: 제공된 코드는 하드웨어 SPI를 사용합니다. , 따라서 Nano가 아닌 다른 Arduino 보드를 사용하는 경우 어떤 핀이 MOSI 및 SCK용 Hardware SPI 핀인지 확인하고 그에 따라 배선하십시오!

또한 특정 유형의 Arduino 호환 마이크로 컨트롤러가 필요합니다. 케이스에 들어갈 만큼 작고 전원/펌웨어 프로그래밍을 위한 USB가 있고 모든 것을 연결할 수 있는 GPIO 스택이 있기 때문에 저는 나노(호환)를 사용하고 있습니다.

나는 모든 것을 하프 브레드보드와 같은 크기의 프로토보드에 납땜했지만, 먼저 절반 크기의 브레드보드에 모든 것을 구축하는 것이 좋습니다. 그렇게 하면 프로젝트에 납땜이 필요하지 않고 쉽게 분리되거나 분리될 수 있기 때문입니다. 변경되었습니다.

마지막으로 필요한 몇 가지는 빛을 감지하기 위한 LDR(포토 저항기), 330ohm 저항기, 브레드보드 전선 묶음(수-암, 암-암)입니다.

참고: 이 프로젝트에서 모든 색상 와이어를 사용할 수 있습니다... 내가 지정한 것과 동일한 색상을 사용할 필요는 없습니다. 하지만 , POWER 및 GND에는 빨간색과 검은색을 사용하고 다른 배선에는 다른 색상을 사용하는 것이 좋습니다. 어떤 와이어에 전원이 공급되고 어떤 와이어가 데이터 및 신호에 사용되는지 쉽게 식별할 수 있습니다.

종합하기

먼저 Nano를 맨 끝에 브레드보드에 연결하여 USB가 가장자리에 매달려 있지만 여전히 모든 핀이 보드에 연결된 상태를 유지하도록 하겠습니다.

POWER 및 GND 연결

이제 Nano의 GND 연결에서 브레드보드의 GND 레일로 검은색 선을 연결합니다. 이제 빨간색 와이어로 동일한 작업을 수행하여 브레드보드의 POWER 레일에 3V(또는 5V만 있으면 5V)를 연결합니다.

GND와 POWER 작업을 하는 동안 브레드보드의 양쪽에 있는 두 개의 GND 레일 사이에 검은색 와이어를 연결합니다. 빨간색 와이어와 두 개의 POWER 레일을 사용하여 동일한 작업을 수행합니다.

*참고: 일부 매트릭스 LED 패널은 브랜드에 따라 3.3V 대신 5V가 필요할 수 있습니다. 신뢰할 수 없는 결과를 찾으면 Arduino의 5V 핀을 사용해 보십시오.

초음파 센서를 연결합니다

각 초음파 센서의 GND 핀 사이의 검은색 와이어를 브레드보드의 GND 레일에 연결합니다. 빨간색 와이어와 센서의 VCC(POWER) 핀과 브레드보드의 POWER 레일을 사용하여 동일한 작업을 수행합니다.

이제 다음 흰색 및 파란색 전선을 연결해 보겠습니다.

<울>
  • 센서 1의 TRIG 핀에서 Arduino의 디지털 핀 2로 연결되는 흰색 와이어
  • 센서 1의 ECHO 핀에서 Arduino의 디지털 핀 3으로 연결되는 파란색 와이어
  • 센서 2의 TRIG 핀에서 Arduino의 디지털 핀 4로 연결되는 흰색 와이어
  • 센서 2의 ECHO 핀에서 Arduino의 디지털 핀 5로 연결되는 파란색 와이어
  • 잘 했어! 그것이 바로 초음파 센서가 처리한 것입니다!

    2개의 8x8 LED 매트릭스 디스플레이 연결

    LED 매트릭스 디스플레이 중 하나의 들어오는 GND 핀과 브레드보드의 GND 레일 사이에 검은색 와이어를 연결합니다. 빨간색 와이어와 디스플레이의 들어오는 VCC(POWER) 핀과 브레드보드의 POWER 레일에 대해 동일한 작업을 수행합니다.

    디스플레이 1의 나가는 GND 핀과 디스플레이 2의 들어오는 GND 핀 사이에 검은색 와이어를 연결합니다. 빨간색 선과 디스플레이 1의 나가는 VCC 핀과 디스플레이 2의 들어오는 VCC 핀으로 동일한 작업을 수행합니다.

    2개의 디스플레이 사이에 전선을 연결하는 동안 해당 부분을 마무리하겠습니다...

    <울>
  • 디스플레이 1의 나가는 SCK(시계) 핀과 디스플레이 2의 들어오는 SCK 핀 사이에 노란색 와이어를 연결합니다.
  • 디스플레이 1의 나가는 MOSI(데이터) 핀과 디스플레이 2의 들어오는 MOSI 핀 사이에 파란색 와이어를 연결합니다.
  • 디스플레이 1의 나가는 CS(선택) 핀과 디스플레이 2의 들어오는 CS 핀 사이에 흰색 와이어를 연결합니다.
  • 엄청난! 이제 나머지 디스플레이 1을 브레드보드에 연결합니다...

    <울>
  • 디스플레이 1의 들어오는 SCK 핀과 Arduino의 디지털 핀 13 사이에 노란색 와이어를 연결합니다.
  • 디스플레이 1의 들어오는 MOSI 핀과 Arduino의 디지털 핀 11 사이에 파란색 선을 연결합니다.
  • 디스플레이 1의 들어오는 CS 핀과 Arduino의 디지털 핀 10 사이에 흰색 와이어를 연결합니다.
  • 기억: 제공된 코드는 하드웨어 SPI를 사용합니다. , 따라서 Nano가 아닌 다른 Arduino 보드를 사용하는 경우 어떤 핀이 MOSI 및 SCK용 Hardware SPI 핀인지 확인하고 그에 따라 배선하십시오!

    잘 했어. 이제 마지막 배선 단계로...

    LDR과 저항을 연결하여 주변광 감지

    이 전선을 연결하기 전에 이 단계를 수행하는 이유는 무엇입니까? 질문해 주셔서 기쁩니다! Arduino에 연결된 LDR을 사용하면 UltrasonicEyes 주변이 밝거나 어두운지 감지하고 해당 정보를 사용하여 그에 따라 LED 디스플레이를 밝게 또는 어둡게 할 것입니다.

    우리는 더 어두운 조명에서처럼 야간에 디스플레이가 매우 밝은 것을 원하지 않습니다. 밝기가 약 30%일 때 여전히 디스플레이를 아주 잘 볼 수 있지만 주간 또는 밝은 방에서는 밝기를 더 높게 설정해야 합니다. 디스플레이를 더 잘 보이게 합니다.

    자, 이 마지막 단계를 완료하여 3D 케이스에 넣을 수 있도록 하겠습니다!

    위의 배선도와 같이 브레드보드의 2열 핀에 LDR을 연결합니다. 저항과 Arduino로 갈 전선을 배치할 공간을 남겨둡니다.

    LDR의 한쪽에 있는 한 줄의 핀과 브레드보드의 GND 레일 사이에 330ohm 저항을 연결합니다.

    LDR의 반대쪽에 있는 핀 열과 브레드보드의 POWER 레일 사이에 빨간색 와이어를 연결합니다.

    마지막으로 330ohm 저항이 연결된 핀 행과 Arduino의 아날로그 핀 5(A5) 사이에 갈색 와이어를 연결합니다. 디지털 핀에서 얻는 것처럼 0과 1이 아닌 LDR(광 강도)에서 0과 255 사이의 값을 읽어야 하기 때문에 아날로그 핀이어야 합니다.

    전원을 켜고 코드를 업로드할 수 있습니다.

    알겠습니다. 모두 연결되었습니다. Arduino와 컴퓨터 사이에 USB 케이블을 연결하고 아래에 제공된 UltrasonicEyes 스케치를 업로드하여 모두 작동하는지 확인할 시간입니다.

    전원이 켜지고 코드가 업로드되면 센서 앞에서 걸어 다니거나 센서 앞에서 손을 움직여 어떤 일이 일어나는지 확인하십시오!

    더 영구적으로 만들고 싶습니까?

    UltrasonicEyes를 더 영구적으로 만들고 싶으십니까? 여기에서 브레드보드 버전을 가져와 프로토보드에 납땜하는 방법을 다룬 제 동영상을 확인하세요...

    그런 다음 3D 프린터로 케이스의 두 부분을 인쇄하고 비디오에서 했던 것처럼 조립하세요!

    또한 다양한 눈 모양을 순환하는 정전식 터치 버튼(또는 일반 버튼)을 갖도록 UltrasonicEyes를 확장하는 방법을 찾고 있습니다... 여기에서 내 실험을 볼 수 있습니다...

    내 프로젝트 및 비디오의 나머지 부분을 확인할 수 있습니다... 예기치 않은메이커.com

    트위터, 페이스북, 인스타그램 및 틴디에서 나를 팔로우하세요.

    https://www.patreon.com/unexpectedmaker

    그게 다야!

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

    코드

    <울>
  • 초음파 눈
  • 초음파 눈C/C++
    #include  // 8x8 LED 매트릭스 디스플레이를 제어하는 ​​데 사용합니다. 라이브러리 관리자가 없으면 라이브러리 관리자에서 이 라이브러리를 설치해야 합니다.#include  // 우리는 NewPing을 사용하여 초음파 센서를 제어합니다 - 이 라이브러리가 아직 없는 경우 라이브러리 관리자에서 이 라이브러리를 설치해야 합니다. // LED 매트릭스 디스플레이에 연결된 핀 정의 1//#define CLK_PIN 13 / / 우리는 하드웨어 SPI를 사용하고 있습니다 - 장치의 하드웨어 CLK 핀에 CLK 핀을 연결했는지 확인 //#define DATA_PIN 11 // 하드웨어 SPI를 사용 중입니다 - MOSI 핀을 하드웨어 MOSI 핀에 연결했는지 확인하십시오 on your device#define CS_PIN 10 // 칩 선택 핀#define MAX_DEVICES 2 // 디스플레이 수 - 각 눈에 하나씩 2개가 필요합니다.#define LIGHT A5 // 아날로그 핀 5를 사용하여 LDR/ / 자동으로 하드웨어 SPI를 사용하고 있습니다. MD_MAX72XX mx =MD_MAX72XX(CS_PIN, MAX_DEVICES); // 2개의 매트릭스 디스플레이 초기화#define t1 2 // 초음파 센서 1의 트리거 핀#define e1 3 // 초음파 센서 1의 에코 핀#define t2 4 // 초음파 센서 2의 트리거 핀#define e2 5 // 에코 초음파 센서 2의 핀#define maxDist 400 // 초음파 펄스의 최대 거리NewPing eyeR(t2, e2, maxDist ); // 초음파 센서 초기화 2NewPing eyeL(t1, e1, maxDist ); // 초음파 센서 1 초기화// 이 정수 변수를 사용하여 시스템의 현재 상태를 추적합니다. 이렇게 하면 깜박인 후 눈을 떼면 마지막 방향으로 되돌아갈 수 있습니다. // 가능한 상태는 다음과 같습니다. 0:앞으로 보기// 1:오른쪽 보기// 2:왼쪽 보기int currentState =-1; // 이 변수에 각 초음파 센서에 대한 핑의 시간과 거리를 저장합니다.long duration1, duration2;int distance1, distance2;// 깜박임이 cyclefloat에 무작위로 삽입되기를 원합니다. nextBlink =millis() + 1000;// 우리는이 variablefloat lightAmount =0의 현재의 광 강도를 저장; uint8_t eye_forward [COL_SIZE] ={0b00111100, 0b01000010, 0b01011010, 0b10101101, 0b10111101, 0b10011001, 0b01000010, 0b00111100} uint8_t의 eye_right [COL_SIZE] ={0b00111100, 0b01000010, 0b01110010, 0b11011001, 0b11111001, 0b10110001, 0b01000010, 0b00111100} uint8_t eye_left [COL_SIZE] ={0b00111100, 0b01000010, 0b01001110, 0b10010111, 0b10011111, 0b10001101, 0b01000010, 0b00111100} uint8_t의 eye_blink [COL_SIZE] ={0b00000000, 0b00111100, 0b01111110, 0b11111111, 0b10111101, 0b11000011, 0b01111110, 0b00111100};void setup(){ // 매트릭스 디스플레이 라이브러리 초기화 mx.begin(); // 초음파 센서의 핀 모드 설정 1 pinMode( t1, OUTPUT ); 핀모드(e1, 입력); // 초음파 센서의 핀 모드 설정 2 pinMode( t2, OUTPUT ); 핀모드(e2, 입력); // 초음파 센서의 각 트리거 핀을 LOW에서 시작하도록 설정합니다. digitalWrite( t1, LOW ); digitalWrite( t2, LOW );// LDR의 핀 모드를 INPUT pinMode( LIGHT, INPUT )로 설정합니다. // 앞을 바라보는 시선으로 시작 ShowEye_Forward(); currentState =0;}void loop(){ // 현재 조명 수준에서 읽습니다. lightAmount =analogRead( LIGHT ); // 조명 값이 디스플레이의 최대 강도 범위 내에 있는지 확인하십시오. lightAmount =( lightAmount / 255 ) * MAX_INTENSITY; // 강도 설정 mx.control(MD_MAX72XX::INTENSITY, lightAmount ); // 5의 재귀로 왼쪽 눈을 핑합니다. distance1 =eyeL.ping_median( 5 ); // 오른쪽 눈을 핑하기 전에 500ms를 지연하여 충돌 결과를 얻지 않도록 합니다. delay(500); // 5의 재귀로 오른쪽 눈을 핑합니다. distance2 =eyeR.ping_median( 5 ); // 깜박임 삽입을 시도할 시간인지 확인 if ( nextBlink  0) { ShowEye_Right(); 현재 상태 =1; } // 이제 distance2가 distance1보다 크고 distance2도 0보다 크면 왼쪽으로 보고 싶습니다. else if ( distance1  0 ) { ShowEye_Left(); 현재 상태 =2; } // 눈이 올바르게 표시할 시간을 갖도록 루프를 250ms 동안 지연합니다. delay(250);}/************************** *************//************ MAX7219 물건 ************//********** ********************************/void ShowEye_Right(){ // 디스플레이 지우기 mx.clear(); // 현재 디스플레이 밝기 설정 mx.control(MD_MAX72XX::INTENSITY, lightAmount ); // 디스플레이의 각 행을 반복합니다. for (uint8_t row=0; row  

    맞춤형 부품 및 인클로저

    모든 3D 프린터로 인쇄하고 특정 설정이 필요하지 않습니다. 모든 3D 프린터로 인쇄하면 특정 설정이 필요하지 않습니다.

    회로도

    초음파눈_최종_Th84xpUyB2.fzz

    제조공정

    1. UFO 공격!
    2. 스마트 블라인드
    3. 3D RGB Arduclock
    4. 마이리버
    5. 아이언맨
    6. Arduino를 사용한 간단한 장애물 센서
    7. 조이스틱 게임
    8. 나를 찾기
    9. Arduino 가습기 제어
    10. 리틀 로버