Le smartphone conduit une petite voiture.

Au cours de la dernière décennie, beaucoup ont eu un ou deux smartphones inactifs, tout comme le mien. J'ai décidé d'utiliser un smartphone pour contrôler quelque chose, par exemple une voiture.
Pour commencer, j'ai choisi une petite voiture de Lego. Il peut avancer et reculer, tourner à gauche et à droite et dispose d'une télécommande avec des rayons IR. En tant que conducteur des moteurs de la machine, il a utilisé la puce LB1836, qui dispose de quatre entrées d'informations. In1, In2 - contrôle le moteur en marche, In3, In4 - commande le volant, selon le schéma 0, 0 ou 1, 1 - état de non-fonctionnement. 0, 1 ou 1, 0 - rotation du moteur dans l'un ou l'autre sens.

La logique 0 et 1 aux entrées forme le récepteur des rayons infrarouges du jouet lors de la réception des signaux de la télécommande.

J'ai décidé d'utiliser un écran de smartphone pour transmettre des signaux d'un smartphone à une machine à écrire, car les autres canaux de transmission sont techniquement complexes et coûteux à mettre en œuvre. J'ai décidé de connecter mon appareil aux entrées de la puce LB1836, qui recevra les signaux d'un smartphone.

Le schéma de transmission du signal est le suivant. Le programme dans le smartphone crée des taches claires d'une durée donnée sur l'écran, l'appareil les enregistre et génère des 0 et 1 logiques de la même durée aux entrées du LB1836 sans aucun traitement logique, ce qui simplifie considérablement la conception de l'appareil. Autrement dit, je viens de remplacer le récepteur infrarouge par mon appareil.

Le dispositif de réception des signaux lumineux se compose de 4 cellules. Chaque cellule est un phototransistor L-3DP3C KGB connecté à un amplificateur sur un transistor npn KT315. La puissance est tirée d'une machine contrôlée. La sortie, comme je l'ai dit, est connectée à l'entrée correspondante du pilote du moteur. Les moteurs à faible puissance peuvent être alimentés directement depuis la sortie, mais ne tournent que dans une seule direction. Mais il y en aura quatre!



À propos du choix des éléments de l'appareil, je peux dire ce qui suit. J'ai pris les transistors que j'ai depuis les temps anciens. Les phototransistors ont acheté ceux qui étaient dans le magasin. Donc, si vous voulez répéter le schéma, ne perdez pas de temps à chercher, utilisez les éléments dont vous disposez. À propos, j'ai d'abord assemblé l'amplificateur sur une puce LM 324N avec quatre amplificateurs opérationnels. Ça marche aussi bien, mais il me semble que ses dimensions sont trop grandes.
L'appareil a été assemblé sur un carton, à l'aide de bandes de feuille de cuivre et d'éléments du concepteur Lego.



Les phototransistors sont placés au fond de puits de lumière d'un diamètre de 5 mm et d'une profondeur de 9 mm pour exclure l'illumination latérale. Des films métallisés enroulés dans un tube sont insérés dans des puits de lumière, ce qui augmente considérablement la sensibilité des phototransistors, en raison d'une augmentation du flux lumineux.



Voici une voiture.



Pour développer le programme, j'ai pris l'application BASIC! sur le Googl Play Market. Cette application vous permet d'écrire des programmes pour Android, de créer des fichiers apk et de travailler avec tous les capteurs et appareils du smartphone.

Liste des programmes

DO LET s$=" :      " TTS.INIT TTS.SPEAK s$ TTS.STOP STT.LISTEN "" STT.RESULTS theList LIST.SIZE theList, theSize LET kom$="" FOR k = 1 TO theSize LIST.GET theList, k, theText$ IF (theText$="") THEN kom$="" IF (theText$="") THEN kom$="" IF (theText$="") THEN kom$="" IF (theText$="") THEN kom$="" IF (theText$="") THEN kom$="" NEXT k PRINT kom$ GR.OPEN 255, 0, 0, 0 GR.BRIGHTNESS 0.7 GR.ORIENTATION 1 GR.SCREEN w, h a = 255 r = 255 g = 255 b = 255 fill = 1 GR.COLOR a,r,g,b,fill LET wc=0.95*h LET hc=w LET m=36 GR.CLS GR.CIRCLE n5, hc/m*9.5,wc,w/15.6 GR.CIRCLE n4, hc/m*13.5,wc,w/15.6 GR.CIRCLE n3, hc/m*18,wc,w/15.6 GR.CIRCLE n2, hc/m*22.5,wc,w/15.6 GR.CIRCLE n1, hc/m*26.5,wc,w/15.6 FOR i=1 TO 5 GR.HIDE i NEXT i IF (kom$="") THEN GR.SHOW 2 PAUSE 300 GR.HIDE 2 ENDIF IF (kom$="") THEN GR.SHOW 1 PAUSE 300 GR.HIDE 1 ENDIF IF (kom$="") THEN GR.SHOW 2 GR.SHOW 4 PAUSE 300 GR.HIDE 2 GR.HIDE 4 ENDIF IF (kom$="") THEN GR.SHOW 2 GR.SHOW 5 PAUSE 300 GR.HIDE 2 GR.HIDE 5 ENDIF IF (kom$="") THEN GOTO qq GR.BRIGHTNESS 0.1 GR.CLOSE UNTIL 0 ! ONERROR: qq: LET s$="  " TTS.INIT TTS.SPEAK s$ TTS.STOP GR.BRIGHTNESS 0.1 GR.CLOSE END 

Le programme utilise la commande vocale comme la plus appropriée dans mon cas. L'objet TTS convertit le texte en parole. Un objet STT convertit la parole en texte. Lorsque vous travaillez avec STT, le Wi-Fi doit être activé, car la bande sonore enregistrée est envoyée à un serveur sur Internet, d'où provient le résultat de la reconnaissance, ce sont quelques mots ou phrases. Le programme vérifie si la commande figure dans la liste, affiche la commande à l'écran et l'exécute. Si le texte n'est pas reconnu, le programme affiche un message à ce sujet. Tout cela se répète dans un cycle sans fin. Le programme se termine par la commande «stop» ou en appuyant sur la touche retour. Les dimensions géométriques sont prises par rapport à l'automatisation de la reliure sur différents écrans avec différentes tailles et résolutions, ce qui ne fonctionne pas toujours. Les cercles dessinés à l'écran sont des objets et sont automatiquement numérotés lors de leur création.

La commande GR.SHOW 2 signifie afficher le cercle qui a été créé en second. Son numéro est contenu dans le n4. Vous pouvez écrire GR.SHOW n4. Dans la ligne IF (theText $ = "forward") ALORS kom $ = "forward", vous remarquerez une différence dans les valeurs de la commande d'affectation - "forward" et "forward". Le fait est que STT renvoie obstinément «en avant», bien qu'il y ait des cas de «en avant», alors le programme ne reconnaît pas la commande. Il était possible de s'en débarrasser, mais je n'ai pas compliqué le programme, mais j'ai simplement corrigé l'orthographe lorsqu'elle était affichée à l'écran. Il y a encore des échecs lors de la reconnaissance de la commande "gauche". Cependant, ce sont peut-être les caractéristiques de ma prononciation.

Malheureusement, je ne peux pas insérer de clip montrant le fonctionnement du programme ici.
Jetez un oeil ici .

Source: https://habr.com/ru/post/fr424945/


All Articles