본문 바로가기
프로그래밍

Raspberry Pi와 MCC 172를 LabVIEW에서 사용하는 방법

by redkaos 2023. 8. 21.

 Raspberry Pi와 MCCDAQ의 DAQ HAT을 사용하려면 C나 Python으로 프로그래밍을 해야 하지만 LabVIEW를 사용하면 좀 더 쉽고 빠르게 GUI를 구성하여 활용할 수 있기 때문에 그 방법을 기록하고자 합니다. 다만 GUI는 컴퓨터에서 LabVIEW로 프로그램을 실행할 때에만 사용할 수 있습니다.

 Raspberry Pi와 MCC 172를 LabVIEW에서 사용하기 위해 필요한 것들은 아래와 같습니다.

 1. Raspberry Pi 2 이상 또는 BeagleBone Black (하드웨어)

 2. MCCDAQ의 DAQ HAT (MCC 118, 128, 134, 152, 172) (하드웨어)

 3. PuTTY

 4. VNC Viewer

 5. LabVIEW Community Edition (비영리, 비학술 용도로만 사용 가능) 또는

     LabVIEW (32비트), LabVIEW와 같은 버전의 Hobbyist Toolkit

 6. NI Linux Real-Time 용 C/C++ 개발도구 (Eclipse IDE for C/C++, Visual Studio Code 등)

 맨 먼저 Pi Imager로 Raspberry PI에 Debian을 설치해야 합니다. 운영체제를 클릭하여 맨 위의 Raspberry Pi OS (32-bit)를 선택합니다. 저장소를 클릭하여 Raspberry Pi의 저장소로 사용할 MicroSD의 드라이브를 선택한 뒤에, 오른쪽 아래에 있는 톱니바퀴를 클릭해서 고급 옵션을 열어 hostname, SSH 사용, 사용자 이름 및 비밀번호 설정을 합니다. hostname은 raspberrypi, 사용자 이름 및 비밀번호는 piraspberry로 하면 LabVIEW에서 연결할 때 기본값으로 바로 연결이 가능합니다.

01
Pi Imager로 운영체제 선택 및 고급 옵션 설정

 쓰기가 완료된 MicroSD를 Raspberry Pi에 설치하고, Raspberry Pi와 공유기를 랜선으로 연결하고 나서 Raspberry Pi에 전원을 연결합니다. PuTTY 프로그램을 켜서 설정한 hostname을 입력하고, Open 버튼을 누르면 Raspberry Pi에 접속할 수 있습니다.

PuTTY로 Raspberry Pi에 접속

 PuTTY로 Raspberry Pi에 접속되면, Pi Imager에서 설정한 사용자 이름과 비밀번호로 로그인한 뒤에 sudo raspi-config를 입력하여 Raspberry Pi 설정 프로그램을 실행시킵니다.

PuTTY로 로그인해서 Raspberry Pi 설정 프로그램 실행

 Raspberry Pi 설정 프로그램에서 3번 Interface Options를 선택하고, 다시 3번 VNC를 선택한 뒤에 Yes에서 엔터를 눌러 VNC Server를 활성화합니다. MCCDAQ의 DAQ HAT과 통신이 가능하도록 4번 SPI와 5번 I2C도 활성화합니다. 설정이 완료되면 오른쪽 아래의 Finish에서 엔터를 눌러 콘솔 화면으로 나가서 sudo reboot를 입력하여 변경된 내용이 적용될 수 있도록 재부팅을 합니다. 이제부터는 VNC Viewer를 사용하여 Raspberry Pi에 접속할 수 있습니다. 

01
Raspberry Pi 설정 프로그램인 raspi-config에서 VNC, SPI, I2C 활성화

 LabVIEW를 실행한 뒤에, 도구 메뉴에서 Hobbyist 메뉴의 Target Configuration을 실행합니다. Connection 메뉴에서 Hostname 또는 IP, Username, Password를 Pi Imager의 설정과 동일하게 입력한 상태에서 Connect 버튼을 누르고, 연결에 성공하면 Target Info 아래에 라즈베리파이의 로고가 나타납니다. Raspberry Pi와 연결된 상태에서 Installation 메뉴의 Install 버튼을 누르면 Raspberry Pi에 LabVIEW 런타임의 설치가 진행되며, 설치가 끝나면 변경된 사항을 적용하기 위해 자동으로 Raspberry Pi를 재부팅합니다. LabVIEW 런타임 설치에 성공하면 Installed Version과 Available Version에 똑같은 버전이 표시됩니다.

01

 MCCDAQ의 DAQ HAT을 Raspberry Pi에 설치합니다. VNC Viewer로 Raspberry Pi에 접속한 상태에서 MCCDAQ의 DAQHATS github를 참고하여 daqhats library를 설치하고, MCC 118, 128, 172는 펌웨어 업데이트도 진행합니다. 그런데 MCCDAQ의 DAQ HAT 라이브러리를 LabVIEW와 연동하려면 NI Linux Real-Time용 C/C++ 개발도구로 Shared Object를 만들어야 합니다. 처음으로 MCC 172를 테스트할 때, Eclipse C/C++를 사용했었기 때문에 이번에도 같은 방법으로 진행하였지만 NI에서 2018년을 마지막으로 Eclipse C/C++를 사용하는 방법의 갱신을 멈췄으며, Visual Studio Code의 사용을 권장하고 있습니다. 아래의 pdf 파일은 윈도우에서 Eclipse C/C++로 NI Linux Real-Time용 프로그램을 개발하는 방법이며, 리눅스에 익숙하다면 Raspberry Pi에서 바로 NI Linux Real-Time용 Shared Object를 컴파일할 수도 있습니다. 다만 리눅스에서 라이브러리를 만들려면 NI Linux Real-Time용 gcc로 컴파일해야 합니다.

Archived_Getting Started with CC++ Development Tools for NI Linux Real-Time, Eclipse Edition.pdf
0.84MB

 DAQ HAT 라이브러리의 컴파일에 성공하면, VNC Server의 파일 전송 기능을 사용해서 Shared Object 파일을 Raspberry Pi로 보냅니다. 전송한 라이브러리 파일은 LabVIEW에서 사용할 수 있도록 /srv/chroot/labview/usr/lib 폴더로 복사하거나 이동시킵니다.

libdaqhats.so 파일을 LabVIEW 런타임의 /usr/lib 폴더에 복사

 LabVIEW에서 MCCDAQ의 DAQ HAT 라이브러리를 사용하려면, VI에 Call Library Function을 추가하여 아래와 같이 Function과 Parameters를 설정해야 합니다. Function에는 라이브러리 파일의 경로와 함수의 이름을 입력하고, Parameters에는 사용할 함수의 정의를 기반으로 매개변수를 설정합니다.

0123
LabVIEW의 Call Library Function에서 mcc172_serial, mcc172_calibration_coefficient_read 함수 설정

 컴파일한 DAQ HAT 라이브러리가 제대로 작동하는지 간단한 VI를 만들어서 확인합니다. 예를 들어, MCC 172의 보정 계수를 읽어오는 mcc172_calibration_coefficient_read라는 함수로 프로그램을 만들면, 아래와 같이 실행 결과를 통해서 보정 계수를 확인할 수 있습니다.

LabVIEW로 MCC 172의 채널 2개 보정 계수(slope, offset) 확인

 이제 LabVIEW에서 Call Library Function으로 MCC 172의 데이터 수집 기능을 사용할 수 있으므로, 기존에 만들어 놓은 진동 측정 프로그램의 일부를 수정하면 MCC 172로 진동 측정이 가능하며, 웹 서비스 등을 활용하면 원격으로 진동 데이터를 수집하거나 측정할 수도 있습니다. 아래의 진동 측정 프로그램 화면은 MCC 172에 센서를 연결하지 않은 상태에서 측정한 결과물입니다.

012
LabVIEW로 만든 진동 측정 프로그램에서 MCC 172로 진동 측정

 

'프로그래밍' 카테고리의 다른 글

진동 측정 시스템  (0) 2022.03.21

댓글