Files
cyclop/tools/camera_pretool.prepy
T

32 lines
1.0 KiB
Plaintext
Raw Normal View History

2024-08-17 11:01:59 -05:00
# tools/camera_tool.py
from .base_tool import BaseTool
import picamera
import time
import base64
from io import BytesIO
class CameraTool(BaseTool):
def get_functions(self):
return [{
"name": "take_picture",
"description": "Take a picture using the Raspberry Pi camera",
"parameters": {
"type": "object",
"properties": {},
"required": []
}
}]
def execute(self, function_name, **kwargs):
if function_name == "take_picture":
with picamera.PiCamera() as camera:
camera.resolution = (1024, 768)
camera.start_preview()
# Camera warm-up time
time.sleep(2)
image_stream = BytesIO()
camera.capture(image_stream, 'jpeg')
image_stream.seek(0)
image_base64 = base64.b64encode(image_stream.getvalue()).decode('utf-8')
return f"data:image/jpeg;base64,{image_base64}"