Raspberry Pi Pico를 사용한 MicroPython 초보자 가이드

Raspberry Pi Pico를 사용한 MicroPython 초보자 가이드

Raspberry Pi Pico는 Raspberry Pi 제품군의 최신 멤버입니다. 이전에 Raspberry Pi 제품군은 운영 체제를 실행할 수 있는 단일 보드 컴퓨터였습니다.

새로운 RP2040 칩을 기반으로 하는 Raspberry Pi Pico는 MicroPython과 C/C++를 모두 지원합니다. Raspberry Pi Pico를 사용하면 초보자와 애호가가 하드웨어와 연결된 장치를 제어할 수 있습니다. Raspberry Pi Pico의 GPIO 핀은 조명을 어둡게 하고 스위치 상태를 읽는 등의 작업에 사용할 수 있습니다.

마이크로파이썬이란?

마이크로컨트롤러에 대한 프로그래밍은 Arduino 개발 보드 에서 볼 수 있듯이 주로 C 언어로 수행되었습니다 . 그런 다음 2014년에 마이크로컨트롤러를 위한 새로운 프로그래밍 언어인 MicroPython이 발표되었습니다. MicroPython을 사용하면 마이크로컨트롤러의 베어메탈에 Python 코드를 작성할 수 있습니다. 즉, 운영 체제 없이 Python 코드를 작성할 수 있습니다.

Python은 사용자가 프로그래밍 개념 학습에 집중할 수 있도록 하는 초보자 친화적인 고급 프로그래밍 언어입니다. 이것은 MicroPython과 거의 동일합니다.

LED 사용

하드웨어를 제어하기 위해 Pico는 양쪽 가장자리를 따라 일련의 핀과 통신합니다. 이것을 GPIO(범용 입력 출력) 핀이라고 하며 온보드 LED는 GPIO 25에서 찾을 수 있습니다. 이를 제어하려면 먼저 필요한 라이브러리를 가져옵니다 .

import machine

import utime

그런 다음 기계 라이브러리를 사용하여 Pin 함수를 호출하여 Pin 의 GPIO 핀을 처리합니다. 이 경우에는 GPIO 25에서 Pin을 설정하므로 첫 번째 매개변수입니다. 두 번째 매개변수는 입력 핀이 아닌 출력 핀으로 설정합니다. 이렇게 하면 핀이 무엇을 해야 하는지 알 수 있습니다.

onboard_led = machine.Pin(25, machine.Pin.OUT)

계속하려면 다음 코드에서 Pico 에 GPIO 25 의 핀 을 1 또는 '켜기' 로 설정하도록 지시합니다.

while True: onboard_led.value(1)

그러나 아무 일도 일어나지 않는 것처럼 보일 수도 있습니다. Pico는 매우 빠르게 작동하기 때문에 LED가 눈으로 감지할 수 있는 것보다 더 빨리 켜집니다. 이 문제를 해결하려면 utime 라이브러리 에서 sleep 명령을 사용하여 프로그램 속도를 늦춰야 합니다. LED가 켜지고 꺼지는 전체 코드는 아래에서 볼 수 있습니다.

import machine import utime onboard_led = machine.Pin(25, machine.Pin.OUT) while True: onboard_led.value(1) utime.sleep(5) onboard_led.value(0) utime.sleep(5)

LED 켜기 및 끄기 전환

또는 토글 명령을 사용하여 LED를 켜고 끄는 또 다른 방법이 있습니다 .

import machine import utime onboard_led = machine.Pin(25, machine.Pin.OUT) while True: led_onboard.toggle() utime.sleep(5)

이 예에서 토글 명령은 LED 값을 1 및 이후 0으로 설정해야 하는 필요성을 대체합니다. 프로그램이 실행되는 한 여전히 5초 동안 켜진 다음 다시 5초 동안 꺼집니다.

함수 생성

Raspberry Pi Pico를 사용한 MicroPython 초보자 가이드

프로그램이 복잡해짐에 따라 코드 청크를 그룹화하여 일관성을 유지하는 데 도움이 됩니다. 이를 위해 Python과 같은 MicroPython은 함수 사용을 허용합니다. 함수는 특정 작업을 수행하는 관련 명령문의 그룹입니다. 예를 들어 다음 코드에는 printNames 라는 함수 가 정의되어 있습니다.

def printNames: print(“Raspberry Pi 1”) print(“Raspberry Pi 2”) print(“Raspberry Pi 3”) print(“Raspberry Pi 4”) print(“Raspberry Pi Compute Module”) print(“Raspberry Pi 400”) print(“Raspberry Pi Pico”) printNames()

코드의 마지막 줄은 실제로 실행되도록 함수를 호출합니다.

루프

Raspberry Pi Pico를 사용한 MicroPython 초보자 가이드

조건부 논리는 부울 제약 조건이 true 또는 false로 평가되는지 여부에 따라 다른 작업을 수행합니다. 많은 Raspberry Pi Pico 프로젝트 가 이러한 논리적 진술을 기반으로 합니다. 다음 예에서 if-else 문은 print 문을 실행 할지 여부를 결정하는 데 사용됩니다 .

i = 17 def printNames(): if i > 15: print("i is greater than 15!") else: print("i is not greater than 15") printNames()

다음 예에서 for 루프는 범위 함수 와 함께 사용됩니다 . 이러한 루프는 코드 블록을 여러 번 반복하는 데 사용할 수 있습니다.

Raspberry Pi Pico를 사용한 MicroPython 초보자 가이드

이 예에서 print 명령은 sleep 명령을 사용하여 각 명령 사이에 5초의 지연으로 5번 실행됩니다 .

import utime def printNames(): for i in range(5): print("Raspberry Pi Pico") utime.sleep(5) printNames()

아날로그-디지털 변환기(ADC)

볼 수는 없지만 Raspberry Pi Pico에는 내부 아날로그-디지털 변환기가 있습니다. 다음 예에서 전위차계는 ADC 기능이 가능한 GPIO 26의 Raspberry Pi Pico에 연결됩니다.

import machine import utime pot = machine.ADC(26) while True: print(pot.read_u16()) utime.sleep(1)

여기에서 이 ADC 가능 핀을 사용하기 전에 ADC 기능으로 설정해야 합니다. 그런 다음 프로그램이 실행되는 동안 전위차계의 값이 1초마다 인쇄됩니다. ADC가 가능한 Raspberry Pi Pico의 다른 핀에는 GPIO27, 28 및 29가 있습니다.

펄스 폭 변조(Pwm)

마이크로컨트롤러의 디지털 출력은 1 또는 0만 가능합니다. 아날로그 신호를 생성하려면 디지털-아날로그 변환기가 필요합니다. 그러나 다른 방법은 펄스 폭 변조 또는 짧게 PWM을 사용하여 인위적으로 아날로그 신호를 생성하는 것입니다.

디지털 신호를 켜고 끄는 것을 펄스라고 합니다. 펄스 폭을 변조하여 다음 예와 같이 인위적으로 아날로그 신호를 생성합니다.

import machine import utime pot = machine.ADC(26 led = machine.PWM(machine.Pin(21)) led.freq(1000) while True: led.duty_u16(pot.read_u16())

먼저 머신 및 utime 라이브러리를 가져왔습니다. GPIO 핀 21에서 활성화된 PWM 출력으로 onboard_led 라는 개체 가 생성됩니다. 그런 다음 freq 명령을 사용 하여 펄스 폭을 변조하는 주파수를 설정합니다. 전위차계를 돌리면 LED가 한 방향으로 돌리면 더 밝아집니다.

이것은 전위차계의 아날로그 값이 PWM 신호의 듀티 사이클에 대한 값으로 사용되기 때문에 발생하며 0과 65535 사이의 값입니다. 그러나 변환하지 않고 전위차계를 약간 돌리면 이미 LED가 최대 밝기 수준에 도달할 수 있습니다. .

이를 수정하기 위해 전위차계가 맨 끝까지 돌렸을 때만 최대 밝기에 도달하도록 값을 duty_u16 함수 로 변환 합니다. 이 기능은 0에서 1024 사이의 값인 16비트 정수로 변환합니다. 이 값은 Pico의 아날로그 핀에서 받는 것과 동일한 범위의 값입니다.

Raspberry Pi Pico로 더 많은 것을 만드세요

이 기사에서는 Raspberry Pi Pico에서 MicroPython의 기본 명령을 다뤘습니다. 자세한 내용 은 Raspberry Pi Pico를 사용한 MicroPython 프로그래밍 에 대한 공식 문서를 확인하세요 .

Raspberry Pi Pico에 아직 설정되지 않은 경우 Thonny IDE 를 사용하여 MicroPython 코드를 실행하거나 Unicorn CPU 에뮬레이터 를 확인 하여 컴퓨터에서 직접 가상 마이크로 컨트롤러를 실행합니다.


침실을 변화시키는 10가지 DIY 조명 아이디어

침실을 변화시키는 10가지 DIY 조명 아이디어

조명은 장식을 함께 고정시키는 접착제입니다. 그것은 당신의 객실을 매력적인 기능을 강조하여 매일 저녁에 와서 당신이 좋아할 따뜻하고 아늑한 오아시스로 바꿉니다. 가장 좋은 부분? 침실을 밝힐 아주 놀라운 DIY 아이디어가 있기 때문에 돈을 들일 필요조차 없습니다. 다음은 상위 10개입니다.

FDM 프린터로 탁상 미니어처 디자인 및 3D 인쇄

FDM 프린터로 탁상 미니어처 디자인 및 3D 인쇄

D&D 및 Warhammer와 같은 탁상용 게임은 컴퓨터나 콘솔 없이도 양방향 엔터테인먼트를 즐길 수 있는 좋은 방법을 제공합니다.

자동차에 Dashcam을 설치하는 방법

자동차에 Dashcam을 설치하는 방법

대시캠이 있는 경우 장착하는 것이 약간의 귀찮은 일처럼 보일 수 있습니다. 어떤 경우에는 원하는 만큼 간단하지 않지만 차에 대시캠을 설치하는 것은 시간을 투자할 가치가 있습니다.

3D 프린팅 모델을 검색할 수 있는 6가지 최고의 장소

3D 프린팅 모델을 검색할 수 있는 6가지 최고의 장소

3D 프린팅 특허가 만료되면서 업계가 집으로 폭발했습니다.

외장 하드 드라이브에서 데이터를 복구하는 방법

외장 하드 드라이브에서 데이터를 복구하는 방법

외장 하드 드라이브는 속도, 비용 및 편의성으로 인해 점점 더 대중화되었습니다. 그러나 일반 하드 드라이브와 마찬가지로 기계적이든 소프트웨어적이든 동일한 데이터 손실 위험이 있습니다.

집에서 만들 수 있는 DIY 장거리 Wi-Fi 안테나 10가지

집에서 만들 수 있는 DIY 장거리 Wi-Fi 안테나 10가지

최신 Wi-Fi 안테나를 사용하면 ISP 패키지 내에서 가장 빠른 속도를 사용할 수 있지만 상당히 비쌀 수 있습니다. 운 좋게도 DIY 프로젝트에 의존하여 너무 많은 비용을 들이지 않고도 연결 신호를 개선할 수 있습니다.

탁상용 게임을 위한 DIY 주사위 타워를 만드는 방법

탁상용 게임을 위한 DIY 주사위 타워를 만드는 방법

주사위는 수천 년 동안 주변에 있었던 것으로 생각됩니다. 그러나 현재 이 기술을 발전시키거나 혁신하기 위해 수행된 작업은 거의 없습니다. 재료가 바뀌고 주사위를 만드는 방법도 발전했지만, 여전히 원시인처럼 손으로 주사위를 굴리는 데 어려움을 겪고 있습니다.

10 최고의 ESP32 스마트 홈 프로젝트

10 최고의 ESP32 스마트 홈 프로젝트

스마트 홈은 인터넷에 연결된 모든 전화나 컴퓨터에서 가전 제품과 장치를 원격으로 제어할 수 있는 집입니다. 일반적으로 Arduino 또는 ESP32 보드와 같은 마이크로 컨트롤러로 만든 무선 연결 장치를 기반으로 합니다.

PC RAM을 오버클럭하는 방법: 하지만 해야 할까요?

PC RAM을 오버클럭하는 방법: 하지만 해야 할까요?

PC용 RAM을 확보하는 것은 필수입니다. 그러나 최대 용량으로 실행하지 않으면 많은 것을 잃게 됩니다. 모든 단일 프로그램은 더 빠른 액세스를 위해 잠시 동안 데이터를 RAM에 저장합니다. 오버클럭된 RAM을 사용하면 PC의 성능을 높일 수 있습니다.

Raspberry Pi Pico의 11가지 대안

Raspberry Pi Pico의 11가지 대안

Raspberry Pi Pico의 출시는 흥미로웠습니다. Raspberry Pi Foundation은 마침내 이전에 Arduino가 지배했던 취미용 마이크로컨트롤러 시장으로 진출했을 뿐만 아니라 자체 실리콘으로도 이를 수행하고 있었습니다.

침실을 변화시키는 10가지 DIY 조명 아이디어

침실을 변화시키는 10가지 DIY 조명 아이디어

조명은 장식을 함께 고정시키는 접착제입니다. 그것은 당신의 객실을 매력적인 기능을 강조하여 매일 저녁에 와서 당신이 좋아할 따뜻하고 아늑한 오아시스로 바꿉니다. 가장 좋은 부분? 침실을 밝힐 아주 놀라운 DIY 아이디어가 있기 때문에 돈을 들일 필요조차 없습니다. 다음은 상위 10개입니다.

FDM 프린터로 탁상 미니어처 디자인 및 3D 인쇄

FDM 프린터로 탁상 미니어처 디자인 및 3D 인쇄

D&D 및 Warhammer와 같은 탁상용 게임은 컴퓨터나 콘솔 없이도 양방향 엔터테인먼트를 즐길 수 있는 좋은 방법을 제공합니다.

자동차에 Dashcam을 설치하는 방법

자동차에 Dashcam을 설치하는 방법

대시캠이 있는 경우 장착하는 것이 약간의 귀찮은 일처럼 보일 수 있습니다. 어떤 경우에는 원하는 만큼 간단하지 않지만 차에 대시캠을 설치하는 것은 시간을 투자할 가치가 있습니다.

3D 프린팅 모델을 검색할 수 있는 6가지 최고의 장소

3D 프린팅 모델을 검색할 수 있는 6가지 최고의 장소

3D 프린팅 특허가 만료되면서 업계가 집으로 폭발했습니다.

외장 하드 드라이브에서 데이터를 복구하는 방법

외장 하드 드라이브에서 데이터를 복구하는 방법

외장 하드 드라이브는 속도, 비용 및 편의성으로 인해 점점 더 대중화되었습니다. 그러나 일반 하드 드라이브와 마찬가지로 기계적이든 소프트웨어적이든 동일한 데이터 손실 위험이 있습니다.

집에서 만들 수 있는 DIY 장거리 Wi-Fi 안테나 10가지

집에서 만들 수 있는 DIY 장거리 Wi-Fi 안테나 10가지

최신 Wi-Fi 안테나를 사용하면 ISP 패키지 내에서 가장 빠른 속도를 사용할 수 있지만 상당히 비쌀 수 있습니다. 운 좋게도 DIY 프로젝트에 의존하여 너무 많은 비용을 들이지 않고도 연결 신호를 개선할 수 있습니다.

Raspberry Pi Pico를 사용한 MicroPython 초보자 가이드

Raspberry Pi Pico를 사용한 MicroPython 초보자 가이드

Raspberry Pi Pico는 Raspberry Pi 제품군의 최신 멤버입니다. 이전에 Raspberry Pi 제품군은 운영 체제를 실행할 수 있는 단일 보드 컴퓨터였습니다.

탁상용 게임을 위한 DIY 주사위 타워를 만드는 방법

탁상용 게임을 위한 DIY 주사위 타워를 만드는 방법

주사위는 수천 년 동안 주변에 있었던 것으로 생각됩니다. 그러나 현재 이 기술을 발전시키거나 혁신하기 위해 수행된 작업은 거의 없습니다. 재료가 바뀌고 주사위를 만드는 방법도 발전했지만, 여전히 원시인처럼 손으로 주사위를 굴리는 데 어려움을 겪고 있습니다.

10 최고의 ESP32 스마트 홈 프로젝트

10 최고의 ESP32 스마트 홈 프로젝트

스마트 홈은 인터넷에 연결된 모든 전화나 컴퓨터에서 가전 제품과 장치를 원격으로 제어할 수 있는 집입니다. 일반적으로 Arduino 또는 ESP32 보드와 같은 마이크로 컨트롤러로 만든 무선 연결 장치를 기반으로 합니다.

PC RAM을 오버클럭하는 방법: 하지만 해야 할까요?

PC RAM을 오버클럭하는 방법: 하지만 해야 할까요?

PC용 RAM을 확보하는 것은 필수입니다. 그러나 최대 용량으로 실행하지 않으면 많은 것을 잃게 됩니다. 모든 단일 프로그램은 더 빠른 액세스를 위해 잠시 동안 데이터를 RAM에 저장합니다. 오버클럭된 RAM을 사용하면 PC의 성능을 높일 수 있습니다.