행복한 하루
라즈베리파이 제로 프로젝트(12) – Pioneer600 모듈 테스트 1편 - LED 제어 본문
라즈베리파이 제로 프로젝트(12) – Pioneer600 모듈 테스트 1편 - LED 제어
변화의 물결 2021. 2. 8. 00:36
안녕하세요.
라즈베리파이 제로로 제어 학습할 수 있는 Pioneer600이라는 모듈을 찾았습니다. 그래서 이 모듈을 통해 센서와 조이스틱 등 프로그래밍하는 방법을 몇 편으로 해서 잘 되는지 테스트해보도록 하겠습니다.
센서가 많이 달린 것은 아닌데(별도로 구매), 통신과 조작 등에 대해서 프로그래밍 방법들을 배울 수 있어 좋을 것 같습니다. (판매되는 곳마다 가격이 차이가 있던데, 5만 원 이상인 곳은 구매 마시고 그 아래 가격에 파는 곳을 찾아보세요.)
그리고 회로도도 공개되어 있어 필요한 곳에 적용해보셔도 될 듯합니다.
진행 내용은 제공해주는 매뉴얼 기반으로 테스트해보면서 잘 안 되는 부분은 수정하면서 해보도록 하겠습니다.
소스는 BCM2835 library 이용하거나 Wiring, python 으로 진행하겠습니다. (BCM2835 Library is C library for Broadcom BCM 2835 as used in Raspberry Pi )
쉽게 말해 라즈베리 파이를 위한 C 언어로 된 라이브러리라고 보시면 됩니다.
http://www.airspayce.com/mikem/bcm2835/
첫 번째 내용은 Hello world처럼 LED를 제어하는 것으로 시작해보겠습니다.
1. Pioneer600 구성
1. Raspberry Pi GPIO interface: for connecting Raspberry Pi
2. USB TO UART: control the Pi through serial terminal
3. AD/DA IO interface: screw terminal
4. 1-WIRE interface: for connecting 1-WIRE devices like DS18B20
5. Sensor interface: for connecting various sensors
6. 0.96inch OLED: SSD1306 driver, 128×64 resolution, SPI interface
7. Buzzer
8. CP2102: USB TO UART converter
9. PCF8591: 8-bit AD/DA converter, I2C interface
10. BMP180: pressure sensor, I2C interface
11. PCF8574: I/O expansion chip, I2C interface
12. DS3231: high precision RTC chip, I2C interface
13. Power indicator
14. User LED
15. Joystick
16. LFN0038K IR receiver
매뉴얼상 내용이고 박스 안에는 추가로 DS18B20과 스탠드와 볼트가 들어 있습니다. 그리고 조이스틱에 사각형 노브가 달려있습니다.
현재 테스트는 라즈베리 제로로 할 예정인데 추가적으로 필요한 것이 있다면 양쪽이 Female 연장선이 필요합니다.
(제로에 소켓 핀을 기본적으로 아래로 장착하기 때문에 이 모듈 방향과 맞지 않을 수 있기 때문입니다.)
2. 시작 전 라이브러리 설치
- 위와 같이 준비했다면 몇 가지 사전에 라이브러리를 설치해야 합니다.
pi@raspberrypi:~ $ mkdir /opt
pi@raspberrypi:~ $ cd /opt
1) Install WiringPi Library
pi@raspberrypi:/opt $ sudo apt-get install wiringpi
pi@raspberrypi:/opt $ sudo wget https://project-downloads.drogon.net/wiringpi-latest.deb
pi@raspberrypi:/opt $ sudo dpkg -i wiringpi-latest.deb
pi@raspberrypi:/opt $ gpio -v
2) Install C Library bcm2835
pi@raspberrypi:/opt $ sudo wget http://www.airspayce.com/mikem/bcm2835/bcm2835-1.60.tar.gz
pi@raspberrypi:/opt $ sudo tar zxvf bcm2835-1.60.tar.gz
pi@raspberrypi:/opt $ cd bcm2835-1.60/
pi@raspberrypi:/opt/bcm2835-1.60 $ sudo ./configure
pi@raspberrypi:/opt/bcm2835-1.60 $ sudo make && sudo make check && sudo make install
3) For Python3
pi@raspberrypi:/opt $ sudo apt-get update
pi@raspberrypi:/opt $ sudo apt-get install python3-pip
pi@raspberrypi:/opt $ sudo pip3 install RPi.GPIO
pi@raspberrypi:/opt $ sudo pip3 install smbus
4) Install Python Library
pi@raspberrypi:/opt $ sudo pip3 install pillow
pi@raspberrypi:/opt $ sudo pip3 install numpy
pi@raspberrypi:/opt $ sudo apt-get install libopenjp2-7
pi@raspberrypi:/opt $ sudo apt install libtiff
pi@raspberrypi:/opt $ sudo apt install libtiff5
pi@raspberrypi:/opt $ sudo apt-get install libatlas-base-dev
3. 연결하기
- 라즈베리파이 제로와 모듈을 연결합니다. 소켓으로 연결할 경우 케이블은 필요 없습니다.
3.3V, GND, Pin25(LED)
4. 소스 실행시키기
- 우선 공개된 소스를 다운로드합니다.
pi@raspberrypi:/opt $ cd ~
pi@raspberrypi:~ $ sudo wget https://www.waveshare.com/w/upload/6/6a/Pioneer600-Code.tar.gz
pi@raspberrypi:/opt $ sudo tar zxf Pioneer600-Code.tar.gz
1) bcm2835로 실행시키기
pi@raspberrypi:~ $ cd Pioneer600/LED/bcm2835/
pi@raspberrypi:~/Pioneer600/LED/bcm2835 $ make clean && make
pi@raspberrypi:~/Pioneer600/LED/bcm2835 $ sudo ./led
그러면 LED1 LED가 깜박이는 것을 확인할 수 있습니다. 취소하려면 ctrl + C를 누르면 됩니다.
그리고 프로그램 소스를 보고 싶다면 vim led.c 실행하면 됩니다.
(vim 이 없다면 sudo apt-get install vim )
/* blink.c
* you can build this with something like:
* gcc -Wall blink.c -o blink -lbcm2835
* sudo ./blink
*/
#include <bcm2835.h>
#define PIN 26
int main(int argc, char **argv)
{
if (!bcm2835_init())return 1;
bcm2835_gpio_fsel(PIN, BCM2835_GPIO_FSEL_OUTP);
while (1)
{
bcm2835_gpio_write(PIN, HIGH);
bcm2835_delay(500);
bcm2835_gpio_write(PIN, LOW);
bcm2835_delay(500);
}
bcm2835_close();
return 0;
}
이후 wiringPi, Python 소스도 동작은 동일합니다.
2) wiringPi로 실행
pi@raspberrypi:~/Pioneer600/LED/bcm2835 $ cd ~/Pioneer600/LED/wiringPi/
pi@raspberrypi:~/Pioneer600/LED/wiringPi $ make clean && make
pi@raspberrypi:~/Pioneer600/LED/wiringPi $ sudo ./led
3) Python으로 실행
pi@raspberrypi:~/Pioneer600/LED/wiringPi $ cd ~/Pioneer600/LED/python/
pi@raspberrypi:~/Pioneer600/LED/python $ sudo python3 led.py
이것으로 LED 동작 테스트를 해보았습니다. 프로그램 소스마다 깜박이는 속도 차이는 나지만 기본 동작은 동일하다는 것을 확인할 수 있었습니다. 소스 컴파일은 문제는 없었지만, 매뉴얼에 몇 가지 틀린 것이 있어 수정했습니다.
감사합니다.
<참고사이트>
1. pioneer600 자료 사이트
www.waveshare.com/wiki/Pioneer600
“쿠팡 파트너스 활동을 통해 일정액의 수수료를 받을 수 있음"
'RaspberryPi > Raspberry Pi Zero' 카테고리의 다른 글
라즈베리파이 제로 프로젝트(13) – Pioneer600 모듈 (키 버튼 입력받기) (0) | 2021.02.14 |
---|---|
라즈베리파이 제로 프로젝트(12) – Pioneer600 모듈 (LED 제어 - PWM) (0) | 2021.02.13 |
라즈베리파이 제로 프로젝트(11) – PWM으로 서보 모터(Servo Motor) 제어하기 (0) | 2021.01.11 |
라즈베리파이 제로 프로젝트(10) – 사운드(소리)를 들어보기 – USB Sound card (0) | 2020.12.16 |
라즈베리파이 제로 프로젝트(10) – 사운드(소리)를 들어보기 - MusicBox 프로그램(2) – 블루투스 연동 실패 후기 2편 (0) | 2020.12.11 |