Streaming Audio et la reconnaissance vocale avec Arduino sans fil

dans ce projet j’ai connecter ma carte Arduino à un WiFly module (https://www.sparkfun.com/products/10822) de Roving Networks et de flux audio pour le PC, alors que BitVoicer (http://www.bitsophia.com/BitVoicer.aspx) peut exécuter la reconnaissance vocale. En utilisant un module sans fil, j’ai réussi à ajouter des fonctionnalités de reconnaissance vocale à mon microcontrôleur sans avoir besoin d’une connexion physique avec le PC.

Les LEDs faire les mêmes choses de base qu’ils ont fait dans mon dernier (en projet), mais maintenant j’ai éliminé le raccordement de fil de PC, donc je peux enfin avoir un discours activé Arduino partout atteint mon réseau sans fil.

Voici la vidéo de YouTube du projet :

J’ai utilisé un module WiFly de Roving Networks (https://www.sparkfun.com/products/10822) parce que j’ai lu quelque part que cela fonctionnerait avec le bouclier de XBee j’ai eu (https://www.sparkfun.com/products/9976). Malheureusement, j’ai découvert la manière dure qu’une diode entre l’Arduino TX et le RX WiFly bloquait le signal. J’ai dû arracher la diode et ajouter un diviseur de tension entre les broches TX/RX de l’Arduino et le module WiFly parce que la broche RX de la WiFly est tolérant 3.3V et le TX Arduino travaille à 5V. Il ne semble pas être la meilleure approche, mais cela a fonctionné et j’ai été en mesure d’envoyer et de recevoir des données du module. J’ai découvert que Sparkfun publié une nouvelle version du bouclier XBee (https://www.sparkfun.com/products/10854) et que le levier de vitesses niveau diode a été remplacé par un levier de vitesses niveau MOSFET plus robuste. Cela devrait résoudre le problème de la diode.

Selon moi, qu'un des modules sans fil suivants pourrait être utilisé. Il suffit de trouver à qui l’un d’eux meilleures correspond à vos besoins :

- http://arduino.cc/en/Main/ArduinoWiFiShield
- http://www.rovingnetworks.com/products/RN171XV
- https://www.sparkfun.com/pages/xbee_guide (vous aurez besoin d’un Dongle de Explorer XBee pour connecter le XBee à votre ordinateur : https://www.sparkfun.com/products/9819)
-Nombreux autres Arduino WiFi de boucliers peuvent être trouvés ici : http://postscapes.com/arduino-wifi

Le processus d’installation du module WiFly peut être difficile, donc j’ajoute également un tutoriel étape par étape sur la façon de le faire. Dans mon cas, j’utilise un point d’accès régulier/routeur de D-Link pour mettre en place mon réseau sans fil privé. Ce tutoriel devrait fonctionner avec n’importe quel point d’accès là-bas.

1. déconnectez votre ordinateur depuis n’importe quel réseau sans fil
2. configurer la broche de GPIO9 du module WiFly à vif (3.3V) au pouvoir. Cela permet le mode adhoc sur le module. J’ai utilisé le 3.3V source à partir de la carte Arduino et un cavalier ordinaire. Juste après la puissance vers le haut, retirer le fil et suivez les étapes suivantes. Module fiche technique : http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Wireless/WiFi/WiFly-RN-XV-DS.pdf
3. sur votre ordinateur, recherchez les réseaux disponibles et connectez-vous au réseau WiFly module (WiFly-GSX-XX). Cela peut prendre quelques secondes avant que l’ordinateur obtient une adresse IP du module.
4. Téléchargez et exécutez un logiciel gratuit appelé TeraTerm (http://www.rovingnetworks.com/resources/download/86/Teraterm)
5. Entrez les paramètres suivants et cliquez sur OK: adresse IP : 169.254.1.1 ; Port TCP : 2000 ; Service : Telnet ; Protocole : IPv4
6. vous devriez voir le mot "* Bonjour * » sur l’écran.
7. tapez $$$ pour entrer en mode de commande
8. type de scan et appuyez sur entrée pour rechercher les points d’accès disponibles
9. Si votre réseau utilise l’authentification WPA, utilisez la commande définir l’expression wlan pour définir le mot de passe. Pour le WEP, définissez la clé à l’aide de la valeur clé wlan commande. Mon réseau est WEP sécurisé, donc j’ai dû utiliser la deuxième commande. Le problème est que la clé doit être saisie codé ASCII/HEX et il doit avoir exactement 26 caractères. J’ai trouvé cette page qui convertit le texte en ASCII/HEX : http://www.string-functions.com/string-hex.aspx.
10. tapez régler WiFi ssid , où XXXX est le SSID de votre réseau (Regardez les résultats de l’étape 8)
11. tapez Enregistrer
12. type de jointure (Regardez les résultats de l’étape 8)
13. le WiFly-GSX-XX disparaîtra de la liste de réseau windows
14. Fermez Teraterm
15. reconnectez votre ordinateur à votre réseau local sans fil
16. Éteignez votre carte Arduino et de retour sur
17. Notez le numéro d’IP attribué au module WiFly par votre point d’accès (habituellement, vous pouvez trouver cette info sur la page DHCP access point)
18. open Teratem en utilisant la nouvelle adresse IP et les autres paramètres de l’étape 5
19. tapez $$$ pour entrer en mode de commande
20. type set comm fermer 0 et appuyez sur entrée
21. type set comm ouvrir 0 et appuyez sur entrée
22. type comm 0 distants de la valeur et appuyez sur entrée
23. type définir comm taille 1460 et appuyez sur entrée
24. type régler heure comm 1000 et appuyez sur entrée
25. type comm baud 115200 la valeur et appuyez sur entrée (la même vitesse de transmission j’ai utilisé dans mon croquis)
26. type Enregistrer et appuyez sur entrée
27. tapez exit et appuyez sur entrée
28. Fermez Teraterm

Maintenant votre module WiFly devrait être en mesure de communiquer avec BitVoicer et votre PC. Manuel de l’utilisateur WiFly peut être téléchargé ici : http://dlnmh9ip6v2uc.cloudfront.net/datasheets/Wireless/WiFi/WiFly-RN-UM.pdf

Il s’agit de l’esquisse que j’ai utilisé pour contrôler les LEDs, de capturer l’audio et d’interagir avec BitVoicer :

#include < BitVoicer11.h >

Instancie la classe BitVoicerSerial
BitVoicerSerial bvSerial = BitVoicerSerial() ;

True si magasins l’outil de Calibration de Streaming Audio
est en cours d’exécution
sampleTest booléen = false ;
Stocke le type de données récupéré par GetData
le type de données Byte = 0 ;
Met en place les goupilles et les variables par défaut
pinR int = 3 ;
int pinY = 5 ;
pinG int = 6 ;
Éclairement int = 0 ;

void setup()
{
Définit la référence analogique externe (broche AREF)
AVERTISSEMENT!!! Si quelque chose est connectée à la broche AREF,
Cette fonction doit être appelée en premier. Dans le cas contraire, il sera
endommager le jury.
bvSerial.setAnalogReference(BV_EXTERNAL) ;
Met en place le microcontrôleur d’effectuer plus rapidement des lectures analogiques
sur l’axe spécifié
bvSerial.setAudioInput(0) ;
Communication série commence à 115200 bps
Serial.Begin(115200) ;
Met en place le pinModes
pinMode (pinR, sortie) ;
pinMode (pinY, sortie) ;
pinMode (pinG, sortie) ;
}

void loop()
{
Capture audio et l’envoie à BitVoicer si l’Audio
Outil de Calibration de streaming est en cours d’exécution
Si (sampleTest == true)
{
La valeur passée à la fonction est à la fois
(en microsecondes) que la fonction doit attendre avant
effectuer la lecture. Il sert à réaliser sur
8000 lectures par seconde.
bvSerial.processAudio(46) ;
}

Capture audio et l’envoie à BitVoicer si le discours
Le moteur de reconnaissance est en cours d’exécution
Si (bvSerial.engineRunning)
{
La valeur passée à la fonction est à la fois
(en microsecondes) que la fonction doit attendre avant
effectuer la lecture. Il sert à réaliser sur
8000 lectures par seconde.
bvSerial.processAudio(46) ;
}
}

Cette fonction s’exécute chaque fois que des données série sont disponibles
dans la série tampon après une boucle
Sub serialEvent()
{
Lit la mémoire tampon de série et stocke le type de données reçues
dataType = bvSerial.getData() ;

Modifie la valeur de sampleTest si les données reçues a été
la commande d’échantillonnage de marche/arrêt
Si (dataType == BV_COMMAND)
sampleTest = bvSerial.cmdData ;

Signaux moteur de BitVoicer de reconnaissance vocale pour commencer
écouter le flux audio après le statut d’engineRunning
a été reçue
Si (dataType == BV_STATUS & & bvSerial.engineRunning == true)
bvSerial.startStopListening() ;

Vérifie si le type de données est le même que celui de la
Schéma de la voix
Si (dataType == BV_STR)
setLEDs() ;
}

Effectue les modifications LED selon la valeur en
bvSerial.strData
Sub setLEDs()
{
Si (bvSerial.strData == « wake »)
{
digitalWrite (pinR, faible) ;
digitalWrite (pinY, faible) ;

digitalWrite (pinG, faible) ;
digitalWrite (pinR, HIGH) ;
digitalWrite (pinY, élevé) ;
digitalWrite (pinG, HIGH) ;
Delay(200) ;
digitalWrite (pinR, faible) ;
digitalWrite (pinY, faible) ;
digitalWrite (pinG, faible) ;
Delay(200) ;
digitalWrite (pinR, HIGH) ;
digitalWrite (pinY, élevé) ;
digitalWrite (pinG, HIGH) ;
Delay(200) ;
digitalWrite (pinR, faible) ;
digitalWrite (pinY, faible) ;
digitalWrite (pinG, faible) ;
Delay(200) ;
digitalWrite (pinR, HIGH) ;
digitalWrite (pinY, élevé) ;
digitalWrite (pinG, HIGH) ;
Delay(200) ;
digitalWrite (pinR, faible) ;
digitalWrite (pinY, faible) ;
digitalWrite (pinG, faible) ;
Éclairement = 0 ;
}
ElseIf (bvSerial.strData == « veille »)
{
digitalWrite (pinR, faible) ;
digitalWrite (pinY, faible) ;
digitalWrite (pinG, faible) ;
digitalWrite (pinR, HIGH) ;
digitalWrite (pinY, élevé) ;
digitalWrite (pinG, HIGH) ;
Delay(200) ;
digitalWrite (pinR, faible) ;
digitalWrite (pinY, faible) ;
digitalWrite (pinG, faible) ;
Delay(200) ;
digitalWrite (pinR, HIGH) ;
digitalWrite (pinY, élevé) ;
digitalWrite (pinG, HIGH) ;
Delay(200) ;
digitalWrite (pinR, faible) ;
digitalWrite (pinY, faible) ;
digitalWrite (pinG, faible) ;
Éclairement = 0 ;
}
ElseIf (bvSerial.strData == « RH »)
{
digitalWrite (pinR, HIGH) ;
Éclairement = 255 ;
}
ElseIf (bvSerial.strData == « RL »)
{
digitalWrite (pinR, faible) ;
Éclairement = 0 ;
}
ElseIf (bvSerial.strData == « YH »)
{
digitalWrite (pinY, élevé) ;
Éclairement = 255 ;
}
ElseIf (bvSerial.strData == « YL »)
{
digitalWrite (pinY, faible) ;
Éclairement = 0 ;
}
ElseIf (bvSerial.strData == « GH »)
{
digitalWrite (pinG, HIGH) ;
Éclairement = 255 ;
}
ElseIf (bvSerial.strData == « GL »)
{
digitalWrite (pinG, faible) ;
Éclairement = 0 ;
}
ElseIf (bvSerial.strData == « ALLON »)
{
digitalWrite (pinR, HIGH) ;
digitalWrite (pinY, élevé) ;
digitalWrite (pinG, HIGH) ;
Éclairement = 255 ;
}
ElseIf (bvSerial.strData == « ALLOFF »)
{
digitalWrite (pinR, faible) ;
digitalWrite (pinY, faible) ;
digitalWrite (pinG, faible) ;
Éclairement = 0 ;
}
ElseIf (bvSerial.strData == « plus clair »)
{
Si (éclairement < 255)
{
Éclairement += 85 ;
analogWrite (pinR, éclairement) ;
analogWrite (pinY, éclairement) ;
analogWrite (pinG, éclairement) ;
}
}
ElseIf (bvSerial.strData == « sombre »)
{
Si (éclairement > 0)
{
Éclairement-= 85 ;
analogWrite (pinR, éclairement) ;
analogWrite (pinY, éclairement) ;
analogWrite (pinG, éclairement) ;
}
}
d’autre
{
bvSerial.startStopListening() ;
bvSerial.sendToBV ("ERROR:" + bvSerial.strData) ;
bvSerial.startStopListening() ;
}
}

Le schéma de voix de BitVocier j’ai utilisé peut être téléchargé ici : http://www.justbuss.xpg.com.br/BitVoicerTest3.zip

Si vous avez des questions concernant ce projet, veuillez le signaler ici, pour tout le monde puisse lire la réponse.

Articles Liés

La reconnaissance vocale avec Arduino et serveur BitVoicer

La reconnaissance vocale avec Arduino et serveur BitVoicer

Dans ce Instructable je vais montrer comment utiliser une carte Arduino et BitVoicer serveur pour contrôler quelques LEDs avec commandes vocales. Je vais utiliser le Micro de l'Arduino dans ce Instructable, mais vous pouvez utiliser n'importe quel ca
La reconnaissance vocale avec Arduino

La reconnaissance vocale avec Arduino

dans ce projet, j'utilise de BitVoicer fonctionnalités de reconnaissance vocale (http://www.bitsophia.com/BitVoicer.aspx), une carte Arduino et un microphone à électret (https://www.sparkfun.com/products/9964) pour quelques LEDs de contrôle.Ce projet
Clavier avec Arduino sans fil

Clavier avec Arduino sans fil

Salut tout le monde, dans ce tutoriel je vais vous montrer comment construire un clavier sans fil avec arduino et bluetooth qui permet d'écrire à distance dans notre Pc avec système d'exploitation windows.Voir la vidéoLe programme permet uniquement d
NRF2L401 système de Transmission de données PC avec Arduino sans fil

NRF2L401 système de Transmission de données PC avec Arduino sans fil

L'équipe ICStation vous présenter comment faire ce NRF2L401 sans fil PC Data Transmission système basé sur ICStation UNO et l'ICStation mega2560 avec Arduino.Le système de Transmission de données NRF2L401 sans fil PC fonctionne sous tension DC5V et u
Voix de l’Arduino / reconnaissance vocale avec Geeetech Module [Tutoriel]

Voix de l’Arduino / reconnaissance vocale avec Geeetech Module [Tutoriel]

Comment : Arduino voix / reconnaissance vocale avec Geeetech Module [Tutoriel]. Cette vidéo vous montrera comment parler avec votre Arduino avec le module de commande de voix Geeetech (bon marché). Vous pouvez ensuite utiliser le code pour commander
Comment utiliser un Module de reconnaissance vocale Serial - Arduino Tutorial

Comment utiliser un Module de reconnaissance vocale Serial - Arduino Tutorial

Dans ce tutoriel, vous apprendrez comment utiliser un module de reconnaissance de voix - série - avec la carte de Arduino uno. Ce module peut stocker jusqu'à 15 commandes vocales. Ceux qui sont divisés en 3 groupes, avec 5 commandes dans chaque group
Rendre votre projet Arduino sans fil en quelques minutes, avec le bouclier d’inventeurs sans fil

Rendre votre projet Arduino sans fil en quelques minutes, avec le bouclier d’inventeurs sans fil

le bouclier inventeurs utilise un tuyau sans fil, qui est un module RF sans fil spécial qui vous permet facilement et de manière fiable, envoyer et recevoir les données sans erreur sans fil entre deux ou plusieurs cartes Arduino.C'est Long Range – le
Bibliothèque de clavier avec Arduino sans à l’aide du clavier (premier tutoriel)

Bibliothèque de clavier avec Arduino sans à l’aide du clavier (premier tutoriel)

Pavé utilisé habituellement dans la plupart des projets permettant aux clients de traiter avec le projet tel que (Real Time Clock (RTC) pour ajuster le jour, temps, contrôle d'accès,... etc) mais si vous l'utilisez avec la bibliothèque d'Arduino clav
Tutoriel de Shield Arduino sans fil SD

Tutoriel de Shield Arduino sans fil SD

comme son nom l'indique, le bouclier de l'Arduino sans fil SD remplit deux fonctions. Avant tout, ce bouclier permet de vous facilement l'interface avec les modules EMETTEUR-RECEPTEUR Xbee pour créer maillez de réseaux et autres périphériques sans fi
Arduino sans fil voiture

Arduino sans fil voiture

SalutCe projet est réalisé avec 2 planches arduinos (UNO pour voiture) et NANO pour l'émetteur.J'utilise aussi puce H-Bridge pour commander des moteurs.L'émetteur-récepteur est NRFL2401 qui est SPI contrôlé par Arduino.La voiture châssis est sur Ebay
Alimenter un Arduino sans fil

Alimenter un Arduino sans fil

voulez jamais pensé d'alimenter un Arduino sans fil ? Vérifiez-le dehors.Etape 1: Obtenir ces choses Ces pour ce dont vous avez besoin.1.Arduino(must)2. compartiment (6v)3.4 x piles AAQuelqu'un at-il essayer avec une batterie 9v. Si les travaux, s'il
La reconnaissance vocale avec BitVoicer et Arduino

La reconnaissance vocale avec BitVoicer et Arduino

le but principal de ce projet était de tester les performances de la reconnaissance vocale de BitVoicer (http://www.bitsophia.com/BitVoicer.aspx). Pour cela, j'ai conçu une esquisse de contrôle led simple dont j'ai intégré avec BitVoicer. Bien sûr, v
Faites votre propre tiroir de rangement fonctionne avec la reconnaissance vocale (1Sheeld - Arduino)

Faites votre propre tiroir de rangement fonctionne avec la reconnaissance vocale (1Sheeld - Arduino)

J'ai toujours eu le problème de l'oubli dans quel tiroir, j'ai mis mes composants et parfois l'encre sur les étiquettes obtenir effacées par le temps alors j'ai pensé faire quelque chose d'intelligent et j'ai fini avec un tiroir de rangement qui fonc
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