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

전동 카메라 베이스의 움직임

구성품 및 소모품

Arduino UNO
× 1
커패시터 100μF
× 1
LED(일반)
× 5
PIR 모션 센서(일반)
× 5
저항 220옴
× 5
서보(타워 프로 MG996R)
× 1

이 프로젝트 정보

저는 집에 있는 보안 카메라에 대한 문제를 해결하기 위해 이 아이디어를 생각해 냈습니다. 두 방 사이의 벽에 위치한 특정 카메라가 하나 있지만 카메라 소프트웨어에 로그인하여 수동으로 회전하지 않는 한 한 번에 한 방만 볼 수 있습니다. 누군가가 반대편 방으로 걸어 들어간다면 카메라는 그 행동을 절대 기록하지 않을 것입니다. 이 문제를 해결하기 위해 카메라를 부착할 수 있는 모션 감지/추적 기반을 만들기로 결정하여 모션이 감지된 모든 위치에 자동으로 재배치되도록 했습니다.

작동 원리:

이 장치는 5개의 PIR 모션 센서를 사용하여 180º 반경 내의 모든 움직임을 감지합니다. 모션이 감지되면 서보 모터가 카메라 베이스를 회전하여 해당 방향을 가리킵니다. PIR 센서 중 하나가 움직임을 감지할 때마다 켜지는 5개의 LED "상태" 표시등이 베이스 내부에 있습니다.

실제로 확인해보세요!

배선:

이 프로젝트의 배선은 간단하고 간단하지만 서보 모터를 제외한 모든 것이 5개 있다는 사실 때문에 배선의 수가 꽤 많아지기 시작합니다. 자세한 내용은 이 페이지 하단의 회로도와 회로도를 확인하세요. 기본 사항은 다음과 같습니다.

LED 상태 표시등...

필요한 경우 쉽게 제거할 수 있도록 미니 브레드보드를 ​​사용하여 나머지 회로와 LED 조명을 분리했습니다. 각 LED는 다른 PIR 센서에 반응하며 움직임을 감지할 때마다 켜집니다. 각 LED를 Arduino의 개별 디지털 입력(9-13)에 연결하고 220옴 저항을 통해 접지하기만 하면 됩니다.

PIR 모션 센서...

이 프로젝트에 HC-SR501 모델 PIR 센서를 사용했습니다. 각 PIR 센서는 Arduino의 디지털 입력(2-6), 5V 전원 및 접지에 연결해야 합니다. 나와 같은 PIR 센서를 사용하는 경우 덮개를 (조심스럽게) 떼어낼 수 있으며 핀이 아래에 표시되어 있습니다. 나중에 업로드되는 코드의 해당 LED 조명에 각 PIR 센서를 연결합니다.

서보 모터...

서보 모터는 카메라가 있는 스탠드에 부착되어 있으며 활성 PIR 센서와 정렬되도록 카메라를 회전합니다. 모터의 핀아웃을 사용하여 한 핀을 전원에 연결하고 다른 핀을 Arduino 디지털 입력 7에 연결하고 마지막 핀을 접지에 연결합니다. Arduino에 전원을 공급하기 전에 모터가 움직일 때 발생하는 전력 서지로부터 보드를 보호할 수 있도록 모터의 전원과 접지 사이에 100µF 커패시터를 연결해야 합니다.

서보 모터에 대해 주의해야 할 점은 모든 모터가 180º 전체 동작 범위를 갖고 있지는 않다는 것입니다. 몇 가지 테스트 후, 나는 내 것이 약 160º만 움직인다는 것을 알아냈으므로 모터가 다른 경우 그에 따라 코드를 수정하십시오. 마지막 PIR 센서 위치에서 모터가 갈리는 소리를 낼 때 모터가 너무 멀리 움직이려고 한다는 것을 알게 될 것입니다.

건설 :

나는 서보 하우징과 카메라 표면에 오래된 Memorex CD 라벨러를 사용했습니다. '비포' 사진을 찍지 못해 아래 사진만 온라인에서 구할 수 있었습니다. 뒷부분은 평평하고 튼튼한 플라스틱 디스크였는데 (스크루드라이버의 약간의 설득 끝에) 결국 한 조각으로 떨어져 나갔기 때문에 내 카메라를 놓을 장소로 적합했습니다. 또한 4개의 탈착식 고무 '다리'가 함께 제공되어 모터가 움직일 때 카메라를 좀 더 잘 잡을 수 있습니다.

저는 집게를 중앙의 검은 부분으로 가져가서 제거했습니다... 즉, 없어지기 전에 최대한 많은 부분으로 쪼개는 것입니다. 다음으로, Dremel로 바닥에 몇 개의 구멍을 뚫은 다음 몇 개의 나사로 서보 모터를 부착했습니다.

마지막으로 다른 나사를 사용하여 카메라가 앉을 부분에 서보 모터를 부착했습니다. 카메라 무게로 인해 베이스가 기울어지는 문제가 발생하여 모터와 카메라 사이에 느슨하게 들어갈 수 있을 만큼 충분히 높은 판지 실린더를 만들어 문제를 해결했습니다. 이제 여전히 자유롭게 움직이지만 무게가 고르게 분산되어 더 많은 지지력을 제공합니다.

다음은 PIR 센서가 설치되고 모든 회로가 완료된 후의 모든 모습입니다. 프로젝트를 완료하기 위해 여러 브레드보드를 ​​사용했음을 알 수 있습니다. 그 이유는 베이스 내부에 매우 쉽게 맞출 수 있을 뿐만 아니라 문제를 해결하고 나중에 확장하는 동안 제거할 것을 선택하고 선택할 수 있기 때문입니다.

프로젝트를 완료하기 위해 위의 검은색 받침대와 더 매끄럽게 보이도록 판지에서 보이는 모든 부분을 검정색으로 스프레이 페인트했습니다.

도색 후 완성품입니다...


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

코드

<울>
  • 메인 코드
  • 메인 코드Arduino
    PIR 센서는 Arduino의 전원을 켠 후 15초 동안 보정합니다. 센서가 움직임 없이 실제 방의 이미지를 얻을 수 있도록 이 과정에서 방을 떠나는 것이 좋습니다.
    /******************** ******************************** Lindsay Fox의 전동 카메라 베이스를 따라가는 모션 *** *****************************************************/ // 서보 모터#include Servo camServo; // 카메라를 제어하는 ​​서보 모터의 이름을 지정합니다. baseint currentPIRposition =0; // 서보의 현재 각도 설정 // LED 상태 표시등int LEDpin[] ={9,10,11,12,13}; // LED 핀 번호int currentLEDpin =9; // 현재 LED 핀; 위의 시퀀스에서 첫 번째로 시작// PIR sensorint PIRpin[] ={2,3,4,5,6}; // PIR 핀 번호int currentPIRpin =2; // 현재 PIR 핀; 위의 시퀀스에서 첫 번째로 시작int PIRprevState[] ={1,1,1,1,1}; // PIR의 이전 상태(0 =LOW, 1 =HIGH)int PIRposition[] ={157,117.75,78.5,39.25,0}; // 서보 모터의 각도 할당(0-157은 5개의 PIR 센서에 균등하게 분배됨) 부울 PIRstatus; // PIR 센서의 상태를 true 또는 false로 설정합니다.///// SETUP ///////////////////////////////// ////// 무효 설정() { Serial.begin(9600); camServo.attach(7); // 서보 핀 할당 for (int p =0; p <5; p++) { // 모든 PIR 센서를 INPUTS로 설정 pinMode(PIRpin[p], INPUT); } // end 'p' for (int l =0; l <5; l++) { // 모든 LED를 OUTPUTS로 설정 pinMode(LEDpin[l], OUTPUT); } // 끝 'l' for /////// CALIBRATE PIR SENSORS /////// Serial.print("Calibration PIR Sensors "); for(int c =0; c <15; c++){ // 15초 동안 PIR 센서 보정(센서에 따라 10-60초에서 변경) Serial.print("."); 지연(1000); // 1초 기다림 } // Serial.println("PIR Sensors Ready")에 대한 보정 종료; camServo.write(78.5); // 시작하기 위해 서보를 중앙 위치로 이동 } // 설정 종료///// MAIN LOOP /////////////////////////// ///////void loop() { for (int PIR =0; PIR <5; PIR++) { // 각 PIR 센서에 대해 이 루프를 시작합니다. currentPIRpin =PIRpin[PIR]; // 현재 PIR 핀을 'for' 루프의 현재 번호로 설정 currentLEDpin=LEDpin[PIR]; // 'for' 루프의 현재 LED 핀을 현재 번호로 설정합니다. PIRstatus =digitalRead(currentPIRpin); if (PIRstatus ==HIGH) { // 현재 PIR 센서에서 움직임이 감지되면 digitalWrite(currentLEDpin, HIGH); // 해당 LED 켜기 if(PIRprevState[PIR] ==0) { // PIR 센서의 이전 상태가 LOW인 경우 if (currentPIRposition !=currentPIRpin &&PIRprevState[PIR] ==0) { // 높은 PIR이 다음과 다른 경우 현재 위치 PIR 다음 새 위치로 이동 camServo.write(PIRposition[PIR]); Serial.print("현재 각도 :"); Serial.println(PIR위치[PIR]); 지연(50); 현재PIR위치 =현재PIR핀; // 현재 PIR 위치를 활성 [PIR] 핀으로 재설정 PIRprevState[PIR] =1; // 이전 PIR 상태를 HIGH로 설정 } PIRprevState[PIR] =1; // 현재 위치가 현재 PIR 핀과 같으면 이전 PIR 상태를 HIGH로 설정 } // PIRprevState 종료 } // PIRstatus 종료 if else { // digitalWrite(currentLEDpin, LOW); // led는 센서 출력 핀 상태를 시각화합니다. PIRprevState[PIR] =0; // 이전 PIR 상태를 LOW로 설정 } // end else } // 루프에 대한 [PIR] 종료 } // 메인 루프 종료

    회로도


    제조공정

    1. 카메라
    2. 최소한의 RaspberryPI 베이스
    3. Raspberry Pi를 사용한 모션 센서
    4. 움직임 감지 경보 시스템
    5. 동작 제어 AWS IoT 버튼
    6. 새집에 캠이 있는 라즈베리
    7. BrickPi 북리더
    8. 라이브 카메라 스트리밍 RASPBERRY PI – 모션 설정
    9. 선형 모션 기술
    10. 플렌옵틱 카메라