Taula de continguts:

Controleu els dispositius del món real amb el vostre PC: 15 passos (amb imatges)
Controleu els dispositius del món real amb el vostre PC: 15 passos (amb imatges)

Vídeo: Controleu els dispositius del món real amb el vostre PC: 15 passos (amb imatges)

Vídeo: Controleu els dispositius del món real amb el vostre PC: 15 passos (amb imatges)
Vídeo: RTX 3090 Ti vs RTX 3060 Ultimate Showdown for Stable Diffusion, ML, AI & Video Rendering Performance 2024, Juliol
Anonim
Controleu els dispositius del món real amb el vostre PC
Controleu els dispositius del món real amb el vostre PC

Aquesta instrucció us mostra com connectar un PC i un microcontrolador. Aquesta demostració detectarà el valor d'un pot o qualsevol entrada analògica i també controlarà un servo. El cost total és inferior a 40 dòlars inclòs el servo. El servo encén un microinterruptor i, després, el micro encén un llum. En una aplicació pràctica, l'olla podria ser un sensor de temperatura i el servo podria encendre un escalfador. El servo es podria substituir per un relé o un altre controlador de potència. El picaxe està programat en una versió simplificada de basic i la interfície utilitza VB. Net. Tot el programari està disponible de forma gratuïta. Un instructable relacionat mostra com enllaçar dos microcontroladors a través d’Internet

Pas 1: reuniu les parts

Reuneix les parts
Reuneix les parts

Llista de peces: xip Picaxe 08M disponible de moltes fonts, inclosa Rev Ed https://www.rev-ed.co.uk/picaxe/ (Regne Unit), PH Anderson https://www.phanderson.com/ (EUA) i Microzed https://www.microzed.com.au/ (Austràlia) Protoboard, servo, microinterruptor, bateria de 9V, bateries i suport 4xAA, etiqueta, resistència 10k, resistència 22k, condensador 33uF 16V, condensador 0,1uF, 7805L de baixa potència 5V regulador, olla de 10 k, cables (cable de dades sòlid / cable de dades, per exemple, Cat5 / 6), bombeta de 6 V, endoll femella D9 i tapa, 2 metres de cable de dades de 3 (o 4) nuclis, clips de bateria Les empreses anteriors també venen USB a dispositius de sèrie que són útils per a ordinadors portàtils que no tenen un port sèrie. Val a dir que alguns dispositius USB a sèrie no funcionen tan bé com altres i val la pena obtenir-ne un dels proveïdors anteriors, ja que han estat provats per utilitzar-los amb xips picaxe. El que se sap que funciona és https://www.rev-ed.co.uk/docs/axe027.pdf Per descomptat, si el vostre ordinador té un port sèrie (o una targeta de port sèrie antiga), llavors no ser un problema.

Pas 2: descarregueu i instal·leu alguns programes

Descarregueu i instal·leu part del programari
Descarregueu i instal·leu part del programari

Necessitarem el programari VB. Net i el controlador de picaxe. VB. Net (Visual Basic Express) està disponible a https://msdn2.microsoft.com/en-us/express/aa718406.aspx Si aquest enllaç no funciona, cerqueu a Google per a: descàrrega express bàsica visual El programari picaxe està disponible a https://www.rev-ed.co.uk/picaxe/ Haureu de registrar-vos a Microsoft per obtenir la baixada. Si es tracta d’un problema, utilitzeu un correu electrònic fals o alguna cosa. De fet, em va semblar útil donar el meu correu electrònic real ja que enviaven actualitzacions ocasionals.

Pas 3: creeu un circuit de descàrrega

Construeix un circuit de descàrrega
Construeix un circuit de descàrrega

Aquest circuit de descàrrega utilitza un xip picaxe, un parell de resistències, un regulador i una bateria de 9 V. Hi ha més informació disponible a la documentació del picaxe i això només hauria de trigar uns minuts a construir-se un cop totes les parts estiguin a mà.

També puc afegir que els picaxes funcionen alegrement amb 3 bateries AA. Una font regulada de 5 V és útil per executar entrades analògiques ja que les tensions de referència no canvien, però per als circuits simples d’encès / apagat no es necessita una font regulada. El registre de 5V es pot deixar de banda en aquestes situacions.

Pas 4: Disseny de Protoboard del circuit de descàrrega

Disseny de Protoboard del circuit de descàrregues
Disseny de Protoboard del circuit de descàrregues

Aquesta foto mostra el cable de descàrrega, que és simplement un endoll D9 i un parell de metres d'algun cable multi nucli. La majoria d’ordinadors moderns tenen una connexió de port sèrie D9. Un PC construït abans del 1998 pot tenir un connector de 25 pins. He soldat aproximadament 1 cm de filferro de nucli sòlid a l’extrem dels cables flexibles i després he posat un encongit al voltant d’aquest: els cables de nucli sòlid passen a una protoborda molt millor que els cables flexibles.

Pas 5: descarregueu el programa Picaxe

Descarregueu-vos el programa Picaxe
Descarregueu-vos el programa Picaxe

Feu clic a la fletxa blava per descarregar. Si no es descarrega, hi ha alguns suggeriments de depuració al manual d'instruccions de picaxe. Podeu provar de descarregar un programa senzill per encendre i apagar un led per comprovar que funciona el xip. Aquest programa, tal com és, no fa res fins que no està connectat a un PC, ja que espera que el PC li enviï alguna cosa. Si es descarrega bé, funciona i el xip està programat i el següent pas és reconfigurar el xip com a xip d’interfície sèrie.

Copieu i enganxeu el codi següent. Per veure-ho amb la sintaxi del color, busqueu a Visualització / Opcions / Editor. Les convencions de color són similars a VB. Net main: serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'llegiu el pot i, a continuació, envieu aquest servidor secundari 0, N2400, ("Dades", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) seleccioneu cas b0 'llegeix bit de dades b0 cas <140' si <140 llavors posa el servo a una posició servo 2, 120 pausa 1000 'pausa una segona persona servo 2, 160 pausa 1000 selecció final baixa 2' apaga el servo ja que Serin ho fa de totes maneres anar a main

Pas 6: torneu a configurar el circuit com a circuit d'interfície sèrie

Torneu a configurar el circuit com a circuit d'interfície sèrie
Torneu a configurar el circuit com a circuit d'interfície sèrie

S'han fet dos canvis subtils al circuit de picaxe. La resistència de 22 k que solia anar a la cama 2 ara passa a la cama 4. I la cama 2 ha estat connectada a terra. L'únic propòsit del tram 2 és rebre dades de programació des del PC, de manera que un cop programat el xip es pot lligar a terra. Si torneu a programar el xip per corregir errors, etc., desconnecteu la pota 2 de terra i torneu a connectar la 22k a la pota 2. El picaxe torna a parlar amb el PC a través de la pota 7, de manera que no cal canviar.

S'ha afegit una olla i s'ha afegit el servo. El servo no és realment necessari i un led i una resistència de 1 k funcionarien bé i / o qualsevol circuit que vulgueu connectar. Acabo d'utilitzar un servo per mostrar com fer clic a alguna cosa en una pantalla pot fer que alguna cosa es mogui. El servo funciona amb la seva pròpia font d'alimentació. Aquesta font d'alimentació independent no seria necessària si el picaxe només encengués i apagés els leds. El picaxe ja està a punt, ara necessitem un codi VB.

Pas 7: escriviu un codi d'interfície VB

Escriviu alguns codis d'interfície VB
Escriviu alguns codis d'interfície VB

Un cop instal·lat VB. Net, executeu-lo i seleccioneu Fitxer / Projecte nou i seleccioneu Aplicació de Windows. Podeu fer clic a Arxiu / Desa bé al principi i desar-lo allà on vulgueu i, posteriorment, iniciar el projecte des de VB. Net o fer clic en un fitxer.sln que es crearà.

Pas 8: dissenyeu el formulari VB. Net

Dissenyeu el formulari VB. Net
Dissenyeu el formulari VB. Net

VB crea un nou formulari en blanc anomenat Form1.vb. Podeu canviar-ne el nom ara o més tard o simplement deixar-lo com a Form1 si el projecte és senzill. Ho deixarem tal com està. Per afegir una mica de control, hem d’obrir la caixa d’eines encerclada en verd. La caixa d'eines es pot obrir i tancar sempre que calgui, normalment el primer pas és afegir els controls i després tancar la caixa d'eines i treballar el codi. Podeu deixar-lo obert tot el temps, però ocupa una mica de pantalla.

Pas 9: afegiu un temporitzador

Afegiu un temporitzador
Afegiu un temporitzador

Hem desplaçat la caixa d’eines cap avall i hem seleccionat un temporitzador. Feu doble clic al temporitzador per afegir-lo. Apareixerà la imatge d’un rellotge anomenat Temporitzador1 a la part inferior de la pantalla i a la dreta es ressalten les propietats del temporitzador. Podeu editar-los o es poden canviar al cos del text del codi. Els deixarem tal com són i els canviarem al cos del text.

A part, la caixa d’eines sembla una mica descoratjadora, però només són necessaris uns quants per a la majoria de programes, com ara botons, quadres de text, etiquetes, temporitzadors, quadres d’imatges, caselles de selecció i caixes de ràdio. Potser obriu un programa nou i jugueu amb alguns en algun moment.

Pas 10: afegiu un parell de botons

Afegiu un parell de botons
Afegiu un parell de botons

Feu clic a l'eina de botons i dibuixeu la mida del botó a Form1. Necessitarem dos botons, un quadre d'imatge i una etiqueta. Seguiu endavant i afegiu-los: la següent captura de pantalla mostra tots els dibuixats. La mida i la posició no són importants i podeu canviar-los el nom més tard si voleu.

Pas 11: formulari amb tots els controls afegits

Formulari amb tots els controls afegits
Formulari amb tots els controls afegits

Ara es presenta el formulari 1. El quadre situat al costat de Button2 és un quadre d’imatges petit. Podeu posar-hi imatges, però només l’utilitzarem per indicar quin botó s’ha premut canviant-lo de vermell a verd. Label1 mostra els registres de picaxe.

Pas 12: afegiu una mica de codi

Afegiu una mica de codi
Afegiu una mica de codi

A la dreta, encerclats en verd, hi ha diversos botons útils: el segon de la dreta és el botó Visualitza el codi i el botó dret és el dissenyador de visualitzacions. A la pràctica, quan s’escriu codi, es va endavant i enrere entre aquestes vistes. Generalment, si es troba en mode Dissenyador, fent doble clic sobre un objecte, com ara un botó, apareix un punt a la vista de codi per afegir algun codi o en porta un al tros de codi que s'executa quan es prem el botó. D’aquesta manera, el flux del programa es fa força intuïtiu: l’usuari fa clic a les coses i als bits de codi que s’executen i canvien la pantalla, etc. Per als nostres propòsits, enganyarem i enganxarem tota una llosa de codi de treball. tindrà Public Class Form1 … End Class: ressalteu-lo i suprimiu-lo. Ara agafeu tot el codi que hi ha a continuació i enganxeu-lo a. per a declaracions de son Dim WithEvents serialPort As New IO. Ports. SerialPort 'serial port declareDim PicaxeRegisters (0 to 13) As Byte' registers b0 to b13Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) Handles Me. LoabledTimer = True 'posa això al codi com a valor predeterminat com a false quan s'ha creatTimer1. Interval = 5000' 5 segonsPictureBox1. BackColor = Color. Red 'establert a la posició' red'Array. Clear (PicaxeRegisters, 0, 13) 'probablement no sigui necessari com a matriu declarada blankEnd SubPrivate Sub Timer1_Tick (remitent ByVal com a System. Object, ByVal i As System. EventArgs) Maneja el temporitzador 1. Marqueu el temporitzador que marca cada 5 segons Truqueu a SerialTxRx () 'Parleu amb picaxeEnd SubSub SerialTxRx () Dim LabelString As String' cadena per visualitzar DataP acket (0 a 17) Com a paquet de dades sencer "Byte '" Data "+14 bytes Dim i As Integer' i sempre és útil per a bucles, etc. Etiqueta1. Text =" "'neteja el text a la pantalla Per a = 0 A 3DataPacket (i) = Asc (Mid ("Dades", i + 1, 1)) 'afegiu la paraula "Dades" al paquetNextPer i = 0 A 13DataPacket (i + 4) = PicaxeRegisters (i)' afegiu tots els bytes al paquetNextIf serialPort. IsOpen ThenserialPort. Close () 'per si ja s'ha obert Finalitza IfTryWith serialPort. PortName = "COM1"' La majoria dels equips nous tenen per defecte com1, però qualsevol ordinador anterior al 1999 amb un ratolí sèrie probablement serà com2. BaudRate = 2400 '2400 és el màxim velocitat per a picaxes petits. Parity = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. One 'bit de parada. si no hi ha resposta. Open () "obriu el port sèrie. DiscardInBuffer ()" esborreu el buffer d'entrada. Escriviu (DataPacket, 0, 18) "envieu la matriu de paquets de dades Call Sleep (300)" 100 mil·lisegons mínim per esperar r dades que tornaran i més si el flux de dades és més llarg. Llegiu (DataPacket, 0, 18) 'torneu a llegir a la matriu de paquets de dades. Str (DataPacket (i)) 'es converteix en una cadena de textNextLabel1. Text = LabelString' posa la cadena de text a la pantalla Captura ex com a excepció'MsgBox (ex. ToString) 'sense comentar això si voleu veure el missatge d'error realLabel1. Text = " El temps d'espera "'es mostrarà si el picaxe no està connectat, etc. Finalitza ProvaEnd SubPrivat Sub Button1_Click (ByVal remitent com System. Object, ByVal e As System. EventArgs) Handles Button1. ClickPictureBox1. BackColor = Color. Red' canvia la casella a redPicaxeRegisters (0) = 120 'un valor arbitrari per al botó servoEnd SubPrivate Sub2_Click (remitent ByVal com a System. Object, ByVal e As System. EventArgs) Handles Button2. ClickPictureBox1. BackColor = Color. Green' a greenPicaxeRegisters (0) = 160 'valor arbitrari per al servoEnd SubEnd Class

Pas 13: executeu el programa

Executeu el programa
Executeu el programa

Enceneu el picaxe si no està engegat. Executeu el programa vb.net fent clic al triangle verd a la part superior de la pantalla, prop del centre. A la dreta del triangle d'execució hi ha un botó de pausa i un de parada, o es pot aturar el programa fent clic a la part superior dreta x o amb Fitxer / Sortida si heu afegit un menú. El programa es pot compilar si voleu, però per a la depuració, deixeu-lo funcionar dins de VB. El temporitzador envia bytes cada 5 segons, de manera que triga 5 segons a aparèixer. L’etiqueta 1 mostra un buidatge dels 14 registres de picaxe.. Aquests s’envien al picaxe i els tornen a enviar. És gairebé segur que no cal enviar els 14 i el vostre codi es pot canviar per adaptar-lo. El segon byte amb un valor de 152 és el valor de l’olla que canvia de 0 a 255. Si es fa clic al botó 1, envia un valor de 120 al primer byte i, si es fa clic al botó2, envia 160 i el programa picaxe els descodifica i mou el servo. Aquest codi mostra com enviar dades i recuperar-les d’un microcontrolador. El microcontrolador pot encendre tota mena de dispositius: tinc uns 30 a casa meva funcionant aspersors, llums, seguretat, detectant cotxes a les entrades, encenent diverses bombes de 3,6 kW i detectant el nivell d’aigua dels dipòsits. Els Picaxes es poden encadenar en un bus comú i fins i tot es poden comunicar entre ells mitjançant enllaços de ràdio. També és possible carregar i descarregar dades de llocs web i, per tant, utilitzar Internet per connectar dispositius a qualsevol lloc del món https://www.instructables. com / id / Worldwide-microcontroller-link-for-under-20 / Les dues pàgines següents també contenen alguns exemples de com utilitzar diferents sensors i com controlar diferents dispositius.

Pas 14: Dispositius d'entrada

Dispositius d'entrada
Dispositius d'entrada

El programador picaxe conté alguns fitxers d’ajuda molt útils, un dels quals s’anomena "Circuits d’interfície" i també està disponible a https://www.rev-ed.co.uk/docs/picaxe_manual3.pdf Això mostra com controlar els motors, detectar l’entorn i un altre control útil. A més d’aquests cirucits, n’hi ha uns quants que faig servir una i altra vegada. Temperatura: el sensor de temperatura LM35 produeix una tensió que pot entrar directament en un picaxe i es pot llegir amb una ordre readadc o readadc10. Llum: una resistència que depèn de la llum té una resistència que varia des d'uns quants centenars d'ohms a la llum del sol brillant fins a més de 5 megohms en negre intens. Mesureu la resistència al nivell de llum al qual voleu canviar i poseu el LDR en sèrie amb una resistència aproximadament del mateix valor. Per exemple, volia detectar els llums d’un cotxe que tirava cap a l’aparcament per encendre alguns llums. La resistència era d'aproximadament 1M de la llum indirecta, de manera que vaig posar un 1M en sèrie amb el LDR. Commutador: alguns commutadors canvien entre 5V i 0V (un interruptor de doble tir monopolar), però alguns només s’encenen i s’apaguen. Si un interruptor s'encén pot enviar 5V a un xip de picaxe, però si està apagat, el pin de picaxe estaria "flotant" i podria tenir qualsevol valor. Aquest circuit mostra com arrossegar l'entrada a terra quan l'interruptor està apagat. Aquest és el circuit que s’utilitza per a la majoria d’interruptors de botó. Gireu el comandament i llegiu el voltatge al xip. Hi ha tota mena d'altres dispositius electrònics que creen una tensió de 0-5V o que es poden configurar fàcilment per fer-ho. En són exemples els sensors magnètics, la humitat, la velocitat, el tacte, la llum infraroja, la pressió, el color i el so. Els sensors en general només costen uns quants dòlars cadascun.

Pas 15: control de dispositius

Dispositius de control
Dispositius de control

El fitxer d’ajuda de picaxe conté una explicació fantàstica sobre com controlar motors i llums. A més, trobo que hi ha alguns circuits que faig servir una i altra vegada. El primer és un circuit de transistors senzill. Un xip picaxe pot encendre un màxim de 20 mA per pin, cosa que és bona per encendre un LED però no gaire més. Un transistor 547 augmenta el corrent a 100 mA, que és bo per a bombetes petites. El segon circuit mostra un mosfet. Els Mosfets pràcticament no necessiten corrent per conduir-los, només volts, de manera que poden ser controlats directament per un picaxe. Hi ha tot tipus de mosquetes disponibles, però la meva preferència és la que s’anomena BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Es pot conduir directament des de 5V (a diferència d’alguns que necessiten 10V) però el principal avantatge és que té una resistència extremadament baixa quan s’encén - 0,045 ohms, que no és molt més que la resistència dels cables que s’hi connectarien. Això significa que no fa calor quan condueix càrregues força elevades, cosa que estalvia energia i també suposa un estalvi en els costos del dissipador de calor. Com a exemple, conduir una càrrega de 5 amp com un far de cotxe; watts = resistència actual al quadrat x, de manera que W = 5 * 5 * 0,045 = 1,12 watts que només necessitarien un dissipador de calor com una peça quadrada d'alumini prim d'1 polzada. El tercer circuit mostra un relleu. Hi ha diversos paràmetres per a tots els relés: la tensió de la bobina, la resistència de la bobina i la tensió i el corrent de càrrega. Per exemple, un relé pot tenir una bobina de 12V amb un corrent de bobina de 30mA, una resistència de la bobina de 400 ohms i pot ser capaç de conduir fins a 240V a 1 amp. El corrent de la bobina és més de volts i amplificadors del que pot subministrar un picaxe, de manera que fem servir el circuit del transistor per canviar la bobina. També hi ha un díode inclòs: això suprimeix el CEM posterior quan s’apaga el relé. Tornar EMF és el que crea l'espurna per a una bugia, de manera que no voleu que aquestes altes tensions en qualsevol lloc del circuit. Els contactes tindran un corrent i volts màxims: el corrent pot ser d'alguns amplificadors i els voltatges solen ser 240V, de manera que el canvi de 12V o 24V estarà dins del seu abast. Si no teniu experiència en l’electrònica, no jugueu amb tensions de xarxa. També hi ha relés petits que tenen voltatges de bobina de 5V o 6V. Per a aquests relés és possible que no necessiteu un subministrament separat de 12V, però només cal veure la resistència de la bobina, ja que molts d’ells presenten corrents de més de 100mA. Si és així i utilitzeu un regulador 78L05 100mA 5V, és possible que vulgueu canviar-lo per un regulador 7805 que pugui subministrar fins a 1 amp. Els relés són particularment útils per canviar de corrent altern (per exemple, solenoides per aspersió de jardí de 24VAC, llums de jardí de 12VAC) i en entorns amb soroll elèctric, com ara un cotxe. També són útils per controlar càrregues grans, per exemple, un picaxe que subministra 20mA a 5V = 0,1W controlant un transistor de 12V a 100mA = 1,2W a un relé de 24V 100mA = 2,4W a un contactor que condueix una bomba de 3600W. Si voleu controlar una alimentació així, feu que un electricista connecti una caixa de control i us doni dos cables (cables de bobina per a un relé de 12V) que pugueu controlar. D’aquesta manera, l’electricista pot tancar la sessió a la caixa d’energia i podeu fer tota l’electrònica sense haver de preocupar-vos de ser electrocutat. Un altre ús per als relés és un control invers per a un motor. Mitjançant la modulació de l'amplada de pols en un mosfet podeu controlar la velocitat d'un motor de corrent continu i, amb un relé de potència DPDT, podeu canviar la direcció. Aquesta és una manera senzilla de controlar motors grans com els que s’utilitzen en les "guerres de robots". Envieu un comentari si necessiteu ajuda per construir alguna cosa.

Recomanat: