본문 바로가기
프로젝트

라즈베리파이 피코와 베이스보드를 이용한 카운터기

by 땜블리 2023. 4. 19.
728x90
반응형
SMALL

안녕하세요 땜블리 입니다.

라즈베리파이 피코 베이직 트레이닝 보드를 이용한 카운터 만들기 실습을 진행 하겠습니다.

베이직 트레이닝 보드는 아래에서 확인이 가능합니다.

https://ttcw.tistory.com/4

 

라즈베리파이 피코 베이직 트레이닝보드 구성

라즈베리파이 피코 보드의 펌웨어실습을 위한 베이직 트레이닝보드를 소개 합니다. 현재 네이버 스마트스토어에서 판매가 진행되고 있습니다. 라즈베리파이 피코 베이직 트레이닝 보드 라즈베

ttcw.tistory.com

카운터기는 일정한 기간 동안 물건이나 사람 등의 수를 세는 도구입니다.

주로 공장, 대규모 스포츠 경기, 상점 , 놀이공원 등에서 이용됩니다.

일반적으로 카운터기는 물건이나 사람이 지나갈 때마다 기계적인 카운팅이 이루어지며, 그 결과가 숫자로 나타납니다.

카운터기는 기계식, 전자식, 디지털식 등 다양한 종류가 있습니다.

기본적으로 0부터 시작하여 발생하는 횟수를 측정하여 기록합니다.

이 카운터기를 베이직 트레이닝 보드를 이용하여 만들어 보겠습니다.

각 사용방법은 아래 링크를 이용하시면 됩니다.

버튼 사용방법은 아래 사이트를 확인하시며면 됩니다.

https://ttcw.tistory.com/37

 

03. Circuit 파이썬 라즈베리파이 피코 W 스위치 제어

안녕하세요 땜블리 입니다. 라즈베리파이 피코 베이직 트레이닝 보드를 이용한 스위치 제어 실습을 진행 하겠습니다. 베이직 트레이닝 보드는 아래에서 확인이 가능합니다. https://ttcw.tistory.com/4

ttcw.tistory.com

OLED 사용방법은 아래 사이트를 확인 하시면 됩니다.

https://ttcw.tistory.com/45

 

10. Circuit 파이썬 라즈베리파 피코 W OLED 제어

안녕하세요 땜블리 입니다. 라즈베리파이 피코 베이직 트레이닝 보드를 이용한 OLED제어를 진행 하겠습니다. 베이직 트레이닝 보드는 아래에서 확인이 가능합니다. https://ttcw.tistory.com/4 라즈베리

ttcw.tistory.com

다음은 프로젝트 실습 구성도입니다.

아주 간단하게 아래와 같이 버튼을 이용하여 카운터와 초기화를 하며 OLED로 디스플레이 해줍니다.

다음은 위 구성도를 구현하게 될 메인 소스 입니다.

code.py

import time
import board
import analogio
import digitalio
import simpleio
import adafruit_ssd1306
import busio

# i2c설정
i2c = busio.I2C(board.GP15, board.GP14)
oled = adafruit_ssd1306.SSD1306_I2C(128, 64, i2c, addr=0x3c)

# 초기화
oled.fill(1)
oled.show()
time.sleep(1)
oled.fill(0)
oled.show()

button = digitalio.DigitalInOut(board.GP22)
button.direction = digitalio.Direction.INPUT
button.pull = digitalio.Pull.UP

counter = 0
start_time = 0

while True:
    
     if not button.value:
     # button is pressed, start counting time
         start_time = time.monotonic()
         while not button.value:
         # keep waiting while the button is held down
            pass
         # button was released, calculate duration of press
         press_duration = time.monotonic() - start_time
         if press_duration < 0.5:
           print("Short press")
           counter += 1
           oled.fill(0)
           oled.text(f"Counter: {counter}", 0, 0,1)
           oled.show()
          
         else:
           print("Long press")
           counter = 0
           oled.fill(0)
           oled.text("Counter initialized", 0, 0,1)
           oled.show()

다은은 위 코드를 이용한 결과 영상입니다.

반응형

 

728x90
반응형
LIST

댓글