본문 바로가기

Raspberry Pi Pico 확장 보드 기능 테스트

by rudals.kim 2022. 4. 20. 댓글 개
반응형
Adafruit CircuitPython 7.2.5 / Raspberry Pi Pico with rp2040 에서 테스트 되었습니다.

 

자체 제작한 라즈베리파이 피코 확장 보드를 테스트를 해 보았습니다.

 

LED 테스트

간단한 GPIO 컨트롤 테스트입니다.

import time
import board
import digitalio

led = digitalio.DigitalInOut(board.GP22)
led.direction = digitalio.Direction.OUTPUT

while True:
    led.value = True
    time.sleep(0.5)
    led.value = False
    time.sleep(0.5)

 

실행해 보면 아래와 같이 LED가 깜박이며 동작됩니다.

 

MicroSD 카드 테스트

MicroSD 카드 테스트는 하나의 게시글로 먼저 테스트되어 여기서는 링크로 대신합니다.

아래 게시글을 참고해 주시기 바랍니다.

 

Raspberry Pi Pico에서 MicroSD 사용하기

Adafruit CircuitPython 7.2.5 / Raspberry Pi Pico with rp2040 에서 테스트 되었습니다. 라즈베리파이 피코용 확장 보드를 사용하여 MicroSD 카드 테스트를 해 보았습니다. Raspberry Pi Pico (W5100S-EVB-Pico)..

rudalskim.tistory.com

 

I2C 테스트

테스트용 코드는 이전 게시글에서 사용했던 소스코드를 사용하였습니다.

 

Raspberry Pi Pico에서 OLED 사용하기 (I2C 사용)

Adafruit CircuitPython 7.2.3 / Raspberry Pi Pico with rp2040 에서 테스트 되었습니다. Raspberry Pi Pico와 SSD1306을 사용하는 OLED를 I2C로 연결하여 동작 테스트를 해 보았습니다. 검색해 보니 많은 게시글..

rudalskim.tistory.com

I2C0에 OLED를 연결하여 테스트해 보니 잘 동작됩니다.

 

Motor Driver 테스트

DC 모터 드라이버를 테스트해 보았습니다.

DRV8833을 컨트롤하는 방법 중 가장 기본적으로 IN1/2/3/4 포트를 high/low 값으로 설정함으로써 정/역회전을 테스트할 수 있습니다. 이 방법으로 먼저 동작 테스트를 한 후 GP6번 포트만 PWM 컨트롤을 하여 천천히 <-> 빠르게 모터를 회전하도록 소스를 조금 수정해 보았습니다. 수정된 테스트 코드는 아래와 같습니다.

import os
import time
import busio
import board
import digitalio
import pwmio

# motor_a0 = digitalio.DigitalInOut(board.GP6)
# motor_a0.direction = digitalio.Direction.OUTPUT
# motor_a0.value = False

motor_a1 = digitalio.DigitalInOut(board.GP7)
motor_a1.direction = digitalio.Direction.OUTPUT
motor_a1.value = False

motor_b0 = digitalio.DigitalInOut(board.GP8)
motor_b0.direction = digitalio.Direction.OUTPUT
motor_b0.value = False

motor_b1 = digitalio.DigitalInOut(board.GP9)
motor_b1.direction = digitalio.Direction.OUTPUT
motor_b1.value = False

left = pwmio.PWMOut(board.GP6, frequency=1000)

while True:
    for duty in range(0, 65535, 100):
        left.duty_cycle = duty        
    time.sleep(1)
    
    for duty in range(65535, 0, -100):
        left.duty_cycle = duty
    time.sleep(1)

 

실행해 보면 아래와 같이 모터가 고속/저속을 반복하며 회전됩니다.

 

WS2812 네오픽셀 테스트

이전에 테스트된 게시글과 동일한 코드를 사용하여 테스트되었습니다.

 

Raspberry Pi Pico에서 neopixel 사용하기

Adafruit CircuitPython 7.2.0 / Raspberry Pi Pico with rp2040 에서 테스트 되었습니다. CirucuitPython에서 neopixel 라이브러리를 제공해 주고 있어서 쉽게 Raspberry Pi Pico를 사용하여 neopixel을 사용할..

rudalskim.tistory.com

테스트 코드를 실행해 보니 아래와 같이 잘 동작되네요.

 

UART 테스트

이전에 테스트된 게시글의 코드를 사용하여 테스트해 보았습니다.

 

Raspberry Pi Pico에서 UART 사용하기

Adafruit CircuitPython 7.2.3 / Raspberry Pi Pico with rp2040 에서 테스트 되었습니다. 라즈베리파이 피코 보드를 사용하여 UART 테스트를 해 보았습니다. 회로는 USB to Serial 보드와 TX/RX/GND선 3개의 라인..

rudalskim.tistory.com

회로는 아래와 같이 구성하였습니다.

이전 게시글과 마찬가지로 정상적인 read/write 동작이 잘 됩니다.

개인적으로 필요하다고 생각되는 몇 가지 기능만 추가하여 테스트하기 쉽도록 라즈베리파이 피코용 확장 보드를 제작해 보았는데 모두 다 정상적으로 동작되는 것 같습니다. 시간적인 여유가 좀 되면 라즈베리파이 피코 사이트에서 제공되는 하드웨어 디자인을 참고하여 오디오/비디오 기능들도 추가해 봐야겠습니다.

반응형

댓글