Raspberry Pi 제품군으로 SBC(Single Board Computer 단일 보드 컴퓨터)의 세계에 혁명을 일으킨 후 재단은 의심할 여지없이 사용 가능한 많은 보드 중에서 자리를 찾을 €5 가격인 Raspberry Pi PICO 보드로 마이크로컨트롤러의 세계로 진입하고 있습니다. RP2040 마이크로컨트롤러는 재단에서 만들었습니다. C/C++ SDK와 함께 사용할 수 있으며 MicroPython의 공식 버전을 지원합니다.
이 맵의 시작 부분에 있고 문서가 존재하더라도 여전히 개발 중이므로 이 문서를 "고급"으로 분류했습니다. PyBoard, Arduino 또는 다른 보드를 이미 연습했다면 괜찮을 것입니다. 초보자의 경우 인내와 호기심으로 무장해야 합니다.
내용:
1 Raspberry Pi PICO 마이크로 컨트롤러 보드
1.1 카드 기능
1.2 마이크로컨트롤러
1.3 도표
1.4 구성 요소 설치
1.5 물리적 치수
1.6 커넥터
1.7 다른 맵과의 비교
1.8 Raspberry Pi PICO에 핀 장착
2 마이크로파이썬 설치
3 Raspberry Pi PICO 보드와의 대화
3.1 USB를 통해 Pico 카드 연결
3.2 터미널 에뮬레이터 사용
3.3 REPL 인터페이스 사용
3.4 PICO 카드에 화면 연결
3.5 온보드 LED 깜박임
3.6 UART를 통해 Raspberry Pi와 PICO 보드 연결
3.7 앰피 설치
3.8 모듈/프로그램 추가
3.9 존재하는 파일 나열
3.10 프로그램 실행
3.11 Raspberry Pi PICO에서 main() 파일 생성
3.12 파일 삭제
4 LED 링 구동
4.1 LED 링
5 결론
6 스프링스
라즈베리 파이 PICO 마이크로컨트롤러 보드
재단에서 설계한 듀얼 코어 마이크로컨트롤러를 특징으로 하는 이 PICO 카드의 출시와 함께 Raspberry Pi 재단 측에서 새로운 놀라움을 선사했습니다.
카드 기능
Raspberry Pi Pico 보드는 유연한 디지털 인터페이스를 갖춘 저비용(~5€) 고성능 마이크로컨트롤러 보드입니다. 주요 특징은 다음과 같습니다.
- 영국의 Raspberry Pi에서 설계한 RP2040 마이크로 컨트롤러
- 듀얼 코어 ARM Cortex M0+ 프로세서 , 최대 133MHz 로 실행되는 유연한 클록
- 264KB SRAM 및 2MB 온보드 플래시 메모리
- 모듈을 보드에 직접 납땜할 수 있습니다.
- USB 1.1(OTG) 호스트 및 장치 지원
- 절전 모드 및 "절전" 모드 감소
- USB를 통한 대용량 저장 장치를 사용한 드래그 앤 드롭 프로그래밍
- 26 개의 다기능 GPIO 핀
- 2개의 SPI , 2개의 I2C , 2개의 UART , 3 개의 12비트 ADC , 16개의 제어 가능한 PWM 채널
- 정확한 시계 및 타이머 내장
- 온도 센서
- 내장 부동 소수점 가속 라이브러리
- 맞춤형 주변기기 지원을 위한 8 × PIO(Programmable Input/Output) 상태 머신
마이크로컨트롤러
위는 마이크로 컨트롤러의 개요입니다. 7x7mm 케이스에 들어 있으며 2개의 코어에 사용되는 많은 구성 요소를 통합합니다.
RP2040 설명서는 RP2040에 대한 연결 다이어그램을 제공합니다.
계획
계획은 매우 간단합니다. 물론 RP2040 U1 마이크로컨트롤러가 중심 이 됩니다. 왼쪽 다이어그램 상단에 있는 U2 스위칭 회로에 의해 전원이 공급됩니다. RT6150B 는 1.8~5.5V를 입력으로 받아들이는 벅 컨버터입니다. U3 플래시 메모리는 왼쪽 중앙에 있으며 W25Q16DV 유형의 16M 비트(2Go) 모델입니다. 이 단락의 링크를 클릭하면 600페이지가 넘는 RP2040 마이크로컨트롤러에 대한 매우 인상적인 문서를 포함하여 구성 요소의 데이터 시트(특성 시트)에 액세스 할 수 있습니다.
구성 요소 설치
레이아웃 계획을 사용하면 다이어그램의 구성 요소를 찾을 수 있습니다.
카드에는 GPIO 25(Micropython의 핀 25)에 연결된 온보드 LED가 있습니다. 첫 번째 "hello world" 프로그램을 수행하여 카드의 올바른 기능을 확인할 수 있습니다.
물리적 치수
PICO 카드는 21×51 mm로 매우 작은 공간을 차지합니다. 작은 크기에도 불구하고 여전히 43개의 연결 패드를 제공합니다.
커넥터
카드 하단에는 구성 요소가 없습니다. 이를 통해 "마더" 보드에 직접 배치할 수 있습니다. 테스트 포인트가 이 "어머니" 카드의 트랙과 접촉하지 않도록 하기만 하면 됩니다. 카드 아래의 표시를 통해 연결 위치를 찾을 수 있습니다. 그러나 마이크로컨트롤러는 입력/출력을 구성할 때 큰 유연성을 제공합니다.
아래는 납땜 연결 핀을 보여주는데 보통 '핀 헤더'라는 이름으로 쉽게 구할 수 있다.
각 연결에 다른 역할을 할당할 수 있습니다. 여기에서 카드를 사용할 수 있는 두 가지 가능성이 있음을 알 수 있습니다.
- 구멍은 핀을 납땜하는 데 사용됩니다( 다음 단락 ). 아래에 납땜하면 PICO 카드를 브레드보드에 연결할 수 있습니다. Dupont 스레드를 직접 사용할 수도 있습니다. Dupont 와이어만 사용하는 경우 핀을 납땜할 수 있습니다.
- 카드를 받을 "어머니" 카드를 제공하는 것도 가능합니다. 이 경우 ESP8266이 납땜되는 것과 같은 방식으로 카드를 이러한 목적으로 제공된 패드에 직접 납땜할 수 있습니다. 마더보드에 수 핀을 장착하고 PICO 카드를 연결할 수도 있습니다.
이러한 유연한 사용 가능성이 마이크로컨트롤러의 모든 내부 리소스를 최대한 활용할 수 있다는 장점이 있는 경우 이러한 모든 가능성으로 인해 관리 복잡성이 발생할 위험이 있습니다. 이런 종류의 지도로 시작한다면 (초기에) 선택을 고정하고 업적에 표준화된 버전을 사용하는 것이 좋습니다.
도미니크 드 맥호비(Dominique de McHobby)는 더 읽기 쉬운 이 합성을 만들었습니다. 블로그와 McHobby 위키에서 모든 정보와 번역을 찾을 수 있습니다.
다른 카드와의 비교
이 이미지에서 왼쪽에서 오른쪽으로: PyBoard 보드, Raspberry Pi PICO 보드 및 NodeMCU.
Raspberry Pi PICO에 핀 장착
테스트에 더 편리한 브레드보드 보드에서 사용할 수 있도록 보드 아래에 핀을 납땜하기로 했습니다. 이 작업을 위해서는 핀을 납땜해야 합니다. 한 번도 해본 적이 없다면 시작하기 전에 도움을 받거나 무료 납땜 전자책을 읽고 약간의 연습을 하는 것이 좋습니다. 이 Garatronic 의 NadHAT 보드에 대한 이 비디오에서 납땜하는 방법도 보여주었습니다.
먼저 브레드보드에 심은 20개의 피노치를 두 줄로 잘라 적당한 간격( 중앙의 양쪽에 있는 구멍의 세 번째 줄 )으로 자릅니다. 핀이 완벽하게 삽입되었고 가능한 한 완벽하게 브레드보드에 수직인지 확인하십시오.
핀에 PICO 카드를 제자리에 놓습니다. 일반적으로 핀이 잘 배치되어 있으면 거의 들어가지 않습니다.
이제 납땜 인두를 사용하여 보드에 있는 두 개의 핀 스트립을 적절하게 납땜할 수 있습니다. 시간을 들여 용접의 긴 수명을 보장하려면 잘 수행해야 합니다.🙂
디버그 연결을 위한 핀을 넣어야 합니다. Dupont 커넥터를 쉽게 연결할 수 있도록 보드 상단에 배치하기로 했습니다. 자, 용기를 내십시오. 아직 3개의 작은 용접을 해야 합니다!
여기에 디버그 커넥터 도 있고 카드를 사용할 준비가 되었습니다.
물론 어떻게 사용하느냐에 따라 핀을 다르게 장착하거나 아예 장착하지 않을 수도 있습니다. 마더보드를 설계하는 경우 수 핀이 있을 수 있는 마더보드, PICO 카드가 직접 납땜되거나 암 커넥터가 장착된 마더보드입니다.
마이크로 파이썬 설치
2021년 4월 2일 업데이트: MicroPython이 이제 여기에 있습니다: 이 링크를 따라가십시오. 그러니까 이 링크를 가든 라즈베리파이 마이크로 파이선 링크를 가든 결국 uf2 브트로더 프로그램을 설치하는 방법이다. 최선 버전의 UF2 파일을 다운로드하고 아래 과정을 참고한다.
파일은 다운로드 폴더에 저장됩니다.
PICO 보드의 BOOTSEL 버튼을 누른 상태에서 USB 케이블로 PICO 보드를 Raspberry Pi에 연결합니다. PICO 카드가 메모리를 저장 장치(USB 키)로 노출하는 방법입니다. 창이 나타나는 것을 볼 수 있습니다
바탕 화면에 나타난 RPI-RP2 라는 "USB 드라이브"도 있습니다. 확인 버튼을 클릭합니다.
PICO RPI-RP2 카드 창이 열립니다. INDEX.HTM 및 INFO_UF2.TXT 파일 이 포함되어 있습니다. 다른 창에서 다운로드 디렉토리를 엽니다. 다운로드한 파일이 있습니다.
.uf2 파일을 클릭하고 RPI-RP2 폴더로 드래그합니다. 복사가 빠르게 완료되고 카드가 자동으로 재부팅되고 새 펌웨어가 서비스됩니다. 그것만큼 간단합니다.
Raspberry Pi PICO 보드와의 대화
USB를 통해 Pico 카드 연결
PICO 카드는 microUSB 포트로 전원이 공급되도록 설계되었습니다. USB/microUSB 케이블을 사용하여 Raspberry Pi에 연결할 계획입니다. 이러한 스타일의 카드를 사용하는 초보자를 위한 이 기사는 MicroPython만 다룹니다.
터미널 에뮬레이터 사용
PICO 카드는 텍스트 모드에서 외부와 대화합니다. USB 포트를 통해 카드와 양방향으로 정보를 교환할 수 있습니다. USB를 통한 직렬 링크는 PICO 보드를 터미널에 연결합니다. 참고로 컴퓨터 터미널은 화면과 키보드로 구성되며 직렬 회선에 문자를 보내거나 수신한 문자를 이 직렬 회선에 표시할 수 있습니다.
문제: Raspberry Pi는 컴퓨터 터미널이 아닙니다. 그대로 사용하려면 minicom (재단 권장)과 같은 터미널 에뮬레이터 나 이미 말씀드린 화면 ( 사용 방법은 이 기사 참조 )을 사용해야 합니다. 다른 하나는 Raspberry Pi에 설치된 Raspberry Pi OS 배포판의 일부가 아니기 때문에 설치를 거쳐야 합니다. 원하는 것을 설치합니다.
sudo apt-get install minicom
sudo apt-get install screen
REPL 인터페이스 사용
REPL , 무엇입니까? PICO 보드의 USB 인터페이스를 통해 보드는 REPL 이라는 대화형 Python 명령 인터프리터뿐만 아니라 Raspberry Pi와 통신하기 위한 직렬 포트도 노출할 수 있습니다. 이것은 MicroPython 인터랙티브 인터프리터 모드입니다.
REPL 명령 인터프리터는 다음을 허용합니다.
- MicroPython 스크립트에서 보낸 메시지를 보려면
- 실행 중인 스크립트와 상호 작용(스크립트 중지, 변수 상태 검사)
- 개발 중인 스크립트를 테스트하려면(가져오기 명령을 사용하여 즉시 가져오기).
- 마이크로컨트롤러 플랫폼의 기능을 대화식으로 테스트하기 위해 Python 명령어를 입력합니다.
PICO 보드에 화면 연결
여기에서는 나중에 minicom에 대한 예제가 있는 화면을 사용하기로 선택했습니다.
screen /dev/ttyACM0
열리는 창에서 처음에는 아무것도 표시되지 않습니다. [ ENTER ] 키를 눌러 MicroPython 프롬프트를 불러옵니다. >>>
PICO 보드에서 온라인으로 REPL 사용을 시작할 수 있습니다. 여기에 print('hello PICO!') 명령을 입력하여 작동하는지 확인했습니다(오류 메시지가 없으므로 양호함). 그런 다음 MicroPython 및 PICO 카드 버전에 대한 정보를 표시하는 PICO 카드를 재설정하는 효과가 있는 [CTRL + D]를 수행했습니다.
온보드 LED 깜박임
첫 번째 프로그램인 마이크로 컨트롤러의 "Hello World"는 LED 조명으로 구성됩니다. 좋습니다. PICO 카드에는 GPIO 25에 연결된 LED가 있습니다! LED가 켜지고 꺼지는지 확인하려면 다음 행을 입력하십시오.
from machine import Pin
led = Pin(25, Pin.OUT)
led.value(1)
led.value(0)
모든 것이 잘 되었다면 PICO 카드로 첫 주문을 한 것입니다. 환호 ! 내가 항상 말하듯이 LED를 켜는 방법을 안다면... 릴레이로 교체하면 라디에이터, 차고 문, 잭 등을 제어할 수 있습니다.
REPL로 전체 프로그램을 보낼 수도 있습니다.
REPL 창에 프롬프트가 있습니다. >>>
[CTRL + E]를 입력하십시오. 이제 창이 표시됩니다.
아래 프로그램을 복사하여 REPL 창에 붙여 넣습니다(WordPress에서 수정한 사항으로 인해 이 프로그램을 복사하면 작동하지 않을 수 있습니다... 이 경우 텍스트 편집기에서 프로그램을 입력하는 것이 좋습니다. 더 쉽고… 이 링크를 클릭하여 파일을 다운로드할 수도 있습니다.
from machine import Pin
import time
led = Pin(25, Pin.OUT)
while True:
led.value(1)
time.sleep(1.0)
led.value(0)
time.sleep(1.0)
나는 Thony 를 사용하여 프로그램을 입력했습니다.
그런 다음 [ CTRL + D ] => LED가 깜박이기 시작하지만 프로그램이 실행 중이기 때문에 >>> 프롬프트가 반환되지 않습니다.
프로그램을 닫고 프롬프트로 돌아가려면 [ CTRL+ C ] 를 입력하십시오.
REPL을 다시 제어할 수 있습니다. REPL을 종료하려면 [ CTRL + A ] + Q 를 사용하십시오.
이 창을 닫고 연결하기 위해 화면을 다시 시작하면 아마도 다음과 같은 응답을 받게 될 것입니다.
pi@raspberrypi:~ $screen /dev/ttyACM0
[화면 종료 중]
이 경우 링크를 재설정하려면 PICO 카드의 microUSB 커넥터를 분리했다가 다시 연결하십시오.
UART를 통해 Raspberry Pi와 PICO 보드 연결
Raspberry Pi가 PICO 카드와 통신하도록 하는 또 다른 방법은 각 카드의 UART를 통과하는 것입니다.
RP2040용 MicroPython은 보드의 UART0에서 REPL도 제공합니다.
위와 같이 두 개의 Tx/Rx 카드를 교차 링크로 연결해야 합니다. 여기에 사용된 microUSB 케이블은 5V/3A 전원 공급 장치에 연결되며 PICO 보드를 Raspberry PI의 USB 포트에 연결하지 않습니다.
라즈베리 파이 라즈베리 파이 피코
접지 접지
GPIO15(UART_RX0) GPIO0(UART0_TX)
GPIO14(UART_TX0) GPOI1(UART0_RX)
이 연결로 REPL에 연결할 수 있습니다. 가장 먼저 해야 할 일은 Raspberry Pi 4에서 UART 직렬 포트를 활성화하는 것입니다. 이렇게 하려면 raspi-config 를 실행합니다.
$ sudo raspi-config
그리고 인터페이스 옵션 -> 직렬 포트로 이동 한 다음 " 로그인 셸을 직렬을 통해 액세스 할 수 있도록 하시겠습니까? " )라는 질문이 나타나면 " 아니오 "를 선택하고 "하드웨어 직렬 포트를 활성화하시겠습니까?"라는 질문이 나타나면 " 예 "를 선택합니다. ( " 직렬 포트 하드웨어를 활성화하시겠습니까? " ).
아래와 같이 표시되어야 합니다.
- 직렬 포트 명령 프롬프트가 비활성화되었습니다.
- 직렬 인터페이스가 활성화됨
raspi-config 를 종료할 때 " 예 "를 선택하고 Raspberry Pi를 다시 시작하여 직렬 포트를 활성화해야 합니다. 그런 다음 /dev/serial0 에 연결된 minicom 을 사용하여 보드에 로그인합니다.
$ minicom -b 115200 -o -D /dev/serial0
Bienvenue avec minicom 2.7.1
OPTIONS: I18n
Compilé le Aug 13 2017, 15:25:34.
Port /dev/serial0
Tapez CTRL-A Z pour voir l'aide concernant les touches spéciales
>>>
다시 말하지만 연결이 작동하지 않는 것 같으면 Raspberry Pi 4를 다시 시작하고 터미널을 열고 minicom ... 명령을 입력합니다. 이번에는 작동해야 합니다. 거기에서 이전에 본 것처럼 MicroPython 명령을 실행하거나 프로그램을 복사할 수 있습니다.
앰피 설치
파일, 모듈, 프로그램...을 MicroPython 파일 시스템으로 전송할 수 있도록 Adafruit는 여기에서 사용할 수 있는 도구인 ampy를 만들었습니다.
sudo pip3 install adafruit-ampy
그런 다음 설치를 테스트합니다.
ampy --help
ampy의 도움을 받으면 모든 것이 잘 되었습니다.
모듈/프로그램 추가
test.py 프로그램을 바탕 화면에 넣었습니다. MicroPython 파일 시스템(FS)으로 전송:
pi@raspberrypi:~ $ ampy --port /dev/serial0 put ./Desktop/test.py
존재하는 파일 나열
이제 MicroPython FS에 있는 파일을 나열할 수 있습니다.
pi@raspberrypi:~ $ ampy --port /dev/serial0 ls
/test.py
프로그램 실행
앞에서 본 LED 깜박임 프로그램이 포함된 test.py 프로그램을 만들었습니다. 이 프로그램이 포함된 폴더로 이동하여 다음을 입력합니다.
ampy --port /dev/serial0 run test.py
Raspberry Pi에 있는 프로그램은 Raspberry Pi PICO 카드에서 실행됩니다.
Raspberry Pi PICO에서 main() 파일 생성
test.py 파일의 이름을 main.py 로 변경(또는 복사)합니다. 파일을 PICO 카드로 전송
pi@raspberrypi:~ $ ampy --port /dev/serial0 put ./Desktop/main.py
Raspberry Pi PICO 보드를 분리했다가 다시 연결합니다. main.py 프로그램 은 MicroPython에 의해 자동으로 실행됩니다(있는 경우). PICO 카드의 LED가 깜박이기 시작합니다. main.py 프로그램이 존재하는 한 PICO가 시작될 때마다 시작되고 LED가 깜박입니다.
파일 삭제
ampy 명령을 사용하면 MicroPython FS에 있는 파일을 삭제할 수도 있습니다.
pi@raspberrypi:~/Desktop $ ampy --port /dev/serial0 rm main.py
rm 을 사용 하면 MicroPython FS에서 파일을 삭제할 수 있습니다. PICO에 있는 파일을 나열할 수 있는 mkdir , rmdir 또는 get 과 같은 다른 명령이 여전히 있습니다 .
LED 링 구동
PICO 보드의 온보드 LED를 깜박이는 것 외에도 Pico Python SDK 에 있는 이 예제를 구현하는 것이 흥미로웠습니다. [stextbox id='info' caption='Doc in French']이 기회를 빌어 McHobby의 Dominique와 함께 이 문서를 번역했음을 알려드립니다. Dominique는 또한 보충제를 추가했습니다. 이 링크를 클릭하면 참조할 수 있습니다.[/stextbox]
LED 링
재단과 마찬가지로 Adafruit LED 링을 사용할 수 있습니다. 나는 다른 모델 을 사용 했고 5로 판매되고 조금 더 저렴합니다. 핀아웃은 다르지만 특별한 문제를 일으키지 않습니다.
UART를 통해 Raspberry Pi 4와 Raspberry Pi PICO 카드 간의 링크를 유지했습니다.
LED 링은 PICO 보드의 3.3v에 의해 전원이 공급되고 제어 신호는 PICO 보드의 GPIO 6(핀 9)에서 제공됩니다. 이 프로그램은 LED의 수와 사용된 포트에 대해 구성할 수 있습니다. 이 링크를 클릭하면 LED_RGB.py 파일을 다운로드할 수 있습니다 . 파일이 포함된 폴더(일반적으로 Raspberry Pi OS로 다운로드)로 이동하여 압축을 풉니다. LED_RGB.py 파일을 얻습니다. 이 프로그램을 FS MicroPython에 넣습니다.
ampy --port /dev/serial0 put LED_RGB.py
그런 다음 실행
ampy --port /dev/serial0 run LED_RGB.py
링의 LED 색상이 변경되는 것을 확인해야 합니다.
결론
이 새로운 Raspberry Pi PICO 보드를 통해 Raspberry Pi Foundation은 마이크로컨트롤러와 MicroPython의 세계로 들어서고 있습니다. 당신은 관대해야 하고 고약을 닦는 데 동의해야 합니다. 하지만 여러분은 이 분야의 라즈베리 파이처럼 이 흥미진진한 세계를 발견할 수 있을 것입니다.
Raspberry Pi가 가져온 혁명과 비즈니스 세계로의 진입을 따라갈 때 PICO 카드가 궁극적으로 마이크로 컨트롤러를 기반으로 하는 표준화된 솔루션 개발에 영향을 미칠 것이라고 상상할 수 있습니다. 약 €5의 최소 비용으로 많은 프로젝트에 이 PICO 카드를 장착할 수 있습니다...
가능한 개발에서 카드에 사용 가능한 공간이 주어지면 Raspberry Pi를 장착하는 것과 같은 WiFi/Bluetooth 회로를 보게 될 것입니다. 우리는 다음 버전을 기다리고 있습니다.
재단에서 발행하고 Dominique(McHobby) 및 François(framboise314)가 번역한 문서의 프랑스어 PDF 버전은 여기에서 찾을 수 있습니다.
제작자는 여전히 많은 아이디어를 가지고 있을 것입니다!
Hackspace Magazine 특별 PICO in English
출처
https://datasheets.raspberrypi.org/pico/sdk/pico_python_sdk.pdf https://www.raspberrypi.org/documentation/pico/getting-started/ https://hackspace.raspberrypi.org/books/micropython-pico/pdf/download http://df.mchobby.be/RASPBERRY-PICO/Python_SDK_FR.pdf https://blog.glugmvit.com/getting-started-with-ampy/
참고
Raspberry Pi Pico and Pico W Documentation
라즈베리파이 pico 연결 Python 코드 실행 윈도우
'개발자 > 라즈베리파이4' 카테고리의 다른 글
라즈베리파이 FND Flexible Numeric Display 제어 (4) | 2022.08.31 |
---|---|
라즈베리파이 FAN 제어 실습 코드 (1) | 2022.08.30 |
라즈베리파이 부저 제어 (0) | 2022.08.29 |
라즈베리파이 음성 녹음 재생 모듈 (1) | 2022.08.26 |
라즈베리파이4 액츄에이터 7종 제어 C 언어 (0) | 2022.06.29 |
라즈베리파이4 led bar 실습 코드 (1) | 2022.06.27 |
라즈베리파이4 rgb led 코드 (1) | 2022.06.23 |
라즈베리파이 4 서보 모터 실습 코드 (1) | 2022.06.22 |
더욱 좋은 정보를 제공하겠습니다.~ ^^