Stap 3: Code
Als u alle stappen in het vorige gedeelte hebt gevolgd, moet u nu een kopie van de code en alle bijbehorende afhankelijkheden op uw computer. Dus nemen we een minuut hier om u te vertellen wat het eigenlijk doet.Er heeft een functie genaamd parse_book , die neemt een tekstbestand, wordt het geopend en parseert het door het creëren van een enkele lange tekenreeks zonder lijn breekt en roept een functie genaamd splitParagraphIntoSentences vanaf daar. Deze functie, krediet aan Pythonic proza hier, breekt alinea's in zinnen en vult een lijst met hen een reguliere expressie gebruiken. De functie parse_book retourneert die lijst in kwestie.
Natuurlijk moeten ook voor het scannen van de tabel voor de woorden, die is wat de functie grab_words is verantwoordelijk voor. Het opent de verbinding met de Arduino met behulp van de module pyserial. Op dit punt, we ook de pyqrcode module initialiseren en resetten van de tellers. Dan hebben we het script de seriële communicatie van de Arduino die de waarden van de foto diode vertegenwoordigt leest. Een waarde van minder dan 55 geeft ons een redelijk goed idee die een blok mogelijk in de weg; Overwegende dat een boven 60 meestal betekent dat de laser direct bij de diode wijst, in welk geval we willen gewoon wachten tot verschijnt een blokje.
Zodra dat het geval is, we continu fotograferen van de webcam met de streamer -opdracht en de resulterende .jpeg -afbeeldingen converteren naar PNG -bestanden. De functie geeft vervolgens het resulterende bestand aan de pyqrcode -bibliotheek waarin het bovenstaande proces worden herhaald totdat het met succes een woord decodeert en een lijst van woorden produceert.
De functie parse_words dan neemt beide lijsten en gebruikt een reguliere expressie overeenkomt met het eerste woord in de lijst van de blokken aan de lijst van zinnen en geeft als resultaat een lijst met de overeenkomende zinnen. Vervolgens blijft het ontleden van het volgende woord tegen die lijst van matching zinnen, totdat een zin die alle woorden in kwestie bevat (of geeft als resultaat de vorige lijst van zinnen) wordt gevonden. Tot slot drukt het de zin in kwestie, samen met de zin vóór en na voor context.