简体   繁体   中英

How to run Google Assistant library (on AIY kit), upon startup of Raspberry Pi?

We set up a voice kit using Raspberry Pi (using "the MagPi essentials AIY Projects" manual). We are able to enable Google Assistant using the command "src/assistant_library_demo.py" in the dev terminal, after Raspberry Pi starts up. We would like to embed the voice kit in a stuffed animal with a portable power supply (ie, used to charge cell phone on the go). But when the portable power supply is charged, the Raspberry Pi resets. That requires us to go back into the Raspberry Pi, open the dev terminal, and run the Google Assistant file. My question: Is it possible to run a startup script that automatically runs Google Assistant upon Raspberry Pi starting up? How to do this?

I ended up creating a crontab job after a 10 second wait. Starting right at boot didn't give it enough time for the internet to connect fully.

In terminal type:

crontab -e

Choose an option if it asks how you want to open/edit the file. Then at the bottom put:

@reboot sleep 10 && /home/pi/pathtofile > /home/pi/cronlog 2>&1

Save the file and reboot or pull the cable out and plug it back in. The cronlog helped me troubleshoot this whole process and get feedback on why it didn't work.

Take a look at this page. It tells you how to set up a service which will run automatically.

If the link has gone bad, here is a short explanation of it:

Create a file called my_assistant.service in the src directory, and put in the following code

[Unit]
Description=My awesome assistant app

[Service]
Environment=XDG_RUNTIME_DIR=/run/user/1000
ExecStart=/bin/bash -c 'python3 -u src/my_assistant.py'
WorkingDirectory=/home/pi/AIY-projects-python
Restart=always
User=pi

[Install]
WantedBy=multi-user.target

Where the file says src/my_assistant.py , replace my_assistant with your program's filename. Now go to the folder that file the .sevice file is in, and run the command sudo mv my_assistant.service /lib/systemd/system/ . This code moves the file to the services folder. Now you can run the following commands to change the service:

Enable the service- sudo systemctl enable my_assistant.service

Disable it- sudo systemctl disable my_assistant.service

Start it (just runs it once, enabling makes it run on startup)- sudo service my_assistant start

Stop it- sudo service my_assistant stop

See the logs, when the program was started and if an error occurred- sudo service my_assistant status

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM