Étape 3: Code
Si vous avez suivi toutes les étapes dans la section précédente, vous devriez maintenant avoir une copie du code et toutes ses dépendances sur votre ordinateur. Donc nous allons prendre une minute ici pour vous dire ce qu’il fait réellement.Il y a une fonction appelée parse_book qui prend un fichier texte, il ouvre et analyse en créant une seule chaîne longue sans ligne casse et appelle une fonction appelée splitParagraphIntoSentences de là. Cette fonction, crédit à la Prose Pythonique ici, rompt les paragraphes en phrases et remplit une liste avec eux à l’aide d’une expression régulière. La fonction parse_book renvoie ensuite cette liste en question.
Bien sûr, nous devons également de scanner la table pour les mots, qui est ce que la fonction grab_words est responsable. Il ouvre la connexion à l’Arduino en utilisant le module pyserial. À ce stade, nous avons également initialiser le module pyqrcode et réinitialiser les compteurs. Ensuite, nous avons le script lire la communication sérielle de l’Arduino qui représente les valeurs de la photodiode. Une valeur inférieure à 55 nous donne une idée assez bonne qu’un bloc peut être de la façon ; considérant que l’un au-dessus de 60 signifie généralement que le laser pointe directement sur la diode, auquel cas, nous voulons juste attendre un bloc s’affiche.
Une fois que c’est le cas, nous avons continuellement prendre des photos de la webcam à l’aide de la commande de streamer et convertir les images obtenue de .jpeg .png . La fonction transmet ensuite le fichier à la bibliothèque pyqrcode qui répète le processus ci-dessus jusqu'à ce qu’elle décode un mot et produit une liste de mots avec succès.
La fonction parse_words puis prend les deux listes et utilise une expression régulière pour faire correspondre le premier mot de la liste des blocs à la liste des peines et retourne une liste avec les phrases correspondantes. Il continue ensuite à analyser le mot suivant contre cette liste des correspondants des peines, jusqu'à ce qu’il trouve une phrase qui contient tous les mots en question (ou retourne la liste précédente des peines). Enfin, elle imprime la phrase en question, ainsi que la phrase avant et après pour le contexte.