Discours contrôlée Quadropod (5 / 6 étapes)

Étape 5: codage

Arduino :

Lancer l’Arduino et ouvrir une nouvelle esquisse. Malheureusement, je n’ai pas suffisamment de temps pour vous enseigner les rudiments de l’Arduino. Vous pouvez chercher des tutoriels si vous avez envie. Donc, c’est ce que nous allons faire, une fois que vous avez ouvert une nouvelle esquisse : fichier >> New ou Ctrl + N.

Copier coller le code suivant (ou il suffit de télécharger le fichier joint). Je dois encore Oddbot pour m’aider avec la partie requête de la code looooong looong retour.

Le code :

 /* Title: Speech Controlled Quadropod Author: Adith Jagadish Boloor Comments: This code is free for you to use, modify or simply stare at when you are really bored. */ #include <Servo.h> // Servo Library // Starting positions of the servos #define FLHcenter 1500 #define FRHcenter 1500 #define RLHcenter 1520 #define RRHcenter 1450 #define FLKcenter 1150 #define FRKcenter 1220 #define RLKcenter 1220 #define RRKcenter 1210 // Here you can change servo pin numbers corresponding // to your specific connections #define FLHpin 46 // Front Left Hip servo pin #define FRHpin 52 // Front Right Hip servo pin #define RLHpin 28 // Rear Left Hip servo pin #define RRHpin 13 // Rear Right Hip servo pin #define FLKpin 47 // Front Left Knee servo pin #define FRKpin 53 // Front Right Knee servo pin #define RLKpin 29 // Rear Left Knee servo pin #define RRKpin 12 // Rear Right Knee servo pin // Buffer for the speech message char INBYTE; // LEDs!!!!! If you choose to use 'em int led1 = 27; int led2 = 11; int led3 = 45; int led4 = 26; // Some constants for the bot's motions, yes you may // play with them to get the best performance int Time = 90; int LShift = 280; int RShift = 280; int Raise = 550; // Define servos Servo FLHservo; Servo FRHservo; Servo RLHservo; Servo RRHservo; Servo FLKservo; Servo FRKservo; Servo RLKservo; Servo RRKservo; void setup() { // Attach servos (digitally) FLHservo.attach(FLHpin); FRHservo.attach(FRHpin); RLHservo.attach(RLHpin); RRHservo.attach(RRHpin); FLKservo.attach(FLKpin); FRKservo.attach(FRKpin); RLKservo.attach(RLKpin); RRKservo.attach(RRKpin); // Attach LEDs (digitally) pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(led3, OUTPUT); pinMode(led4, OUTPUT); Serial.begin(9600); // Center servos FLHservo.writeMicroseconds(FLHcenter); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter); RRHservo.writeMicroseconds(RRHcenter); FLKservo.writeMicroseconds(FLKcenter+700); FRKservo.writeMicroseconds(FRKcenter+700); RLKservo.writeMicroseconds(RLKcenter+700); RRKservo.writeMicroseconds(RRKcenter+700); delay(500); // Prints out the controls mapped to different letters Serial.println("wasd - movement"); Serial.println("z - sleep"); Serial.println("x - play dead"); Serial.println("i - sit"); Serial.println("u - stand"); Serial.println("q - wake up"); } void loop() { Serial.println("Ready to accept command"); while (!Serial.available()); // stay here so long as COM port is empty INBYTE = Serial.read(); // read next available byte delay(50); if (INBYTE == 'q') // wake up - flashes LEDs if you used them { digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); } else if (INBYTE == 'z') //Sleeps { FLHservo.writeMicroseconds(FLHcenter); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter); RRHservo.writeMicroseconds(RRHcenter); FLKservo.writeMicroseconds(FLKcenter+700); FRKservo.writeMicroseconds(FRKcenter+700); RLKservo.writeMicroseconds(RLKcenter+700); RRKservo.writeMicroseconds(RRKcenter+700); delay(1000); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); digitalWrite(led1, HIGH); digitalWrite(led2, HIGH); digitalWrite(led3, HIGH); digitalWrite(led4, HIGH); delay(200); digitalWrite(led1, LOW); digitalWrite(led2, LOW); digitalWrite(led3, LOW); digitalWrite(led4, LOW); delay(200); } else if (INBYTE == 'u') // stand Up { // Center servos FLHservo.writeMicroseconds(FLHcenter); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter); RRHservo.writeMicroseconds(RRHcenter); FLKservo.writeMicroseconds(FLKcenter); FRKservo.writeMicroseconds(FRKcenter); RLKservo.writeMicroseconds(RLKcenter); RRKservo.writeMicroseconds(RRKcenter); delay(1000); } else if (INBYTE == 'x') // plays dead X { FLHservo.writeMicroseconds(FLHcenter); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter); RRHservo.writeMicroseconds(RRHcenter); FLKservo.writeMicroseconds(FLKcenter+700); FRKservo.writeMicroseconds(FRKcenter+700); RLKservo.writeMicroseconds(RLKcenter+700); RRKservo.writeMicroseconds(RRKcenter+700); delay(1000); } else if (INBYTE == 'i') //sits { FLHservo.writeMicroseconds(FLHcenter); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter-600); RRHservo.writeMicroseconds(RRHcenter+600); FLKservo.writeMicroseconds(FLKcenter); FRKservo.writeMicroseconds(FRKcenter); RLKservo.writeMicroseconds(RLKcenter+700); RRKservo.writeMicroseconds(RRKcenter+700); } else if (INBYTE == 'h') //shake Hands { FLHservo.writeMicroseconds(FLHcenter-600); FRHservo.writeMicroseconds(FRHcenter); RLHservo.writeMicroseconds(RLHcenter-600); RRHservo.writeMicroseconds(RRHcenter+600); FLKservo.writeMicroseconds(FLKcenter+600); FRKservo.writeMicroseconds(FRKcenter); RLKservo.writeMicroseconds(RLKcenter-700); RRKservo.writeMicroseconds(RRKcenter+700); delay(1000); FLKservo.writeMicroseconds(FLKcenter+300); delay(200); FLKservo.writeMicroseconds(FLKcenter+600); delay(200); FLKservo.writeMicroseconds(FLKcenter+300); delay(200); FLKservo.writeMicroseconds(FLKcenter+600); delay(200); } else if(INBYTE == 'w') // run forward { LShift=300; RShift=300; for(int i=0;i<5;i++) { Run(); } } else if(INBYTE == 'a') // turn left { LShift=-300; RShift=300; for(int i=0;i<3;i++) { Run(); } } else if(INBYTE == 'd') // turn right { LShift=300; RShift=-300; for(int i=0;i<3;i++) { Run(); } } else if(INBYTE == 's') // run back { LShift=-300; RShift=-300; for(int i=0;i<5;i++) { Run(); } } } void Run() { FRKservo.writeMicroseconds(FRKcenter+Raise); // raise front right leg RLKservo.writeMicroseconds(RLKcenter+Raise-10); // raise rear left leg FLHservo.writeMicroseconds(FLHcenter+LShift); // move front left leg backward RRHservo.writeMicroseconds(RRHcenter-RShift); // move rear right leg backward delay(Time/2); FRHservo.writeMicroseconds(FRHcenter+RShift); // move front right leg forward RLHservo.writeMicroseconds(RLHcenter-LShift); // move rear left leg forward delay(Time); FRKservo.writeMicroseconds(FRKcenter); // lower front right leg RLKservo.writeMicroseconds(RLKcenter); // lower rear left leg delay(Time); FLKservo.writeMicroseconds(FLKcenter+Raise); // raise front left leg RRKservo.writeMicroseconds(RRKcenter+Raise); // raise rear right leg FRHservo.writeMicroseconds(FRHcenter-RShift); // move front right leg backward RLHservo.writeMicroseconds(RLHcenter+LShift); // move rear left leg backward delay(Time/2); FLHservo.writeMicroseconds(FLHcenter-LShift); // move front left leg forward RRHservo.writeMicroseconds(RRHcenter+RShift); // move rear right leg forward delay(Time); FLKservo.writeMicroseconds(FLKcenter); // lower front left leg RRKservo.writeMicroseconds(RRKcenter); // lower rear right leg delay(Time); } 

Juste avant que vous pouvez télécharger le code, procédez comme suit :

Ouvrez le gestionnaire de périphériques et Rechercher des Ports (COM & LPT).

Remarque le port actif pour votre Arduino. Il pourrait dire USB Serial Port (COM3) donc pour moi le COM port est 3, ce pourrait être différent pour vous.

Outils >> Conseil >> Arduino Mega ou Mega 2560 (image 2)

Outils >> processeur >> ATMega 1280 (image 3)

Outils >> Port >> COM3 (3 pour mon cas seulement!!) (image 4)

Maintenant, vous pouvez appuyer sur le bouton upload et si tout se déroule sans heurt, avec succès, il faut télécharger et le robot devrait être sur le ventre avec quatre jambes allongées symétriquement avec une constante voyant clignotant du HC 06.

Si vous obtenez cette erreur pendant le téléchargement :

avrdude : stk500_getsync() : pas synchronisés : resp = 0xe0

Il suffit de débrancher le module HC06, Télécharger le code et accrochez-la sur.

OK, j’ai réalisé quelque chose alors que j’ai tester et écris ce tutoriel. Vous n’avez pas besoin des BitVoicer et Python, il suffit qu’un d’eux. BitVoicer fait tout pour vous et son moteur de reconnaissance vocale est assez puissant, mais il en coûte 5 $ tandis que la reconnaissance vocale de python utilise Google Speech API, donc elle peut parfois donner des résultats vraiment bizarres et a quelques plus de codage, alors le choix est vôtre.

Bluetooth

OK juste avant de passer sur la mèche de la reconnaissance vocale via BitVoicer ou Python, permet de relier le bluetooth de votre PC au 06 HC de votre bot. Assurez-vous que le bluetooth sur votre PC fonctionne avant de procéder car il m’a fallu 5 heures pour se rendre compte que mon portable n’est pas venu avec un bluetooth intégré et j’ai dû commander un module.

Maintenant allumez votre bot via USB ou le bloc-piles. OMG quelle est cette fin tutoriel!!! Patience ! « « « Vous êtes presque là.

  1. Faites un clic droit sur l’icône périphériques Bluetooth dans la barre de plateau et cliquez sur Ajouter nouvel appareil.
  2. Qu’il recherche, de recherche et de recherche jusqu’au HC - 06 affiche
    Si elle n’apparaît pas après avoir essayer parfois vérifié si vous pouvez trouver le périphérique à l’aide de votre téléphone mobile (tous les téléphones sauf les téléphones Apple devraient être capables de le détecter). Si vous n’avez pas vous savez qu’il y a quelque chose de mal avec votre HC-06 et il faut y remédier en vérifiant les connexions.
  3. Double cliquez dessus.
  4. Sur le prochain dialogue boîte select Enter le dispositif couplage code et type en 1234. Il devrait puis installez le 06 HC sur votre ordinateur.
  5. Maintenant, cette partie est important ouvrir le gestionnaire de périphériques (Démarrer >> Gestionnaire de périphériques)
  6. Allez sur Ports (COM & LPT) et noter les ports COM utilisés par le Bluetooth.
    COM10 et COM21 pour mon cas.

BitVoicer (Option 1)

Vous pouvez télécharger BitVoicer depuis ici.

Commençons tout d’abord, si vous n’êtes pas un orateur anglais américain vous pouvez modifier la langue/accent que BitVoicer va essayer de reconnaître. Pour ce faire, allez dans fichier >> langues supplémentaires et continuer à installent votre langue préférée/accent.

Nous sommes maintenant prêts à ajouter des commandes. Pour démarreurs nous allons ajouter deux commandes à savoir sont lever et s’asseoir. Vous pouvez les modifier ou ajouter des commandes plus tard. Les étapes sont les suivantes :

  1. Créer un nouveau schéma en cliquant sur fichier >> New.
  2. Changer le type de données de commande par défaut en char.
  3. Cliquez sur Ajouter une nouvelle phrase
  4. Tapez dans "stand up" (sans les guillemets)
  5. Cliquez sur Ajouter une nouvelle phrase
  6. Tapez « assis » (encore une fois sans les guillemets)
  7. Maintenant ci-dessous en phrase anagrammes, changer les types de données de ces deux commandes en char si ce n’est pas déjà le char.
  8. Pour lève-type de la commande que vous avez et pour asseoir type j’ai.
  9. Votre écran devrait ressembler à l’Image 5.
  10. Enregistrez votre schéma dans un répertoire qui vous convient.
  11. Maintenant, ouvrez les préférences de fichier >> Préférences et remplissez l’à l’aide de trucs.
    Que trois choses qui seront différentes pour vous sera le dossier de sortie par défaut, la langue de reconnaissance vocale et le nom du Port.
  12. Votre nom de Port correspondra à votre Port COM qui utilise votre Bluetooth que vous avez découvert à l’étape 6 en Bluetooth. Essayez d’abord le nombre inférieur.
  13. Cliquez sur Enregistrer.
  14. Passez à l’étape suivante.

Python (Option 2)

Commencez par Télécharger Python (pour ce tutoriel je vais utiliser la version 3.4) qui peut être téléchargé depuis https://www.python.org/download/releases/3.4.1/ pourquoi 3.4 et le n’est pas la version 2.7 ? Eh bien la reconnaissance de la parole que nous utilisons ne fonctionne que sur la version 3.4 de python (ya je sais ça craint mais bon 3,4 > 2.7 droit?)

Installez-le dans C:\Python34 par souci de commodité. La prochaine chose que vous devez faire est de télécharger et installer eclipse qui est une interface pour écrire votre code via Python. Vous pouvez le télécharger depuis http://www.eclipse.org/downloads/ installer dans C:\eclipse

Si vous obtenez cette erreur lors de l’exécution, il...

Un environnement d’exécution Java (JRE) ou le Kit de développement Java (JDK) doit être disponible afin de lancer Eclipse. Aucune machine virtuelle de Java a été trouvé après une recherche aux emplacements suivants :
C:\eclipse\jre\bin\javaw.exe
javaw.exe dans votre chemin d’accès actuel

Aller à la première réponse à http://stackoverflow.com/questions/2030434/eclipse-no-java-jre-jdk-no-virtual-machine

www.StackOverflow.com est le meilleur endroit pour trouver de l’aide pour tous les problèmes en python

Utilisez ce tutoriel pour installer python dans eclipse sauf au lieu de python 2.6, que vous devriez choisir python 3.4. Vous pouvez également utiliser ce tutoriel d’installer python dans Geany si vous avez choisi d’utiliser Geany que j’entends est beaucoup plus agréable que l’éclipse, mais je n’ai pas eu assez de temps pour migrer vers elle. Il y a quelque chose appelé « bibliothèques » dont vous aurez besoin d’accéder aux différentes fonctionnalités de python. Maintenant passons allez-y et installer quelques bibliothèques dont nous avons besoin pour ce projet. Pour ceux d'entre vous qui savent déjà comment faire pour installer les bibliothèques il suffit d’aller venir installer celles cotées et aller le code.

Bibliothèques requises :

PyBluez et PyAudio peuvent être installés en téléchargeant le "... win32-py3.4.exe" versions à partir du lien et simplement l’exécution du fichier exécutable (setup).

SpeechRecognition bibliothèque est un peu délicat si vous débutez en python. Ouvrir le lien « Télécharger » ci-dessus, puis cliquez sur téléchargements. Télécharger "SpeechRecognition-1.1.0.tar.gz (md5)". Extrayez tout le contenu (pas le dossier qui dit SpeechRecognition-1.1.0 mais whats dedans) du dossier téléchargé (via winRAR ou n’importe quel extracteur vous envie à l’aide) dans le répertoire python 3.4 (C:\Python34). Si une boîte de dialogue s’affiche demandant s’il faut remplacer les fichiers existants, cliquez sur Oui pour tout. Maintenant, accédez au lecteur C:, tout en maintenant Shift, faites un clic droit sur le dossier qui dit Python34 et cliquez sur « commande ouvrir fenêtre ici ». Tapez « python setup.py install » sans les guillemets et appuyez sur entrée. Vous devriez maintenant avoir toutes les bibliothèques nécessaires installés. Yay !

Ouvrir eclipse.

Sous le dossier PythonTest dans le didacticiel de créer un nouveau fichier appelé Speech_Controlled_Quadrapod.py semblable à comment vous avez créé le pytest.py fichier que vous avez créé dans le didacticiel. Maintenant, collez ou télécharger...

Le code :

 # Title: Speech Controlled Quadrapod # Author: Adith Jagadish # Description: Uses Google's Speech Recognition API and python bluetooth library to control a quadrapod # How to: Say "stand up" to make bot stand up and say "sit down" to make it sit. # Say "stop listening to terminate the program" import bluetooth import speech_recognition as sr port = 1 bd_addr = "xx:xx:xx:xx:xx:xx" sock = bluetooth.BluetoothSocket( bluetooth.RFCOMM ) sock.connect((bd_addr, port)) r = sr.Recognizer() r.pause_threshold = 0.6 r.energy_threshold = 400 MESSAGE = "continue" print("Ready to accept command...\n") while (MESSAGE != "stop listening"): while (MESSAGE == "continue"): try: # use the default microphone as the audio source with sr.Microphone() as source: # listen for the first phrase and extract it into audio data audio = r.listen(source,timeout = None) # recognize speech using Google Speech Recognition print("Me: " + r.recognize(audio)) MESSAGE = str(r.recognize(audio)) except LookupError: # speech is unintelligible MESSAGE = "continue" print("Could not understand audio") if(MESSAGE == "sit down"): sock.send("i") elif(MESSAGE == "stand up"): sock.send("u") elif(MESSAGE == "stop listening"): break; MESSAGE = "continue" sock.close() print("\nProgram terminated.") 

Le seul changement que vous devez faire est en ligne :

 bd_addr = "xx:xx:xx:xx:xx:xx" 

Faites un clic droit sur l’icône bluetooth dans la barre d’État et cliquez sur « Afficher les périphériques Bluetooth ». Faites un clic droit sur HC-06 et cliquez sur Propriétés. Allez dans l’onglet Bluetooth et copiez le numéro d’identification Unique et que coller à la place de xx.


Vous êtes bon pour aller à l’essai.

Articles Liés

Projets des Carlitos : Sans fil discours contrôlé par Arduino Robot

Projets des Carlitos : Sans fil discours contrôlé par Arduino Robot

Nous rêvons tous d'avoir des appareils et machines qui peuvent obéir à nos commandes vocales. Eh bien, nous allons faire le premier pas vers ce qui en fait se produire et construire un discours contrôlé par Arduino-basé robot mobile.Vous pensez peut-
Discours-contrôlée de Game Boy Advance

Discours-contrôlée de Game Boy Advance

Il s'agit d'un projet, que j'ai travaillé sur pour mon cours d'électronique à Pomona College. Merci au professeur Dwight Whitaker et Tony Grigsby pour leur aide et leurs conseils tout au long de ce projet et un crédit à Jonathan Wong pour l'idée de c
Mouvement et discours contrôlée Wifi caméra Bluetooth voiture

Mouvement et discours contrôlée Wifi caméra Bluetooth voiture

Cette instructable vous montre comment créer un mouvement et une voiture de discours contrôlée avec un wifi contrôles caméra et bluetooth. Passez à l'étape suivante pour obtenir une liste de pièces. J'ai été inspiré par un produit vu iciÉtape 1: List
Discours contrôlée télécommande IR

Discours contrôlée télécommande IR

IntroductionDans ce document, je vais vous expliquer le processus sur la création d'une hélice de parallaxe contrôlé télécommande à infrarouge. Ce Instructable vous expliquera l'un de plusieurs façons différentes, cet objectif pourrait être atteint l
Voix contrôlée Arduino Drone

Voix contrôlée Arduino Drone

Les bourdons sont de très bons jouets et outils, mais généralement ils n'ont pas aucune qualification supplémentaire. J'adore voler n'importe quel modèle de R/C et je voulais juste faire un bourdon de R/C qui est un peu plus intelligent que les modèl
Untethered la reconnaissance vocale et la synthèse vocale avec Arduino

Untethered la reconnaissance vocale et la synthèse vocale avec Arduino

MOVI signifie « Ma propre voix Interface » et est un Arduino Shield adossés kickstarter qui le rend très facile de créer vos propres boîtes de dialogue discours aux dispositifs de contrôle au sein de l'IDE Arduino. Cette rapide instructable vous mont
Discours de l’Arduino contrôler et détecter les Obstacles Robot

Discours de l’Arduino contrôler et détecter les Obstacles Robot

Robot contrôlé par les commandes vocales avec Arduino et avec la voix de google Android téléphone à texte est contrôlée à l'aide de l'applicationhttp://Make.robimek.com/Voice-Commands-Controlled-robot/Étape 1: matériaux :Application 1-android : https
Contrôler votre discours avec arduino

Contrôler votre discours avec arduino

Contrôler votre app keynote de mac avec un arduino.Étape 1: Choses nécessaires :Arduino (j'utilise uno, mais tous doivent faire).Câble USB pour l'arduino.IR recevoir diode.Télécommande universelle IR.câbles de démarrage pour le décodeur IR.Etape 2: C
K-9 2.0. Chien Robot contrôlé et autonome de WiFi.

K-9 2.0. Chien Robot contrôlé et autonome de WiFi.

REMARQUE :À l'étape 22, j'ai posté une mise à jour, expliquant certains changements/améliorations récentes que j'ai faite, principalement au système électrique de K-9 et les capteurs qui peuvent vous être utiles.CaractéristiquesRobuste en bois (MDF)
Home Automation contrôle vocal - analyse micro de multi-salle

Home Automation contrôle vocal - analyse micro de multi-salle

Avez-vous déjà senti la nécessité de suivre vos habitudes de parole, contrôler votre maison avec votre voix, ou simplement enregistrer depuis plusieurs micros en même temps ? Ensuite, vous avez de la chance ! Dans ce Instructable, vous apprendrez com
Un rover téléphone contrôlée (Intel Edison + Billy + Arduino)

Un rover téléphone contrôlée (Intel Edison + Billy + Arduino)

Backstory: (si vous êtes trop paresseux pour lire passe-le)C'était mai (horizon 2015). Un étudiant dans sa formule 4 (10ème grade?) vient tout juste de retour de l'école et il a actionné sur son ordinateur, comme une routine quotidienne, pour vérifie
Contrôler n’importe quel appareil AC via PC (RS232 ou USB)

Contrôler n’importe quel appareil AC via PC (RS232 ou USB)

dans cette version simple, vous verrez comment allumer/éteindre l'appareil via votre PC et de définir quelques règles, par exemple faire de la machine à café tous les matins à 06:55, juste avant de sortir du lit.Les possibilités d'étendre cette build
La voix de jeux vidéo de contrôle à l’aide de GlovePIE

La voix de jeux vidéo de contrôle à l’aide de GlovePIE

Certains jeux bénéfice d'un élément de commande vocale. Je vous vais enseigner comment coder le jeu populaire gratuit, Team Fortress 2, pour répondre à votre voix. Vous ne serez pas en mesure de se déplacer et tirer guidée par ta voix seule, mais cer
Contrôle vocal bricolage maison intelligente

Contrôle vocal bricolage maison intelligente

Si vous n'êtes pas familier avec Amazon écho - c'est un nouvel assistant personnel qui répond à vos commandes vocales et, par conséquent, effectue des tâches simples tâches pour vous. Par exemple, il peut commander vos lumières de smart ou activer et