Raspberry Pi 프로젝트를 시작하기 전에 알아야 할 10가지 사항

Digi-Key 북미 편집자 제공

Raspberry Pi는 사용하기 쉬운 플랫폼에 폭넓은 지원 에코시스템을 제공하여 PC의 강력한 성능을 일반 사용자에게 제공한 혁신의 중심에 있습니다. 이 플랫폼은 직관적이고 사용이 편리할 수 있지만, 엔지니어와 초보자 모두 기존의 Pi 사용자가 제공하는 몇 가지 유용한 정보를 활용할 수 있습니다.

Raspberry Pi에 대해 온라인 커뮤니티의 지속적인 지원이 이뤄지고 있기 때문에 여기에 설명된 ‘알아야 할 10가지 사항’에서는 포괄적인 내용을 다루지 않습니다. 이 10가지 사항은 가이드북이나 자습서에서는 제공되지 않지만 힘들게 습득한 경험을 통해 얻은 금덩어리와도 같습니다. 여기에는 SD 카드를 선택하고 포맷하는 방법, Raspberry Pi를 위한 전원 공급 장치 선택, 적합한 Wi-Fi 동글 선택, 프로그래밍 관련 유용한 정보, 시스템이 멈췄을 때 대처 방법과 전원을 올바르게 공급하여 기판 손상을 방지하는 방법에 대한 조언과 유용한 정보가 포함되어 있습니다.

이러한 간단하고 유용한 정보를 훑어보는 것만으로도 Raspberry Pi와 일반적인 싱글 보드 컴퓨팅 플랫폼의 성능을 처음 사용할 때 즐거운 경험을 얻는 데 큰 도움이 될 것입니다.

1: Raspberry Pi를 사용하는 위치와 시기

Raspberry Pi의 가격, 성능 및 지원 커뮤니티를 고려하면 모든 가능한 작업에 이 솔루션을 사용하지 않을 수 없습니다. Raspberry Pi는 본질적으로 개인용 컴퓨터입니다. 예를 들어, Raspberry Pi 재단Raspberry Pi 3 Model B의 경우, 최대 1.2GHz에서 실행되는 ARM® Cortex®-A53을 기반으로 합니다. 이 컴퓨터는 1GB의 RAM, 802.11n 무선 LAN, Bluetooth 4.1과 Bluetooth 저전력, 4개의 USB 포트, 40개의 GPIO 핀, 완전한 HDMI 포트, 이더넷, 3.5mm 오디오 잭과 카메라 및 디스플레이 인터페이스가 지원됩니다.

Raspberry Pi 3 Model B의 그림

그림 1: Raspberry Pi 재단의 Raspberry Pi 3 Model B는 최대 1.2GHz에서 실행되는 ARM Cortex-A53을 기반으로 하며 1GB 메모리와 802.11n 무선 LAN 연결을 지원합니다. (그림 출처: Raspberry Pi 재단)

이 컴퓨터는 온도 센서의 측정값을 읽고 모터와 피스톤으로 이뤄진 기계 전자 시스템을 제어하는 작업부터 전체 범위 PC의 작업까지 거의 모든 작업을 수행할 수 있는 동시에 동영상 조작, 로봇 공학, 원격 3D 프린터 제어처럼 재미있고 흥미로운 일부 프로젝트도 수행할 수 있습니다.

2: Raspberry Pi 시작 및 운용하기

Raspberry Pi는 베어메탈에서 코드를 작성하기보다 운영 체제를 실행할 목적으로 설계되었습니다. 가장 흔히 사용되는 OS는 특수 목적을 위해 변형된 Linux로, Raspbian(Raspberry와 Debian의 혼성어)이라고 불립니다. 물론 다른 운영 체제도 실행할 수 있으나, 우선 Raspbian을 살펴보겠습니다.

독립형 컴퓨터로 사용되는 Raspberry Pi에는 마우스, 키보드, SD 카드(클래스 10, 최소 8GB, Apacer Memory AmericaAP8GMCSH10U1-B 등이 있음) 및 모니터를 포함하는 기존의 주변 장치가 모두 필요합니다.

다른 컴퓨터에서 Pi 이미지를 SD 카드에 먼저 옮기기 위해 외장형 SD 카드 판독기가 필요합니다. Pi 이미지를 SD 카드에 복사한 뒤에는 다른 모든 작업을 Pi에서 수행할 수 있습니다. SD 카드 판독기로 선택할 수 있는 좋은 옵션은 Assmann WSW ComponentsDA-70310-2 USB 2.0 판독기인데, 거의 모든 상용 메모리 카드 형식을 수용할 수 있습니다.

SD 카드를 포맷하려면 Raspberry Pi 웹 페이지에 있는 링크를 클릭하여 SD 협회의 SD 카드 포맷 소프트웨어를 다운로드합니다. NOOBS를 SD 카드에 성공적으로 설치하려면 검증된 소프트웨어만 사용하세요. 또는 Raspberry Pi NOOBS 16GB 카드와 같이 이미 NOOBS가 설치된 SD 카드를 구매해도 됩니다.

무선 키보드와 마우스(예: Adafruit1738)를 사용하면 USB 포트를 더 확보할 수 있고 케이블 엉킴도 방지할 수 있습니다. 또는 Tripp Lite의 4포트 U22-004-RA와 같은 전력 구동 USB 2.0 허브를 사용해도 됩니다. 4포트 전력 구동 허브는 Pi의 전원 공급 장치에 대한 수요를 낮추기 때문에 사용이 권장됩니다.

Pi에 SSH 접속을 수행하고자 하거나 터치스크린으로 사용하는 경우(유용한 정보 9번 참조) 마우스, 키보드 및 모니터를 사용하지 않아도 됩니다.

또한 모니터에 HDMI 입력 포트가 없으면 Pi의 HDMI 포트와 모니터의 입력 포트를 연결할 수 있는 어댑터가 필요합니다. 예를 들어 DVI-D로 HDMI와 모니터를 연결하려면 CnC Tech741-20010-00300(그림 2)을 사용하세요.

CnC Tech의 741-20010-00300 HDMI 19핀 - DVI-D 19핀 어댑터(수)의 그림

그림 2: CnC Tech의 741-20010-00300 HDMI 19핀 - DVI-D 19핀 어댑터(수) 같은 제품은 Raspberry Pi의 HDMI 출력을 모니터에 연결하는 데 필요할 수 있습니다. (그림 출처: CnC Tech)

향후에 Pi를 시스템이나 프로젝트에 내장할 경우 이러한 주변 장치는 고려하지 않아도 됩니다.

3: 적절한 전원 공급 장치 사용하기

SD 카드가 손상되거나, Raspberry Pi의 작동이 멈추거나, 산발적으로 발생하는 기타 문제 등 전력 관련 문제를 방지하는 데 필요한 여분의 전력이 없을 때 Raspberry Pi의 전력을 컴퓨터의 USB 포트를 통해 공급하지 마세요. 2A는 일반적으로 충분하지만 Raspberry Pi 3의 경우 2.5A의 전원 공급이 권장됩니다.

많은 고전류 전원 공급 장치에는 배럴 출력 커넥터(수)가 있습니다. Adafruit의 2727 잭-마이크로 USB A 플러그 케이블 어댑터와 5V 중앙 플러스형 5.5mm x 2.1mm 배럴 전원 공급 장치를 함께 사용하여 Raspberry Pi 3에 맞춰 조정하세요(그림 3).

Adafruit의 2727 잭-마이크로 USB A 케이블 어댑터의 그림

그림 3: Raspberry Pi에 권장 값인 2.5A를 공급하려면 Adafruit의 2727 잭-마이크로 USB A 케이블 어댑터를 5V 중앙 플러스형 5.5mm x 2.1mm 배럴 전원 공급 장치에 연결하세요. (그림 출처: Adafruit)

Raspberry Pi 자체는 이 모든 전류가 필요하지 않습니다. 이러한 전류를 공급하는 목적은 충분한 잉여 전류를 사용하여 다른 전자 기기와 부속품이 기판에 연결되었을 때 입력 전압이 떨어지지 않도록 하기 위해서입니다. 이러한 목적과 관련하여, 일반적인 전력 요구 사항이 아래에 나와 있습니다.

Raspberry Pi는 모델에 따라 유휴 모드에서 약 100mA ~ 300mA를 소모하며, Pi가 더 많은 전류를 소모하는 반복 작업을 각각 성공적으로 수행합니다(그림 4). 응용 제품에 초저전력이 필요한 경우 Raspberry Pi 선택 프로세스에서 이 작업을 고려하세요.

Pi1(B+) Pi2 B Pi3 B(Amps) 0(Amps)
부트 최대 0.26 0.40 0.75 0.20
평균 0.22 0.22 0.35 0.15
유휴 평균 0.20 0.22 0.30 0.10
동영상 재생(H.264) 최대 0.30 0.36 0.55 0.23
평균 0.22 0.28 0.33 0.16
응력 최대 0.35 0.82 1.34 0.35
평균 0.32 0.75 0.85 0.23

그림 4: 여러 인기 Raspberry Pi 모델의 전류 소모량 비교. (그림 출처: Raspberry Pi 재단)

Pi를 이동 중에 사용하는 경우, Pi는 내부 회로망이 설정된 방식으로 인해 대부분의 USB 휴대용 보조 배터리로 켤 수 있을 정도로 충분한 전류를 소모하지 못할 수 있습니다. Adafruit의 4000mAh 모델 1565 또는 10,000mAh 모델 1566 배터리 팩은 이미 Pi와 호환하는 것으로 확인된 제품이므로 이 중 하나를 사용하세요.

4: 인라인 온/오프 버튼을 탑재한 USB 케이블을 사용하거나 만들기

Raspberry Pi는 초기화 버튼 또는 전원 스위치가 탑재되어 있지 않습니다. 기판이 작동을 멈추거나 기판을 초기화해야 할 때마다 USB 케이블을 뽑았다가 다시 꽂아야 하는 불편함을 없애기 위해 인라인 온/오프 버튼이 탑재된 USB 케이블(예: Adafruit의 2379)을 사용하세요. 이러한 필요는 실험과 학습의 결과로 확인된 것입니다. 초보자는 더 많은 정보를 학습하는 중에 필연적으로 시스템을 잠그게 됩니다. 코드나 커넥터를 다루기보다 간단히 누를 수 있는 버튼을 사용하면 상황이 악화되는 것을 훨씬 더 쉽게 막고 불필요한 USB 커넥터 마모를 줄일 수 있습니다.

하지만, 한 가지 주의할 점은 일반적인 상황에서 Raspberry Pi를 끄기 위해 온/오프 버튼을 항상 사용해서는 안 된다는 것입니다. 단순히 전원을 끊으면 SD 카드를 손상시킬 수 있으므로, 항상 적절한 시스템 종료 절차를 따르세요(’온/오프 스위치 위치’ 참조).

5: 성공의 비결: Raspberry Pi 보조 기판

Raspberry Pi는 강력한 SBC이지만 모든 것을 다 갖춘 싱글 보드 컴퓨터는 없습니다. 다행히 Pi의 기능을 강화할 수 있는 보조 기판이 이미 많이 출시되어 있습니다.

예를 들어 Raspberry Pi에는 데이터 취득에 필요한 기판 실장형 아날로그 디지털 컨버터(ADC)가 탑재되어 있지 않지만 사용할 수 있는 여러 컨버터 솔루션이 있습니다. 한 가지 좋은 솔루션은 Seeed Technology의 특별 제작된 103990060 ADC와 디지털 아날로그 컨버터(DAC) 기판입니다(그림 5).

Seeed Technology에서 제공하는 103990060 Raspberry Pi 확장 기판의 그림

그림 5: Seeed Technology의 103990060 Raspberry Pi 확장 기판은 Raspberry Pi에 8비트 ADC와 DAC 기능을 제공합니다. (그림 출처: Seeed Technology)

Raspberry Pi가 ADC 입력을 지원하도록 하는 다른 방법은 Adafruit 3.3V Trinket과 같은 소형 Arduino 기판에 작업을 오프로드하는 것입니다.

이를 위해서는 먼저 ‘Arduino 프로젝트를 시작하기 전에 알아야 할 10가지 사항’을 검토한 다음 간단한 스케치로 기판을 프로그래밍하여 아날로그 데이터 수집을 수행하세요. 데이터는 직렬 연결을 통해 Pi에 다시 전달됩니다.

좀 더 직접적인 방식으로는 Raspberry Pi와 호환되도록 주문 제작된 Arduino 기판을 사용할 수 있습니다. 이 기판에는 Seeed의 AlaMode와 DFRobot의 DFR0327 확장 실드 등이 포함됩니다.

실시간 실행이 필요한 작업의 경우 Raspian이 지원하지 않기 때문에 보조 기판이 반드시 필요합니다. Raspbian/Linux는 CPU 시간을 분리하고 분리된 시간을 응용 프로그램, Python 코드 및 Raspbian 자체에 필요한 만큼 할당합니다. 이러한 리소스 배분으로 인한 예측 불가능성은 실시간 실행이 필요한 작업을 할 수 없게 만듭니다.

6: Wi-Fi 동글

업데이트와 앱을 Pi에 설치하는 가장 쉬운 방법은 Wi-Fi를 통한 인터넷 연결을 사용하는 것입니다. 편리하게도 Raspberry Pi 3에는 인터넷 연결이 내장(802.11n)되어 있습니다. 하지만 다른 버전의 Raspberry Pi는 Wi-Fi를 내장하고 있지 않기 때문에 Wi-Fi 동글을 구매해야 할 수 있습니다. 이러한 경우 Raspbian OS가 인식할 수 있는 Wi-Fi 동글인지 확인하기 위해 필요한 검색을 수행해야 합니다. Raspberry Pi와 잘 호환되는 것으로 알려진 동글은 Adafruit의 초소형 814 802.11/b/g/n 모듈입니다(그림 6).

Adafruit에서 제공하는 814 USB 어댑터의 그림

그림 6: 보유하고 있는 Raspberry Pi 기판에 내장된 Wi-Fi가 없는 경우 Raspbian과 호환되는 것으로 알려진 Adafruit의 814 USB 어댑터와 같은 동글을 검색을 통해 찾으세요. (그림 출처: Adafruit)

7: 출력 논리 레벨과 구동 기능에 주의하기

Raspberry Pi는 3.3V 논리 레벨을 사용합니다. 이는 까다롭진 않지만 중요한 세부 사항임에도 종종 간과됩니다. Pi가 3.3V 논리 레벨을 사용한다는 것은 5V 논리 레벨을 요구하는 시중의 장치나 부속품과는 호환되지 않을 수 있음을 의미합니다. 또한 전체 전류가 대략 50mA를 초과하지 않는다고 가정할 때 각 핀에서의 구동 전류는 16mA입니다. 이러한 문제는 SparkFunBOB-12009 양방향 컨버터와 같은 논리 레벨 컨버터를 사용하면 매우 쉽게 해결할 수 있습니다.

SparkFun에서 제공하는 BOB-12009의 그림

그림 7: SparkFun의 BOB-12009는 5V 신호를 Raspberry Pi에 필요한 3.3V로 변환합니다. (그림 출처: SparkFun)

8: Python 프로그래밍 언어

Python은 Raspbian용 기본 프로그래밍 언어입니다. 실제로 Raspian 이미지에서 볼 수 있는 것처럼 Raspian에는 IDLE(Integrated Development and Learning Environment)이라고 불리는 Python 개발 환경이 이미 설치되어 있습니다. 대부분의 Pi 프로젝트에서 Python을 사용하는 것은 필수적입니다.

Raspbian 내에서는 Python 2 구동 시 IDLE 2를 사용하고, Python 3 구동 시 IDLE 3을 사용하도록 선택할 수 있습니다. 최신 기술과 문서를 활용하려면 IDLE 3/Python 3 옵션을 선택하세요.

Python 2 및 3 코드는 직접 교체할 수 없다는 점에 유의하세요. 이미 수많은 Python 2 코드가 공개되어 있기 때문에 Python 3을 사용하다가 Python 2로 전환하고 싶은 생각이 들 수도 있지만, 두 버전은 구문과 명명 규칙 측면에서 여러 차이점을 가지고 있기 때문에 직접적으로 호환되지 않습니다. 하지만 버전을 변경하기로 결정한다면 코드를 꼼꼼하게 살펴 추린 다음 필요한 변경 사항을 적용하여 Python 2 코드를 Python 3 코드로 또는 그 반대로 변환할 수 있습니다.

Python 프로그램에 개인화된 GUI를 구축하는 가장 빠른 방법은 Raspbian에 번들로 기본 제공되는 도구 세트인 TkInter를 사용하는 것입니다. TkInter를 위한 간단한 온라인 자습서가 많이 있으므로 사용자는 이 자습서를 사용하여 빠르게 시작할 수 있습니다.

일반적인 프로그래밍을 처음 접하는 사용자의 경우 프로젝트를 기본 구성 요소로 분류하는 것이 좋습니다. 예를 들어, LCD로 출력해야 하고 SPI 연결 센서에서 데이터를 읽으며 3개의 버튼에서 사용자 입력을 수집하는 프로젝트가 있습니다. 작업별로 구분된 코드를 작성하세요. 전체 코드를 한꺼번에 작성하면 오류가 발생하여 디버깅이 더 어려워질 수 있습니다.

9: 스크린 크기

프로그래밍을 할 때 Pi 기판에 장착된 소형 3인치 화면은 읽기가 불편하므로 큰 크기의 디스플레이를 사용하세요. 프로젝트의 최종 사용자 지정 인터페이스를 확인하는 데는 좋을 수 있으나, 전체 크기 모니터 또는 Raspberry Pi 재단에서 제공하는 8997466 LCD(그림 8)와 같은 7인치 터치스크린 디스플레이를 사용하는 것이 더 좋습니다. 사용 중인 Raspberry Pi가 무엇인지에 따라 이러한 디스플레이가 DSI 커넥터를 통해 자동 인식되지 않을 수 있습니다. Pi 모델에서 스크린을 수동으로 활성화해야 한다면 Github에 설명되어 있는 절차를 참조하세요.

Raspberry Pi 재단에서 제공하는 8997466 LCD의 그림

그림 8: 소형 3인치 디스플레이는 읽기가 어려우므로 사용하지 않는 것이 좋습니다. 대신 전체 크기 모니터나 Raspberry Pi 재단에서 제공하는 7인치 8997466 LCD를 사용하세요. (그림 출처: Raspberry Pi 재단)

두 가지 모두 사용 가능하나, 전체 크기 모니터를 사용하는 것이 더 좋습니다. 또한 범용 I/O 포트로 제어되는 디스플레이보다 DSI 또는 HDMI 포트로 연결되는 디스플레이가 훨씬 더 빨리 작동할 것입니다.

10: 간단하고 유용한 정보와 문제 해결 방법

  • 32GB보다 더 큰 용량의 SD 카드를 사용하고 싶을 수 있습니다. 그렇다면 FAT32 파일 시스템으로 카드를 포맷하세요. Raspberry Pi는 FAT32 볼륨만 읽을 수 있습니다.
  • 해당 SD 카드가 Raspberry Pi와 호환되는지 여부를 확인하세요.
  • 명령 행에서 다음 단계로 진행할 수 없는 경우 ‘sudo start x’라는 명령어를 실행하여 GUI를 시작하세요.
  • Raspberry Pi GPIO 핀은 표시되어 있지 않습니다. 혼란을 피하려면 Seeed에서 제공하는 아래 그림과 같은 GPIO 참고 자료를 확인하세요.

Raspberry Pi GPIO 핀 레퍼런스의 그림        

그림 9: 편리한 참고 자료를 통해 Raspberry Pi GPIO 핀을 확인할 수 있습니다. (그림 출처: Seeed Technology)

  • GPIO 핀을 통해 Raspberry Pi에 전력을 공급하지 마세요. 이러한 방식을 사용할 수는 있지만, 기판 실장형 퓨즈를 바이패스하게 됩니다. 퓨즈는 자가 재설정하며 필요한 경우 교체될 수 있습니다. GPIO를 통해 전원을 공급한 뒤 뭔가 터지는 소리가 난 경우 Pi가 파괴되었을 가능성이 매우 큽니다.

Raspberry Pi 3 기판 실장형 자가 재설정 퓨즈의 그림

그림 10: 사용자가 GPIO를 통해 전원을 공급하면 Raspberry Pi 3 기판 실장형 자가 재설정 퓨즈(빨간색 화살표)가 바이패스됩니다. 이 경우 기판이 손상될 가능성이 높습니다. (그림 출처: Digi-Key Electronics)

Raspberry Pi를 개발에 사용할 경우 모든 파일을 백업하세요. 개발 도중 SD 카드의 이미지가 손상되어 데이터를 복구하지 못할 수 있습니다. ApacerAPHA016G2BACG-DTM 16GB USB 드라이브와 같은 USB 점프 드라이브를 파일 저장소로 사용하여 모든 위험을 한꺼번에 방지하세요.

Apacer Memory America USB 드라이브의 그림

그림 11: 파일을 USB 드라이브에 저장하면 Raspberry Pi의 파일 시스템이 손상되더라도 파일을 보호할 수 있습니다. (그림 출처: Apacer Memory America)

결론

Raspberry Pi는 강력하고 사용하기 편리하며 지원이 잘 이뤄지는 것으로 유명합니다. Raspberry Pi는 전문 응용 분야나 재미있는 프로젝트를 구축하는 작업을 위한 훌륭한 기반입니다. 개발자의 배경이나 기술 수준과 관계없이 여기에 제시된 유용한 정보를 사용하면 학습 기간뿐 아니라 제품의 시장 출시 기간 또한 단축할 수 있으며 전체 공정의 생산성을 높일 수 있습니다.

면책 조항: 이 웹 사이트에서 여러 작성자 및/또는 포럼 참가자가 명시한 의견, 생각 및 견해는 Digi-Key Electronics의 의견, 생각 및 견해 또는 Digi-Key Electronics의 공식 정책과 관련이 없습니다.

게시자 정보

Digi-Key 북미 편집자