Sisukord:

Reaalse maailma seadmete juhtimine arvutiga: 15 sammu (piltidega)
Reaalse maailma seadmete juhtimine arvutiga: 15 sammu (piltidega)

Video: Reaalse maailma seadmete juhtimine arvutiga: 15 sammu (piltidega)

Video: Reaalse maailma seadmete juhtimine arvutiga: 15 sammu (piltidega)
Video: Riigikogu 15.01.2024 2024, Juuli
Anonim
Juhtige oma arvutiga reaalse maailma seadmeid
Juhtige oma arvutiga reaalse maailma seadmeid

See juhend annab teile teavet arvuti ja mikrokontrolleri ühendamise kohta. See demo tajub potti või mis tahes analoogsisendi väärtust ja juhib ka servot. Kogumaksumus koos servoga on alla 40 dollari. Servo lülitab sisse mikrolüliti ja seejärel lülitab mikrolüliti lambi. Praktilises rakenduses võib pott olla temperatuuriandur ja servo võib küttekeha sisse lülitada. Servo võib asendada relee või muu toiteregulaatoriga. Piks on programmeeritud lihtsustatud versiooni baasil ja liides kasutab VB. Net. Kogu tarkvara on tasuta saadaval. Seotud Instructable näitab, kuidas Interneti kaudu ühendada kaks mikrokontrollerit

Samm: koguge osad kokku

Koguge osad kokku
Koguge osad kokku

Osade loend: Picaxe 08M kiip on saadaval paljudest allikatest, sealhulgas Rev Ed https://www.rev-ed.co.uk/picaxe/ (Ühendkuningriik), PH Anderson https://www.phanderson.com/ (USA) ja Microzed https://www.microzed.com.au/ (Austraalia) Protoboard, servo, mikrolüliti, 9V aku, 4xAA patareid ja hoidik, sildiriba, 10k takisti, 22k takisti, 33uF 16V kondensaator, 0,1uF kondensaator, 7805L väikese võimsusega 5V regulaator, 10k pott, juhtmed (tahke südamikuga telefon/andmesidejuhe, nt Cat5/6), 6V elektripirn, D9 pistikupesa ja kate, 2 meetrit 3 (või 4) südamiku andmesidekaablit, akuklambrid Ülaltoodud ettevõtted müüvad USB -d ka jadaseadmetele mis on kasulikud sülearvutitele, millel pole jadaporti. Väärib märkimist, et mõned USB -seeriaseadmed ei tööta nii hästi kui teised ja tasub hankida see ühelt ülaltoodud tarnijalt, kuna neid on testitud kasutamiseks koos kiipidega. See, mis teadaolevalt töötab, on https://www.rev-ed.co.uk/docs/axe027.pdf Muidugi, kui teie arvutil on jadaport (või vana jadaporti kaart), siis seda ei tehta probleem olema.

Samm: laadige alla ja installige mõni tarkvara

Laadige alla ja installige mõni tarkvara
Laadige alla ja installige mõni tarkvara

Vajame VB. Net ja picaxe kontrolleri tarkvara. VB. Net (Visual Basic Express) on saadaval aadressilt https://msdn2.microsoft.com/en-us/express/aa718406.aspx Kui see link ei tööta, otsige Google'is: Visual Basic Expressi allalaadimine Picaxe tarkvara on saadaval aadressilt https://www.rev-ed.co.uk/picaxe/. Allalaadimiseks peate registreeruma Microsoftis - kui see on probleem, kasutage võltsitud e -posti või midagi. Mulle tundus tegelikult kasulik anda oma e -kiri, kui nad aeg -ajalt värskendusi saadavad.

Samm: looge allalaadimisahel

Ehitage allalaadimisahel
Ehitage allalaadimisahel

See allalaadimisahel kasutab pilk -kiipi, paari takistit, regulaatorit ja 9 V akut. Lisateavet leiate piltide dokumentatsioonist ja selle ehitamiseks kulub vaid mõni minut, kui kõik osad on käepärast.

Lisaksin veel, et pikapid töötavad 3 AA patareiga. 5 V reguleeritud toide on kasulik analoogsisendite käitamiseks, kuna võrdluspinged ei muutu, kuid lihtsate sisse- ja väljalülitusahelate puhul pole reguleeritud toiteallikat vaja. Sellistes olukordades võib 5V regulaatori välja jätta.

4. samm: allalaadimisahela protoboardi paigutus

Allalaadimisskeemi protoboardi paigutus
Allalaadimisskeemi protoboardi paigutus

See foto näitab allalaadimiskaablit, mis on lihtsalt D9 pistik ja paar meetrit mõnda mitmetuumalist kaablit. Enamikul kaasaegsetel arvutitel on D9 jadaportühendus. Enne umbes 1998. aastat ehitatud arvutil võib olla 25 kontaktiga pistik. Jootsin elastsete juhtmete otsa umbes 1 cm täisjuhtme ja panin seejärel selle ümber kuumaõhujuhtme - tahkete südamike juhtmed lähevad protoboardile palju paremini kui painduvad juhtmed.

Samm: laadige alla programm Picaxe

Laadige alla programm Picaxe
Laadige alla programm Picaxe

Allalaadimiseks klõpsake sinist noolt. Kui seda alla ei laadita, on picaxe kasutusjuhendis mõned silumissoovitused. Kiipide töö kontrollimiseks võite proovida alla laadida lihtsa programmi, et LED sisse ja välja lülitada. See programm ei tee midagi enne, kui see on arvutiga ühendatud, kuna see ootab, kuni arvuti talle midagi saadab. Kui see laaditakse alla, töötab see ja kiip on programmeeritud ning järgmine samm on kiibi uuesti konfigureerimine jadaliidese kiibina.

Kopeerige ja kleepige allolev kood. Värvisüntaksiga vaatamiseks vaadake View/Options/Editor. Värvikombinatsioonid on sarnased VB. Net main: serin 3, N2400, ("Andmed"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'lugege potti ja saatke see tagasi serout 0, N2400, ("Andmed", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) valige juhtum b0 'lugema andmebiti b0 juhtum <140', kui <140, siis seadke servo ühele asendile servo 2, 120 paus 1000 'paus teine teine servo 2, 160 paus 1000 lõppvalik madal 2' lülitage servo välja, kuna serin teeb seda niikuinii mine peamiseks

Samm: konfigureerige ahel uuesti jadaliidese ahelaks

Konfigureerige ahel uuesti jadaliidese ahelaks
Konfigureerige ahel uuesti jadaliidese ahelaks

Piksahelas on tehtud kaks peent muudatust. 22k takisti, mis varem läks jalale 2, läheb nüüd jalale 4. Ja jalg 2 on maandatud. Jala 2 ainus eesmärk on saada arvutist programmeerimisandmeid, nii et kui kiip on programmeeritud, saab selle maapinnaga siduda. Kui lähete tagasi kiibi programmeerimise juurde vigade parandamiseks jne, siis ühendage jalg 2 maapinnast lahti ja ühendage 22k uuesti jalaga 2. Picaxe räägib arvutiga tagasi jala 7 kaudu, nii et seda pole vaja muuta.

Lisatud on pott ja servo. Servo pole tegelikult vajalik ning LED ja 1k takisti töötaksid hästi ja/või mis tahes vooluahel, mida soovite ühendada. Ma lihtsalt kasutasin servot, et näidata, kuidas ekraanil millegi klõpsamine võib midagi liikuma panna. Servo töötab oma toiteallikast. Seda eraldi toiteallikat poleks vaja, kui piksel lihtsalt lülitaks LEDid sisse ja välja. Piksel on kasutamiseks valmis - nüüd vajame mõnda VB -koodi.

Samm: kirjutage mõni VB liidesekood

Kirjutage mõni VB liidese kood
Kirjutage mõni VB liidese kood

Kui VB. Net on installitud, käivitage see ja valige File/New Project ning seejärel Windowsi rakendus. Võite kohe alguses klõpsata käsul Fail/Salvesta kõik ja salvestada kuhu iganes soovite ning seejärel alustada projekti kas VB. Net -i kaudu või klõpsates loodaval.sln -failil.

8. samm: kujundage VB. Net -vorm

Kujundage VB. Net vorm
Kujundage VB. Net vorm

VB loob uue tühja vormi nimega Form1.vb. Saate selle nime nüüd või hiljem muuta või jätta selle vormiks 1, kui projekt on lihtne. Jätame selle nii, nagu see on. Juhtnuppude lisamiseks peame avama tööriistakasti, mis on ümbritsetud rohelisega. Tööriistakasti saab vajadusel avada ja sulgeda - tavaliselt on esimene samm juhtelementide lisamine, seejärel tööriistakasti sulgemine ja koodiga töötamine. Saate selle kogu aeg lahti jätta, kuid see võtab natuke ekraani.

Samm: lisage taimer

Lisage taimer
Lisage taimer

Oleme kerinud tööriistakasti alla ja valinud taimeri. Taimeri lisamiseks topeltklõpsake seda. Ekraani allosas kuvatakse kella nimega Timer1 pilt ja paremal on taimerite omadused esile tõstetud. Saate neid muuta või neid saab muuta koodi tekstiosas. Jätame need selliseks, nagu nad on, ja muudame need teksti põhiosas.

Tööriistakast tundub pisut heidutav, kuid enamiku programmide jaoks on vaja vaid mõnda neist - nende hulka kuuluvad nupud, tekstikastid, sildid, taimerid, pildikastid, märkeruudud ja raadiokastid. Võib -olla avage uus programm ja mängige mõnega millalgi.

Samm: lisage paar nuppu

Lisage paar nuppu
Lisage paar nuppu

Klõpsake nuputööriista ja joonistage vormi 1 nupu suurus. Meil on vaja kahte nuppu, pildikasti ja silti. Jätkake ja lisage need - järgmisel ekraanipildil on need kõik sisse joonistatud. Suurus ja asukoht pole olulised ning soovi korral saate need hiljem ümber nimetada.

Samm 11: vorm koos kõigi juhtelementide lisamisega

Vorm koos kõigi juhtelementidega
Vorm koos kõigi juhtelementidega

Vorm 1 on nüüd välja pandud. Button2 kõrval olev kast on väike pildikast. Saate sellesse pilte panna, kuid kasutame seda lihtsalt punase asemel roheliseks muutmiseks, et näidata, millist nuppu on vajutatud. Label1 kuvab pikseregistrid.

Samm: lisage mõni kood

Lisage mõni kood
Lisage mõni kood

Paremal pool rohelist ringi on mitu kasulikku nuppu - teine paremalt on nupp Vaate kood ja parem nupp Vaate kujundaja. Praktikas käib koodi kirjutamisel nende vaadete vahel edasi -tagasi. Üldiselt, kui keegi on disainerirežiimis, teeb topeltklõps objektil, näiteks nupul, koodivaates koha, kus lisatakse mõni kood, või viib selle nupule vajutamisel käivitatavale koodilõigule. Sel viisil muutub programmivoog üsna intuitiivseks - kasutaja klõpsab asjadel ja koodibittidel ning muudab ekraani ja nii edasi. Meie eesmärkidel, kuigi kavatseme petta ja kleepida terve plaadi töötavat koodi. on avaliku klassi vorm1… Lõppklass - tõstke see esile ja kustutage. Võtke nüüd kogu allolev kood ja kleepige see. Imports System. IOImports Strings = Microsoft. VisualBasic ', et saaksite kasutada selliseid asju nagu vasak (ja parem (stringide jaoksPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)') unereziimide jaoks Dim WithEvents serialPort As New IO. Ports. SerialPort 'jadaport deklareerimaDim PicaxeRegisters (0 kuni 13) Byte' registritena b0 kuni b13Private Sub Form1_Load (ByVal saatja objektina, ByVal e As System. EventArgs) Käsitleb Me. LoadTimer1. Seade = Tõene 'sisestage see koodis vaikimisi väärtuseks vale, kui see on loodudTimer1. Interval = 5000' 5 secondsPictureBox1. BackColor = Color. Red 'seatud asendisse' red'Array. Clear (PicaxeRegisters, 0, 13) 'ilmselt pole massiivi deklareerituna vaja blankEnd SubPrivate Sub Timer1_Tick (ByVal saatja kui System. Object, ByVal e kui System. EventArgs) Käsitleb taimerit 1. Tick 'taimer tiksub iga 5 sekundi järelCall SerialTxRx ()' talk to picaxeEnd SubSub SerialTxRx () Dim LabelString As String 'string to display by DataP acket (0 kuni 17) Baidina 'kogu andmepakett "Data" +14 baitiDim i täisarvuna' i on alati kasulik silmuste jaoks jneLabel1. Text = "" 'tühjendage ekraanil olev tekst Asc (Mid ("Data", i + 1, 1)) 'lisage paketile sõna "Data" JärgmineFor i = 0 To 13DataPacket (i + 4) = PicaxeRegisters (i)' lisage kõik baidid packetNextIf serialPort. IsOpen ThenserialPort. Close () 'igaks juhuks juba avatudEnd IfTryWith serialPort. PortName = "COM1"' Enamiku uute arvutite vaikeseade on com1, kuid iga 1999. aasta eelmine seeriahiirega arvuti on tõenäoliselt vaikimisi com2. BaudRate = 2400 '2400 on maksimum kiirus väikeste piltide puhul. kui vastust ei anta. Avage () 'avage jadaport. DisciscInBuffer ()' tühjendage sisendpuhver. Kirjutage (DataPacket, 0, 18) 'saatke andmepaketi massiiv Call Sleep (300)' vähemalt 100 millisekundit ootamiseks r andmed tulevad tagasi ja palju muud, kui andmevoog on pikem. Lugege (DataPacket, 0, 18) 'loe andmepakettide massiivist tagasi. Sulgege ()' sulgege jadaportEnd WithFor i = 4 To 17LabelString = LabelString + "" + Str (DataPacket (i)) 'muutuvad tekstistringiksNextLabel1. Text = LabelString' pane tekstistring ekraanileCatch ex As Exception'MsgBox (ex. ToString) 'tühista see, kui soovid näha tegelikku veateadetLabel1. Text = " Aegumine "" kuvab selle, kui pilt ei ole ühendatud jneEnd TryEnd SubPrivate Sub Button1_Click (ByVal saatja kui System. Object, ByVal e As System. EventArgs) Handles Button1. ClickPictureBox1. BackColor = Color. Red 'muutke kasti redPicaxeRegisters (0) = 120 'meelevaldne väärtus servoEnd SubPrivate alamnupule servoEnd alamklass

Samm: käivitage programm

Käivitage programm
Käivitage programm

Lülitage picaxe sisse, kui see pole sisse lülitatud. Käivitage programm vb.net, klõpsates ekraani ülaosas rohelise kolmnurga keskel. Käivituskolmnurgast paremal on pausi- ja seiskamisnupp või saate programmi peatada, klõpsates paremas ülanurgas x või menüü lisamise korral nupuga Fail/Välju. Programmi saab kompileerida, kui soovite, kuid silumiseks jätame selle VB -s töötama. Taimer saadab baite iga 5 sekundi tagant, nii et ekraani kuvamiseks kulub 5 sekundit. Silt 1 kuvab 14 piksliregistri prügila. Need saadetakse pikslisse ja saadetakse seejärel tagasi. Peaaegu kindlasti pole vaja kõiki 14 saata ja teie koodi saab vastavalt vajadusele muuta. Teine bait väärtusega 152 on poti väärtus, mis muutub 0 -lt 255 -le. Kui nuppu 1 klõpsatakse, saadab see esimese baidi väärtuse 120 ja kui klõpsatakse nupul 2, saadab see 160 ja pikaprogramm dekodeerib need ja liigutab servot. See kood näitab, kuidas andmeid saata ja mikrokontrollerilt andmeid tagasi saada. Mikrokontroller saab sisse lülitada igasuguseid seadmeid - mul on kodus umbes 30 ringi sprinklereid, tulesid, turvatöid, autosõite sissesõiduteedel, mitmete 3,6 kW pumpade sisselülitamist ja paakides oleva veetaseme tuvastamist. Pikakse saab ühises bussis daisychained ja nad saavad isegi üksteisega raadioside kaudu suhelda. Samuti on võimalik veebisaitidelt andmeid üles laadida ja alla laadida ning seega kasutada Internetti seadmete ühendamiseks kõikjal maailmas https://www.instructables. com/id/Worldwide-microcontroller-link-for-under-20/Järgmised kaks lehekülge sisaldavad ka näiteid erinevate andurite kasutamise ja erinevate seadmete juhtimise kohta. Dr James Moxham

14. samm: sisendseadmed

Sisendseadmed
Sisendseadmed

Picaxe programmeerija sisaldab mõningaid väga kasulikke abifaile, millest üks kannab nime "Interfacing circuit" ja see on saadaval ka aadressil https://www.rev-ed.co.uk/docs/picaxe_manual3.pdfSee näitab, kuidas mootoreid juhtida, tunnetada keskkonda ja muud kasulikku kontrolli. Lisaks neile tsirkulatsioonidele on mõned üksikud, mida ma ikka ja jälle kasutan. Temperatuur - LM35 temperatuuriandur tekitab pinge, mis võib minna otse pilti ja mida saab lugeda käsuga readadc või readadc10. Valgus - valgusest sõltuv takisti takistus varieerub eredast päikesevalgusest mõnesaja oomini kuni üle 5 megaohmini kottpimedas. Mõõtke vastupanu valguse tasemel, millel soovite lülituda, ja pange LDR järjestikku umbes sama väärtusega takistiga. Nt tahtsin avastada auto tulesid, mis tõmbasid autovarjualusse, et mõned tuled sisse lülitada. Vastupidavus oli kaudvalgusest umbes 1M, nii et panin 1M LDR -ga jada. Lüliti - mõned lülitid lülituvad 5V ja 0V vahel (ühepooluseline topeltlüliti), kuid mõned lülituvad lihtsalt sisse ja välja. Kui lüliti lülitub sisse, võib see saata 5V pikselkiibile, kuid kui see on välja lülitatud, oleks piksti tihvt "ujuv" ja see võib olla mis tahes väärtus. See skeem näitab, kuidas tõmmata sisend maapinnale, kui lüliti on välja lülitatud. Seda vooluahelat kasutatakse enamiku nuppude lülitite jaoks. Potentsiomeeter - vana hea aegne nupp. Keerake nuppu ja lugege kiibile pinge. On igasuguseid muid elektroonilisi seadmeid, mis loovad pinge vahemikus 0–5 V või mida saab hõlpsasti konfigureerida. Näited on magnetandurid, niiskus, kiirus, puudutus, infrapunavalgus, rõhk, värv ja heli. Andurid maksavad üldiselt vaid paar dollarit.

15. samm: seadmete juhtimine

Seadmete juhtimine
Seadmete juhtimine

Picaxe'i abifail sisaldab suurepärast selgitust mootorite ja tulede juhtimise kohta. Lisaks leian, et on mõned ahelad, mida ma ikka ja jälle kasutan. Esimene on lihtne transistori ahel. Pikekiip võib sisselülitada maksimaalselt 20 mA tihvti kohta, mis on hea LED -i sisselülitamiseks, kuid mitte palju muud. 547 transistor suurendab voolu 100 mA -ni, mis sobib väikeste lambipirnide jaoks. Teine vooluahel näitab mosfetti. Mosfetid ei vaja nende juhtimiseks praktiliselt voolu - ainult volte, nii et neid saab otse piksliga juhtida. Saadaval on igasuguseid mosfette, kuid minu eelistus on selline, mida nimetatakse BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Seda saab otse juhtida 5 V (erinevalt mõnest, mis vajab 10 V), kuid peamine eelis on see, et selle sisselülitamisel on äärmiselt madal takistus - 0,045 oomi, mis ei ole palju rohkem kui juhtmete takistus, mida sellega ühendada. See tähendab, et üsna suurte koormatega sõites ei lähe see kuumaks, mis säästab energiat ja säästab ka jahutusradiaatori kulusid. Näitena 5 -amperise koormuse juhtimine nagu auto esilatern; vatt = praegune ruut x takistus, seega W = 5*5*0,045 = 1,12 vatti, mis vajaks ainult jahutusradiaatorit nagu 1 -tolline ruudukujuline õhuke alumiinium. Kolmas ahel näitab releed. Kõigi releede jaoks on mitu parameetrit - mähise pinge, mähise takistus ning koormuspinge ja vool. Näiteks võib releel olla 12 V mähis, mille mähise vool on 30 mA, mähise takistus on 400 oomi ja see võib töötada kuni 240 V 1 ampri juures. Spiraali vool on rohkem voldi ja amprit, kui piksel suudab toita, seega kasutame mähise vahetamiseks transistori ahelat. Komplekti kuulub ka diood - see summutab tagumise EMF -i, kui relee välja lülitub. Tagasi EMF tekitab süüteküünla jaoks sädeme, nii et te ei soovi neid kõrgepingeid vooluahelas kuhugi. Kontaktidel on maksimaalne vool ja volti - vool võib olla mõni amprit ja pinged on sageli 240 V, nii et 12 V või 24 V lülitamine jääb vahemikku. Kui teil pole elektroonikat kogenud, ärge mängige võrgupingega. Samuti on olemas väikesed releed, mille mähisepinge on 5 V või 6 V. Nende releede jaoks ei pruugi teil olla vaja eraldi 12 V toiteallikat, vaid vaadake mähise takistust, kuna paljudel neist on voolutugevus üle 100 mA. Kui jah, ja kui kasutate 78L05 100mA 5V regulaatorit, võiksite selle muuta 7805 regulaatoriks, mis võib toita kuni 1 amprit. Releed on eriti kasulikud vahelduvvoolu lülitamiseks - nt 24VAC aiavihmutite solenoidid, 12VAC aiavalgustid ja elektriliselt mürarikkas keskkonnas, näiteks autos. Need on kasulikud ka suurte koormuste juhtimiseks, nt piksel, mis toidab 20 mA pingel 5 V = 0,1 W, kontrollib transistori 12 V 100 mA juures = 1,2 W releele 24 V 100 mA = 2,4 W kontaktori jaoks, mis juhib 3600 W pumpa. Kui soovite elektrit niimoodi juhtida, siis laske elektrikul juhtkarp ühendada ja anda välja kaks juhtmest (12V relee mähisjuhtmed), mida saate juhtida. Nii saab elektrik toiteplokile alla kirjutada ja saate kogu elektroonikat teha, ilma et peaksite muretsema elektrilöögi pärast. Teine releede kasutusala on mootori tagasipööramine. Kasutades impulsi laiuse moduleerimist mosfetiks, saate juhtida alalisvoolumootori kiirust ja DPDT toitereleega saate suunda muuta. See on lihtne viis suurte mootorite juhtimiseks, nagu need, mida kasutatakse „robotisõdades”. Palun postitage kommentaar, kui vajate abi millegi ehitamisel.

Soovitan: