1. Longan Pi 3H开发板基础环境配置
1.1 系统镜像烧录与初始化
拿到Longan Pi 3H开发板后,第一步需要准备合适的系统镜像。根据官方文档推荐,我们选择Debian系统作为基础环境:
- 从Sipeed官网下载最新Debian镜像(当前版本为Debian11-bullseye)
- 使用BalenaEtcher工具将镜像写入至少16GB的MicroSD卡
- 首次启动前需要连接:
- HDMI显示器(支持4K分辨率)
- USB键盘鼠标(通过Type-A接口)
- 5V/2A Type-C电源
首次启动时会自动扩展文件系统,这个过程大约需要3-5分钟。完成后你会看到经典的Debian GNOME桌面环境。
注意:如果使用4K显示器,建议先通过HDMI连接1080p显示器完成初始配置,因为部分4K显示器在默认分辨率下可能出现显示异常。
1.2 网络与基础软件配置
开发板默认启用了SSH服务,我们可以直接通过局域网访问:
ssh sipeed@192.168.x.x # 默认密码:licheepi建议立即执行以下基础配置:
修改默认密码:
passwd sipeed更新软件源并升级系统:
sudo apt update && sudo apt upgrade -y安装必要工具链:
sudo apt install -y git python3-pip vim tmux build-essential \ libopencv-dev libatlas-base-dev libjasper-dev libqtgui4 libqt4-test配置WiFi连接(如果需要):
sudo nmtui # 使用文本界面配置网络
2. Python虚拟环境搭建
2.1 为什么需要虚拟环境
在嵌入式开发中,使用虚拟环境有三大优势:
- 隔离项目依赖,避免不同项目间的库版本冲突
- 方便环境复现和迁移
- 不需要root权限即可安装Python包
2.2 创建专用虚拟环境
我们使用venv模块创建项目专用环境:
python3 -m venv ~/chatgpt_vision source ~/chatgpt_vision/bin/activate激活环境后,提示符前会出现(chatgpt_vision)标记。接下来安装基础依赖:
pip install --upgrade pip setuptools wheel pip install numpy opencv-python-headless pyaudio实测技巧:在ARM平台上安装OpenCV时,使用
headless版本可以节省约40%的安装时间,并减少不必要的GUI依赖。
2.3 关键库的ARM兼容处理
由于Longan Pi 3H使用ARM架构,部分库需要特殊处理:
PyAudio的安装:
sudo apt install -y portaudio19-dev pip install --global-option='build_ext' --global-option='-I/usr/include/alsa' pyaudio加速NumPy运算:
sudo apt install -y libatlas3-base libopenblas-base sudo update-alternatives --config libblas.so.3验证OpenCV安装:
import cv2 print(cv2.__version__) # 应该输出4.5.x
3. 摄像头与音频设备配置
3.1 USB摄像头驱动配置
Longan Pi 3H支持大多数UVC兼容摄像头。连接摄像头后:
检查设备是否被识别:
ls /dev/video* v4l2-ctl --list-devices安装视频工具集:
sudo apt install -y v4l-utils ffmpeg测试摄像头(需要图形界面):
cheese # 或使用guvcview
3.2 音频输入输出配置
开发板支持通过USB声卡或HDMI音频输出:
列出音频设备:
arecord -l # 输入设备 aplay -l # 输出设备配置默认设备(编辑
~/.asoundrc):pcm.!default { type asym playback.pcm "hw:0,0" capture.pcm "hw:1,0" }测试录音与播放:
# 录音测试 arecord -d 5 -f cd test.wav # 播放测试 aplay test.wav
4. ChatGPT API环境准备
4.1 获取API密钥
- 登录OpenAI平台创建API key
- 在开发板上配置环境变量:
echo 'export OPENAI_API_KEY="sk-..."' >> ~/.bashrc source ~/.bashrc
4.2 安装对话库
在虚拟环境中安装最新版openai库:
pip install openai==0.27.8测试API连通性:
import openai response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hello"}] ) print(response.choices[0].message.content)4.3 流式对话实现
为实现实时语音交互,我们需要流式响应:
import openai def chat_with_gpt(prompt): response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": prompt}], stream=True ) for chunk in response: content = chunk['choices'][0].get('delta', {}).get('content') if content: yield content5. 项目结构与系统服务
5.1 创建项目目录
建议采用以下结构:
~/chatgpt_vision/ ├── config/ # 配置文件 ├── lib/ # 自定义模块 │ ├── audio.py # 音频处理 │ ├── vision.py # 视觉处理 │ └── chat.py # 对话逻辑 ├── logs/ # 日志文件 ├── main.py # 主程序 └── requirements.txt5.2 编写系统服务
为了让程序开机自启,创建systemd服务:
sudo tee /etc/systemd/system/chatgpt_vision.service <<EOF [Unit] Description=ChatGPT Vision Service After=network.target [Service] User=sipeed WorkingDirectory=/home/sipeed/chatgpt_vision ExecStart=/home/sipeed/chatgpt_vision/bin/python /home/sipeed/chatgpt_vision/main.py Restart=always [Install] WantedBy=multi-user.target EOF启用服务:
sudo systemctl daemon-reload sudo systemctl enable chatgpt_vision sudo systemctl start chatgpt_vision6. 性能优化技巧
6.1 内存管理
由于开发板内存有限(2GB/4GB),建议:
禁用不必要的服务:
sudo systemctl disable bluetooth.service sudo systemctl disable avahi-daemon.service使用zRAM压缩:
sudo apt install -y zram-config sudo systemctl restart zram-config
6.2 实时性优化
调整CPU调度策略:
sudo apt install -y linux-cpupower sudo cpupower frequency-set -g performance提高USB设备优先级(编辑
/etc/udev/rules.d/99-usb-priority.rules):ACTION=="add", SUBSYSTEM=="usb", KERNEL=="video*", ATTR{priority}="high"
6.3 温度监控
添加温度监控脚本:
import os def get_cpu_temp(): with open('/sys/class/thermal/thermal_zone0/temp', 'r') as f: temp = int(f.read()) / 1000 return temp if get_cpu_temp() > 80: print("警告:CPU温度过高!")7. 常见问题排查
7.1 摄像头无法识别
- 检查电源是否充足(建议使用带外接供电的USB Hub)
- 查看内核日志:
dmesg | grep usb - 尝试降低分辨率:
v4l2-ctl --set-fmt-video=width=640,height=480,pixelformat=YUYV
7.2 音频延迟严重
- 调整缓冲区大小(编辑
/etc/pulse/daemon.conf):default-fragments = 2 default-fragment-size-msec = 5 - 重启pulseaudio:
pulseaudio -k && pulseaudio --start
7.3 API请求超时
- 检查网络连接:
ping api.openai.com - 使用curl测试:
curl -v https://api.openai.com/v1/models - 如有必要,配置HTTP代理:
import openai openai.api_base = "https://your-proxy.com/v1"
8. 开发效率提升
8.1 远程开发配置
- 安装VSCode Remote插件
- 配置SSH连接
- 在本地VSCode中直接编辑远程代码
8.2 自动化测试
创建基础测试脚本tests/test_audio.py:
import unittest from lib.audio import record_audio class TestAudio(unittest.TestCase): def test_record(self): audio = record_audio(duration=2) self.assertGreater(len(audio), 16000) # 16kHz采样率 if __name__ == '__main__': unittest.main()8.3 日志管理
配置结构化日志:
import logging from logging.handlers import RotatingFileHandler logger = logging.getLogger(__name__) handler = RotatingFileHandler( 'logs/app.log', maxBytes=1e6, backupCount=3 ) formatter = logging.Formatter( '%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) handler.setFormatter(formatter) logger.addHandler(handler)9. 硬件资源监控看板
创建简易的资源监控面板:
import psutil import time def monitor(): while True: cpu = psutil.cpu_percent() mem = psutil.virtual_memory().percent temp = get_cpu_temp() print(f"CPU: {cpu}% | MEM: {mem}% | TEMP: {temp}°C") time.sleep(1)10. 安全加固措施
10.1 防火墙配置
sudo apt install -y ufw sudo ufw allow 22 sudo ufw enable10.2 SSH安全
- 修改SSH端口:
sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config - 禁用root登录:
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config - 重启SSH服务:
sudo systemctl restart sshd
10.3 API密钥保护
- 使用环境变量而非硬编码
- 设置密钥文件权限:
chmod 600 ~/.bashrc - 考虑使用密钥管理服务(如HashiCorp Vault)