Sadržaj:

Upravljajte uređajima stvarnog svijeta sa svojim računarom: 15 koraka (sa slikama)
Upravljajte uređajima stvarnog svijeta sa svojim računarom: 15 koraka (sa slikama)

Video: Upravljajte uređajima stvarnog svijeta sa svojim računarom: 15 koraka (sa slikama)

Video: Upravljajte uređajima stvarnog svijeta sa svojim računarom: 15 koraka (sa slikama)
Video: Ako imate iPhone, OVO MORATE ISPROBATI! 2024, Juli
Anonim
Upravljajte uređajima stvarnog svijeta sa svojim računarom
Upravljajte uređajima stvarnog svijeta sa svojim računarom

Ovaj Instructable pokazuje vam kako spojiti računar i mikrokontroler. Ovaj demo će osjetiti vrijednost lonca ili bilo kojeg analognog ulaza, a također će kontrolirati servo. Ukupni troškovi su ispod 40 USD uključujući servo. Servo uključuje mikroprekidač, a zatim mikroprekidač uključuje lampicu. U praktičnoj primjeni lonac može biti senzor temperature, a servo može uključivati grijač. Servo se može zamijeniti relejem ili drugim regulatorom snage. Picaxe je programiran u pojednostavljenoj osnovnoj verziji, a sučelje koristi VB. Net. Sav softver dostupan je besplatno. Srodni Instructable pokazuje kako povezati dva mikrokontrolera putem interneta

Korak 1: Prikupite dijelove

Prikupite dijelove
Prikupite dijelove

Lista dijelova: Picaxe 08M čip dostupan iz mnogih izvora, uključujući Rev Ed https://www.rev-ed.co.uk/picaxe/ (UK), PH Anderson https://www.phanderson.com/ (SAD) i Microzed https://www.microzed.com.au/ (Australija) Protoboard, servo, mikroprekidač, 9V baterija, 4xAA baterije i držač, traka za oznake, 10k otpornik, 22k otpornik, 33uF 16V kondenzator, 0,1uF kondenzator, 7805L male snage 5V regulator, 10k lonac, žice (puna jezgra telefonske/podatkovne žice, npr. Cat5/6), 6V žarulja, D9 ženska utičnica i poklopac, 2 metra žice za prijenos podataka s 3 (ili 4) jezgre, kopče za baterije Gore navedene kompanije također prodaju USB serijskim uređajima koji su korisni za prijenosna računala koja nemaju serijski port. Vrijedi napomenuti da neki USB na serijske uređaje ne rade tako dobro kao drugi i vrijedi nabaviti jedan od jednog od gore navedenih dobavljača jer su testirani za upotrebu sa picaxe čipovima. Ona za koju se zna da radi je https://www.rev-ed.co.uk/docs/axe027.pdf Naravno, ako vaše računalo ima serijski port (ili staru karticu serijskog porta), to neće biti problem.

Korak 2: Preuzmite i instalirajte neki softver

Preuzmite i instalirajte neki softver
Preuzmite i instalirajte neki softver

Trebat će nam VB. Net i softver kontrolera picaxe. VB. Net (Visual Basic Express) je dostupan na https://msdn2.microsoft.com/en-us/express/aa718406.aspxAko ova veza ne radi, pretražite u Google -u za: vizualno osnovno ekspresno preuzimanjePicaxe softver dostupan je na https://www.rev-ed.co.uk/picaxe/ Morat ćete se registrirati kod Microsofta da biste preuzeli - ako je to problem, upotrijebite lažnu e -poštu ili tako nešto. Zaista mi je bilo korisno dati moju pravu e -poštu dok oni šalju povremena ažuriranja.

Korak 3: Izgradite krug za preuzimanje

Napravite sklop za preuzimanje
Napravite sklop za preuzimanje

Ovo kolo za preuzimanje koristi picaxe čip, nekoliko otpornika, regulator i bateriju od 9V. Više informacija dostupno je u dokumentaciji za picaxe, a izgradnja bi trebala potrajati samo nekoliko minuta nakon što svi dijelovi budu pri ruci.

Mogao bih također dodati da pikaksevi rade sretno na 3 AA baterije. Regulirano napajanje od 5 V korisno je za pokretanje analognih ulaza jer se referentni naponi ne mijenjaju, ali za jednostavna kola za uključivanje/isključivanje nije potrebno regulirano napajanje. U tim se situacijama 5V reg može izostaviti.

Korak 4: Izgled protobora kola za preuzimanje

Izgled protobora kola za preuzimanje
Izgled protobora kola za preuzimanje

Ova fotografija prikazuje kabel za preuzimanje koji je jednostavno D9 utikač i nekoliko metara nekog višežilnog kabela. Većina modernih računara ima vezu serijskog porta D9. Računalo izgrađeno prije otprilike 1998. moglo bi imati 25 -pinski konektor. Lemio sam oko 1 cm žice sa čvrstim jezgrom na kraj fleksibilnih žica, a zatim oko toga stavio hladnjak - žice sa čvrstim jezgrom idu u protoboard mnogo bolje od fleksibilnih žica.

Korak 5: Preuzmite program Picaxe

Preuzmite program Picaxe
Preuzmite program Picaxe

Kliknite na plavu strelicu za preuzimanje. Ako se ne preuzme, postoje neki prijedlozi za otklanjanje grešaka u uputstvu za upotrebu picaxe. Možete pokušati preuzeti jednostavan program za uključivanje i isključivanje LED dioda kako biste provjerili funkcioniranje čipa. Ovakav program ne radi ništa dok se ne poveže sa računarom dok čeka da mu računar nešto pošalje. Ako se preuzme u redu, onda radi i čip je programiran, a sljedeći korak je ponovno konfiguriranje čipa kao čip serijskog sučelja.

Kopirajte i zalijepite donji kod. Da biste je pogledali sa sintaksom u boji, pogledajte u Pogled/Opcije/Uređivač. Konvencije o bojama slične su VB. Net glavnom: serin 3, N2400, ("Podaci"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'pročitajte pot, a zatim pošaljite ovaj nazad serout 0, N2400, ("Podaci", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) odaberite slučaj b0 'čitanje bita podataka b0 slučaj <140' ako <140 tada postavite servo na jednu poziciju servo 2, 120 pauziraj 1000 'pauziraj drugu sekundu servo 2, 160 pauziraj 1000 endselect nisko 2' isključite servo jer serin to ipak čini goto main

Korak 6: Ponovo konfigurirajte krug kao krug serijskog sučelja

Ponovo konfigurirajte krug kao krug serijskog sučelja
Ponovo konfigurirajte krug kao krug serijskog sučelja

Dve suptilne promene su napravljene u kolu picaxe. Otpornik od 22 k koji je nekad išao na nogu 2 sada ide na nogu 4, a noga 2 je uzemljena. Jedina svrha kraka 2 je primanje programskih podataka s računala tako da se nakon programiranja čipa može vezati za uzemljenje. Ako se vratite programiranju čipa za ispravljanje grešaka itd., Tada odvojite nogu 2 od tla i ponovo spojite 22k na nogu 2. Picaxe se vraća na računar preko nožice 7 tako da se to ne mora mijenjati.

Dodana je posuda i servo. Servo zapravo nije potreban, a LED i 1k otpornik bi radili dobro i/ili bilo koje kolo koje želite spojiti. Upravo sam koristio servo da pokažem kako se klikom na nešto na ekranu može pokrenuti nešto. Servo pogon ima vlastito napajanje. Ovo odvojeno napajanje ne bi bilo potrebno da je pikaxe samo uključivao i isključivao LED diode. Picaxe je spreman za rad - sada nam je potreban VB kod.

Korak 7: Napišite neki kod VB sučelja

Napišite neki kôd VB sučelja
Napišite neki kôd VB sučelja

Nakon što je VB. Net instaliran, pokrenite ga i odaberite Datoteka/Novi projekt i odaberite Windows aplikacija. Možete kliknuti Datoteka/Spremi sve odmah na početku i spremite gdje god želite, a zatim u budućnosti ili pokrenite projekt iz VB. Net -a ili klikom na.sln datoteku koja će se stvoriti.

Korak 8: Dizajnirajte obrazac VB. Net

Dizajnirajte obrazac VB. Net
Dizajnirajte obrazac VB. Net

VB stvara novi prazan obrazac pod nazivom Form1.vb. Možete promijeniti naziv ovoga sada ili kasnije ili ga ostaviti kao Form1 ako je projekt jednostavan. Ostavićemo to kako jeste. Da bismo dodali neku kontrolu, moramo otvoriti okvir s alatima koji je zaokružen zelenom bojom. Okvir s alatima može se otvoriti i zatvoriti kad god je to potrebno - obično je prvi korak dodavanje kontrola, a zatim zatvaranje okvira s alatima i rad na kodu. Možete ga ostaviti otvorenim cijelo vrijeme, ali zauzima malo ekrana.

Korak 9: Dodajte mjerač vremena

Dodajte tajmer
Dodajte tajmer

Pomaknuli smo se prema nizu alata i odabrali mjerač vremena. Dvaput kliknite na mjerač vremena da biste ga dodali. Slika sata koja se zove Timer1 pojavit će se pri dnu ekrana, a desno iznad nje, svojstva tajmera su istaknuta. Možete ih urediti ili se mogu promijeniti u tekstualnom tekstu koda. Ostavit ćemo ih kakve jesu i promijeniti ih u tijelu teksta.

Osim toga, okvir s alatima izgleda pomalo zastrašujuće, ali samo je nekoliko potrebno za većinu programa - to bi uključivalo dugmad, okvire za tekst, naljepnice, tajmere, okvire za slike, okvire za potvrdu i radio okvire. Možda otvorite novi program i nekad se predstavite s nekolicinom.

Korak 10: Dodajte nekoliko dugmadi

Dodajte nekoliko dugmadi
Dodajte nekoliko dugmadi

Kliknite na alat za dugme i nacrtajte veličinu dugmeta na obrascu 1. Trebat će nam dva gumba, okvir sa slikom i naljepnica. Samo naprijed i dodajte ovo - sljedeći snimak zaslona prikazuje sve ovo nacrtano. Veličina i položaj nisu važni i kasnije ih možete preimenovati ako želite.

Korak 11: Obrazac sa svim dodatim kontrolama

Obrazac sa svim dodatim kontrolama
Obrazac sa svim dodatim kontrolama

Obrazac 1 je sada postavljen. Okvir pored Button2 je mali okvir sa slikom. U ovo možete staviti slike, ali mi ćemo ga koristiti samo da označimo koje dugme je pritisnuto promjenom iz crvenog u zeleno. Label1 prikazuje picaxe registre.

Korak 12: Dodajte kôd

Dodajte neki kôd
Dodajte neki kôd

Sa desne strane zaokruženo zelenom bojom nalazi se nekoliko korisnih dugmadi - drugo s desne strane je dugme za pregled koda, a desno dugme je dizajner prikaza. U praksi se prilikom pisanja koda ide napred -nazad između ovih pogleda. Općenito, ako ste u dizajnerskom načinu rada, dvostrukim klikom na objekt, poput gumba, pojavljuje se mjesto u prikazu koda za dodavanje nekog koda ili ga uzima u dio koda koji se pokreće kada se dugme pritisne. Na ovaj način tok programa postaje prilično intuitivan - korisnik klikće na stvari i komadiće koda koji se pokreću i mijenja ekran itd. U naše svrhe ipak ćemo prevariti i zalijepiti cijelu ploču radnog koda. Prikaz koda imat će formu javne klase1 … Kraj klase - označite ovo i izbrišite. Sada uzmite sav donji kôd i zalijepite ga u. Unosi System. IOImports Strings = Microsoft. VisualBasic 'tako da može koristiti stvari poput lijeve (i desne (za stringsPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)' za naredbe spavanjaDim WithEvents serialPort As New IO. Ports. SerialPort 'serijski port deklariraDim PicaxeRegisters (0 do 13) As Byte' registrira b0 do b13Private Sub Form1_Load (ByVal pošiljatelj kao objekt, ByVal e kao System. EventArgs) Rukuje Me. Load = True 'stavite ovo u kôd kao zadane vrijednosti na false kada se kreiraTimer1. Interval = 5000' 5 sekundiPictureBox1. BackColor = Color. Red 'postavljeno na poziciju' red'Array. Clear (PicaxeRegisters, 0, 13) 'vjerojatno nije potrebno kako je polje deklarirano blankEnd SubPrivate Sub Timer1_Tick (ByVal pošiljalac kao System. Object, ByVal e As System. EventArgs) Rukuje Tajmerom 1. Označite 'timer otkucava svakih 5 sekundiPozovite SerialTxRx ()' razgovarajte sa picaxeEnd SubSub SerialTxRx () Dim LabelString prikazom kao StringD string DataP acket (0 do 17) As Byte 'cijeli paket podataka "Data" +14 bytesDim i As Integer' i je uvijek koristan za petlje itdLabel1. Text = "" 'obrišite tekst na ekranuZa i = 0 Za 3DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'dodajte riječ "Data" u paketNextFor i = 0 do 13DataPacket (i + 4) = PicaxeRegisters (i)' dodajte sve bajtove u packetNextIf serialPort. IsOpen ThenserialPort. Close () 'za svaki slučaj koji je već otvorenEnd IfTryWith serialPort. PortName = "COM1"' Većina novih računara podrazumevano koristi com1, ali bilo koji računar pre 1999. sa serijskim mišem verovatno će podrazumevano biti com2. BaudRate = 2400 '2400 je maksimum brzina za male pikakse. Paritet = IO. Ports. Paritet. Ni jedan 'bez pariteta. DataBits = 8' 8 bita. StopBits = IO. Ports. StopBits. One 'jedan stop bit. ReadTimeout = 1000' milisekundi pa ističe u 1 sekundi ako nema odgovora. Open () 'otvori serijski port. DiscardInBuffer ()' obriši ulazni bafer. Zapiši (DataPacket, 0, 18) 'pošalji niz paketa podatakaPozovi stanje mirovanja (300)' Najmanje 100 milisekundi za čekanje r podaci će se vratiti i više ako je tok podataka duži. Pročitajte (DataPacket, 0, 18) 'pročitajte nazad u nizu paketa podataka. Close ()' zatvorite serijski portEnd WithFor i = 4 do 17LabelString = LabelString + "" + Str (DataPacket (i)) 'pretvori u tekstualni nizNextLabel1. Text = LabelString' stavi tekstualni niz na ekran Uhvati ex kao iznimka'MsgBox (ex. ToString) 'raskomentirajte ovo ako želite vidjeti stvarnu poruku o grešciLabel1. Text = " Timeout "'će prikazati ovo ako picaxe nije povezan itd. Završi Pokušaj Završi SubPrivate Pod Button1_Click (ByVal pošiljalac Kao System. Object, ByVal e Kao System. EventArgs) Rukuje Button1. ClickPictureBox1. BackColor = Color. Red' promijenite okvir u redPicaxeRegisters (0) = 120 'proizvoljna vrijednost za servoEnd SubPrivate Sub Button2_Click (ByVal pošiljalac kao System. Object, ByVal e As System. EventArgs) Rukuje Button2. ClickPictureBox1. BackColor = Color. Green' okvir do greenPicaxeRegisters (0) = 160 'proizvoljna vrijednost servoEnd SubEnd klasa

Korak 13: Pokrenite program

Pokrenite program
Pokrenite program

Uključite pikaxe ako nije uključen. Pokrenite program vb.net klikom na zeleni trokut pri vrhu ekrana blizu sredine. Desno od trougla za pokretanje nalaze se dugmad za pauzu i dugme za zaustavljanje ili se program može zaustaviti klikom na gornji desni ugao x ili pomoću Datoteka/Izlaz ako ste dodali meni. Program se može sastaviti ako želite, ali za otklanjanje pogrešaka ostavimo ga da radi unutar VB -a. Tajmer šalje bajtove svakih 5 sekundi, pa je potrebno 5 sekundi da se prikaže zaslon.. Oni se šalju na piccaxe, a zatim se vraćaju nazad. Skoro sigurno nije potrebno poslati svih 14 i vaš kôd se može promijeniti tako da odgovara. Drugi bajt s vrijednošću 152 je vrijednost lonca koji se mijenja od 0 do 255. Ako se pritisne gumb1, šalje vrijednost 120 u prvom bajtu, a ako se pritisne gumb 2, šalje 160, a program picaxe ih dekodira i pomiče servo. Ovaj kôd pokazuje kako poslati podatke i dobiti podatke nazad iz mikrokontrolera. Mikrokontroler može uključiti sve vrste uređaja - imam oko 30 u svojoj kući koji rade prskalice, svjetla, osiguranje, otkrivaju automobile na prilazima, uključuju brojne pumpe od 3,6 kW i mjere nivo vode u rezervoarima. Picaxes se mogu povezati na zajedničku magistralu, pa čak mogu međusobno komunicirati putem radio veza. Također je moguće učitavati i preuzimati podatke s web stranica, pa stoga koristiti internet za povezivanje uređaja bilo gdje u svijetu https://www.instructables. com/id/Worldwide-microcontroller-link-for-under-20/Sljedeće dvije stranice također sadrže neke primjere kako koristiti različite senzore i kako kontrolirati različite uređaje. Dr James MoxhamAdelaide, Južna Australija

Korak 14: Ulazni uređaji

Ulazni uređaji
Ulazni uređaji

Programer picaxe sadrži neke vrlo korisne datoteke pomoći, od kojih se jedna naziva "Interfacing kola", a dostupna je i na https://www.rev-ed.co.uk/docs/picaxe_manual3.pdfOva pokazuje kako upravljati motorima, osjetiti okoliš i drugu korisnu kontrolu. Osim ovih ciklus, postoji nekoliko njih koje koristim iznova i iznova. Temperatura - temperaturni senzor LM35 proizvodi napon koji može ići pravo u pikase i može se očitati naredbom readadc ili readadc10. Svjetlost - otpornik ovisan o svjetlu ima otpor koji varira od nekoliko stotina ohma na jakom suncu do preko 5 megoma u mrkloj boji. Izmjerite otpor na razini svjetla na koju želite prebaciti i postavite LDR u seriju s otporom približno iste vrijednosti. Npr. Htio sam otkriti svjetla automobila koji se uvlači u nadstrešnicu da upalim svjetla. Otpor je bio oko 1M od indirektnog svjetla pa sam stavio 1M u seriju sa LDR -om. Prekidač - neki prekidači prelaze između 5V i 0V (jednopolni dvostruki prekidač), ali neki se samo uključuju i isključuju. Ako se prekidač uključi, može poslati 5V na picaxe čip, ali ako je isključen, picaxe pin bi bio "plutajući" i mogao bi imati bilo koju vrijednost. Ovaj krug pokazuje kako povući ulaz prema zemlji kada je prekidač isključen. Ovo je sklop koji se koristi za većinu prekidača sa tipkama. Potenciometar - dobro staromodno dugme. Okrenite dugme i pročitajte napon na čipu. Postoje razne druge elektroničke naprave koje stvaraju napon od 0-5V ili se za to mogu lako konfigurirati. Primjeri su magnetski senzori, vlažnost, brzina, dodir, infracrveno svjetlo, pritisak, boja i zvuk. Senzori općenito koštaju samo nekoliko dolara svaki.

Korak 15: Kontrola uređaja

Upravljački uređaji
Upravljački uređaji

Datoteka za pomoć picaxe sadrži odlično objašnjenje kako upravljati motorima i svjetlima. Osim toga, smatram da postoji nekoliko kola koje koristim iznova i iznova. Prvi je jednostavan tranzistorski krug. Picaxe čip može uključiti najviše 20mA po pinu, što je dobro za uključivanje LED -a, ali ne mnogo više. Tranzistor 547 povećava struju na 100 mA, što je dobro za male sijalice. Drugi krug prikazuje MOSFET. MOSFET -ovima za pogon ne treba gotovo nikakva struja - samo volti, tako da se njima može izravno upravljati pikasom. Dostupne su sve vrste MOSFET-ova, ali ja preferiram onaj koji se zove BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Može se direktno napajati iz 5V (za razliku od nekih kojima je potrebno 10V), ali glavna prednost je što ima izuzetno nizak otpor pri uključivanju - 0,045 ohma što nije mnogo više od otpora žica koje bi se na njega spojile. To znači da se ne zagrijava pri vožnji pri velikim opterećenjima, čime se štedi energija i troškovi hladnjaka. Kao primjer vožnje s teretom od 5 ampera poput prednjih svjetala u automobilu; vati = struja na kvadrat x otpor, pa je W = 5*5*0,045 = 1,12 vata kojima bi trebao samo hladnjak poput kvadratnog komada tankog aluminija od 1 inča. Treći krug prikazuje relej. Za sve releje postoji nekoliko parametara - napon zavojnice, otpor zavojnice te napon i struja opterećenja. Na primjer, relej može imati zavojnicu od 12 V sa strujom zavojnice 30 mA, otporom zavojnice 400 ohma i mogao bi pokretati do 240 V pri 1 amper. Struja zavojnice je više volti i pojačala nego što može pribaviti stupac, pa koristimo tranzistorsko kolo za prebacivanje zavojnice. Uključena je i dioda - ona potiskuje stražnji EMF kad se relej isključi. Povratni EMF stvara iskru za svjećicu pa ne želite ove visoke napone nigdje u krugu. Kontakti će imati maksimalnu struju i volte - struja bi mogla biti nekoliko ampera, a volti su često 240V pa će prebacivanje 12V ili 24V biti unutar dometa. Ako nemate iskustva s elektronikom, ne igrajte se s mrežnim naponima. Postoje i mali releji koji imaju namote zavojnica od 5V ili 6V. Za ove releje možda vam neće trebati zasebno napajanje od 12 V, već samo pazite na otpor zavojnice jer mnogi od njih imaju trenutnu potrošnju preko 100 mA. Ako je tako, a koristite 78L05 100mA 5V regulator, možda biste ga htjeli promijeniti u 7805 regulator koji može napajati do 1 amp. Releji su posebno korisni za prebacivanje naizmjenične struje - npr. 24VAC vrtni prskalni solenoidi, 12VAC vrtna svjetla i u električno bučnom okruženju, poput automobila. Također su korisni za kontrolu velikih opterećenja, npr. Stub koji napaja 20mA na 5V = 0.1W, kontrolira tranzistor 12V na 100mA = 1.2W na relej 24V 100mA = 2.4W na kontaktor koji pokreće pumpu od 3600W. Ako želite kontrolirati napajanje na taj način, neka električar poveže kontrolnu kutiju i da vam izlazi dvije žice (žice zavojnice za relej 12V) koje možete kontrolirati. Na ovaj način električar se može odjaviti sa kutije za napajanje, a vi možete raditi svu elektroniku bez brige da ćete biti pogođeni strujom. Druga upotreba releja je kontrola unatrag za motor. Korištenjem modulacije širine impulsa u MOSFET možete kontrolirati brzinu istosmjernog motora, a pomoću DPDT releja za napajanje možete promijeniti smjer. Ovo je jednostavan način upravljanja velikim motorima poput onih koji se koriste u 'ratovima robota'. Molimo vas da objavite komentar ako vam je potrebna pomoć u izgradnji nečega.

Preporučuje se: