This project was coded in Python3 using Linux on a Raspberry Pi 4. The program aims to present the basic functionality of the Bot-o-Mat using Amazon Alexa. Ngrok allows the localhost server to be tunneled out and used as an endpoint by Amazon Alexa Skills.
The code runs within the localhost server and tunnels successfully to the alexa skills build; however, once called, ngrok displays a "500 internal server eroror."
To-Do:
- Add responsive tasks for the robots to do
- Read out updated task list as tasks are completed
Project is created with:
- Flask
- Flask-ask
- Ngrok
- Python or Python3
- Register for an AWS Account
- Register for an Amazon Developer Account
-
Clone the repository
$ git clone https://github.com/ithaker/BOT-O-MAT/
-
Install Flask
pip install flask
-
Install Flask-Ask
pip install flask-ask
-
Install Ngrok and follow the installation guide, extracting the zip file into the project folder
-
Within the alexa developer console, Create a Skill
-
Title the skill as you would like
-
Set up a Skill Invocation Name (the phrase that will start the project)
-
Adding Intents: The project is dependent on specific intents in order to operate. Thankfully, the alexa developer console has premade intents. Click "Add Intent" and activate the following:
- AMAZON.YesIntent
- AMAZON.NoIntent
- Custom "NameIntent"
- Within the Slot Type select "AMAZON.US_FIRST_NAME"
-
Tunneling
- run the program
- run ngrok
./ngrok http 5000
- Under "Endpoint," paste the https Forwarding URL
- Add "/" to the end of the url depending on the extension specified in line 6
-
"Build" the skill and put the skill testing in "Development" mode
-
Test the application within the developer console or on your Amazon Echo
Robot completes tasks and removes them from the list when they are done (i.e. enough time has passed since starting the task).
Tasks have a description and an estimated time to complete.
[
{
description: 'do the dishes',
eta: 1000,
},{
description: 'sweep the house',
eta: 3000,
},{
description: 'do the laundry',
eta: 10000,
},{
description: 'take out the recycling',
eta: 4000,
},{
description: 'make a sammich',
eta: 7000,
},{
description: 'mow the lawn',
eta: 20000,
},{
description: 'rake the leaves',
eta: 18000,
},{
description: 'give the dog a bath',
eta: 14500,
},{
description: 'bake some cookies',
eta: 8000,
},{
description: 'wash the car',
eta: 20000,
},
]
{
UNIPEDAL: 'Unipedal',
BIPEDAL: 'Bipedal',
QUADRUPEDAL: 'Quadrupedal',
ARACHNID: 'Arachnid',
RADIAL: 'Radial',
AERONAUTICAL: 'Aeronautical'
}
- Scott Hoffman https://github.com/scottshane
- Olivia Osby https://github.com/oosby
- Ishan Thaker https://github.com/ithaker