소프트웨어

파이보의 기능은 openpibo 파이썬 패키지로 씁니다. 블록도 이 패키지를 부르는 파이썬 코드로 바뀌어 실행됩니다 ([파이썬 코드] 버튼으로 볼 수 있습니다). 소스는 GitHub 에 있습니다(AGPL-3.0).

패키지 구성

openpibo
├── audio.py            소리 재생·멈춤·녹음
├── collect.py          위키백과·날씨·뉴스 (인터넷 필요)
├── device.py           눈 LED·배터리·터치·PIR 등 (MCU)
├── motion.py           모터·동작
├── oled.py             OLED 화면
├── pibo_graphics.py    화면용 그림 도구
├── speech.py           목소리 만들기(TTS)·음성 인식(STT)·대화(LLM)
├── usb_uart.py         USB 시리얼
├── utils.py            그 밖의 도구
├── vision_camera.py    카메라·이미지 편집
├── vision_detect.py    사물·QR·포즈·손동작·마커 인식
├── vision_face.py      얼굴 찾기·분석·학습
└── vision_classify.py  분류기 화면에서 가르친 모델 불러오기

클래스·메소드 설명은 왼쪽 PYTHON 을 보세요.

파이썬 코드 작성

from openpibo.<라이브러리 이름> import <클래스 이름>

<인스턴스 이름> = <클래스 이름>()
<인스턴스 이름>.<메소드 이름>(<인자>)

예) 소리를 재생하고 멈춥니다.

from openpibo.audio import Audio
import time

audio = Audio()
audio.play('/home/pi/openpibo-files/audio/system/opening.mp3', volume=80)
time.sleep(3)
audio.stop()

예) 파이보 안에서 목소리를 만들어 말합니다(인터넷 불필요, 한국어·영어 자동).

from openpibo.speech import SpeechOnDevice
from openpibo.audio import Audio

tts = SpeechOnDevice()
tts.tts('안녕하세요! 나는 파이보예요.', filename='/home/pi/hello.wav', voice='f1')
Audio().play('/home/pi/hello.wav', background=False)

예) 분류기 화면에서 저장한 모델로 카메라 화면을 분류합니다.

from openpibo.vision_camera import Camera
from openpibo.vision_classify import CustomClassifier

camera = Camera()
cf = CustomClassifier()
cf.load('과일')                      # /home/pi/mymodel/과일
img = camera.read()
name, probs = cf.predict(img, draw=True)   # 손·얼굴·몸 점과 종류 이름을 img 에 그린다
print(name)
camera.imwrite('/home/pi/result.jpg', img)

참고

IDE 에서 실행한 코드는 파이보 안에서 root 권한으로 돕니다(카메라·GPIO 등 하드웨어를 쓰기 위해서입니다).