HAN

3 minute read

Đây là loa thông minh DIY dựa trên dự án AIY của Google. Mình đã cài đặt thành công lên Orange Pi Zero và hoàn thiện với vỏ hộp nhỏ gọn.

Chuẩn bị

Để DIY mình cần những thứ sau:

Một lưu ý quan trọng nhiều bạn đã gặp là board hoạt động chập chờn hoặc không khởi động được. Cái này cần dùng nguồn thật tốt nhé. Nguồn thường thường sẽ không đủ dòng và gây ra các vấn đề bất ổn.

Lắp ráp loa và hàn Led

Các bạn ráp theo ảnh bên:

  1. đèn LED nối đúng vào hai chân 25 và 26 trên board Orange Pi Zero
  2. Nguồn cấp 3v3 cho mạch tăng âm, và câu line out L trên board mở rộng vào mạch tăng âm

Mạch tăng cần thiết phải mắc thêm tụ lọc nguồn để không bị rè. Các bạn dùng tụ có F càng lớn thì càng tốt (thực tế mình dùng tụ )

Ghi file ảnh và tạo project trên google cloud

  1. Sau khi tải về file ảnh, các bạn dùng phần mềm [Balena Eatcher (https://www.balena.io/etcher/) để ghi ra thẻ nhớ
  2. Làm theo đúng 17 bước hướng dẫn này https://aiyprojects.withgoogle.com/voice/#google-assistant--get-credentials để có được file assistant.js
  3. Tạo hotword ở trang https://snowboy.kitt.ai/ sau đó đổi tên thành tieunhi.pmdl (hoặc đặt tên bất kỳ rồi sửa lại trong file start_assistant.sh)
  4. Copy 2 file assistant.json và tieunhi.pmdl vào orange pi bằng lệnh sau:
    scp assistant.json tieunhi.pmdl [email protected]:/root/
    Với 192.168.1.x là địa chỉ ip của Orange Pi Zero
  5. SSH vào Orange Pi Zero để làm tiếp các bước dưới

Test mic và loa

Dùng lệnh này để ghi âm trong 5 giây

arecord --format=S16_LE --duration=5 --rate=16000 --file-type=raw out.raw

Sau đó phát lại ra loa để kiểm tra

aplay --format=S16_LE --rate=16000 out.raw
Nếu mọi thứ đều ổn thì qua bước tiếp nha :)

Chạy & cấp quyền lần đầu

Dùng lệnh này để chạy lần đầu

./start_assistant.sh
Một đường dẫn sẽ xuất hiện, hãy copy và dán vào trình duyệt. Sau đó cấp quyền, nếu lỗi cấp quyền trong cloud.google kiểm tra lại mục OAuth consent screen => Publishing status có đang public ko nhé!

Sau khi cấp quyền xong thì được một token, hãy copy và dán lại vào chỗ vừa copy url là hoàn thành nhé

Chạy service tự động

Sau khi chạy thành công lần đầu thì mới bật service lên để chạy tự động mỗi khi cấp nguồn cho Orange Pi Zero nhé Các bạn dùng lệnh này để bật service tạo sẵn lên

systemctl enable assistant.service
Sau đó dùng lệnh này để chạy
systemctl start assistant.service

Nếu không có file assistant.service có thể tạo bằng lệnh sau:

nano /lib/systemd/system/assistant.service
Sau đó dán nội dung bên dưới vào
[Unit]
Description=Google Assistant
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
ExecStart=/bin/bash /root/start_assistant.sh
Restart=on-abort
User=root
Group=root

[Install]
WantedBy=multi-user.target
Cuối cùng ấn Ctrl+x để thoát nhớ chọn Y để nó lưu lại nhé!

Video hướng dẫn