이 튜토리얼은 Raspberry Pi를 사용하여 Lepton 카메라를 설치하려는 모든 사람을 돕기 위해 만들어졌습니다. 우리는 많은 튜토리얼에서 제공되는 정보를 사용하고 이를 개선하기 위해 자체 지식을 추가했습니다.
우리가 테스트한 장치는 Raspberry Pi B+이지만 다른 버전의 장치에서도 설치가 크게 다르지 않아야 합니다.
내용물
Lepton 카메라 소개
Lepton은 기본 모바일 장치 인터페이스 및 기타 가전 제품과 쉽게 인터페이스하도록 설계된 완전한 장파 적외선(LWIR) 카메라 모듈입니다. 이는 공칭 응답 파장 대역(8~14미크론)에서 적외선 입력을 캡처하고 균일한 열 이미지를 출력합니다.
환경사양
작동 온도 범위 | 10°C ~ 65°C(-20°C ~ 75°C(일부 성능 저하 가능)) |
최대 작동 온도 | 353.15K(80°C) |
보관 온도 | 40°C ~ 80°C |
상대습도 | 95% |
열충격 | 작동 온도 전반에 걸쳐 공대공. 극한(-10°C ~ 65°C, 65°C ~ -10°C) |
진동 | 운송 프로필, 4.3grms |
이미지 특성
장면 내 범위 | 0K ~ >400K(-273.15°C ~ > 126.85°C) |
조작성: 양품 픽셀 수 | >99.0%(일반적으로 < 1% 결함) |
응용
- 안전과 보안
- 자동차
- 마이크로 및 나노 UAV/UGV 플랫폼
- 주택 수리 및 에너지 효율성
- 건물 자동화 및 존재 감지
Lepton 카메라에 대한 더 많은 사양을 알고 싶다면 Lepton 데이터시트를 방문하세요.
그림 1: Lepton 카메라하드웨어
필수 재료
Lepton 카메라를 설치하는 데 필요한 재료는 다음과 같습니다.
- 라즈베리 파이 모델 B+.
- 마이크로 USB 종단 기능이 있는 5V 전원 공급 장치입니다.
- 최소 700mA를 소싱할 수 있어야 합니다.
- 휴대폰 충전기가 될 수 있으며 잘 작동합니다. (휴대폰 충전기는 잘 작동합니다)
- SD 카드:
- 최소 8GB, 최대 32GB의 저장 공간
- 4급 이하입니다.
- USB 키보드
- 마우스(USB 연결 포함)
- HDMI 케이블
- 이더넷 케이블 및 인터넷 연결 네트워크에 대한 연결. Raspberry Pi에서 WiFi를 사용하려면 WiFi 연결 어댑터를 구입할 수 있습니다. 이 튜토리얼에서는 미니 150Mbps USB 2.0 WiFi 안테나 무선 네트워크 LAN 카드 어댑터 802.11N/G/B를 사용했습니다. WiFi 연결 어댑터
SD 카드 준비 - 포맷
먼저 SD카드를 포맷하고 준비하겠습니다. 이 섹션에서는 컴퓨터를 사용하게 됩니다. 첫 번째 단계는 카드를 포맷하는 것이고 두 번째 단계는 NOOBS 소프트웨어를 설치하는 것입니다(라즈베리에 필요합니다). 이 튜토리얼에서는 OS 창을 사용합니다. 다른 OS가 있는 경우 여기에서 단계를 확인할 수 있습니다.다른 OS . 다음 지침을 따르십시오.
카드 포맷하기
- 온라인에 접속하여 Windows용 포맷터를 다운로드하세요.
- 다운로드의 압축을 풀고 추출한 후 Setup.exe를 실행합니다.
- SDFormatter InstallShield Wizard가 프롬프트되면 프로그램을 승인하고 설치한 후 완료를 클릭하십시오.
- 다음으로 SD Formatter(방금 설치한 프로그램)를 엽니다. 다음과 같은 내용이 표시되어야 합니다.그림 2: SDFormatter
- 옵션을 클릭하고 형식 크기 조정을 ON으로 설정한 다음 확인을 클릭하세요.그림 2.1 : 옵션 설정
- "드라이브"가 나열된 곳에서 카드를 선택하세요. 컴퓨터에서 카드를 하나만 사용하는 경우 해당 카드가 자동으로 선택됩니다.
- "포맷"을 클릭한 다음 나타나는 대로 "확인"을 세 번 클릭합니다.
- 이제 SD 카드가 포맷되었습니다! 다음 단계는 NOOBS 소프트웨어를 설치하는 것입니다.
NOOBS 소프트웨어 설치
- Raspberry Pi 다운로드 페이지를 방문하여 최신 NOOBS(오프라인 설치)(2015-05-11 기준 NOOBS_v1_4_1.zip)를 다운로드하세요.
- 압축을 풀고 다운로드를 추출합니다. 추출된 폴더는 다음과 같아야 합니다.그림 3: NOOBS 다운로드
- 이제 추출된 폴더 내용을 최근 포맷한 SD 카드에 복사해야 합니다.
- 이제 카드를 사용할 수 있습니다!
사이
Lepton 카메라를 조심하세요. 정전기 방전에 특별히 민감하지는 않지만 복잡하고 상대적으로 가격이 비싼 구성 요소입니다. 실수로 손상되지 않도록 작업하는 동안 몇 가지 예방 조치가 필요합니다. 믿을 수 있는 투자 중 하나는 브레드보드입니다. 카메라를 설치할 수 있는 안전한 위치를 제공합니다.
이제 프로젝트 빌드를 시작할 수 있습니다. 아래 단계를 따르십시오.
Lepton 카메라를 라즈베리에 연결하세요
- 연결에는 브레드보드를 사용하세요.
- 그림 4의 다이어그램에는 20개의 GP10(소나무 40개)이 있고 Raspberry Pi에는 13개의 GP10(소나무 26개)이 있습니다. 이 프로젝트에서는 처음 26개의 소나무만 중요합니다.
- CS 핀에 대해 빨간색 사각형이 나타나면 핀 26을 핀 24로 전환하십시오.
모니터를 연결하세요
- 라즈베리와 디스플레이 모니터 사이에 HDMI 케이블을 연결합니다. (VGA-HDMI 어댑터가 필요할 수 있음)
USB를 통해 마우스와 키보드 연결
준비된 SD 카드를 라즈베리에 삽입하세요
- SD 카드가 올바르게 연결되면 딸깍 소리가 나면서 제자리에 고정됩니다.
인터넷 연결 설정
- 이 프로젝트를 활용하고 라즈베리 파이가 제공할 수 있는 기능을 최대한 활용하려면 여러 소프트웨어 다운로드가 필요합니다. 그러므로 인터넷 연결이 매우 중요합니다.
- 이더넷 케이블이나 Wi-Fi 어댑터를 사용할 수 있습니다. Wi-Fi 어댑터에 대한 지침은 여기에 있습니다.
전원을 연결하세요
- 마지막으로 이전 연결을 최종 확인합니다. 작동하는 경우 전원 공급 장치를 Raspberry에 연결하십시오. (우리는 휴대폰 충전기 케이블을 사용했습니다)
하드웨어 섹션이 완료되었습니다! 프로젝트는 다음과 같아야 합니다.
그림 5.1: 라즈베리 구성
그림 5.2: 브레드보드 위의 FLIR Lepton
그림 5.3: 다이어그램 연결
WiFi 어댑터
WiFi 어댑터를 사용하여 Raspberry Pi를 인터넷에 연결할 수 있습니다. Raspberry Pi에 WiFi 어댑터를 사용하려면 아래 지침을 따르십시오.
Raspberry Pi 공식 웹사이트에서는 WiFi 어댑터 설치를 위한 3가지 튜토리얼을 제공합니다. 우리가 시도했을 때 해당 지침이 작동하지 않았습니다. 그들은 다른 사람들을 위해 일할 수 있기 때문에 여기에서 찾을 수 있습니다 .
이 튜토리얼에서는 우리에게 도움이 되는 명령을 사용할 것입니다.
- WiFi 어댑터를 라즈베리 파이에 연결합니다.
- Raspberry Pi 데스크탑에서 LXT 터미널을 엽니다.
LXT 터미널의 명령줄
- Raspberry Pi에 사용할 수 있는 WiFi 신호를 확인하려면 다음 명령을 입력하세요.
추신: 특히 Michigan Tech Labs의 경우 Michigan Tech WiFi를 공유하려면 자체 컴퓨터에 오픈 소스 소프트웨어를 다운로드해야 했습니다. 오픈 소스 소프트웨어는 가상 라우터입니다. 가상 라우터 링크에서 다운로드할 수 있습니다 . 이 소프트웨어를 사용하면 Michigan Tech WiFi를 라즈베리와 공유할 수 있습니다. 이름과 비밀번호만 입력하면 됩니다. 위의 예를 살펴보십시오.
그림 6 : 가상 라우터sot 설치가 완료되면
- 사용 가능한 모든 WiFi가 표시됩니다. ISSD와 선호하는 WiFi 연결의 비밀번호를 확인하세요.
- 다음 명령을 입력하십시오.
- 아래 코드를 파일에 추가하세요. IDSS와 비밀번호를 기억해 보세요.
- 예는 다음과 같습니다.
- 완료되면 Ctrl + X를 사용하고 Y를 선택한 다음 Enter를 누릅니다. (변경사항이 저장됩니다.)
- 변경 사항을 활성화하려면 다음을 사용하십시오.
- 그런 다음 다음을 입력하십시오.
- 다음 명령을 사용하여 WiFi가 작동하는지 확인합니다.
- Wlan0은 선택한 WiFi에 연결됩니다.
소프트웨어
소프트웨어를 설치하면 Raspberry Pi를 사용할 수 있습니다.
라즈비안
Raspbian은 Raspberry Pi 하드웨어에 최적화된 Debian 기반의 무료 운영 체제입니다. Raspberry Pi에 이상적인 운영 체제입니다.
- 라즈베리 신호와 모니터 디스플레이 사이에 지연이 있을 수 있으며 이는 정상입니다. 그림 7은 표시된 화면을 보여줍니다.그림 6 : 라즈비안 설치
- 첫 번째 옵션(Raspberry RECOMMENDED)을 클릭합니다.
- "설치"를 클릭하세요. 설치하는데 약 30분정도 소요됩니다.
이 부분이 끝나면 Raspberry Pi를 사용할 수 있습니다.
FLIR Lepton 열화상 카메라 소프트웨어
Raspbian 설치가 완료되면 FLIR Lepton 열화상 카메라 소프트웨어를 설치할 차례입니다. 우리는 Lepton을 실행하기 위해Pure Engineering 코드를 사용하고 있습니다.
- 이제 명령을 입력할 LXTerminal을 열어야 합니다. 아래 그림에 표시된 아이콘을 클릭하세요.
- 다 되었으면 아래 명령어를 입력해야 합니다. 구성 섹션이 열립니다.
- 다음 창이 표시됩니다.그림 8: 구성 창
- "고급 옵션"으로 이동합니다.
- "SPI"를 활성화해야 합니다. 이를 위해 아래 지침을 따르십시오.
- SPI 선택
- SPI 인터페이스를 활성화해야 합니다. "예"를 클릭하세요.
- "확인"을 클릭하세요
- 기본적으로 SPI 커널 모듈을 로드해야 하므로 "예"를 클릭하십시오.
- "확인"을 클릭하세요
- 그런 다음 I2C에도 동일한 작업을 수행합니다.
- 이제 그림 8의 끝에서 마침을 선택하고 라즈베리 파이를 재부팅하면 라즈베리 파이를 재부팅할지 묻는 메시지가 표시됩니다. 해.
- 이제 인터넷 연결을 사용할 차례입니다. QT 애플리케이션(Pure Engineering의 예제 코드)을 다운로드해야 합니다. 따라서 인터넷 연결이 양호한지 확인하십시오.
- 다음 단계를 위해 다음 명령을 입력합니다.
- 그런 다음 "y" 또는 "n"을 입력하라는 메시지가 표시됩니다. "y"를 입력하세요.
- 이제 인터넷 아이콘과 다음 웹사이트로 이동하세요: https://github.com/PureEngineering/LeptonModule
- 웹사이트를 열면 "Download ZIP"(화면 오른쪽에 있음)을 클릭하세요.
- 다운로드한 폴더를 pi 디렉터리로 이동합니다.
- 이제 압축된 폴더의 압축을 풀어주세요. 다음 명령을 사용하십시오.
- 이제 현재 디렉터리를 "LeptonModule-master" 폴더에 있는 "raspberrypi_video" 폴더로 변경합니다. 다음 명령을 사용하여 수행합니다.
- 이제 "LeptonSDKEmb32PUB" 디렉터리로 이동하여 "make"를 실행해야 합니다.
- 그런 다음 "raspberrypi_video" 디렉터리로 다시 이동합니다.
- 이제 다음을 실행하세요.
- 열화상 카메라를 사용할 준비가 되었습니다! 작동하게 하려면 다음을 실행하세요.
변경 사항 및 오류
비디오 크기
비디오 크기를 변경할 수 있습니다:
- main.cpp 파일을 엽니다. "raspberrypi_video" 폴더에 있습니다.
- 아래 그림에 표시된 코드 부분은 비디오 창의 크기와 위치를 정의합니다. 빨간색 상자 안의 숫자는 창이 화면에 나타날 위치를 정의하고, 녹색 상자 안의 숫자는 창의 크기를 정의합니다.
- 또한 자리 표시자 창으로 전송되는 이미지의 크기와 "FFC 수행" 버튼의 위치를 변경해야 합니다.
- 변경 사항을 저장하려면 페이지 왼쪽 상단으로 이동하여 "파일"을 누르고 "저장"을 클릭하세요.
- 완료한 후 LXTerminal로 이동하여 "raspberrypi_video" 폴더로 이동한 후 "qmake && make"를 실행하세요.
- 변경 사항이 저장되었습니다. 프로그램을 실행하고 원하는 내용인지 확인하세요. 해상도가 마음에 들지 않으면 다시 변경하거나 다른 크기로 변경할 수 있습니다.
FFC 수행
"FFC 수행" 버튼을 누를 때 오류가 발생했습니다. 동일한 오류가 발생하면 아래 지침을 따르세요.
- LXterminal로 이동하여 다음 명령을 실행하십시오.
- 마지막 줄로 가서 "i2c-dev"라고 쓰세요.
- "ctrl o"를 누르세요
- 엔터 키를 치시오
- 시스템을 재부팅합니다. FFC가 지금 작동 중일 것입니다.
- 다른 오류가 발생하는 경우 여기에서 해결책을 찾아볼 수 있습니다: https://groups.google.com/forum/#!forum/flir-lepton
비디오 녹화
현재 FLIR Lepton 카메라로 제작된 영상을 녹화하는 가장 좋은 방법은 라즈베리를 PC나 노트북에 연결하는 것입니다. 이는 VNC(Virtual Network Computing)를 사용하여 쉽게 달성할 수 있습니다. VNC를 사용하면 사용자는 다른 컴퓨터의 데스크톱 인터페이스를 원격으로 제어할 수 있습니다. VNC를 Raspberry와 함께 사용하면 다음과 같은 다른 이점이 있습니다.
- 많은 오픈 소스 스크린 레코더 프로그램이 있습니다
- 사용자는 Linux 또는 Windows 시스템을 사용하여 라즈베리를 제어할 수 있습니다.
- 녹음된 파일은 사용자의 컴퓨터에 저장되므로 라즈베리 메모리 카드에 저장할 필요가 없습니다.
- 라즈베리에 모니터, 키보드, 마우스를 연결할 필요가 없습니다.
- VNC를 사용하면 열화상 카메라 시스템을 쉽게 휴대할 수 있습니다.
VNC 연결
VNC를 설정하는 것은 쉽습니다. 라즈베리를 원격으로 제어하는 데 사용할 라즈베리와 컴퓨터를 모두 설정해야 합니다.
라즈베리 파이 설정
- LXTerminal로 이동하여 Tight VNC 패키지를 설치하세요.
- TightVNC 서버 실행
- 서버에서는 비밀번호 입력을 요구합니다. 비밀번호는 4자 이상 9자 미만이어야 합니다.
- LXTerminal에서는 입력 중인 비밀번호를 볼 수 없습니다. 그냥 입력하고 엔터를 누르시면 됩니다.
- VNC 세션 시작
- ":1"은 VNC 세션 수를 나타냅니다(VNC 세션이 두 개 이상 있을 수 있음).
- 화면의 해상도를 변경할 수 있습니다. 이 예에서는 풀 HD 해상도(1920x1080)를 사용합니다.
- 시작 시 VNC 세션을 설정하려면 elinux.org 웹사이트 의 지침을 따르십시오.
- VNC 세션을 종료하려면 다음 명령을 사용하십시오.
- ":display"는 VNC 세션 번호입니다.
컴퓨터 설정
- 컴퓨터를 설정하는 마지막 단계에서는 Raspberry Pi의 IP 주소가 필요합니다. Raspberry Pi의 IP 주소를 모르는 경우 LXTerminal에서 다음 명령을 실행하세요.
- IP 주소는 파란색 상자에 있는 숫자입니다.
윈도우
Raspberry.org: Windows 웹사이트 에서 Windows 기반 컴퓨터에 대한 지침을 따르세요 .
리눅스
Raspberry.org: Linux 웹사이트 에서 Linux 기반 컴퓨터에 대한 지침을 따르세요 .
맥 OS
Raspberry.org: Mac OS 웹사이트 에서 Mac OS 기반 컴퓨터에 대한 지침을 따르세요 .
스크린 레코더 소프트웨어
Lepton Thermal 카메라가 컴퓨터로 전송하는 비디오를 캡처하려면 화면 녹화 소프트웨어가 필요합니다. 원하는 프로그램을 사용하시면 됩니다. 우리는 몇 가지 오픈 소스 소프트웨어 옵션을 나열하고 있습니다.
윈도우
ShareX를 다운로드하고 테스트했습니다. ShareX는 화면 녹화, 화면 인쇄 및 기타 다양한 도구를 제공하는 오픈 소스 소프트웨어입니다. getsharex.com 에서 소프트웨어를 무료로 다운로드할 수 있습니다.
리눅스
맥 OS
라즈베리에서 비디오 녹화하기
진행 중인 작업입니다.
소스에서 ffmpeg를 설치합니다. 이 단계는 매우 중요합니다. libavcodec의 Debian 버전에는 플래시 스트리밍 프로토콜에 필요한 H264 라이브러리가 포함되어 있지 않기 때문에 Raspbian 버전의 ffmpeg에서는 작동하지 않습니다.( Raspbian Forum 에서 )
- ffmpeg 실행 중
그러면 너비와 높이가 1024x768인 (x=250, y=150)의 왼쪽 상단 모서리부터 시작하여 데스크톱에서 이미지를 가져옵니다. 이 예에서는 비디오가 임시 폴더에 저장되고 있으므로 다른 폴더에 저장할 수 있습니다. "out.avi"는 "filename.fileformat" 형식입니다.
ffmpeg에 대한 자세한 내용은 여기 와 ffmpeg.org 웹사이트에서 확인할 수 있습니다 .
우리의 응용 프로그램
Pure Engineering의 코드를 구현하고 Lepton 카메라를 위한 새로운 애플리케이션을 만들 수 있습니다. 뉴스 애플리케이션에 도움이 되는 기능과 지침이 포함된 FLIR의 좋은 파일이 있습니다. 이전 단계에서 이 파일을 이미 다운로드했습니다. 찾으려면 다음 단계를 따르세요.
- Pi 디렉터리로 이동하여 "LeptonModule-master"를 엽니다.
- "raspberrypi_video" 폴더를 엽니다.
- 찾고 있는 파일은 "lepton_interface_design_document.pdf"입니다.
이 파일을 사용하여 몇 가지 애플리케이션을 만들었습니다. 아래에서 확인할 수 있습니다.
카메라의 내부 온도를 가져옵니다.
이 애플리케이션을 사용하면 카메라 내부 온도를 확인할 수 있습니다. 카메라의 출력과 내부 온도 사이에는 관계가 있기 때문에 향후 애플리케이션에 매우 도움이 될 수 있습니다. 우리가 한 일을 아래에서 설명하겠습니다.
- "Pi 디렉터리"로 이동합니다.
- "LeptonModule-master"를 엽니다.
- "raspberrypi_video"를 엽니다.
- "Lepton_I2C.cpp" 파일을 엽니다.
- 이 파일에서는 마녀가 내부 온도를 가져오는 함수를 선언합니다.
- 우선, "#include "leptonSDKEmb32PUB/LEPTON_Types.h"" 아래에 다음 코드 줄을 추가해야 합니다.
- 이제 "LEP_CAMERA_PORT_DESC_T _port;" 아래에 다음 코드 줄을 추가하세요.
- 이제 함수를 선언하겠습니다. 이 파일의 끝으로 이동하여 다음 함수를 추가하세요.
- 입력한 내용을 저장해야 합니다. 해당 파일로 이동하여 저장하세요.
- "raspberry_video"로 돌아가서 "Lepton_I2C.h"를 엽니다.
- " void lepton_perform_ffc();" 아래에 이 코드 줄을 추가해야 합니다.
- 이제 카메라의 내부 온도를 반환할 수 있는 lepton_temp() 함수가 있습니다. 계산에 이 값을 사용하려면 변수를 선언하고 생성한 이 함수와 일치시키기만 하면 됩니다.
온도 눈금
Lepton 카메라는 내부 온도를 매개변수로 사용합니다. 내부 온도에 대한 출력 프레임은 8192입니다. 온도 범위가 너무 크지 않으면 전체 출력 범위는 이 지점(내부 온도, 8192)과 거의 선형 관계를 따릅니다.
최대 및 최소 온도 얻기
해당 정보를 사용하면 모든 출력에서 대략적인 온도를 얻을 수 있습니다. 이를 위해 우리는 Michigan Tech Lab에서 사용 가능한 핫 플레이트를 사용하여 실험 지점(온도 및 출력)을 취했습니다. 그런 다음 (내부 온도, 8192) 및 (실험 온도, 실험 출력)의 두 지점을 사용하여 선형 방정식을 수행했습니다. 아래 방정식을 볼 수 있습니다.
"Lepton Thread.h" 파일의 원본 코드를 분석해 보면 최대 출력 프레임과 최소 출력 프레임을 취할 수 있음을 알 수 있다. 따라서 위의 방정식에 최대값과 최소값 출력을 이용하면 최대값과 최소값을 구할 수 있습니다.
색상과 프레임 관계
"Lepton Thread.h" 파일의 원본 코드를 살펴보면 몇 가지 중요한 사항을 알 수 있습니다.
- 코드는 최대 및 최소 출력 프레임을 제공합니다.
- 변수 "값"은 색상과의 관계를 나타냅니다.
- 값의 범위는 0 < 값 < 255입니다.
- 최대 프레임은 값 = 255를 나타냅니다.
- 최소값은 Value = 0을 나타냅니다.
따라서 선형성과 마지막 두 점( MaxFrame , Value = 255) 및 ( MinFrame , Value = 0)을 사용하여 프레임과 색상 간의 관계를 찾을 수 있습니다.
프레임과 온도 관계
우리는 다음을 깨달을 수 있습니다:
- 최대 프레임은 최대 온도와 관련이 있습니다.
- 최소 프레임은 최소 온도와 관련이 있습니다.
위의 두 점과 선형성을 사용하여 프레임과 온도 사이의 관계를 찾을 수 있습니다.
- 프레임최대 --> 온도최대
- FrameMin --> TempMin
출력 프레임에 대한 범위 설정
Lepton 카메라의 출력 범위를 제한할 수 있습니다. 그러므로 온도의 작은 범위만 보고 싶다면 그렇게 할 수 있습니다. 아래 단계를 따라야 합니다.
- "LeptonThread.cpp" 파일로 이동하세요.
- maxValue 및 minValue를 얻는 코드가 없는 행을 찾습니다. ("for ( int i = 0 : i < FRAME_SIZE_UNIT!; i++)" 루프 내부에 있습니다.
- 위에서 말한 줄 다음에 출력을 설정하게 됩니다. 예를 참조하세요: .
- 출력 값을 설정한 후 아래 조건을 추가합니다. (동일한 루프 "for ( int i = 0 : i < FRAME_SIZE_UNIT!; i++)" 내에 있어야 함)