ข้ามไปที่เนื้อหาหลัก

ssh aiyprojects-xxxx.img




กูเกิ้ลทำโครงการแรกกับ magpi เป็น voice kit
https://aiyprojects.withgoogle.com/voice/

โหลด อิมเมจไฟล์มาเขียนใส่ SD

ใส่ไฟล์ ชื่อ ssh ไม่ต้องมีนามสกุลที่พาร์ติชั่น boot

เสียบสาย Cat 5/6 สแกนไอพี แล้ว ssh -X pi@ip พาสเวิร์ด raspberry เข้าไปได้เลย

--------------------------------------------------------
เสียง

ใช้ USB Audio Device
ดูว่าเจอไหม  cat /proc/asound/cards หรือ lsusb

ดูซาวการ์ดทั้งหมด arecord --list-devices หรือ arecord -L

ปรับ alsamixer

ลองเล่น
aplay -D plughw:1 /usr/share/scratch/Media/Sounds/Vocals/Singer1.wav

plughw:1 , หมายเลขการ์ด

ลองบันทึก
arecord -D plughw:1 --duration=10 -f cd -vv ~/rectest.wav
แล้วเล่น aplay -D plughw:1 ~/rectest.wav

-- ไม่จำเป็นต้องทำ--
บันทึกค่า sudo alsactl store 1

ถ้าติดก็ 
sudo touch /root/.Xauthority

 xauth list $DISPLAY 
จะเห็นประมาณ 
raspberrypi/unix:10  MIT-MAGIC-COOKIE-1  b69e75fb19b0ac6f3d3a06d777107a03

แล้ว
xauth add raspberrypi/unix:10  MIT-MAGIC-COOKIE-1  b69e75fb19b0ac6f3d3a06d777107a03

หรือ อ่านเพิ่มที่นี่ ทำผ่าน vnc  ง่ายกว่า - ไอคอนราสเบอรี่ > preference > audio

--------------------------------------------------------
ทดสอบ webcam
ใช้ Macnus มีไมค์ด้วย
sudo apt-get install fswebcam
แล้ว
fswebcam image.jpg

--------------------------------------------------------
เอาให้แน่ใจว่ามี VNC Server แล้ว

sudo apt-get update
sudo apt-get install realvnc-vnc-server realvnc-vnc-viewer

เปิดใช้
sudo raspi-config

Interfacing Options > VNC > Yes.

reboot

ต่อเข้าไปด้วยโปรแกรม
https://www.realvnc.com/download/viewer/
user/password = pi/raspberry

--------------------------------------------------------
check_audio

ถ้า เล่นคำสั่งนี้ได้
aplay -D plughw:1 /usr/share/sounds/alsa/Front_Center.wav


ก็แก้
src/audio.py

จาก parser.add_argument('-I', '--input-device', default='default'
เป็น
parser.add_argument('-I', '--input-device', default='plughw:1'

จาก parser.add_argument('-O', '--output-device', default='default',
เป็น
parser.add_argument('-O', '--output-device', default='plughw:1',


แก้ใน src/main.py ด้วย

--------------------------------------------------------
สวิตช์และไฟแอลอีดี

Press the button on GPIO 23 - ต่อเข้าสวิตลงกราวด์ได้เลย (16-14)
GPIO pin for the LED (default: 25) - ต่อแอลอีดีใส่ตัวต้านทานลงกราวด์ได้เลย (22-20)


เล่นแบบไม่ใช้ปุ่ม ไม่ใส่หลอดแอลอีดี ดูจอและ ให้เสียงปรบมือแทน VNC เข้าไป คลิก dev_terminal
พิมพ์ src/main.py -T clap

ปล ทดสอบกับ pi 2

รูปจาก az835927.vo.msecnd.net

คุยอะไรดี
Talk to your Google Assistant 
The complete list of Google Home commands so far


เพิ่มฟังวิทยุออนไล์ซักหน่อย
sudo apt-get update
sudo apt-get install mpd mpc

แก้
sudo nano /etc/mpd.conf
audio_output {
        type            "alsa"
        name            "USB SOUND CARD"
        device          "hw:1"  # optional

รีสตาร์ท
sudo /etc/init.d/mpd restart

ใส่สถานีที่อยากฟัง เช่น
mpc add http://relay3.slayradio.org:8000/
หรือ ดูที่ http://www.shoutcast.com/

เล่น
mpc play

หยุด
mpc stop

บันทึกสถานี
mpc save my_playlist
แก้
sudo nano /var/lib/mpd/playlists/my_playlist.m3u
โหลด
mpc load my_playlist
อื่นๆ
mpc help


--------------------------------------------------------
เปิดใช้ snd_bcm2835 เพื่อใช้ฟังวิทยุออนไลน์

sudo nano /boot/config.txt
เอา # ของ audio ออก

sudo modprobe snd_bcm2835
echo 'snd_bcm2835' >> /etc/modules หรือ
echo "snd-bcm2835" > /etc/modules-load.d/snd-bcm2835.conf

amixer cset numid=3 n

n Analog=1 HDMI=2 (Auto=0 Not recommended)

แก้
sudo nano /etc/mpd.conf
audio_output {
        type            "alsa"
        name            "USB SOUND CARD"
        device          "hw:0,0"  # optional

เพิ่ม
sudo nano /etc/modprobe.d/alsa-base.conf
options snd_soc_googlevoicehat_soundcard index=0
options snd_usb_audio index=1
options snd_bcm2835 index=2

sudo reboot now
แต่จะได้ snd_bcm2835 = 0 ก็ดีเพราะไม่ได้ใช้ voicehat อยู่แล้ว

--------------------------------------------------------
เพิ่ม action ขำๆ
nano src/action.py


เพิ่มก่อน Maker!
# mpd mpc
class mpcPlay():
    def run(self, voice_command):
        try:
            logging.info("Action: %s", voice_command)
            subprocess.call('mpc play', shell=True)
        except:
            logging.info("mpc Error")
            pass

class mpcStop():
    def run(self, voice_command):
        try:
            logging.info("Action: %s", voice_command)
            subprocess.call('mpc stop', shell=True)
        except:
            logging.info("mpc Error")
            pass

class mpcNext():
    def run(self, voice_command):
        try:
            logging.info("Action: %s", voice_command)
            subprocess.call('mpc next', shell=True)
        except:
            logging.info("mpc Error")
            pass

class mpcPrev():
    def run(self, voice_command):
        try:
            logging.info("Action: %s", voice_command)
            subprocess.call('mpc prev', shell=True)
        except:
            logging.info("mpc Error")
            pass

class shutDown():
    def run(self, voice_command):
        try:
            logging.info("Action: %s", voice_command)
            subprocess.call('sudo shutdown now', shell=True)
        except:
            logging.info("can not shutdown")
            pass

แล้วเพิ่ม ใน def make_actor(say):
    actor.add_keyword(_('turn on radio'), mpcPlay())
    actor.add_keyword(_('turn off radio'), mpcStop())
    actor.add_keyword(_('next station'), mpcNext())
    actor.add_keyword(_('last station'), mpcPrev())    ## ใช้ previous ได้เป็น PBS เลยใช้ last
    actor.add_keyword(_('shut down'), shutDown())

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

youtube-dl

เนื่องจากชอบการใช้ youtube-dl โหลดคลิปจาก ยูทูป มาไว้ดูจึงลงไว้ใน pi ด้วย sudo apt-get update sudo apt-get install youtube-dl การใช้งานก็ youtube-dl  url youtube-dl -cit playlist-url youtube-dl -cit -a file_name_in_which_you_paste_URL_list เช่น youtube-dl https://youtu.be/Vz5l886eptw อื่นๆก็ youtube-dl -h ถ้าใช้แอนดรอย ก็ทำ hotspot หรือ tethering ลงแอพ NetworkMapper ติดไบนารี่เพิ่มใช้ nmap เพื่อแสกนหา ip ของ pi เช่น 192.168.42.0/24 ลงแอพแนว Terminal เพื่อใช้คำสั่ง ifconfig ดู ip ก่อนก็ได้ เนื่องจากเปิดใช้ vnc ใน pi ก็ลงแอพ vnc viewer ต่อเข้าไปใช้ terminal ของ pi โหลดยูทูปได้เลย