Kazalo:

Upravljajte naprave v resničnem svetu s svojim računalnikom: 15 korakov (s slikami)
Upravljajte naprave v resničnem svetu s svojim računalnikom: 15 korakov (s slikami)

Video: Upravljajte naprave v resničnem svetu s svojim računalnikom: 15 korakov (s slikami)

Video: Upravljajte naprave v resničnem svetu s svojim računalnikom: 15 korakov (s slikami)
Video: CS50 2015 - Week 6 2024, Julij
Anonim
Upravljajte naprave resničnega sveta s svojim računalnikom
Upravljajte naprave resničnega sveta s svojim računalnikom

Ta navodila vam pokažejo, kako povezati računalnik in mikrokrmilnik. Ta predstavitev bo zaznala vrednost lonca ali katerega koli analognega vhoda in tudi upravljala servo. Skupni stroški so pod 40 USD, vključno s servo. Servo vklopi mikro stikalo, nato pa mikro stikalo prižge svetilko. V praksi je lonec lahko temperaturni senzor, servo pa lahko vklopi grelec. Servo lahko zamenjate z relejem ali drugim krmilnikom moči. Picaxe je programiran v poenostavljeni različici osnovnega in vmesnik uporablja VB. Net. Vsa programska oprema je na voljo brezplačno. Sorodni Instructable prikazuje, kako povezati dva mikrokrmilnika prek interneta

1. korak: Zberite dele

Zberite dele
Zberite dele

Seznam delov: čip Picaxe 08M je na voljo iz številnih virov, vključno z Rev Ed https://www.rev-ed.co.uk/picaxe/ (UK), PH Anderson https://www.phanderson.com/ (ZDA) in Microzed https://www.microzed.com.au/ (Avstralija) Protoboard, servo, mikro stikalo, 9V baterija, 4xAA baterije in držalo, trak za oznake, 10k upor, 22k upor, 33uF 16V kondenzator, 0,1uF kondenzator, 7805L nizka moč 5V regulator, 10k lonec, žice (polnožilni telefonski/podatkovni kabel, npr. Cat5/6), 6V žarnica, D9 ženska vtičnica in pokrov, 2 metra 3 (ali 4) jedrne podatkovne žice, sponke za baterije Zgornja podjetja prodajajo tudi USB serijskim napravam ki so uporabne za prenosne računalnike, ki nimajo zaporednih vrat. Omeniti velja, da nekatere USB -serijske naprave ne delujejo tako dobro kot druge, zato jih je vredno kupiti pri enem od zgornjih dobaviteljev, saj so bili testirani za uporabo s čipi picaxe. Tisti, za katerega je znano, da deluje, je https://www.rev-ed.co.uk/docs/axe027.pdf Seveda, če ima vaš računalnik serijska vrata (ali staro kartico za serijska vrata), to ne bo biti problem.

2. korak: Prenesite in namestite nekaj programske opreme

Prenesite in namestite nekaj programske opreme
Prenesite in namestite nekaj programske opreme

Potrebovali bomo VB. Net in programsko opremo krmilnika picaxe. VB. Net (Visual Basic Express) je na voljo na https://msdn2.microsoft.com/en-us/express/aa718406.aspx Če ta povezava ne deluje, poiščite v Googlu za: vizualni osnovni hitri prenos Programska oprema picaxe je na voljo na naslovu https://www.rev-ed.co.uk/picaxe/ Za prenos se boste morali registrirati pri Microsoftu - če je to težava, uporabite ponarejeno e -pošto ali kaj podobnega. Pravzaprav se mi je zdelo koristno, če sem poslal svoj pravi e -poštni naslov, ko so pošiljali občasne posodobitve.

3. korak: Zgradite vezje za prenos

Zgradite vezje za prenos
Zgradite vezje za prenos

To vezje za prenos uporablja čip picaxe, nekaj uporov, regulator in 9V baterijo. Več informacij je na voljo v dokumentaciji za picaxe in to bo trajalo le nekaj minut, ko bodo vsi deli pri roki.

Lahko dodam tudi, da pikaksi z veseljem delujejo na 3 baterije AA. 5V regulirano napajanje je uporabno za delovanje analognih vhodov, saj se referenčne napetosti ne spreminjajo, vendar za preprosta vezja za vklop/izklop regulirano napajanje ni potrebno. V teh situacijah lahko izpustite 5V reg.

4. korak: Postavitev protobora vezja za prenos

Postavitev protobora vezja za prenos
Postavitev protobora vezja za prenos

Ta fotografija prikazuje prenosni kabel, ki je preprosto vtič D9 in nekaj metrov kabla z več jedri. Večina sodobnih osebnih računalnikov ima serijsko povezavo D9. Računalnik, izdelan pred letom 1998, ima lahko 25 -polni priključek. Na konec fleksibilnih žic sem spajkal približno 1 cm žice s trdnim jedrom in nato okoli tega postavil toplotni vložek - žice s trdnim jedrom gredo v protoboard veliko bolje kot fleksibilne žice.

5. korak: Prenesite program Picaxe

Prenesite program Picaxe
Prenesite program Picaxe

Za prenos kliknite na modro puščico. Če se ne prenese, je v navodilih za uporabo picaxe nekaj predlogov za odpravljanje napak. Poskusite prenesti preprost program za vklop in izklop LED, da preverite delovanje čipa. Ta program, kakršen je, ne stori ničesar, dokler ni povezan z osebnim računalnikom, saj čaka, da mu računalnik nekaj pošlje. Če se prenese v redu, potem deluje in čip je programiran, naslednji korak pa je, da ga znova konfigurirate kot čip serijskega vmesnika.

Kopirajte in prilepite spodnjo kodo. Če si ga želite ogledati z barvno sintakso, poglejte v Pogled/Možnosti/Urejevalnik. Barvne konvencije so podobne glavnemu VB. Net: serin 3, N2400, ("Podatki"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'preberite pot in pošljite to nazaj serout 0, N2400, ("Podatki", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) izberite primer b0 'branje podatkovnega bita b0 primer <140' če <140 nato nastavite servo na eno pozicijo servo 2, 120 premor 1000 'premor sekundo drugo servo 2, 160 premor 1000 endselect nizko 2' izklopite servo, ker serin to vseeno naredi pojdi na main

6. korak: Ponovno konfigurirajte vezje kot vezje serijskega vmesnika

Ponovno konfigurirajte vezje kot vezje serijskega vmesnika
Ponovno konfigurirajte vezje kot vezje serijskega vmesnika

V vezju picaxe sta bili izvedeni dve subtilni spremembi. 22k upor, ki je šel na nogo 2, gre zdaj na nogo 4, noga 2 pa je ozemljena. Edini namen noge 2 je sprejemanje programskih podatkov iz računalnika, tako da se lahko, ko je čip programiran, priveže na tla. Če se vrnete k programiranju čipa za odpravljanje hroščev itd., Potem odklopite nogo 2 od tal in ponovno priključite 22k na nogo 2. Picaxe se pogovarja z osebnim računalnikom preko noge 7, zato je ni treba spreminjati.

Dodan je bil lonec in servo. Servo v resnici ni potreben in led in 1k upor bi dobro deloval in/ali katero koli vezje, ki ga želite povezati. Pravkar sem uporabil servo, da pokažem, kako se lahko s klikom na nekaj na zaslonu nekaj dejansko premakne. Servo se napaja iz lastnega napajanja. Ta ločeni napajalnik ne bi bil potreben, če bi picaxe samo vklopil in izklopil LED. Picaxe je pripravljen za uporabo - zdaj potrebujemo kodo VB.

7. korak: Napišite nekaj vmesniške kode VB

Napišite nekaj kode vmesnika VB
Napišite nekaj kode vmesnika VB

Ko je VB. Net nameščen, ga zaženite in izberite Datoteka/Nov projekt in izberite aplikacijo Windows. Na začetku lahko kliknete Datoteka/Shrani vse in shranite, kjer koli želite, nato pa v prihodnosti projekt zaženite v VB. Net ali s klikom na datoteko.sln, ki bo ustvarjena.

8. korak: Oblikujte obrazec VB. Net

Oblikujte obrazec VB. Net
Oblikujte obrazec VB. Net

VB ustvari nov prazen obrazec, imenovan Form1.vb. Ime tega lahko spremenite zdaj ali kasneje ali pa ga pustite kot obrazec 1, če je projekt preprost. Pustili bomo, kot je. Če želimo dodati nekaj nadzora, moramo odpreti nabor orodij, ki je obkrožen z zeleno barvo. Orodjarno lahko odprete in zaprete, kadar je to potrebno - ponavadi je prvi korak dodajanje kontrol, nato zaprite orodje in delo na kodi. Lahko ga pustite odprtega ves čas, vendar zavzame malo zaslona.

9. korak: Dodajte časovnik

Dodajte časovnik
Dodajte časovnik

Pomaknili smo se po orodjarni in izbrali časovnik. Dvokliknite časovnik, da ga dodate. Slika ure Timer1 se prikaže na dnu zaslona, desno na vrhu pa so označene lastnosti časovnika. Te lahko uredite ali pa jih spremenite v besedilnem telesu kode. Pustili jih bomo takšne kot so in jih spremenili v telesu besedila.

Poleg tega je nabor orodij videti nekoliko zastrašujoč, vendar jih je za večino programov potrebnih le nekaj - med njimi so gumbi, polja z besedilom, nalepke, časovniki, polja s slikami, potrditvena polja in radijska polja. Morda odprite nov program in se kdaj igrajte z nekaterimi.

10. korak: Dodajte nekaj gumbov

Dodajte nekaj gumbov
Dodajte nekaj gumbov

Kliknite na orodje za gumbe in narišite velikost gumba na obrazcu 1. Potrebovali bomo dva gumba, okvir za slike in nalepko. Nadaljujte in jih dodajte - naslednji posnetek zaslona prikazuje vse narisane. Velikost in položaj nista pomembna in jih lahko pozneje preimenujete, če želite.

11. korak: Oblikujte z vsemi dodanimi kontrolniki

Obrazec z dodanimi vsemi kontrolami
Obrazec z dodanimi vsemi kontrolami

Obrazec 1 je zdaj postavljen. Polje poleg gumba 2 je majhno polje za slike. V to lahko vstavite slike, vendar jo bomo uporabili samo za označevanje gumba, ki ste ga pritisnili, tako da ga spremenite iz rdeče v zeleno. Oznaka1 prikazuje registre picaxe.

12. korak: Dodajte nekaj kode

Dodajte nekaj kode
Dodajte nekaj kode

Na desni, obkroženo z zeleno, je več uporabnih gumbov - drugi na desni je gumb Pogled kode, desni gumb pa je Oblikovalec pogledov. V praksi se med pisanjem kode premikate naprej in nazaj. Na splošno, če ste v načinu Designer, dvakratni klik na predmet, na primer gumb, prikaže pogled v kodi, da dodate nekaj kode, ali pa ga vnese v kodo, ki se zažene, ko pritisnete gumb. Na ta način programski tok postane precej intuitiven - uporabnik klikne na stvari in koščke kode, spremeni zaslon in tako naprej. Za naše namene pa bomo goljufali in prilepili celotno ploščo delovne kode. bo imel javni razred Form1 … End Class - označite to in ga izbrišite. Zdaj vzemite vso spodnjo kodo in jo prilepite. Uvozi System. IOImports Strings = Microsoft. VisualBasic ', tako da lahko uporabite stvari, kot sta left (and right (for stringsPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)' za stavke spanjaDim WithEvents serialPort As New IO. Ports. SerialPort 'serijska vrata deklarirajoDim PicaxeRegisters (0 do 13) As Byte' registrira b0 do b13Private Podobrazec1_Load (pošiljatelj ByVal kot objekt, ByVal e kot System. EventArgs) obravnava1. EnaledT = True 'vnesite to kodo kot privzete vrednosti false, ko je ustvarjenoTimer1. Interval = 5000' 5 sekundPictureBox1. BackColor = Color. Red 'nastavljeno na položaj' red 'Array. Clear (PicaxeRegisters, 0, 13)' verjetno ni potrebno, kot je deklarirano polje blankEnd SubPrivate Sub Timer1_Tick (ByVal pošiljatelj kot System. Object, ByVal e As System. EventArgs) Upravlja Timer 1. Označite 'timer timic every 5 secondsCall SerialTxRx ()' talk to picaxeEnd SubSub SerialTxRx () Dim LabelString As StringD string DataP acket (0 do 17) As Byte 'celoten podatkovni paket "Data" +14 bajtov Dim i As Integer' i je vedno uporaben za zanke itdLabel1. Text = "" 'počistite besedilo na zaslonu Za i = 0 Za 3DataPacket (i) = Asc (Mid ("Podatki", i + 1, 1)) 'dodajte besedo "Podatki" v paketNextFor i = 0 do 13DataPacket (i + 4) = PicaxeRegisters (i)' dodajte vse bajte v packetNextIf serialPort. IsOpen PotemserialPort. Close () 'za vsak slučaj, ko je že odprto Konec IfTryWith serialPort. PortName = "COM1"' Večina novih računalnikov privzeto uporablja com1, vendar bo vsak računalnik pred letom 1999 s serijsko miško verjetno privzeto nastavljen na com2. BaudRate = 2400 '2400 je največja vrednost hitrost za majhne pikase. Parity = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. Eno 'one stop bit. ReadTimeout = 1000' milisekund, zato časovna omejitev v 1 sekundi če ni odziva. Open () "odprite serijska vrata. DiscardInBuffer ()" počistite vhodni medpomnilnik. Write (DataPacket, 0, 18) "pošljite niz podatkovnega paketa Call Call Sleep (300)" Najmanj 100 milisekund za čakanje na r podatkov se bo vrnilo in še več, če je tok podatkov daljši. Preberite (DataPacket, 0, 18) 'preberite nazaj v matriki podatkovnih paketov. Close ()' zaprite serijska vrataEnd WithFor i = 4 To 17LabelString = LabelString + "" + Str (DataPacket (i)) 'spremeni v besedilni nizNextLabel1. Text = LabelString' postavi besedilni niz na zaslon Ujemite ex As Exception'MsgBox (ex. ToString) 'razkomentirajte to, če želite videti dejansko sporočilo o napakiLabel1. Text = " Časovna omejitev "" bo prikazala to, če picaxe ni povezan itd. Konec Poskusi Konec SubPrivate Sub Button1_Click (pošiljatelj ByVal kot System. Object, ByVal e As System. EventArgs) Ročaji Button1. ClickPictureBox1. BackColor = Color. Red 'spremenite polje v redPicaxeRegisters (0) = 120 'poljubna vrednost za servoEnd SubPrivate Sub Button2_Click (ByVal pošiljatelj kot System. Object, ByVal e As System. EventArgs) Roča Button2. ClickPictureBox1. BackColor = Color. Green' polje do greenPicaxeRegisters (0) = 160 'poljubno vrednost servoEnd Razred SubEnd

Korak: Zaženite program

Zaženite program
Zaženite program

Vklopite picaxe, če ni vklopljen. Zaženite program vb.net s klikom na zeleni trikotnik na vrhu zaslona blizu sredine. Desno od tekaškega trikotnika sta gumb za premor in gumb za zaustavitev, program pa lahko ustavite s klikom na zgornji desni x ali z datoteko/izhod, če ste dodali meni. Program lahko sestavite, če želite, vendar za odpravljanje napak pustimo, da deluje znotraj VB. Časovnik pošilja bajte vsakih 5 sekund, zato traja 5 sekund, da se prikaže zaslon. Oznaka1 prikazuje izpis 14 registrov picaxe. Te se pošljejo na picaxe in nato znova pošljejo nazaj. Skoraj zagotovo ni treba poslati vseh 14 in kodo lahko spremenite, da ustreza. Drugi bajt z vrednostjo 152 je vrednost lonca, ki se spremeni od 0 do 255. Če kliknete gumb1, pošlje vrednost 120 v prvem bajtu, če pa kliknete gumb 2, pošlje 160, program picaxe pa jih dekodira in premakne servo. Ta koda prikazuje, kako pošiljati podatke in pridobivati podatke nazaj iz mikrokrmilnika. Mikrokrmilnik lahko vklopi vse vrste naprav - okoli moje hiše teče okoli 30 brizgalk, luči, varnost, zaznavanje avtomobilov na dovozih, vklop številnih črpalk po 3,6 kW in zaznavanje ravni vode v rezervoarjih. Picaxes je mogoče povezati na skupnem vodilu in celo komunicirati med seboj prek radijskih povezav. Prav tako je mogoče naložiti in prenesti podatke s spletnih mest in s tem uporabiti internet za povezavo naprav kjer koli po svetu https://www.instructables. com/id/Worldwide-microcontroller-link-for-under-20/Naslednji dve strani vsebujeta tudi nekaj primerov uporabe različnih senzorjev in krmiljenja različnih naprav. Dr James Moxham, Adelaide, Južna Avstralija

Korak 14: Vnosne naprave

Vhodne naprave
Vhodne naprave

Programer picaxe vsebuje nekaj zelo uporabnih datotek za pomoč, od katerih se ena imenuje "Vmesna vezja" in je na voljo tudi na https://www.rev-ed.co.uk/docs/picaxe_manual3.pdf To prikazuje, kako krmiliti motorje, zaznati okolje in druge uporabne kontrole. Poleg teh vezic jih uporabljam vedno znova. Temperatura - temperaturni senzor LM35 ustvari napetost, ki lahko gre naravnost v pikaso in jo lahko preberete z ukazom readadc ali readadc10. Svetloba - svetlobno odvisen upor ima upor, ki se spreminja od nekaj sto ohmov pri močni sončni svetlobi do več kot 5 megomov v črni barvi. Izmerite upor na ravni svetlobe, na kateri želite preklopiti, in postavite LDR v niz z uporom približno enake vrednosti. Na primer, želel sem zaznati luči avtomobila, ki se pripelje v nadstrešnico, da prižge nekaj luči. Odpornost je bila približno 1M od posredne svetlobe, zato sem postavil 1M zaporedno z LDR. Stikalo - nekatera stikala preklapljajo med 5V in 0V (enopolno stikalo z dvema vrtema), nekatera pa se le vklopijo in izklopijo. Če se stikalo vklopi, lahko pošlje 5V na čip picaxe, če pa je izklopljen, bi bil pin picaxe "lebdeč" in bi lahko imel kakršno koli vrednost. To vezje prikazuje, kako povlečete vhod na tla, ko je stikalo izklopljeno. To vezje je namenjeno večini stikalnih stikal. Potenciometer - dober starinski gumb. Zavrtite gumb in preberite napetost v čipu. Obstajajo vse vrste drugih elektronskih naprav, ki ustvarjajo napetost od 0-5 V ali pa jih je mogoče enostavno konfigurirati. Primeri so magnetni senzorji, vlažnost, hitrost, dotik, infrardeča svetloba, tlak, barva in zvok. Senzorji na splošno stanejo le nekaj dolarjev.

Korak 15: Nadzor naprav

Nadzorne naprave
Nadzorne naprave

Datoteka za pomoč picaxe vsebuje odlično razlago, kako upravljati motorje in luči. Poleg tega se mi zdi nekaj vezij, ki jih uporabljam vedno znova. Prvi je preprosto tranzistorsko vezje. Picaxe čip lahko vklopi največ 20 mA na pin, kar je dobro za vklop LED, vendar ne veliko več. Tranzistor 547 poveča tok na 100 mA, kar je dobro za majhne žarnice, drugo vezje pa prikazuje MOSFET. Mosfeti ne potrebujejo skoraj nobenega toka za pogon - samo volti, tako da jih je mogoče neposredno upravljati s pikasom. Na voljo so vse vrste MOSF-ev, vendar imam najraje tistega, ki se imenuje BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Lahko se napaja neposredno iz 5V (za razliko od nekaterih, ki potrebujejo 10V), vendar glavna prednost je, da ima ob vklopu izredno nizek upor - 0,045 ohmov, kar ni veliko več kot upor žic, ki bi jih nanj priključili. To pomeni, da se pri vročih obremenitvah ne segreje, kar prihrani moč in tudi stroške hladilnika. Kot primer vožnje s tovorom 5 amperov kot avtomobilski žaromet; vati = trenutni kvadrat x upor, zato je W = 5*5*0,045 = 1,12 vata, ki bi potreboval le hladilnik kot 1 -palčni kvadratni kos tankega aluminija. Tretje vezje prikazuje rele. Za vse releje obstaja več parametrov - napetost tuljave, upor tuljave ter napetost in tok obremenitve. Na primer, rele ima lahko 12V tuljavo s tokom tuljave 30 mA, upor tuljave 400 ohmov in bi lahko deloval do 240 V pri 1 amperu. Tok tuljave je več voltov in amperov, kot jih lahko napaja pikaxe, zato za preklop tuljave uporabljamo tranzistorsko vezje. Vključena je tudi dioda - ta zavira zadnji EMF, ko se rele izklopi. Nazaj EMF je tisto, kar ustvari iskro za vžigalno svečko, zato ne želite teh visokih napetosti nikjer v tokokrogu. Stiki bodo imeli največji tok in volte - tok je lahko nekaj amperov, volti pa so pogosto 240V, zato bo preklapljanje 12V ali 24V v dosegu. Če nimate izkušenj z elektroniko, se ne igrajte z omrežno napetostjo. Obstajajo tudi majhni releji z napetostjo tuljave 5V ali 6V. Za te releje morda ne boste potrebovali ločenega 12 -voltnega napajanja, ampak samo opazujte upor tuljave, saj imajo mnogi od njih trenutne porabe več kot 100 mA. Če je tako, in če uporabljate 78L05 100mA 5V regulator, ga boste morda želeli spremeniti v regulator 7805, ki lahko napaja do 1 amp. Releji so še posebej uporabni za preklapljanje izmeničnega toka - npr. 24VAC vrtnih brizgalnih solenoidov, 12VAC vrtnih luči in v električno hrupnem okolju, kot je avto. Uporabljajo se tudi za krmiljenje velikih obremenitev, na primer kabel, ki napaja 20mA pri 5V = 0.1W, krmili tranzistor 12V pri 100mA = 1.2W do releja 24V 100mA = 2.4W do kontaktorja, ki poganja črpalko 3600W. Če želite tako nadzorovati napajanje, poiščite električarja, da poveže krmilno omarico in vam izda dve žici (tuljave za 12V rele), ki jih lahko nadzirate. Na ta način se lahko električar odjavi na škatli za napajanje in lahko naredite vso elektroniko, ne da bi morali skrbeti, da vas bo udaril električni tok. Druga uporaba relejev je vzvratna kontrola motorja. Z uporabo modulacije širine impulza v MOSFET lahko nadzorujete hitrost enosmernega motorja, z DPDT napajalnim relejem pa lahko spremenite smer. To je preprost način za nadzor velikih motorjev, kot so tisti, ki se uporabljajo v "robotskih vojnah". Napišite komentar, če potrebujete pomoč pri gradnji.

Priporočena: