- 비디오 피드를 받기위한 '모션'설치 및 구성 :
- 웹 페이지를 통해 로봇을 제어하기위한 Raspberry Pi의 Flask 설정 :
- 웹 페이지 용 HTML 코드 :
- 감시 로봇
- 회로도 및 설정 :
- 작동 방법 :
이 DIY 세션에서는 라즈베리 파이와 웹캠을 사용하여 웹 제어 감시 로봇 자동차를 제작하고 있습니다. 이는 구성 가능한 옵션이 많고 몇 시간 내에 구축 할 수있는 유용하고 저렴한 보안 및 스파이 도구가 될 수 있습니다. 이 IoT 프로젝트에서 우리는 주로 라즈베리 파이, USB 웹 카메라 및 로봇 섀시 가있는 DC 모터 2 개 를 사용하여이 로봇 자동차를 제작합니다.
그 위에 웹 카메라가 장착되어 있으며이를 통해 라이브 비디오 피드를받을 수 있으며 여기서 흥미로운 부분은 인터넷을 통해 웹 브라우저에서이 로봇을 제어하고 이동할 수 있다는 것입니다. 웹 페이지를 이용하여 제어 할 수 있으므로 모바일에서도 웹 페이지를 이용하여 제어 할 수 있습니다. 우리는 왼쪽, 오른쪽, 앞으로, 뒤로 링크가있는 HTML로 웹 페이지를 만들었고, 클릭하면 로봇을 어떤 방향 으로든 움직일 수 있습니다. 여기서는 USB 카메라에서 라이브 비디오 피드를 가져 오는 데 "Motion"을 사용하고 Python을 사용하여 웹 페이지에서 Raspberry Pi로 명령을 보내는 데 "Flask"를 사용했습니다.이 튜토리얼의 후속 부분에서 자세히 설명합니다. Raspberry Pi 보드에 Raspbian Jessie OS가 설치되어 있습니다. 이 문서를 확인하여 Raspbian OS를 설치하고 Raspberry Pi를 시작할 수 있습니다.
비디오 피드를 받기위한 '모션'설치 및 구성:
Motion (Surveillance Software) 은 Linux 용으로 개발 된 무료 오픈 소스 동작 감지기 CCTV 소프트웨어입니다. 움직임을 감지하여 영상 녹화를 시작합니다. Raspberry Pi에 'Motion'을 설치하면 마법처럼 Raspberry Pi를 보안 카메라로 바꿀 수 있습니다. 라이브 비디오 피드를 받고, 타임 랩스 비디오를 만들고 정기적으로 스냅 샷을 찍는 데 사용됩니다. 보기 영역에서 움직임이나 장애가 감지 될 때마다 비디오를 녹화하고 저장합니다. 포트와 함께 Pi의 IP 주소를 입력하여 웹 브라우저에서 라이브 비디오 피드를 볼 수 있습니다.
Raspberry Pi 및 USB 카메라와 함께 모션 사용에 대한 자세한 자습서를 만들었습니다. 여기에서는 로봇이 웹 페이지로 라이브 비디오 스트리밍을 보내기 위해 Raspberry pi에 설치하는 방법을 간략하게 설명합니다.
여기서는 네트워크를 통해 첫 번째 비디오 피드를 시작하기 위해 몇 가지 명령 만 실행하면됩니다. 그 전에 LAN 또는 Wi-Fi를 사용하여 Raspberry Pi가 인터넷에 연결되어 있는지 확인한 다음 아래 단계를 따르십시오.
1 단계: 먼저 아래 명령을 실행하여 Raspberry Pi 에서 Raspbian OS 를 업데이트합니다.
sudo apt-get 업데이트
2 단계: 다음 명령을 사용하여 '모션'라이브러리 를 설치 합니다.
sudo apt-get 설치 모션
3 단계: 이제 항상 실행되도록 파일 / etc / default / motion 을 편집하여 Motion daemon을 yes 로 설정 합니다. 다음과 같이 'sudo'와 함께 'nano'편집기를 사용하여이 파일을 편집합니다.
sudo nano / etc / default / motion
그런 다음 'CTRL + X', 'Y'및 Enter를 눌러 파일을 저장하십시오.
4 단계: 이제 Motion이 모든 비디오 녹화물과 사진 파일을 저장 하는 대상 디렉터리 (/ var / lib / motion /)에 대한 권한 을 설정 해야 합니다. 아래 명령을 실행하여이 디렉토리의 소유자로 'Motion'을 설정해야합니다.
sudo chown motion: motion / var / lib / motion /
이 권한이 필요합니다. 그렇지 않으면 모션 서비스 상태를 확인할 때 오류가 발생합니다.
다음 명령을 사용하여 서비스 상태를 확인할 수 있습니다. sudo service motion status
5 단계: 이제 거의 완료되었습니다. Motion 구성 파일 (/etc/motion/motion.conf )에서 stream_localhost off 인 구성 옵션 하나만 변경 하면됩니다. 우리는해야 스트리밍이 로컬 호스트를 해제 그렇지 않으면 우리는 우리의 네트워크에서 비디오 피드에 액세스 할 수 없습니다, 그리고 그것은 라즈베리 파이 자체에만 액세스 할 수 있습니다. 이렇게하려면 아래와 같이 'nano'편집기로 모션 구성 파일을 편집하고 끄십시오.
sudo nano /etc/motion/motion.conf
이제 완료되었으며 Pi에 연결된 USB 웹 카메라에서 라이브 피드를 가져올 준비가되었습니다. 아래 명령을 사용하여 Motion 서비스를 시작 (또는 다시 시작)하고 브라우저 (예: 192.168.43.199:8081)에서 포트 8081로 Raspberry Pi의 IP를 엽니 다. 이 프로젝트에서는이 IP를 img src 태그 의 HTML 코드에 포함했습니다.
sudo /etc/init.d/motion restart
그리고 웹 카메라의 라이브 피드를 볼 수 있습니다. 여기에서는 Raspberry Pi와 원활하게 작동하는 저렴한 USB 웹 카메라를 사용했지만 더 나은 해상도를 위해 좋은 품질의 카메라를 사용할 수 있습니다. 브라우저에 표시되므로 모바일, 태블릿 등과 같은 웹 브라우저를 지원하는 모든 장치를 사용하여 피드를 볼 수 있습니다.
필요한 경우 문제 해결 단계로 Raspberry Pi를 재부팅 해보십시오.
sudo 재부팅
이것은 우리의 감시 로봇에 Motion을 사용 하는 것에 관한 것입니다. 그 외에는 이전 튜토리얼에서 이미 논의한 몇 가지 구성 옵션이 있습니다.
참고: 버전 3 이하의 Raspberry Pi 모델 인 경우, Raspberry Pi를 라우터에 무선으로 연결하려면 Wi-Fi 동글이 필요할 수 있습니다.
웹 페이지를 통해 로봇을 제어하기위한 Raspberry Pi의 Flask 설정:
여기에서는 웹 페이지에서 Raspberry Pi 로 명령 을 전송 하여 네트워크를 통해 로봇을 제어 하는 방법을 제공하는 Flask를 사용하여 웹 서버를 만들었습니다. Flask를 사용하면 웹 페이지를 통해 Python 스크립트를 실행할 수 있으며 Raspberry Pi에서 웹 브라우저로 또는 그 반대로 데이터를주고받을 수 있습니다. Flask는 Python 용 마이크로 프레임 워크입니다. 이 도구는 내장 된 개발 서버 및 디버거, 통합 된 단위 테스트 지원, 보안 쿠키 지원 및 사용하기 쉬운 유니 코드 기반으로, 이러한 것들은 애호가에게 유용합니다.
주어진 명령을 사용하여 플라스크 지원 패키지를 Raspberry Pi에 설치합니다.
$ pip 설치 Flask
그런 다음이 프로젝트를 위해 다음 Flask 패키지를 가져온 것처럼 프로그램에서 가져 오기만하면 Flask를 사용할 수 있습니다.
플라스크에서 가져 오기 플라스크에서 플라스크 가져 오기 Flask, render_template, request
여기에서 Flask를 사용한 프로그래밍에 대해 자세히 알아볼 수 있으며, Flask를 사용하여 웹 페이지에서 Raspberry Pi로 메시지를 전송하고 Smart Container의 Raspberry Pi에 가중치 값을 전송 한 이전 프로젝트도 확인할 수 있습니다.
웹 페이지 용 HTML 코드:
웹 브라우저에서 로봇을 이동하기 위해 제어 링크 (왼쪽, 오른쪽, 앞으로, 뒤로)를 표시하는 HTML 언어를 사용하여 웹 페이지를 만들었습니다. Python 프로그램에서 함수를 호출하기 위해 jQuery 스크립트를 사용했습니다 . Python 코드에는 로봇을 왼쪽, 오른쪽, 앞으로, 뒤로 이동하고 중지하는 다섯 가지 기능이 있습니다. 마지막에 완전한 파이썬 코드가 주어졌습니다. 이러한 기능은 웹 페이지의 제어 링크를 클릭하면 실행되며 클릭하는 링크에 따라 모터가 이동합니다. 여기에서 우리는 동안 로봇이 특정 방향으로 이동 것 같은 방법으로 코드를 작성했습니다 클릭하고 링크를 유지 하고, 곧 우리가 마우스 버튼을 로봇이 정지됩니다. 다음은 jQuery를 포함한 웹 페이지의 HTML 코드입니다.
여기에서 img src 태그 를 사용하여 동영상이 스트리밍되는 IP 주소를 웹 페이지에 삽입 한 것을 볼 수 있습니다. Raspberry Pi에 따라 IP 주소를 변경하되 포트는 동일하게 유지하십시오.
사용자는 일부 텍스트 편집기 (메모장)에서 위의 HTML 코드를 복사하여 붙여넣고.HTML 확장자 (robot.html)로 파일을 저장해야합니다. 그런 다음 파이썬 스크립트 위치와 관련하여이 HTML 파일을 / templates 폴더에 넣습니다. 이 Raspberry Surveillance Robot에 대한 Python 코드 파일을 넣은 templates라는 폴더를 만든 다음이 템플릿 폴더에 robot.html 파일을 넣어야 함을 의미합니다. 이 단계는 중요합니다. 그렇지 않으면 프로젝트가 작동하지 않습니다. robot.html 파일을 두 번 클릭하여 직접 열면 제어 링크가 어떻게 보이는지 확인할 수 있습니다. 데모 비디오 에서 전체 프로세스를 추가로 확인하십시오. 끝에. 프로그래밍 및 모든 작업을 마친 후 Raspberry Pi에서 Python 코드를 실행하고 웹 브라우저에서 IP_address_of_your_Pi: 5010을 열 수 있습니다 (예:
ifconfig 명령 을 사용하여 Raspberry Pi의 IP 주소를 확인할 수 있습니다.
ifconfig
회로도 및 설정:
라이브 비디오 피드 및 HTML 코드를 테스트 한 후 수제 또는 기성품 로봇 섀시, 바퀴 및 너트 볼트를 사용하여 로봇을 구축해야합니다. 그런 다음 라즈베리 파이에 전원을 공급하기 위해 그 위에 파워 뱅크를 놓고 라즈베리 파이와 웹 카메라를 파워 뱅크 위에 놓고 첼로 테이프 또는 고무 스트립을 사용하여 설정을 수정하고 USB 카메라를 라즈베리 파이에 연결합니다.
이 IoT 프로젝트에서는 많은 연결을 할 필요가 없으며 모터 드라이버 IC L293D 및 DC 모터 용 와이어 몇 개만 연결하면됩니다. 연결은 아래 회로도에 나와 있습니다. 여기서는 공간을 줄이기 위해 L293D IC를 장착하기 위해 범용 PCB를 사용했지만 DC 모터를 L293D와 연결하기 위해 소형 브레드 보드를 사용할 수도 있습니다.
작동 방법:
이 감시 로봇의 작동 및 작업은 매우 쉽습니다. Python 파일 (.py 확장자)을 생성하고 아래 코드를 복사 한 다음 Raspberry Pi에 저장합니다. 그런 다음 위에서 설명한대로 HTML 파일을 템플릿 폴더 에 넣습니다. HTML 파일에서 IP 주소를 변경하는 것을 잊지 마십시오.
그런 다음 아래 명령을 입력하여 Python 코드를 실행하십시오.
파이썬 name_of_file.py
그런 다음 http://192.168.43.199:5010과 같은 포트 5010으로 Raspberry Pi IP 주소를 엽니 다 (다시 IP 주소를 사용자 주소로 바꿉니다). 이제 4 개의 로봇 제어 링크와 라이브 스트리밍 비디오가있는 웹 페이지가 표시됩니다. 사용자는 링크를 길게 클릭하여 로봇을 제어 할 수 있습니다. 사용자가 링크를 클릭 한 상태로 유지하면 클릭 된 링크에 따라 로봇이 이동하고 사용자가 링크를 해제하면 로봇이 자동으로 중지됩니다.
완전한 Python 코드 는 다음과 같습니다. 웹 페이지의 링크를 클릭하면 로봇을 제어하는 다양한 기능을 작성했습니다. 쉽게 이해할 수 있거나 초보자 인 경우 이전 Raspberry Pi 자습서를 확인하십시오. 또한 로봇 을 더 흥미롭고 쉽게 만들려면 로봇 섹션 을 방문하십시오.