# 소프트웨어 파이보의 기능은 **openpibo** 파이썬 패키지로 씁니다. 블록도 이 패키지를 부르는 파이썬 코드로 바뀌어 실행됩니다 ([파이썬 코드] 버튼으로 볼 수 있습니다). 소스는 [GitHub](https://github.com/themakerrobot/openpibo-os.pibo) 에 있습니다(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** 을 보세요. ## 파이썬 코드 작성 ```python from openpibo.<라이브러리 이름> import <클래스 이름> <인스턴스 이름> = <클래스 이름>() <인스턴스 이름>.<메소드 이름>(<인자>) ``` 예) 소리를 재생하고 멈춥니다. ```python 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() ``` 예) 파이보 안에서 목소리를 만들어 말합니다(인터넷 불필요, 한국어·영어 자동). ```python 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) ``` 예) 분류기 화면에서 저장한 모델로 카메라 화면을 분류합니다. ```python 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) ``` ```{note} IDE 에서 실행한 코드는 파이보 안에서 **root** 권한으로 돕니다(카메라·GPIO 등 하드웨어를 쓰기 위해서입니다). ```