Cuprins:

Controlați dispozitivele din lumea reală cu computerul: 15 pași (cu imagini)
Controlați dispozitivele din lumea reală cu computerul: 15 pași (cu imagini)

Video: Controlați dispozitivele din lumea reală cu computerul: 15 pași (cu imagini)

Video: Controlați dispozitivele din lumea reală cu computerul: 15 pași (cu imagini)
Video: FEMEIA De 399 De ANI ! #shorts 2024, Iulie
Anonim
Controlați dispozitivele din lumea reală cu computerul
Controlați dispozitivele din lumea reală cu computerul

Acest instructable vă arată cum să interfațați un PC și un microcontroler. Această demonstrație va detecta valoarea unui pot sau a oricărei intrări analogice și va controla, de asemenea, un servo. Costul total este sub 40 USD, inclusiv servo. Servo-ul pornește un microîntrerupător și apoi microîntrerupătorul aprinde o lampă. Într-o aplicație practică, vasul ar putea fi un senzor de temperatură și servo ar putea porni un încălzitor. Servo-ul ar putea fi înlocuit cu un releu sau alt controler de putere. Picaxe este programat într-o versiune simplificată de bază, iar interfața utilizează VB. Net. Toate software-urile sunt disponibile gratuit. Un instructable aferent arată cum să legați două microcontrolere prin internet

Pasul 1: Adunați piesele

Adunați piesele
Adunați piesele

Lista pieselor: cip Picaxe 08M disponibil din mai multe surse, inclusiv Rev Ed https://www.rev-ed.co.uk/picaxe/ (Marea Britanie), PH Anderson https://www.phanderson.com/ (SUA) și Microzed https://www.microzed.com.au/ (Australia) Protoboard, servo, microîntrerupător, baterie de 9V, baterii și suport 4xAA, bandă de etichete, rezistor 10k, rezistor 22k, condensator 33uF 16V, condensator 0.1uF, 7805L putere redusă 5V regulator, oală de 10 k, fire (cablu de telefon solid / date, de ex. Cat5 / 6), bec de 6 V, priză și capac femelă D9, 2 metri de cablu de date cu 3 (sau 4) nuclee, cleme pentru baterii Companiile de mai sus vând și USB dispozitivelor seriale care sunt utile pentru laptopurile care nu au un port serial. Este demn de remarcat faptul că unele dispozitive USB către serie nu funcționează la fel de bine ca altele și merită să obțineți unul de la unul dintre furnizorii de mai sus, deoarece au fost testate pentru utilizare cu cipuri picaxe. Cel despre care se știe că funcționează este https://www.rev-ed.co.uk/docs/axe027.pdf Bineînțeles, dacă computerul dvs. are un port serial (sau un card de port serial vechi), atunci acesta nu va fi fie o problemă.

Pasul 2: Descărcați și instalați unele programe

Descărcați și instalați unele programe software
Descărcați și instalați unele programe software

Vom avea nevoie de software-ul VB. Net și controlerul picaxe. VB. Net (Visual Basic Express) este disponibil de la https://msdn2.microsoft.com/en-us/express/aa718406.aspx Dacă acest link nu funcționează, atunci căutați în Google pentru: descărcare vizuală de bază expres Software-ul picaxe este disponibil de la https://www.rev-ed.co.uk/picaxe/ Va trebui să vă înregistrați la Microsoft pentru a obține descărcarea - dacă aceasta este o problemă, utilizați un e-mail fals sau ceva. De fapt, mi s-a părut de ajutor oferindu-mi e-mailul real, deoarece trimit actualizări ocazionale.

Pasul 3: Construiți un circuit de descărcare

Construiți un circuit de descărcare
Construiți un circuit de descărcare

Acest circuit de descărcare folosește un cip picaxe, câteva rezistențe, un regulator și o baterie de 9V. Mai multe informații sunt disponibile în documentația picaxe și acest lucru ar trebui să dureze câteva minute pentru a construi odată ce toate piesele sunt la îndemână.

Aș putea adăuga, de asemenea, că picax-urile rulează fericit pe 3 baterii AA. O sursă reglementată de 5V este utilă pentru rularea intrărilor analogice, deoarece tensiunile de referință nu se schimbă, dar pentru circuitele de pornire / oprire simple nu este necesară o sursă de reglare. Reglajul de 5V poate fi lăsat în afara acestor situații.

Pasul 4: Aspect Protoboard al circuitului de descărcare

Aspect Protoboard al circuitului de descărcare
Aspect Protoboard al circuitului de descărcare

Această fotografie arată cablul de descărcare, care este pur și simplu o priză D9 și câțiva metri de cablu multi core. Majoritatea computerelor moderne au o conexiune de port serial D9. Un computer construit înainte de 1998 poate avea un conector cu 25 de pini. Am lipit aproximativ 1cm de sârmă cu miez solid pe capătul firelor flexibile și apoi am pus termocontractor în jurul acestuia - firele cu miez solid intră într-un protoard mult mai bine decât firele flexibile.

Pasul 5: Descărcați programul Picaxe

Descărcați programul Picaxe
Descărcați programul Picaxe

Faceți clic pe săgeata albastră pentru a descărca. Dacă nu se descarcă, există câteva sugestii de depanare în manualul de instrucțiuni picaxe. Puteți încerca să descărcați un program simplu pentru a porni și opri un led pentru a verifica funcționarea cipului. Acest program, așa cum este, nu face nimic până când nu este conectat la un computer, deoarece așteaptă ca acesta să-i trimită ceva. Dacă se descarcă ok, atunci funcționează și cipul este programat, iar următorul pas este reconfigurarea cipului ca un cip de interfață serială.

Copiați și lipiți codul de mai jos. Pentru a-l vizualiza cu sintaxa culorilor, căutați în Vizualizare / Opțiuni / Editor. Convențiile de culoare sunt similare cu principalele VB. Net: serin 3, N2400, ("Date"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'citiți potul apoi trimiteți acest serout înapoi 0, N2400, („Date”, b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) selectați caz b0 'citiți bitul de date b0 caz <140' dacă <140 apoi setați servo la o poziție servo 2, 120 pauză 1000 'întrerupeți a doua serviciu 2, 160 pauză 1000 selectați final 2' opriți servo, deoarece Serin face asta oricum du-te principal

Pasul 6: Reconfigurați circuitul ca un circuit de interfață serial

Reconfigurați circuitul ca un circuit de interfață serial
Reconfigurați circuitul ca un circuit de interfață serial

Au fost aduse două modificări subtile circuitului picaxe. Rezistorul de 22k care mergea la treapta 2 merge acum la treapta 4. Și treapta 2 a fost împământată. Singurul scop al etapei 2 este de a primi date de programare de pe computer, astfel încât odată ce cipul este programat, acesta poate fi legat la sol. Dacă reveniți la programarea cipului pentru a corecta erorile etc., deconectați treapta 2 de la sol și reconectați 22k la treapta 2. Picaxe vorbește înapoi la PC prin intermediul treapta 7, deci nu trebuie să se schimbe.

S-a adăugat o oală și s-a adăugat servo. Servo-ul nu este cu adevărat necesar și un rezistor LED și 1k ar funcționa bine și / sau orice circuit pe care doriți să îl conectați. Tocmai am folosit un servo pentru a arăta cum făcând clic pe ceva pe un ecran se poate mișca ceva. Servo-ul este pornit de la propria sursă de alimentare. Această sursă de alimentare separată nu ar fi necesară dacă picaxe ar porni și opri ledurile. Picaxe este pregătit - acum avem nevoie de un cod VB.

Pasul 7: Scrieți câteva coduri de interfață VB

Scrieți un cod de interfață VB
Scrieți un cod de interfață VB

Odată ce VB. Net este instalat, rulați-l și selectați Fișier / Proiect nou și selectați Aplicație Windows. Puteți să faceți clic pe Fișier / Salvare bine la început și să salvați oriunde doriți și apoi, în viitor, fie începeți proiectul din VB. Net, fie făcând clic pe un fișier.sln care va fi creat.

Pasul 8: Proiectați formularul VB. Net

Proiectați formularul VB. Net
Proiectați formularul VB. Net

VB creează un nou formular gol numit Form1.vb. Puteți schimba numele acestuia acum sau mai târziu sau pur și simplu lăsați-l ca Form1 dacă proiectul este simplu. O vom lăsa așa cum este. Pentru a adăuga ceva control, trebuie să deschidem caseta de instrumente care este înconjurată în verde. Cutia de instrumente poate fi deschisă și închisă ori de câte ori este nevoie - de obicei primul pas este să adăugați comenzile, apoi să închideți cutia de instrumente și să lucrați la cod. O puteți lăsa deschisă tot timpul, dar ocupă puțin ecran.

Pasul 9: Adăugați un temporizator

Adăugați un cronometru
Adăugați un cronometru

Am derulat în jos caseta de instrumente și am selectat un cronometru. Faceți dublu clic pe cronometru pentru al adăuga. O imagine a unui ceas numit Timer1 va apărea în partea de jos a ecranului și peste în dreapta sunt evidențiate proprietățile temporizatorului. Puteți să le editați sau acestea pot fi modificate în corpul textului codului. Îi vom lăsa așa cum sunt și îi vom schimba în corpul textului.

Deoparte, cutia de instrumente pare puțin descurajantă, dar doar câteva sunt necesare pentru majoritatea programelor - acestea ar include butoane, casete text, etichete, temporizatoare, casete imagine, casete bifate și casete radio. Poate deschideți un program nou și jucați cu câteva cândva.

Pasul 10: Adăugați câteva butoane

Adăugați câteva butoane
Adăugați câteva butoane

Faceți clic pe instrumentul pentru butoane și desenați dimensiunea butonului pe Form1. Vom avea nevoie de două butoane, o casetă de imagine și o etichetă. Continuați și adăugați-le - următoarea captură de ecran le arată pe toate desenate. Dimensiunea și poziția nu sunt importante și le puteți redenumi mai târziu, dacă doriți.

Pasul 11: Formați cu toate comenzile adăugate

Formular cu toate comenzile adăugate
Formular cu toate comenzile adăugate

Form1 este acum prezentat. Caseta de lângă Button2 este o casetă de imagine mică. Puteți pune imagini în aceasta, dar o vom folosi doar pentru a indica care buton a fost apăsat schimbându-l de la roșu la verde. Label1 afișează registrele picaxe.

Pasul 12: Adăugați un cod

Adăugați un cod
Adăugați un cod

În partea dreaptă, înconjurat de verde, sunt câteva butoane utile - al doilea din dreapta este butonul View Code, iar butonul din dreapta este View Designer. În practică, atunci când scrieți codul, mergeți înainte și înapoi între aceste puncte de vedere. În general, dacă cineva se află în modul Designer, faceți dublu clic pe un obiect, cum ar fi un buton, afișează un loc în vizualizarea codului pentru a adăuga un anumit cod sau duce unul la fragmentul de cod care rulează când butonul este apăsat. În acest fel, fluxul programului devine destul de intuitiv - utilizatorul face clic pe lucruri și biți de cod care rulează și schimbă ecranul și așa mai departe. va avea Public Class Form1 … End Class - evidențiați-l și ștergeți-l. Acum, luați tot codul de mai jos și lipiți-l în. Imports System. IOImports Strings = Microsoft. VisualBasic 'astfel încât să puteți folosi lucruri precum stânga (și dreapta (pentru șiruriPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)' pentru declarații de somn 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. LoadTimer = Adevărat 'pune acest lucru în cod ca implicit la fals atunci când este creat Timer1. Interval = 5000' 5 secundePictureBox1. BackColor = Color. Red 'setat la poziția' roșu'Array. Clear (PicaxeRegisters, 0, 13) 'probabil nu este necesar ca matricea declarată blankEnd SubPrivate Sub Timer1_Tick (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Timer1. Tick 'Timer ticks every 5 seconds Call SerialTxRx ()' talk to picaxeEnd SubSub SerialTxRx () Dim LabelString As String 'string to display by display by Afișare DataP acket (0 la 17) Ca octet 'întregul pachet de date "Date" +14 octeți Dim i Ca întreg' i este întotdeauna util pentru bucle etc. Etichetă1. Text = "" 'ștergeți textul de pe ecran Pentru i = 0 To 3DataPacket (i) = Asc (Mid ("Date", i + 1, 1)) 'adăugați cuvântul "Data" la pachetul Următorul Pentru i = 0 la 13 Pachet de date (i + 4) = PicaxeRegisters (i)' adăugați toți octeții la pachetul Următorul serialPort. IsOpen ThenserialPort. Close () 'doar în cazul în care este deja deschis Sfârșit IfTryWith serialPort. PortName = "COM1"' Majoritatea computerelor noi implicit pentru com1, dar orice computer pre 1999 cu mouse serial va fi implicit pentru com2. BaudRate = 2400 '2400 este maxiumum viteza pentru picaxes mici. Parity = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. One 'bit one stop. ReadTimeout = 1000' milisecunde deci expiră în 1 secundă dacă nu există răspuns. Deschideți () 'deschideți portul serial. r date pentru a reveni și mai multe dacă fluxul de date este mai lung. Citiți (DataPacket, 0, 18) 'citiți înapoi în matricea de pachete de date. Str (DataPacket (i)) 'se transformă într-un șir de textNextLabel1. Text = LabelString' pune șirul de text pe ecran Prinde ex ca excepție'MsgBox (ex. ToString) 'decomentează acest lucru dacă vrei să vezi mesajul de eroare realLabel1. Text = " Timeout "'va afișa acest lucru dacă picaxe nu este conectat etc Încheiați TryEnd SubPrivate Sub Buton1_Click (ByVal expeditor ca System. Object, ByVal e As System. EventArgs) Handles Button1. ClickPictureBox1. BackColor = Color. Red' schimbați caseta în redPicaxeRegisters (0) = 120 'o valoare arbitrară pentru servoEnd SubPrivate Sub Button2_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button2. ClickPictureBox1. BackColor = Color. Green' casetă la greenPicaxeRegisters (0) = 160 'valoare arbitrară pentru servoEnd SubEnd Class

Pasul 13: Rulați programul

Rulați programul
Rulați programul

Porniți picaxe dacă nu este pornit. Rulați programul vb.net făcând clic pe triunghiul verde din partea de sus a ecranului lângă mijloc. În dreapta triunghiului de rulare sunt un buton de pauză și un buton de oprire, sau programul poate fi oprit făcând clic pe dreapta sus x sau cu Fișier / Ieșire dacă ați adăugat un meniu. Programul poate fi compilat dacă doriți, dar pentru depanare, lăsați-l să ruleze în VB. Temporizatorul trimite octeți la fiecare 5 secunde, deci durează 5 secunde până când afișajul apare.. Acestea sunt trimise la picaxe și apoi trimise din nou. Aproape sigur nu este necesar să trimiteți toate cele 14, iar codul dvs. poate fi schimbat pentru a se potrivi. Al doilea octet cu o valoare de 152 este valoarea potului care se schimbă de la 0 la 255. Dacă se face clic pe butonul 1, acesta trimite o valoare de 120 în primul octet și dacă se face clic pe butonul 2, acesta trimite 160 și programul picaxe le decodifică și mută servo-ul. Acest cod arată cum să trimiteți date și să obțineți datele înapoi de la un microcontroler. Microcontrolerul poate porni tot felul de dispozitive - am în jur de 30 de case care rulează sprinklere, lumini, securitate, detectarea mașinilor în căile de acces, pornirea unui număr de pompe de 3,6Kw și detectarea nivelului de apă din rezervoare. Picaxes poate fi montat pe un autobuz comun și poate chiar comunica între ei prin legături radio. De asemenea, este posibil să încărcați și să descărcați date de pe site-uri web și, prin urmare, să utilizați internetul pentru a conecta dispozitive oriunde în lume https://www.instructables. com / id / Worldwide-microcontroller-link-for-under-20 / Următoarele două pagini conțin, de asemenea, câteva exemple despre cum să utilizați diferiți senzori și cum să controlați diferite dispozitive. Dr. James Moxham Adelaide, Australia de Sud

Pasul 14: Dispozitive de intrare

Dispozitive de intrare
Dispozitive de intrare

Programatorul picaxe conține câteva fișiere de ajutor foarte utile, dintre care unul se numește „Circuite de interfațare” și este disponibil și la adresa https://www.rev-ed.co.uk/docs/picaxe_manual3.pdf Acest lucru arată cum să controlați motoarele, simțiți mediul și alt control util. În plus față de aceste cirucite, există câteva pe care le folosesc iar și iar. Temperatură - senzorul de temperatură LM35 produce o tensiune care poate intra direct într-un picaxe și poate fi citită cu o comandă readadc sau readadc10. Lumină - un rezistor dependent de lumină are o rezistență care variază de la câteva sute de ohmi în lumina soarelui strălucitoare la peste 5 megohmi în negru intens. Măsurați rezistența la nivelul de lumină la care doriți să comutați și puneți LDR în serie cu un rezistor de aproximativ aceeași valoare. De exemplu, am vrut să detectez luminile unei mașini care se trag în carport pentru a aprinde niște lumini. Rezistența a fost de aproximativ 1M față de lumina indirectă, așa că am pus un 1M în serie cu LDR. Comutator - unele comutatoare comută între 5V și 0V (un comutator cu un singur pol cu dublă aruncare), dar unele doar pornesc și opresc. Dacă un comutator pornește, acesta poate trimite 5V la un cip picaxe, dar dacă este oprit, pinul picaxe ar fi „plutitor” și ar putea avea orice valoare. Acest circuit arată cum să trageți intrarea în jos atunci când comutatorul este oprit. Acesta este circuitul de utilizat pentru majoritatea comutatoarelor cu buton. Potențiomter - un buton bun de modă veche. Răsuciți butonul și citiți tensiunea în cip. Există tot felul de alte dispozitive electronice care creează o tensiune de la 0-5V sau care pot fi configurate cu ușurință pentru a face acest lucru. Exemple sunt senzorii magnetici, umiditatea, viteza, atingerea, lumina în infraroșu, presiunea, culoarea și sunetul. Senzorii în general costă doar câțiva dolari fiecare.

Pasul 15: Controlul dispozitivelor

Dispozitive de control
Dispozitive de control

Fișierul de ajutor picaxe conține o explicație excelentă despre cum să controlați motoarele și luminile. În plus, consider că există câteva circuite pe care le folosesc mereu. Primul este un circuit de tranzistor simplu. Un cip picaxe poate porni maximum 20mA pe pin, ceea ce este bun pentru pornirea unui LED, dar nu mult. Un tranzistor 547 crește curentul la 100mA, ceea ce este bun pentru becurile mici. Al doilea circuit prezintă un mosfet. Mosfetele nu au nevoie practic de curent pentru a le conduce - doar volți, astfel încât să poată fi controlate direct de un picaxe. Există tot felul de mosfete disponibile, dar preferința mea este una numită BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Poate fi condusă direct de la 5V (spre deosebire de unele care au nevoie de 10V), dar principalul avantaj este că are o rezistență extrem de scăzută la pornire - 0,045 ohmi, ceea ce nu este mult mai mare decât rezistența firelor pe care le-ați conecta la acesta. Aceasta înseamnă că nu se încălzește atunci când conduceți sarcini destul de mari, ceea ce economisește energie și, de asemenea, economisește costurile radiatorului. De exemplu, conducerea unei sarcini de 5 amp ca un far auto; wați = curent pătrat x rezistență, deci W = 5 * 5 * 0,045 = 1,12 wați care ar avea nevoie doar de un radiator ca o bucată pătrată de aluminiu subțire de 1 inch. Al treilea circuit prezintă un releu. Există mai mulți parametri pentru toate releele - tensiunea bobinei, rezistența bobinei și tensiunea și curentul de sarcină. De exemplu, un releu ar putea avea o bobină de 12V cu un curent de bobină de 30mA, rezistența bobinei de 400 ohmi și ar putea fi capabil să conducă până la 240V la 1 amp. Curentul bobinei este mai mare de volți și amperi decât poate furniza un picaxe, așa că folosim circuitul tranzistorului pentru a comuta bobina. Există și o diodă inclusă - aceasta elimină EMF din spate atunci când releul se oprește. Înapoi EMF este ceea ce creează scânteia pentru o bujie, astfel încât să nu doriți aceste tensiuni ridicate nicăieri într-un circuit. Contactele vor avea un curent maxim și volți - curentul ar putea fi de câțiva amperi, iar volții sunt adesea 240V, deci comutarea 12V sau 24V va fi bine în raza de acțiune. Dacă nu aveți experiență în electronică, nu vă jucați cu tensiunile de rețea. Există, de asemenea, relee mici care au tensiuni de 5V sau 6V. Pentru aceste relee este posibil să nu aveți nevoie de o sursă separată de 12V, ci doar urmăriți rezistența bobinei, deoarece multe dintre acestea au curenți de peste 100mA. Dacă da și utilizați un regulator 78L05 100mA 5V, poate doriți să schimbați acest lucru cu un regulator 7805 care poate furniza până la 1 amp. Releele sunt deosebit de utile pentru comutarea în curent alternativ - de exemplu, solenoizi de grădină de 24VAC, lumini de grădină de 12VAC și în medii cu zgomot electric, cum ar fi o mașină. Acestea sunt, de asemenea, utile pentru controlul sarcinilor mari, de exemplu un picaxe care furnizează 20mA la 5V = 0,1W controlând un tranzistor 12V la 100mA = 1,2W la un releu 24V 100mA = 2,4W la un contactor care conduce o pompă de 3600W. Dacă doriți să controlați puterea așa, atunci cereți unui electrician să conecteze o cutie de control și să vă dea două fire care ies (fire bobine pentru un releu de 12V) pe care le puteți controla. În acest fel, electricianul se poate deconecta de la cutia de alimentare și puteți face toate componentele electronice fără a fi nevoie să vă faceți griji că va fi electrocutat. O altă utilizare pentru relee este o comandă inversă pentru un motor. Folosind modularea lățimii impulsurilor într-un mosfet puteți controla viteza unui motor de curent continuu, iar cu un releu de putere DPDT puteți schimba direcția. Acesta este un mod simplu de a controla motoarele mari, precum cele utilizate în „războaiele robotilor”. Vă rugăm să postați un comentariu dacă aveți nevoie de ajutor pentru a construi ceva.

Recomandat: