Sadržaj:

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

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

Video: Upravljajte uređajima stvarnog svijeta sa svojim računalom: 15 koraka (sa slikama)
Video: Privacy, Security, Society - Computer Science for Business Leaders 2016 2024, Prosinac
Anonim
Upravljajte uređajima stvarnog svijeta sa svojim računalom
Upravljajte uređajima stvarnog svijeta sa svojim računalom

Ovaj Instructable pokazuje vam kako spojiti računalo 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 verziji osnovnog, a sučelje koristi VB. Net. Sav softver dostupan je besplatno. Srodni Instructable pokazuje kako povezati dva mikrokontrolera putem interneta

Korak 1: Okupite dijelove

Skupite dijelove
Skupite dijelove

Popis 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 telefonska žica/podatkovna žica, npr. Cat5/6), 6V žarulja, ženska utičnica i poklopac D9, 2 metra 3 (ili 4) podatkovne žice s jezgrom, kopče za baterije Gore navedene tvrtke također prodaju USB serijskim uređajima koji su korisni za prijenosna računala koja nemaju serijski port. Vrijedi napomenuti da neki USB -serijski uređaji ne rade tako dobro kao drugi, a vrijedno je nabaviti jedan od gore navedenih dobavljača jer su testirani za upotrebu s čipovima picaxe. 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) dostupan je na web stranici https://msdn2.microsoft.com/en-us/express/aa718406.aspxAko ova veza ne radi, pretražite u Googleu 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 nešto. Zapravo mi je bilo korisno dati svoju stvarnu e -poštu jer oni šalju povremena ažuriranja.

Korak 3: Izgradite sklop za preuzimanje

Izgradite sklop za preuzimanje
Izgradite sklop za preuzimanje

Ovaj sklop 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 kada svi dijelovi budu pri ruci.

Mogao bih također dodati da picaxes 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 jednostavne sklopove za uključivanje/isključivanje nije potrebno regulirano napajanje. U tim se situacijama 5V reg može izostaviti.

Korak 4: Izgled protobora kruga za preuzimanje

Izgled protobora sklopa za preuzimanje
Izgled protobora sklopa 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čunala ima vezu serijskog porta D9. Računalo izgrađeno prije otprilike 1998. moglo bi imati 25 -pinski konektor. Lemio sam oko 1 cm žice s čvrstom jezgrom na kraj fleksibilnih žica, a zatim oko nje stavio toplinsku zaštitu - žice s punom jezgrom idu u protoboard puno 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, u priručniku za picaxe postoje neki prijedlozi za uklanjanje pogrešaka. Možete pokušati preuzeti jednostavan program za uključivanje i isključivanje LED dioda kako biste provjerili radi li čip. Ovaj program kakav jest ne radi ništa dok se ne poveže s računalom jer čeka da mu računalo 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 ga vidjeli s 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 povratni ispis 0, N2400, ("Podaci", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) odaberite slučaj b0 'bit podataka za čitanje b0 slučaj <140' ako je <140 tada postavite servo na jedno mjesto servo 2, 120 pauziraj 1000 'pauziraj drugu servo 2, 160 pauziraj 1000 endselect nisko 2' isključi servo jer serin to ipak čini idi na glavni

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

Ponovno konfigurirajte krug kao krug serijskog sučelja
Ponovno konfigurirajte krug kao krug serijskog sučelja

Dvije su suptilne promjene napravljene u krugu picaxe. Otpornik od 22 k koji je prije išao na nogu 2 sada ide na nogu 4. A noga 2 je uzemljena. Jedina svrha noge 2 je primanje programskih podataka s računala tako da se nakon programiranja čipa može vezati za masu. Ako se vratite programiranju čipa za ispravljanje grešaka itd., Tada odvojite nogu 2 od tla i ponovno spojite 22k na nogu 2. Picaxe se vraća na računalo preko nogice 7 pa 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 koji krug koji želite spojiti. Upravo sam poslužio servo da pokažem kako se klikom na nešto na ekranu može natjerati da se nešto zaista pomakne. Servo se napaja vlastitim napajanjem. 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 kôd VB sučelja

Napišite neki kod VB sučelja
Napišite neki kod 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. Ostavit ćemo to kako jest. Za dodavanje neke kontrole 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 zaslona.

Korak 9: Dodajte mjerač vremena

Dodajte mjerač vremena
Dodajte mjerač vremena

Pomaknuli smo se prema nizu alata i odabrali mjerač vremena. Dvaput kliknite na mjerač vremena da biste ga dodali. Slika sata pod nazivom Timer1 pojavit će se pri dnu ekrana, a desno iznad će biti istaknuta svojstva timera. Možete ih urediti ili se mogu promijeniti u tekstualnom tijelu 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 gumbe, okvire za tekst, naljepnice, odbrojavanje vremena, okvire za slike, okvire za potvrdu i radio okvire. Možda otvorite novi program i nekad se predstavite s nekolicinom.

Korak 10: Dodajte nekoliko gumba

Dodajte nekoliko gumba
Dodajte nekoliko gumba

Kliknite na alat gumba i nacrtajte veličinu gumba na Obrascu1. 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, a kasnije ih možete preimenovati ako želite.

Korak 11: Obrazac s dodanim kontrolama

Obrazac s dodanim svim kontrolama
Obrazac s dodanim svim kontrolama

Obrazac 1 je sada postavljen. Okvir pored Button2 je mali okvir sa slikom. Ovdje možete staviti slike, ali mi ćemo ih koristiti samo za označavanje gumba koji je pritisnut promjenom iz crvene u zelenu. Oznaka1 prikazuje picaxe registre.

Korak 12: Dodajte kôd

Dodajte neki kôd
Dodajte neki kôd

S desne strane zaokruženo zelenom bojom nalazi se nekoliko korisnih gumba - drugi s desne strane je gumb View Code, a desni gumb View Designer. U praksi se prilikom pisanja koda ide naprijed -natrag 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 kad se gumb pritisne. Na ovaj način tijek programa postaje prilično intuitivan - korisnik klika na stvari i komadiće koda koji se pokreću i mijenja zaslon itd. U naše svrhe ipak ćemo prevariti i zalijepiti cijelu ploču radnog koda. Prikaz koda imat će oblik javne klase1 … Kraj klase - označite ovo i izbrišite. Sada uzmite sav donji kôd i zalijepite ga. Uvozi System. IOImports Strings = Microsoft. VisualBasic 'pa 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šiljatelj kao System. Object, ByVal e As System. EventArgs) Rukuje Timer 1. Označite 'timer otkucava svakih 5 sekundiZovite SerialTxRx ()' razgovarajte s picaxeEnd SubSub SerialTxRx () Dim LabelString prikaz kao StringDim DataP acket (0 do 17) As Byte 'cijeli paket podataka "Data" +14 bytesDim i As Integer' i je uvijek koristan za petlje itdLabel1. Text = "" 'očistite 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 serialPort packetNextIf. IsOpen ThenserialPort. Close () 'za svaki slučaj već otvorenEnd IfTryWith serialPort. PortName = "COM1"' Većina novih računala zadana je na com1, ali svako računalo prije 1999. sa serijskim mišem vjerojatno će biti zadano na com2. BaudRate = 2400 '2400 je maksimum brzina za male pikakse. Paritet = IO. Portovi. Paritet. Ni jedan 'bez pariteta. DataBits = 8' 8 bita. StopBits = IO. Ports. StopBits. Jedan 'jedan stop bit. ReadTimeout = 1000' milisekundi pa istječe u 1 sekundi ako nema odgovora. Open () 'otvori serijski port. DiscardInBuffer ()' obriši ulazni međuspremnik. Zapiši (DataPacket, 0, 18) 'pošalji niz podatkovnog paketa Pozovi stanje mirovanja (300)' Najmanje 100 milisekundi za čekanje r podataka za povratak i više ako je tok podataka duži. Pročitajte (DataPacket, 0, 18) 'pročitajte natrag u nizu paketa podataka. Close ()' zatvorite serijski portEnd WithFor i = 4 To 17LabelString = LabelString + "" + Str (DataPacket (i)) 'pretvori u tekstualni nizNextLabel1. Text = LabelString' stavi tekstualni niz na zaslonCatch ex As Exception'MsgBox (ex. ToString) 'raskomentirajte ovo ako želite vidjeti stvarnu poruku o pogrešciLabel1. Text = " Timeout "'će se prikazati ako picaxe nije povezan itd. Završi Pokušaj Završi SubPrivate Pod gumb1_Kliknite (pošiljatelj ByVal kao System. Object, ByVal e kao System. EventArgs) Rukuje gumbom 1. ClickPictureBox1. BackColor = Color. Red' promijenite okvir u redPicaxeRegisters (0) = 120 'proizvoljna vrijednost za servoEnd SubPrivate Sub Button2_Click (ByVal pošiljatelj kao System. Object, ByVal e As System. EventArgs) Rukuje gumbom 2. 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 zaslona blizu sredine. Desno od trokuta za pokretanje nalaze se tipka za pauzu i tipka za zaustavljanje ili se program može zaustaviti klikom na gornji desni x ili pomoću Datoteka/Izlaz ako ste dodali izbornik. Program se može sastaviti ako želite, ali za otklanjanje pogrešaka ostavimo ga da radi unutar VB -a. Odbrojavač šalje bajtove svakih 5 sekundi pa je potrebno 5 sekundi da se prikaže zaslon.. Oni se šalju na picaxe, a zatim se vraćaju natrag. Gotovo sigurno nije potrebno poslati svih 14 i vaš se kôd može promijeniti tako da odgovara. Drugi bajt s vrijednošću 152 vrijednost je 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 za pikaxe dekodira te i pomiče servo. Ovaj kôd pokazuje kako poslati podatke i vratiti podatke iz mikrokontrolera. Mikrokontroler može uključiti sve vrste uređaja - imam 30 -ak u svojoj kući koji rade prskalice, svjetla, osiguranje, otkrivaju automobile na prilazima, uključuju brojne pumpe od 3,6 kW i otkrivaju razinu vode u spremnicima. Picaxes se mogu povezati daisychainom na zajedničkom autobusu, pa čak mogu međusobno komunicirati putem radijskih 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 circuits", 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 koje koristim uvijek iznova. Temperatura - LM35 osjetnik temperature proizvodi napon koji može ići ravno u pikase i može se očitati naredbom readadc ili readadc10. Svjetlo - otpornik ovisan o svjetlu ima otpor koji varira od nekoliko stotina ohma na jakom sunčevom svjetlu do preko 5 megoma u mrkloj boji. Izmjerite otpor na razini svjetla na koju se želite prebaciti i postavite LDR u niz s otpornikom otprilike iste vrijednosti. Npr. Htio sam otkriti svjetla automobila koji se uvlačio u nadstrešnicu da upali svjetla. Otpor je bio oko 1M od neizravnog svjetla pa sam stavio 1M u seriju s 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 će se koristiti za većinu prekidača na prekidače. Potenciometar - dobro staromodno dugme. Okrenite gumb 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, vlaga, brzina, dodir, infracrveno svjetlo, pritisak, boja i zvuk. Senzori općenito koštaju samo nekoliko dolara svaki.

Korak 15: Upravljanje uređajima

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

Datoteka pomoći picaxe sadrži sjajno 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 20 mA po pinu, što je dobro za uključivanje LED -a, ali ne mnogo više. Tranzistor 547 povećava struju na 100mA što je dobro za male žarulje. Drugi krug prikazuje MOSFET. MOSFET -ovi ne trebaju gotovo nikakvu struju za pogon - 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 izravno 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 za vrijeme vožnje pri velikim opterećenjima, što štedi energiju, a također i troškove 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 amp. Struja zavojnice je više volti i pojačala nego što bi mogao osigurati pikaxe, pa koristimo tranzistorski krug za prebacivanje zavojnice. Uključena je i dioda - to potiskuje stražnji EMF kad se relej isključi. Stražnji EMF stvara iskru za svjećicu pa ne želite ove visoke napone nigdje u krugu. Kontakti će imati maksimalnu struju i volte - struja može biti nekoliko ampera, a volti su često 240V pa će prebacivanje 12V ili 24V biti unutar dometa. Ako nemate iskustva s elektronikom, nemojte se igrati 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, ali samo pazite na otpor zavojnice jer mnogi od njih imaju trenutne izlaze preko 100 mA. Ako je tako, a koristite 78L05 100mA 5V regulator, možda biste ga htjeli promijeniti u 7805 regulator koji može opskrbiti do 1 pojačalo. Releji su osobito korisni za uključivanje izmjeničnog napona - npr. Vrtni prskalni magneti 24VAC, vrtna svjetla 12VAC i u električno bučnim okruženjima poput automobila. Također su korisni za upravljanje velikim opterećenjima, npr. Stub koji napaja 20mA na 5V = 0.1W, kontrolira tranzistor 12V na 100mA = 1.2W na relej 24V 100mA = 2.4W na sklopnik koji pokreće pumpu od 3600W. Ako želite tako kontrolirati napajanje, neka električar poveže upravljačku kutiju i da vam izlazi dvije žice (žice zavojnice za relej od 12 V) koje možete kontrolirati. Na taj se način električar može odjaviti s 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. Pomoću 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 'robotskim ratovima'. Molimo vas da objavite komentar ako vam je potrebna pomoć u izgradnji nečega.

Preporučeni: