Table des matières:

Contrôlez des appareils du monde réel avec votre PC : 15 étapes (avec des images)
Contrôlez des appareils du monde réel avec votre PC : 15 étapes (avec des images)

Vidéo: Contrôlez des appareils du monde réel avec votre PC : 15 étapes (avec des images)

Vidéo: Contrôlez des appareils du monde réel avec votre PC : 15 étapes (avec des images)
Vidéo: PHOTOS EN MODE CONNECTE...C'EST POSSIBLE !! Tuto-Photos - Episode n°482 2024, Juillet
Anonim
Contrôlez les appareils du monde réel avec votre PC
Contrôlez les appareils du monde réel avec votre PC

Ce Instructable vous montre comment interfacer un PC et un microcontrôleur. Cette démo détectera la valeur d'un potentiomètre ou de toute entrée analogique et contrôlera également un servo. Le coût total est inférieur à 40 $, y compris le servo. Le servo allume un micro-interrupteur, puis le micro-interrupteur allume une lampe. Dans une application pratique, le pot pourrait être un capteur de température et le servo pourrait allumer un chauffage. Le servo pourrait être remplacé par un relais ou un autre contrôleur de puissance. Le picaxe est programmé dans une version simplifiée de base et l'interface utilise VB. Net. Tous les logiciels sont disponibles gratuitement. Un Instructable connexe montre comment lier deux microcontrôleurs via Internet

Étape 1: Rassemblez les pièces

Rassembler les pièces
Rassembler les pièces

Liste des pièces: Puce Picaxe 08M disponible auprès de nombreuses sources, y compris Rev Ed https://www.rev-ed.co.uk/picaxe/ (Royaume-Uni), PH Anderson https://www.phanderson.com/ (États-Unis) et Microzed https://www.microzed.com.au/ (Australie)Protoboard, servo, microswitch, pile 9V, 4 piles AA et support, bande d'étiquettes, résistance 10k, résistance 22k, condensateur 33uF 16V, condensateur 0.1uF, 7805L basse consommation 5V régulateur, pot 10k, fils (fil téléphonique/données à âme pleine, par exemple Cat5/6), ampoule 6V, prise femelle D9 et couvercle, 2 mètres de fil de données à 3 (ou 4) âmes, clips de batterieLes sociétés ci-dessus vendent également des périphériques USB à série qui sont utiles pour les ordinateurs portables qui n'ont pas de port série. Il convient de noter que certains périphériques USB vers série ne fonctionnent pas aussi bien que d'autres et il vaut la peine d'en obtenir un auprès de l'un des fournisseurs ci-dessus, car ils ont été testés pour une utilisation avec des puces picaxe. Celui qui est connu pour fonctionner est https://www.rev-ed.co.uk/docs/axe027.pdf Bien sûr, si votre ordinateur dispose d'un port série (ou d'une ancienne carte de port série), cela ne fonctionnera pas. être un problème.

Étape 2: Téléchargez et installez certains logiciels

Télécharger et installer certains logiciels
Télécharger et installer certains logiciels

Nous aurons besoin du VB. Net et du logiciel du contrôleur picaxe. VB. Net (Visual Basic Express) est disponible sur https://msdn2.microsoft.com/en-us/express/aa718406.aspx Si ce lien ne fonctionne pas, recherchez dans Google pour: téléchargement express de visual basicLe logiciel picaxe est disponible sur https://www.rev-ed.co.uk/picaxe/Vous devrez vous inscrire auprès de Microsoft pour obtenir le téléchargement - si cela pose un problème, utilisez un faux e-mail ou quelque chose. En fait, j'ai trouvé utile de donner mon véritable e-mail car ils envoient des mises à jour occasionnelles.

Étape 3: Construisez un circuit de téléchargement

Créer un circuit de téléchargement
Créer un circuit de téléchargement

Ce circuit de téléchargement utilise une puce picaxe, quelques résistances, un régulateur et une pile 9V. Plus d'informations sont disponibles dans la documentation picaxe et cela ne devrait prendre que quelques minutes à construire une fois que toutes les pièces sont à portée de main.

Je pourrais également ajouter que les picaxes fonctionnent bien avec 3 piles AA. Une alimentation régulée de 5 V est utile pour faire fonctionner des entrées analogiques car les tensions de référence ne changent pas, mais pour les circuits marche/arrêt simples, une alimentation régulée n'est pas nécessaire. Le reg 5V peut être omis dans ces situations.

Étape 4: Disposition du Protoboard du circuit de téléchargement

Disposition du protoboard du circuit de téléchargement
Disposition du protoboard du circuit de téléchargement

Cette photo montre le câble de téléchargement qui est simplement une prise D9 et quelques mètres de câble multiconducteur. La plupart des PC modernes ont une connexion au port série D9. Un PC construit avant environ 1998 peut avoir un connecteur à 25 broches. J'ai soudé environ 1 cm de fil à âme pleine à l'extrémité des fils flexibles, puis j'ai mis du thermorétractable autour de cela - les fils à âme solide s'intègrent bien mieux dans une protoboard que les fils flexibles.

Étape 5: Téléchargez le programme Picaxe

Téléchargez le programme Picaxe
Téléchargez le programme Picaxe

Cliquez sur la flèche bleue pour télécharger. S'il ne se télécharge pas, il y a quelques suggestions de débogage dans le manuel d'instructions de picaxe. Vous pouvez essayer de télécharger un programme simple pour allumer et éteindre une LED pour vérifier que la puce fonctionne. Ce programme tel qu'il est ne fait rien jusqu'à ce qu'il soit connecté à un PC car il attend que le PC lui envoie quelque chose. Si le téléchargement est correct, cela fonctionne et la puce est programmée et l'étape suivante consiste à reconfigurer la puce en tant que puce d'interface série.

Copiez et collez le code ci-dessous. Pour l'afficher avec la syntaxe des couleurs, regardez dans Affichage/Options/Éditeur. Les conventions de couleur sont similaires à celles de VB. Net main:serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1' lire le pot puis renvoyer ce serout 0, N2400, ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) sélectionner case b0' lire le bit de données b0 case <140' si <140 alors régler le servo sur une position servo 2, 120 pause 1000' pause une seconde else servo 2, 160 pause 1000 endselect low 2' éteindre le servo car serin le fait quand même aller au principal

Étape 6: reconfigurer le circuit en tant que circuit d'interface série

Reconfigurer le circuit en tant que circuit d'interface série
Reconfigurer le circuit en tant que circuit d'interface série

Deux modifications subtiles ont été apportées au circuit picaxe. La résistance de 22k qui allait à la jambe 2 va maintenant à la jambe 4. Et la jambe 2 a été mise à la terre. Le seul but de la jambe 2 est de recevoir des données de programmation du PC afin qu'une fois la puce programmée, elle puisse être reliée à la terre. Si vous revenez à la programmation de la puce pour corriger les bogues, etc., déconnectez la jambe 2 de la terre et reconnectez le 22k à la jambe 2. Le picaxe répond au PC via la jambe 7 afin que cela n'ait pas besoin de changer.

Un pot a été ajouté et le servo a été ajouté. Le servo n'est pas vraiment nécessaire et une led et une résistance de 1k fonctionneraient bien et/ou n'importe quel circuit que vous souhaitez connecter. J'ai juste utilisé un servo pour montrer comment cliquer sur quelque chose sur un écran peut faire bouger quelque chose. Le servo est alimenté par sa propre alimentation. Cette alimentation séparée ne serait pas nécessaire si le picaxe ne faisait que allumer et éteindre les leds. Le picaxe est prêt à fonctionner - nous avons maintenant besoin de code VB.

Étape 7: écrivez du code d'interface VB

Écrire du code d'interface VB
Écrire du code d'interface VB

Une fois VB. Net installé, exécutez-le et sélectionnez Fichier/Nouveau projet et sélectionnez Application Windows. Vous pouvez cliquer sur Fichier/Enregistrer tout au début et enregistrer où vous le souhaitez, puis à l'avenir, soit démarrer le projet à partir de VB. Net, soit en cliquant sur un fichier.sln qui sera créé.

Étape 8: Concevoir le formulaire VB. Net

Concevoir le formulaire VB. Net
Concevoir le formulaire VB. Net

VB crée un nouveau formulaire vierge appelé Form1.vb. Vous pouvez changer le nom de ce maintenant ou plus tard ou simplement le laisser comme Form1 si le projet est simple. Nous le laisserons tel quel. Pour ajouter un peu de contrôle, nous devons ouvrir la boîte à outils qui est entourée en vert. La boîte à outils peut être ouverte et fermée chaque fois que cela est nécessaire - généralement, la première étape consiste à ajouter les contrôles, puis à fermer la boîte à outils et à travailler sur le code. Vous pouvez le laisser ouvert tout le temps, mais cela prend un peu d'écran.

Étape 9: ajouter une minuterie

Ajouter une minuterie
Ajouter une minuterie

Nous avons fait défiler la boîte à outils et sélectionné une minuterie. Double-cliquez sur la minuterie pour l'ajouter. Une image d'une horloge appelée Timer1 apparaîtra en bas de l'écran et à droite, les propriétés de la minuterie sont mises en évidence. Vous pouvez les modifier ou ils peuvent être modifiés dans le corps du texte du code. Nous les laisserons tels quels et les modifierons dans le corps du texte.

Soit dit en passant, la boîte à outils semble un peu intimidante, mais seuls quelques-uns sont nécessaires pour la plupart des programmes - ceux-ci incluent les boutons, les zones de texte, les étiquettes, les minuteries, les zones d'image, les cases à cocher et les cases radio. Peut-être ouvrir un nouveau programme et jouer avec quelques-uns de temps en temps.

Étape 10: Ajoutez quelques boutons

Ajouter quelques boutons
Ajouter quelques boutons

Cliquez sur l'outil bouton et dessinez la taille du bouton sur Form1. Nous allons avoir besoin de deux boutons, d'une boîte à images et d'une étiquette. Allez-y et ajoutez-les - la capture d'écran suivante montre tout cela. La taille et la position ne sont pas importantes et vous pouvez les renommer plus tard si vous le souhaitez.

Étape 11: Formulaire avec tous les contrôles ajoutés

Formulaire avec tous les contrôles ajoutés
Formulaire avec tous les contrôles ajoutés

Form1 est maintenant présenté. La boîte à côté de Button2 est une petite boîte d'image. Vous pouvez y mettre des images, mais nous allons simplement l'utiliser pour indiquer quel bouton a été enfoncé en le faisant passer du rouge au vert. Label1 affiche les registres picaxe.

Étape 12: Ajoutez du code

Ajouter du code
Ajouter du code

Sur la droite, entourés en vert se trouvent plusieurs boutons utiles - le deuxième à partir de la droite est le bouton Afficher le code et le bouton de droite est le Concepteur de vue. En pratique, lors de l'écriture du code, on va et vient entre ces vues. Généralement, si l'on est en mode Designer, double-cliquer sur un objet tel qu'un bouton fait apparaître un emplacement dans la vue Code pour ajouter du code ou en ajoute un au morceau de code qui s'exécute lorsque le bouton est enfoncé. De cette façon, le déroulement du programme devient assez intuitif - l'utilisateur clique sur des éléments et des morceaux de code exécutés et modifie l'écran, etc. aura Public Class Form1 …End Class - mettez-le en surbrillance et supprimez-le. Maintenant, prenez tout le code ci-dessous et collez-le dans. Imports System. IOImports Strings = Microsoft. VisualBasic ' vous pouvez donc utiliser des choses comme left(and right(for stringsPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) ' pour les instructions de sommeilDim WithEvents serialPort As New IO. Ports. SerialPort ' port série declareDim PicaxeRegisters (0 à 13) As Byte ' enregistre b0 à b13Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) gère Me. LoadTimer1. Enabled = True ' met ceci dans le code comme valeur par défaut à false lors de la création de Timer1. Interval = 5000 ' 5 secondsPictureBox1. BackColor = Color. Red ' défini sur la position 'red'Array. Clear(PicaxeRegisters, 0, 13) ' probablement pas nécessaire car le tableau a déclaré blankEnd SubPrivate Sub Timer1_Tick(ByVal sender As System. Object, ByVal e As System. EventArgs) Gère Timer1. Tick' timer ticks toutes les 5 secondesCall SerialTxRx() ' talk to picaxeEnd SubSub SerialTxRx()Dim LabelString As String ' chaîne pour afficher les valeurs d'octetDim DonnéesP acket (0 à 17) As Byte ' paquet de données entier "Data" + 14 bytesDim i As Integer ' i est toujours utile pour les boucles etcLabel1. Text = "" ' efface le texte à l'écranFor i = 0 To 3DataPacket(i) = Asc(Mid("Data", i + 1, 1)) ' ajoute le mot "Data" au paquetNextFor i = 0 To 13DataPacket(i + 4) = PicaxeRegisters(i) ' ajoute tous les octets au packetNextIf serialPort. IsOpen ThenserialPort. Close() ' juste au cas où déjà ouvertEnd IfTryWith serialPort. PortName = "COM1" ' La plupart des nouveaux ordinateurs sont par défaut com1 mais tout ordinateur antérieur à 1999 avec une souris série sera probablement par défaut com2. BaudRate = 2400 ' 2400 est le maximum vitesse pour les petits picaxes. Parity = IO. Ports. Parity. None' pas de parité. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. One' un bit d'arrêt. ReadTimeout = 1000' millisecondes donc expire en 1 seconde si aucune réponse. Open() ' ouvre le port série. DiscardInBuffer() ' efface le tampon d'entrée. Write(DataPacket, 0, 18) ' envoie le datapacket arrayCall Sleep(300) ' 100 millisecondes minimum pour attendre fo r les données à revenir et plus si le flux de données est plus long. Read(DataPacket, 0, 18) ' relire dans le tableau de paquets de données. Close() ' fermer le port sérieEnd WithFor i = 4 To 17LabelString = LabelString + " " + Str(DataPacket(i)) ' se transforme en une chaîne de texteNextLabel1. Text = LabelString ' met la chaîne de texte sur l'écranCatch ex As Exception'MsgBox(ex. ToString)' décommentez ceci si vous voulez voir le message d'erreur réelLabel1. Text = " Timeout" ' affichera ceci si picaxe n'est pas connecté etcEnd TryEnd SubPrivate Sub Button1_Click(ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button1. ClickPictureBox1. BackColor = Color. Red ' change la case en redPicaxeRegisters(0) = 120 ' une valeur arbitraire pour le servoEnd SubPrivate Sub Button2_Click(ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button2. ClickPictureBox1. BackColor = Color. Green ' box to greenPicaxeRegisters(0) = 160 ' valeur arbitraire pour le Classe de sous-extrémité servoEnd

Étape 13: Exécutez le programme

Exécuter le programme
Exécuter le programme

Allumez le picaxe s'il n'est pas allumé. Exécutez le programme vb.net en cliquant sur le triangle vert en haut de l'écran près du milieu. A droite du triangle d'exécution se trouvent un bouton de pause et un bouton d'arrêt, ou le programme peut être arrêté en cliquant en haut à droite sur x ou avec Fichier/Quitter si vous avez ajouté un menu. Le programme peut être compilé si vous le souhaitez, mais pour le débogage, laissons-le fonctionner dans VB. Le minuteur envoie des octets toutes les 5 secondes, il faut donc 5 secondes pour que l'affichage s'affiche. Le label1 affiche un vidage des 14 registres picaxe. Ceux-ci sont envoyés au picaxe puis renvoyés à nouveau. Il n'est presque certainement pas nécessaire d'envoyer les 14 et votre code peut être modifié en conséquence. Le deuxième octet avec une valeur de 152 est la valeur du pot qui passe de 0 à 255. Si bouton1 est cliqué il envoie une valeur de 120 dans le premier octet et si bouton2 est cliqué il envoie 160 et le programme picaxe les décode et déplace le servo. Ce code montre comment envoyer des données et récupérer des données à partir d'un microcontrôleur. Le microcontrôleur peut allumer toutes sortes d'appareils - j'ai environ 30 arroseurs dans ma maison, des lumières, la sécurité, la détection des voitures dans les allées, l'allumage d'un certain nombre de pompes de 3,6 kW et la détection du niveau d'eau dans les réservoirs. Les Picaxes peuvent être connectés en série sur un bus commun et peuvent même communiquer entre eux via des liaisons radio. Il est également possible de télécharger et de télécharger des données à partir de sites Web et donc d'utiliser Internet pour connecter des appareils partout dans le monde https://www.instructables. com/id/Worldwide-microcontroller-link-for-under-20/Les deux pages suivantes contiennent également des exemples d'utilisation de différents capteurs et de contrôle de différents appareils. Dr James MoxhamAdelaide, Australie du Sud

Étape 14: Périphériques d'entrée

Des dispositifs d'entrée
Des dispositifs d'entrée

Le programmeur picaxe contient des fichiers d'aide très utiles, dont l'un s'appelle "circuits d'interface" et il est également disponible sur https://www.rev-ed.co.uk/docs/picaxe_manual3.pdf Cela montre comment contrôler les moteurs, sentir l'environnement et d'autres contrôles utiles. En plus de ces circuits, il y en a quelques-uns que j'utilise encore et encore. Température - le capteur de température LM35 produit une tension qui peut aller directement dans un picaxe et peut être lue avec une commande readadc ou readadc10. Lumière - une résistance dépendante de la lumière a une résistance qui varie de quelques centaines d'ohms en plein soleil à plus de 5 mégohms dans le noir absolu. Mesurez la résistance au niveau de lumière auquel vous souhaitez basculer et mettez le LDR en série avec une résistance d'environ la même valeur. Par exemple, je voulais détecter les lumières d'une voiture entrant dans le carport pour allumer certaines lumières. La résistance était d'environ 1M à la lumière indirecte donc j'ai mis un 1M en série avec le LDR. Interrupteur - certains interrupteurs basculent entre 5V et 0V (un interrupteur unipolaire à double jet), mais certains s'allument et s'éteignent simplement. Si un interrupteur s'allume, il peut envoyer 5V à une puce picaxe, mais s'il est éteint, la broche picaxe serait «flottante» et pourrait avoir n'importe quelle valeur. Ce circuit montre comment tirer l'entrée vers la terre lorsque l'interrupteur est éteint. C'est le circuit à utiliser pour la plupart des interrupteurs à bouton-poussoir. Potentiomètre - un bon bouton à l'ancienne. Tournez le bouton et lisez la tension dans la puce. Il existe toutes sortes d'autres appareils électroniques qui créent une tension de 0 à 5 V ou peuvent être facilement configurés pour le faire. Les exemples sont les capteurs magnétiques, l'humidité, la vitesse, le toucher, la lumière infrarouge, la pression, la couleur et le son. Les capteurs ne coûtent en général que quelques dollars chacun.

Étape 15: Contrôle des appareils

Contrôler les appareils
Contrôler les appareils

Le fichier d'aide picaxe contient une excellente explication sur la façon de contrôler les moteurs et les lumières. En plus je trouve qu'il y a quelques circuits que j'utilise encore et encore. Le premier est un simple circuit à transistor. Une puce picaxe peut allumer un maximum de 20 mA par broche, ce qui est bon pour allumer une LED mais pas grand-chose d'autre. Un transistor 547 augmente le courant à 100 mA, ce qui est bon pour les petites ampoules. Le deuxième circuit montre un mosfet. Les Mosfets n'ont pratiquement pas besoin de courant pour les conduire - seulement des volts afin qu'ils puissent être directement contrôlés par un picaxe. Il existe toutes sortes de mosfets disponibles, mais ma préférence est celle du BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Il peut être directement alimenté en 5V (contrairement à certains qui ont besoin de 10V) mais le principal avantage est qu'il a une résistance extrêmement faible lorsqu'il est allumé - 0,045 ohms, ce qui n'est pas beaucoup plus que la résistance des fils que l'on y connecterait. Cela signifie qu'il ne chauffe pas lors de la conduite de charges assez élevées, ce qui économise de l'énergie et permet également d'économiser sur les coûts du dissipateur thermique. À titre d'exemple, conduire une charge de 5 ampères comme un phare de voiture; watts = courant au carré x résistance, donc W = 5 * 5 * 0,045 = 1,12 watts qui n'aurait besoin que d'un dissipateur thermique comme un morceau carré d'aluminium mince de 1 pouce. Le troisième circuit montre un relais. Il existe plusieurs paramètres pour tous les relais - la tension de la bobine, la résistance de la bobine et la tension et le courant de charge. Par exemple, un relais peut avoir une bobine de 12 V avec un courant de bobine de 30 mA, une résistance de bobine de 400 ohms et peut être capable de piloter jusqu'à 240 V à 1 ampère. Le courant de la bobine est supérieur en volts et en ampères à ce qu'un picaxe peut fournir, nous utilisons donc le circuit à transistor pour commuter la bobine. Il y a aussi une diode incluse - cela supprime l'EMF arrière lorsque le relais s'éteint. Back EMF est ce qui crée l'étincelle pour une bougie d'allumage, vous ne voulez donc pas de ces hautes tensions n'importe où dans un circuit. Les contacts auront un courant et des volts maximum - le courant peut être de quelques ampères et les volts sont souvent de 240V, donc la commutation 12V ou 24V sera bien dans la plage. Si vous êtes inexpérimenté en électronique, ne jouez pas avec les tensions secteur. Il existe également des petits relais qui ont des tensions de bobine de 5V ou 6V. Pour ces relais, vous n'aurez peut-être pas besoin d'une alimentation séparée de 12 V, mais surveillez simplement la résistance de la bobine, car nombre d'entre eux ont des consommations de courant supérieures à 100 mA. Si c'est le cas et que vous utilisez un régulateur 78L05 100mA 5V, vous voudrez peut-être le remplacer par un régulateur 7805 qui peut fournir jusqu'à 1 ampère. Les relais sont particulièrement utiles pour la commutation CA - par exemple les solénoïdes d'arrosage de jardin 24VAC, les lumières de jardin 12VAC et dans les environnements électriquement bruyants comme une voiture. Ils sont également utiles pour contrôler de grosses charges, par exemple une picaxe fournissant 20mA à 5V = 0,1W contrôlant un transistor 12V à 100mA=1,2W à un relais 24V 100mA =2,4W à un contacteur entraînant une pompe de 3600W. Si vous voulez contrôler l'alimentation comme ça, demandez à un électricien de câbler un boîtier de commande et de vous donner deux fils (fils de bobine pour un relais 12V) que vous pouvez contrôler. De cette façon, l'électricien peut signer le boîtier d'alimentation et vous pouvez faire toute l'électronique sans avoir à vous soucier d'être électrocuté. Une autre utilisation des relais est une commande inversée pour un moteur. En utilisant la modulation de largeur d'impulsion dans un mosfet, vous pouvez contrôler la vitesse d'un moteur à courant continu et avec un relais de puissance DPDT, vous pouvez changer la direction. C'est un moyen simple de contrôler de gros moteurs comme ceux utilisés dans les « guerres de robots ». S'il vous plaît poster un commentaire si vous avez besoin d'aide pour construire quelque chose.

Conseillé: