
English: 
Hey guys what's going on it's Don here
from Novaspirit Tech and today we are
going to be adding button trigger
activation on our Google assistant
So let's get started
Alright so we're going
to need a button, an LED, resistors, some
wires and I managed to find this button
that has everything the ring light in
there and a momentary switch, which I'll
leave a link in the description below
Now for the Raspberry Pi, it has ground
GPIO 18 which is for the button and
ground again then GPIO 23 for the LED
So, guys now that we're in the coding part I
assume that you guys followed my
tutorial on installing Google assistant
on the Raspberry Pi
If not I'll leave a link in the
description and a card up above
Alright to start off we're going to jump
into our environment so what we're going
to do is "source env/bin/activate"
Now we have to actually

Spanish: 
Hola chicos, como estan, aqui Don
con Novaspirit Tech y hoy vamos
a añadir un boton para la
activación de nuestro Google assistant
Entonces, empecemos
Vamos
a necesitar un botón, un LED, resistencias, algunos
cables y he conseguido encontrar este botón
que tiene todo, una luz de anillo
allí y un interruptor momentáneo, que voy a
dejar un enlace en la descripción
Ahora para el Raspberry Pi, tienes la tierra
GPIO 18 que es para el botón y
tierra de nuevo, luego GPIO 23 para el LED
Así que, chicos, ahora que estamos en la parte de codear, yo
Asumo que ustedes seguieron mi
tutorial sobre la instalación de Google assistant
en el Raspberry Pi
Si no, voy a dejar un enlace en la
descripción y una tarjeta por encima
Bien para empezar vamos a ir
a nuestro ambiente, por lo que vamos
a poner "source env/bin/activate"
Ahora tenemos que

Spanish: 
instalar el GPIO del Raspberry Pi
Que va a ser "pip install RPi.GPIO"
yo ya lo tengo
instalado, pero sólo vamos a ir
a través de esta instalación la cual puede tomar unos minutos
Bien ahora que hemos terminado con eso
Vamos a editar nuestro Google
sample
Así que vamos a hacer "genie..."
el cual es un editor que ya está en
Raspberry Pi, en realidad es un muy buen editor para la codificación
Y vamos a
"env/lib/python3.4/site-packages/googlesamples..."
Y luego hay algo que se llama "Assistant" allí y
a continuación, vamos a editar el archivo llamado
"__main__.py"
Una vez que estemos en ese archivo
Lo primero que tenemos que hacer es
importar nuestro nuevo Raspberry Pi GPIO asi que haremos

English: 
install the Raspberry Pi GPIO
It is going to be "pip install RPi.GPIO"
I already have it
installed but you're just going to go
through this setup and you know take a few minutes
Alright now that we're done with that
We're going to edit our Google
sample file
So we're going to do "genie..."
which is an editor that is already in
Raspberry Pi, it's actually a really good editor for coding
And we're going into
"env/lib/python3.4/site-packages/googlesamples..."
And then there's something called assistant in there and
then we're going to edit the file called
"__main__.py"
All right once we're in that file
The first thing we need to do is actually
import our new Raspberry Pi GPIO so

Spanish: 
"Import RPi.GPIO"
y en lugar de estar constantemente escribiendo esto
de hecho vamos a nombrarlo GPIO
por lo que sera mucho más fácil
Luego bajas un par de líneas luego de
"imports" y cosas por el estilo
Y vamos a establecer nuestros pines GPIO para nuestro botón
y el pin de GPIO para nuestro LED por lo que primero
Vamos a configurar el tablero
Que va a ser "GPIO.setmode ..."
Y vamos a establecer el
modo a "GPIO.BCM"
Ahora vamos a poner nuestros pines GPIO para
el botón, así que va a ser "GPIO.setup (18 .."
El cual es el pin que estamos usando

English: 
"import RPi.GPIO"
and instead of constantly typing that
we're actually going to name it as GPIO
so that's much easier
Then go down a couple of lines past
imports and stuff like that
And we're going to set up our GPIO pins for our button
and the GPIO pin for our LED so first
First let's set up the board
It's going to be "GPIO.setmode..."
And we're going to set the
mode to "GPIO.BCM"
Now we're going to set our GPIO pins for
the button so it's going to be "GPIO.setup(18.."
Which is the pin we're using

Spanish: 
"... GPIO.IN. pull_up_down=GPIO.PUD_UP)"
Ahora vamos a configurar un ID para el GPi, por lo que "GPIO.setup (23. GPIO.OUT)
Asi podremos enviar una cueta de voltaje ahi
Ahora, una vez hemos creado todas las cosas que necesitamos
vamos a desplazarnos hasta el fondo
a alrededor de 197 creo
Y aquí es
en realidad donde el código se inicia, "while",
"true" y básicamente todo hace un bucle
y "if wait_for_trigger" · y ustedes
probablemente saben qué es esto
"Click.pause" "pulse ENTER para enviar una nueva solicitud"
Entonces, lo que vamos a hacer es
comentar esto porque no vamos a usar eso
Y lo dejas asi
Básicamente sólo va a estart constantemente
escuchando tu comando por lo que vamos
a tener que pulsar un botón
Pero vamos
a añadir el disparador ahora
Bien ahora vamos a añadir nuestros comandos
Ahora, una cosa que hay que tener en cuenta es cómo
todo está por tabs
Python funciona mediante tabs

English: 
"...GPIO.IN. pull_up_down=GPIO.PUD_UP)"
Now we're going to set up a GPi ID, so "GPIO.setup(23. GPIO.OUT)
So we can send a voltage count on that
Now once we set up all the appropriate things that we need
we're going to scroll all the way down
to about 197 I think
And right here is
actually where the code starts while
true and basically everything loops
and "if wait_for_trigger· and you guys
probably know what this is
"click.pause" "press ENTER to send a new request"
So what we're going to do is
comment that out because we're not going to do that
And you leave it like this
Basically it's just going to constantly
listen for your command so you're going
to have to press a button
But we're going
to be adding a trigger now
Alright now we're going to add our commands
Now one thing you have to keep in mind is how
everything is tabbed
Python works by tab

Spanish: 
para sangrar y es muy específico para el
todo el proyecto tener la sangría correcta mediante espacios como
este proyecto hizo
Tu tienes que seguir ese
método y cada vez que golpeo "Enter"
mira que acaba de hacer automáticamente tab y
eso va a arruinar el proyecto
Así que lo que tenemos que hacer es hacer el espacio
por nosotros mismos
Y para Google eestaban
usando cuatro espacios por guión, asi que
básicamente necesitas 12 espacios aquí
Ahora podemos empezar
Con "input_state ..."
Y es básicamente el GPIO
"... input(18 .." Así que básicamente va a leer
lo que el pin GPIO va a hacer
Ahora, "if input_state == true ..."
Lo cual significa que si en realidad no esta
pulsado, es un poco
a la inversa, pero si no está presionado o si
es "true", esto es lo que va a
apagar el LED

English: 
to indent and it's very specific so the
whole project indented by spaces like
this project did
You have to follow that
method and every time if I hit enter
look it just automatically make tabs and
that's going to ruin the project
So what we need to do is actually space
everything out
And for Google they were
using four spaces per indent so you
basically need 12 spaces over here
Now we can start off
With "input_state..."
And it's basically the GPIO
"...input(18.." so it's basically going to read
what GPIO pin is going to be doing
Now, "if input_state == true..."
Which means if it actually is not
pressed it's actually a little bit
backwards but if it's not pressed or if
it's true this is what we're going to do
turn off the LED

Spanish: 
"... GPIO.output (23,False)"
Y luego vamos a hacer "continue"
Esto básicamente hara que ejecute
todo de nuevo hasta que las declaraciones lo dejen
continuar con el script, ahora, asegurate
de que todo esto este espaciado y vamos
a volver a este espacio aquí
y poner "else"
Ve lo que estoy haciendo el "else"
Y vamos a poner "GPIO.output (23,True)"
Ahora bien, esto va a encender el LED
Y vamos a hacer "pass"
Y que continuará el script, asi que básicamente
lo que tenemos aquí es
Que vamos a leer el estado de un botón
Y con ese
estado vamos a ver si es cierto, si
es cierto, entonces queremos reiniciar
el proyecto y apagar el LED, no
no continuaremos con él
O, ya sabes
Si no
Vamos a detectar que está siendo

English: 
"...GPIO.output(23,False)"
And then we're going to do "continue"
This will basically roll back
up to the wall statements or won't
continue with the script now just make
sure this is all spaced out and we're
going to go back to this space over here
and put an "else"
See I'm doing that "else"
And we're going to do "GPIO.output(23,True)"
Now this is going to turn on the LED
And we're going to do "pass"
And that will continue to script on so basically
what we got over here is
We're going to read the state of a button
And with that
state we're going to see if it's true if
it's true then we want actually restart
the project and turn off the LED we
won't continue with it
Or, you know
Or else
We will detect that it is being

Spanish: 
presionado y vamos a encender el LED y pasar
el comando y continuar con el resto
Por lo que ahora el botón "Guardar" Ahora podemos
cerrar esto porque no necesitamos
esto mas
Ahora podríamos hacer
"Python -m googlesamples.assistant"
Y el botón debe estar funcionandondo
"¿Cuál es el clima en Nueva York"
"En la ciudad de Nueva York hay 48 y parcialmente nublado"
"Será parcialmente nublado con un alto previsto de 58 y un mínimo de 46"
"Cuéntame un chiste"
"Esto puede hacer reír, ¿cuál es la contraseña de Forrest Gump? 1-Forrest-1"
Así que, gracias por ver mi video si les
gusta este video, dale like
y si tienen alguna pregunta sobre

English: 
pressed and we will turn on the LED and pass
the command and continue on with the rest
So now you hit "Save" now we can
close this out because we don't need
this anymore
Now we could do
"python -m googlesamples.assistant
And the button should be working
"What is the weather like in New York"
"In New York City is 48 and mostly cloudy"
"It will be partly cloudy with a forecasted high of 58 and a low of 46"
"Tell me a joke"
"This may make you laugh, what's Forrest Gump's password? 1-Forrest-1"
So, thanks for watching my video if you guys
like this video please hit that thumbs
up if you guys have any questions about

English: 
this hit in the comments below or hit me
up on Twitter because I've been actually
very active on Twitter recently
Now I actually recommend using a trigger
activation versus a voice activation which
I do have in the works I actually got
that all completed but I am working on
cleaning up the code and stuff like that
Stay tuned for that video
if you want voice activation for Google assistant
If you guys haven't done so
already hit this little circle to
subscribe to my channel or watch these
other videos that I made all by myself
As I say in my nerd cave, hack 'till it hertz

Spanish: 
esto, dejenmela en los comentarios o diganmela
por Twitter porque he estado
muy activo en Twitter recientemente
Ahora realmente recomiendo usar un disparador
de activación con una activación de voz en la cual
estoy tranbando actualamente, de hecho
ya esta completaque todos completos, pero estoy trabajando en
limpiar el código y cosas por el estilo
Manténgamse en sintonía para ese vídeo
si desea tener la activación por voz en tu Google assistant
Si ustedes no lo han hecho
ya, dale a este pequeño círculo para
suscribirse a mi canal o ve estos
otros videos que he hecho yo en el pasado
Como digo en mi cueva nerd, "Hack 'till it hertz"
