Introduction
13.3inch Magic Mirror, Voice Assistant, Touch Control, Raspberry Pi 3A+ Inside
Features
- 13.3inch IPS screen,1920x1080 high resolution
- Embed Raspberry Pi 3A+ as controller
- One-way mirror, can display news, weather and time.
- Toughened glass capacitive touch panel, 6H hardness, supports up to 10-points touch
- Embedded ferrite Hi-Fi speaker
- Embedded Microphone And Speaker, Adopts Snowboy Hotword Detection Engine
- 75x75mm spacing mounting holes (M4 screw hole) for general wall mount
- Comes with 75° tilt angle stand
User Guide
To use the Magic mirror, you can use the pre-configured image which we provide or configure it yourself with the original Raspbian image.
Method 1. Pre-configured image
- 1. Download the pre-configured image and write it to your SD card
- 2. Add the following lines to wpa_supplicat.conf files in the BOOT directory. (if you didn't find the files, create it)
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=US
network={
ssid="your_real_wifi_ssid"
psk="your_real_password"
}
Note: you need to change your_real_wifi_ssid and your_real_password" to the real ssid and password
- 3. Inset the card to Raspberry Pi and power on it
Method 2. Configure image manually
- 1. Write Raspbian image
- Download the lasted Raspbian image from the Rasberry Pi website and write it to an empty micro SD card.
- Create a new txt file under the BOOT directory of micro SD card and name it as SSH.
- Modify config.txt file which is located at BOOT directory, add the following lines to config.txt file
hdmi_group=2
hdmi_mode=82
hdmi_cvt 1920 1080 60 6 0 0 0
- Save and insert the micro SD card to Raspberry Pi.
- Connect the Magic mirror to network and power on Raspberry Pi.
- After booting, you can access Raspberry Pi via SSH, or directly connect keyboard and mouse.
- 2. Install WM8960 sound card driver
- Open the terminal and use the following commands to install
git clone https://github.com/waveshare/WM8960-Audio-HAT
cd WM8960-Audio-HAT
sudo ./install.sh
- Modify config.txt file, remove the following line from the file or comment it.
#dtparam=audio=on
- Then reboot Raspberry Pi
sudo reboot
- After rebooting, check the driver by the following command
sudo dkms status
- If you can get the information as below, it means that the driver was installed successfully.
wm8960-soundcard, 1.0, 4.19.58-v7l+, armv7l: installed
- Test the sound card
pi@raspberrypi:~ $ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
- Test recording: arecord -l
pi@raspberrypi:~ $ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: wm8960soundcard [wm8960-soundcard], device 0: bcm2835-i2s-wm8960-hifi wm8960-hifi-0 []
Subdevices: 1/1
Subdevice #0: subdevice #0
- 3. Install Magic Mirror driver
- Open terminal and type the following commands
curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
sudo apt install -y nodejs
git clone https://github.com/MichMich/MagicMirror
cd MagicMirror/
npm install
- After installing, run the command to display
DISPLAY=:0 npm start
- Install MMM-VoiceAssistant model and display
cd ~/MagicMirror/modules
git clone https://github.com/waveshare/MMM-VoiceAssistant.git
cd MMM-VoiceAssistant
cp config/config.js.en ~/MagicMirror/config/config.js #显示英文
#cp config/config.js.cn ~/MagicMirror/config/config.js #显示中文
cd ~/MagicMirror
DISPLAY=:0 npm star
- 4. Install Python3 virtual environment
sudo apt-get update
sudo apt-get install python3-dev python3-venv
python3 -m venv env
env/bin/python -m pip install --upgrade pip setuptools wheel
source env/bin/activate
- Note: The following steps should be take in the virtual environment, if you close the terminal and restart it, you should use the command below to enter the environment again firstly
source ~/env/bin/activate
- 5. Install snowboy
- Install libraries
sudo apt-get install swig
sudo apt-get install libatlas-base-dev
sudo apt-get install portaudio19-dev
sudo apt-get install flac
pip3 install PyAudio
pip3 install SpeechRecognition
- Download snowboy
git clone https://github.com/Kitt-AI/snowboy.git
cd snowboy/swig/Python3
make
cd ../../examples/Python3
- Modify snowbiydecoder.py file. Change from.import snowboydetect to import snowboydetect. Save and enable snowboy
cd ~/snowboy/examples/Python3
python3 demo.py resources/models/smart_mirror.umdl
- Try to say smart mirror, you will hear ding and the information below are printed on the mirror
INFO:snowboy:Keyword 1 detected at time: 2019-12-03 11:30:16
- 6. Install Google Assistant Service
- Create .asoundrc file in /home/pi directory (the user directory)
nano .asoundrc
- Add the following lines to the .asoundrc file
pcm.!default {
type asym
capture.pcm "mic"
playback.pcm "speaker"
}
pcm.mic {
type plug
slave {
pcm "hw:0,0"
}
}
pcm.speaker {
type plug
slave {
pcm "hw:0,0"
}
}
- Accoding to the official guide to install Google Assistant Service
- Please follow the third step of the official guide to configure and create OAuth Client ID JSON file. Don't forget to copy the JSON file to your Raspberry Pi.
- Following the fourth step of the guide to register device model
- Install Google Assistant SDK
(env) $ sudo apt-get install portaudio19-dev libffi-dev libssl-dev
(env) $ python -m pip install --upgrade google-assistant-sdk[samples]
- Authorize model
(env) $ python -m pip install --upgrade google-auth-oauthlib[tool]
- Genegrate credential
(env) $ google-oauthlib-tool --scope https://www.googleapis.com/auth/assistant-sdk-prototype \
--save --headless --client-secrets /path/to/client_secret_ client-id .json
- Then you will get an URL, please copy it and open it on browser of your PC.
Please visit this URL to authorize this application: https://...
- Go to the URL, you are asked to log in your Google Account and get the authorization code by following guides, Copy the code to the terminal
Please go to this URL: https://...
Enter the authorization code:
- If the authorization process is done successfully, you will get the information as below.
credentials saved: /path/to/.config/google-oauthlib-tool/credentials.json
- Use the following commandto test.
googlesamples-assistant-pushtotalk --project-id my-dev-project --device-model-id my-model
- Note: my-dev-project is the Google Could Platform ID of Actions Console porject you created. You need to find the project ID in Actions Console. my-model is the device model name you create
- Press Enter, and try to ask something.
- 7. Set auto-run
- Install PM2
sudo npm install -g pm2
- Setup pm2
pm2 startup
- You will get informatin below, please copy the command and run it on terminal
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u pi --hp /home/pi
- Run Magic mirror by PM2
cd MagicMirror/modules/MMM-VoiceAssistant/pi
pm2 start mm.sh
- Run snowbiy by PM2
cd MagicMirror/modules/MMM-VoiceAssistant/pi
pm2 start snowboy.sh
- Set auto-run
pm2 save
- If you want to disable the sevices, you can aslo use the following command
pm2 stop mm
pm2 stop snowboy
- 8. kepp display lighting all the time
- Modify lightdm.conf
sudo nano /etc/lightdm/lightdm.conf
- Find the line "Xserver-command" below [SeatDefaults] section and change it from
#xserver-command=X
to
xserver-command=X -s 0 -dpms
- Then save and reboot
sudo reboot
- 1. If the wakeup word is unworkable for you, please log in snowboy website
https://snowboy.kitt.ai, And add the new wakeup word.
- Click recording icon to record voice and test if the voice model is workable
- Download the model file and copy it to ~/MagicMirror/modules/MMM-VoiceAssistant/pi direcotory.
- Modify snowboy.sh file
nano snowboy.sh
- Modify the name to the the one you download, for English, you need to modify the snowboy.umdl to the yours
cd ~/MagicMirror/modules/MMM-VoiceAssistant/pi
~/env/bin/python3 demo.py smart_mirror.umdl snowboy.umdl
- 2. Google Assistant Service can only support 500 request every day.
To:
Dear Customers, There may be a lag of several hours before we could process your order, depending on the time difference between your location and ours. Sincerely hoping your understanding!
Email(support)
services01@spotpear.com