Innholdsfortegnelse:

Kontroller virkelige verden -enheter med din PC: 15 trinn (med bilder)
Kontroller virkelige verden -enheter med din PC: 15 trinn (med bilder)

Video: Kontroller virkelige verden -enheter med din PC: 15 trinn (med bilder)

Video: Kontroller virkelige verden -enheter med din PC: 15 trinn (med bilder)
Video: Красивая история о настоящей любви! Мелодрама НЕЛЮБОВЬ (Домашний). 2024, November
Anonim
Kontroller virkelige verden -enheter med PC -en
Kontroller virkelige verden -enheter med PC -en

Denne instruksjonsfilen viser deg hvordan du kobler til en PC og en mikrokontroller. Denne demoen vil kjenne verdien av en gryte eller hvilken som helst analog inngang og også kontrollere en servo. Total kostnad er under $ 40 inkludert servoen. Servoen slår på en mikrobryter og deretter slår mikrobryteren på en lampe. I en praktisk applikasjon kan potten være en temperatursensor og servoen kan slå på en varmeapparat. Servoen kan byttes ut med et relé eller en annen strømkontroll. Picaxe er programmert i en forenklet versjon av basic og grensesnittet bruker VB. Net. All programvare er gratis tilgjengelig. En relatert instruerbar viser hvordan du kobler to mikrokontrollere via internett

Trinn 1: Samle delene

Samle delene
Samle delene

Deleliste: Picaxe 08M-brikke tilgjengelig fra mange kilder, inkludert Rev Ed https://www.rev-ed.co.uk/picaxe/ (Storbritannia), PH Anderson https://www.phanderson.com/ (USA) og Microzed https://www.microzed.com.au/ (Australia) Protoboard, servo, mikrobryter, 9V batteri, 4xAA batterier og holder, taglist, 10k motstand, 22k motstand, 33uF 16V kondensator, 0.1uF kondensator, 7805L lav effekt 5V regulator, 10k pot, ledninger (telefon/datakabel med solid kjerne, f.eks. Cat5/6), 6V lyspære, D9 hunkontakt og deksel, 2 meter med 3 (eller 4) kjernedatatråd, batteriklemmer Selskapene ovenfor selger også USB til serielle enheter som er nyttige for bærbare datamaskiner som ikke har en seriell port. Det er verdt å merke seg at noen USB til serielle enheter ikke fungerer like bra som andre, og det er verdt å få en fra en av de ovennevnte leverandørene, ettersom de er testet for bruk med picaxe -brikker. Den som er kjent for å fungere er https://www.rev-ed.co.uk/docs/axe027.pdf Selvfølgelig, hvis datamaskinen din har en seriell port (eller et gammelt seriell portkort), vil dette ikke være et problem.

Trinn 2: Last ned og installer noe programvare

Last ned og installer noe programvare
Last ned og installer noe programvare

Vi trenger VB. Net og picaxe-kontrollerprogramvaren. VB. Net (Visual Basic Express) er tilgjengelig fra https://msdn2.microsoft.com/en-us/express/aa718406.aspxHvis denne lenken ikke fungerer, søk deretter i Google for: visual basic express nedlasting Picaxe -programvaren er tilgjengelig fra https://www.rev-ed.co.uk/picaxe/Du må registrere deg hos Microsoft for å laste ned - hvis dette er et problem, bruk en falsk e -post eller noe. Jeg syntes faktisk det var nyttig å gi min virkelige e -post da de sender sporadiske oppdateringer.

Trinn 3: Bygg en nedlastningskrets

Bygg en nedlastningskrets
Bygg en nedlastningskrets

Denne nedlastningskretsen bruker en picaxe -brikke, et par motstander, en regulator og et 9V batteri. Mer informasjon er tilgjengelig i picaxe -dokumentasjonen, og dette bør bare ta noen minutter å bygge når alle delene er tilgjengelige.

Jeg kan også legge til at picaxer kjører lykkelig på 3 AA -batterier. En 5V regulert forsyning er nyttig for å kjøre analoge innganger ettersom referansespenningene ikke endres, men for enkle på/av -kretser er det ikke nødvendig med en regulert forsyning. 5V reg kan utelates i disse situasjonene.

Trinn 4: Protoboard -oppsett for nedlastningskretsen

Protoboard -oppsett av nedlastningskretsen
Protoboard -oppsett av nedlastningskretsen

Dette bildet viser nedlastningskabelen som ganske enkelt er en D9 -plugg og et par meter med en flerkjernekabel. De fleste moderne PCer har en D9 seriell port -tilkobling. En PC bygd før 1998 kan ha en 25 -pinners kontakt. Jeg loddet omtrent 1 cm solid kjernetråd på enden av de fleksible ledningene og la deretter varmekrymp rundt dette - de faste kjernetrådene går mye bedre inn i et protoboard enn fleksible ledninger.

Trinn 5: Last ned Picaxe -programmet

Last ned Picaxe -programmet
Last ned Picaxe -programmet

Klikk på den blå pilen for å laste ned. Hvis den ikke lastes ned, er det noen forslag til feilsøking i bruksanvisningen for picaxe. Du kan prøve å laste ned et enkelt program for å slå en LED på og av for å kontrollere at brikken fungerer. Dette programmet som det gjør ingenting før det er koblet til en PC, ettersom det venter på at PC -en skal sende det noe. Hvis den lastes ned ok, fungerer den og brikken er programmert, og neste trinn er å konfigurere brikken på nytt som en seriell grensesnittbrikke.

Kopier og lim inn koden nedenfor. For å se den med fargesyntaks, se i View/Options/Editor. Fargekonvensjonene ligner på VB. Net main: serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'les potten og send deretter denne tilbake serout 0, N2400, ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) velg tilfelle b0 'les databit b0 sak <140' hvis <140 sett deretter servo til en posisjon servo 2, 120 pause 1000 'pause en annen servo 2, 160 pause 1000 sluttvelg lav 2' slå av servoen som serin gjør dette uansett gå til main

Trinn 6: Konfigurer kretsen på nytt som en seriell grensesnittkrets

Konfigurer kretsen på nytt som en seriell grensesnittkrets
Konfigurer kretsen på nytt som en seriell grensesnittkrets

To subtile endringer er gjort i picaxe -kretsen. 22k -motstanden som pleide å gå til etappe 2 går nå til etappe 4. Og etappe 2 er jordet. Det eneste formålet med etappe 2 er å motta programmeringsdata fra PC -en, så når brikken er programmert, kan den bindes til bakken. Hvis du går tilbake til å programmere brikken for å korrigere feil osv., Koble deretter etappe 2 fra bakken og koble 22k til etappe 2. Picaxen snakker tilbake til PC -en via etappe 7, så dette trenger ikke å endres.

En gryte er lagt til og servoen er lagt til. Servoen er egentlig ikke nødvendig, og en LED og en 1k motstand ville fungere fint og/eller en hvilken som helst krets du ønsker å koble til. Jeg brukte bare en servo for å vise hvordan å klikke på noe på en skjerm kan få noe til å bevege seg. Servoen drives av sin egen strømforsyning. Denne separate strømforsyningen ville ikke være nødvendig hvis picaxen bare skrudde lysdioder av og på. Picaxen er klar til bruk - nå trenger vi litt VB -kode.

Trinn 7: Skriv noen VB -grensesnittkoder

Skriv noen VB -grensesnittkoder
Skriv noen VB -grensesnittkoder

Når VB. Net er installert, kjør det og velg File/New Project og velg Windows Application. Du kan klikke på File/Save All helt i begynnelsen og lagre hvor du vil, og deretter i fremtiden enten starte prosjektet fra VB. Net eller ved å klikke på en.sln -fil som vil bli opprettet.

Trinn 8: Utform VB. Net -skjemaet

Design VB. Net -skjemaet
Design VB. Net -skjemaet

VB oppretter et nytt tomt skjema kalt Form1.vb. Du kan endre navnet på dette nå eller senere eller bare la det stå som Form1 hvis prosjektet er enkelt. Vi vil la det være som det er. For å legge til litt kontroll må vi åpne verktøykassen som er omgitt med grønt. Verktøykassen kan åpnes og lukkes når det er nødvendig - vanligvis er det første trinnet å legge til kontrollene og deretter lukke verktøykassen og jobbe med kode. Du kan la den være åpen hele tiden, men det tar litt skjerm.

Trinn 9: Legg til en tidtaker

Legg til en tidtaker
Legg til en tidtaker

Vi har rullet nedover verktøykassen og valgt en tidtaker. Dobbeltklikk på timeren for å legge den til. Et bilde av en klokke som heter Timer1 vil vises nederst på skjermen og over til høyre er timeregenskapene uthevet. Du kan redigere disse, eller de kan endres i tekstteksten i koden. Vi vil la dem være som de er og endre dem i tekstens brødtekst.

Til side ser verktøykassen litt skremmende ut, men bare noen få er nødvendige for de fleste programmer - disse inkluderer knapper, tekstbokser, etiketter, tidtakere, bildebokser, avmerkingsbokser og radiobokser. Kanskje åpne et nytt program og spille med noen noen ganger.

Trinn 10: Legg til et par knapper

Legg til et par knapper
Legg til et par knapper

Klikk på knappverktøyet og tegn størrelsen på knappen på skjema1. Vi kommer til å trenge to knapper, en bildeboks og en etikett. Fortsett og legg til disse - det neste skjermbildet viser alt trukket inn. Størrelse og posisjon er ikke viktig, og du kan gi dem nytt navn senere hvis du vil.

Trinn 11: Skjema med alle kontrollene lagt til

Skjema med alle kontrollene lagt til
Skjema med alle kontrollene lagt til

Skjema 1 er nå lagt ut. Boksen ved siden av Button2 er en liten bildeboks. Du kan sette inn bilder i dette, men vi skal bare bruke det til å indikere hvilken knapp som er trykket ved å endre det fra rødt til grønt. Etikett1 viser picaxe -registerene.

Trinn 12: Legg til litt kode

Legg til litt kode
Legg til litt kode

Over til høyre er det omgitt av grønt flere nyttige knapper - den andre fra høyre er knappen View Code og den høyre knappen er View Designer. I praksis går man frem og tilbake mellom disse visningene når man skriver kode. Vanligvis hvis man er i designermodus, dobbeltklikker du på et objekt, for eksempel en knapp, et sted i kodevisningen for å legge til en kode eller tar en med til koden som kjøres når du trykker på knappen. På denne måten blir programflyten ganske intuitiv - brukeren klikker på ting og biter av kode som kjører og endrer skjermen og så videre. For våre formål, selv om vi skal jukse og lime inn en hel plate med arbeidskode. vil ha Public Class Form1 … End Class - merk dette og slett det. Ta nå all koden nedenfor og lim den inn. Imports System. IOImports Strings = Microsoft. VisualBasic 'så kan du bruke ting som venstre (og høyre (for stringsPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)' for søvnerklæringer Dim WithEvents serialPort As New IO. Ports. SerialPort 'seriell port deklarereDim PicaxeRegisters (0 To 13) As Byte' registers b0 to b13Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) Handles Me. LoadTimer1. E = True 'sett dette i koden som standard til false når det opprettesTimer1. Interval = 5000' 5 sekunderPictureBox1. BackColor = Color. Red 'settes til posisjon' red'Array. Clear (PicaxeRegisters, 0, 13) 'trolig ikke nødvendig som array erklært blankEnd SubPrivate Sub Timer1_Tick (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Timer1. Tick 'timer ticks every 5 secondsCall SerialTxRx ()' talk to picaxeEnd SubSub SerialTxRx () Dim LabelString As String 'string to display byte valuesD DataP acket (0 til 17) Som Byte 'hele datapakken "Data" +14 bytesDim i As Integer' i er alltid nyttig for sløyfer etcLabel1. Text = "" 'tøm teksten på skjermen For i = 0 Til 3DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'legg til ordet "Data" i packetNextFor i = 0 Til 13DataPacket (i + 4) = PicaxeRegisters (i)' legg alle byte til packetNextFor i = 0 til 13DataPacket (i + 4) = PicaxeRegisters (i) 'legg til alle byte til packetNextIf serialPort. IsOpen ThenserialPort. Close () 'bare i tilfelle allerede åpnetEnd IfTryWith serialPort. PortName = "COM1"' De fleste nye datamaskiner er standard på com1, men alle datamaskiner fra før 1999 med en seriell mus vil sannsynligvis være com2. BaudRate = 2400 '2400 er maks. speed for small picaxes. Parity = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' millisekunder så timeout på 1 sekund hvis ingen respons. Åpne () 'åpne den serielle porten. DiscardInBuffer ()' tøm inndatabufferen. Skriv (DataPacket, 0, 18) 'send datapakkets matrise Call Sleep (300)' 100 millisekunder minimum for å vente r data for å komme tilbake og mer hvis datastrømmen er lengre. Les (DataPacket, 0, 18) 'les tilbake i datapakkearrayen. Lukk ()' lukk seriell portEnd WithFor i = 4 To 17LabelString = LabelString + "" + Str (DataPacket (i)) 'blir til en tekst stringNextLabel1. Text = LabelString' legg tekststrengen på screenCatch ex As Exception'MsgBox (ex. ToString) 'kommenter dette hvis du vil se den faktiske feilmeldingenLabel1. Text = " Timeout "'vil vise dette hvis picaxe ikke er tilkoblet etcEnd TryEnd SubPrivate Sub Button1_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button1. ClickPictureBox1. BackColor = Color. Red' endre boksen til redPicaxeRegisters (0) 120 'en vilkårlig verdi for servoEnd SubPrivate Sub Button2_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button2. ClickPictureBox1. BackColor = Color. Green' boks til greenPicaxeRegisters (0) = 160 'vilkårlig verdi servoEnd SubEnd Class

Trinn 13: Kjør programmet

Kjør programmet
Kjør programmet

Slå på picaxen hvis den ikke er slått på. Kjør programmet vb.net ved å klikke på den grønne trekanten øverst på skjermen nær midten. Til høyre for løptrekanten er en pause -knapp og en stopp -knapp, eller programmet kan stoppes ved å klikke øverst til høyre x eller med File/Exit hvis du har lagt til en meny. Programmet kan kompileres hvis du vil, men for feilsøking la oss la det gå i VB. Timeren sender ut byte hvert 5. sekund, så det tar 5 sekunder før displayet kommer opp. Etiketten1 viser en dump av de 14 picaxe -registerene. Disse blir sendt til picaxen og deretter sendt tilbake igjen. Det er nesten ikke nødvendig å sende alle 14, og koden din kan endres slik at den passer. Den andre byten med en verdi på 152 er verdien av potten som endres fra 0 til 255. Hvis knappen1 klikkes, sender den en verdi på 120 i den første byten, og hvis knappen2 klikkes, sender den 160 og picaxe -programmet dekoder disse og flytter servoen. Denne koden viser hvordan du sender data og får data tilbake fra en mikrokontroller. Mikrokontrolleren kan slå på alle slags enheter - jeg har rundt 30 rundt huset mitt som kjører sprinklere, lys, sikkerhet, oppdager biler i innkjørsler, slår på en rekke 3,6Kw pumper og kjenner vannivået i tanker. Picaxes kan daisychains på en felles buss og kan til og med kommunisere med hverandre via radiolenker. Det er også mulig å laste opp og laste ned data fra nettsteder og dermed bruke internett til å koble til enheter hvor som helst i verden https://www.instructables. com/id/Worldwide-microcontroller-link-for-under-20/De neste to sidene inneholder også noen eksempler på hvordan du bruker forskjellige sensorer og hvordan du styrer forskjellige enheter. dr James MoxhamAdelaide, Sør-Australia

Trinn 14: Inndataenheter

Inndataenheter
Inndataenheter

Picaxe-programmereren inneholder noen veldig nyttige hjelpefiler, hvorav den ene kalles "Grensesnittkretser", og den er også tilgjengelig på https://www.rev-ed.co.uk/docs/picaxe_manual3.pdf Dette viser hvordan du styrer motorer, føle miljøet og annen nyttig kontroll. I tillegg til disse cirucittene, er det noen få jeg bruker igjen og igjen. Temperatur - LM35 temperatursensoren produserer en spenning som kan gå rett inn i en picaxe og kan leses med en readadc eller readadc10 kommando. Lys - en lysavhengig motstand har en motstand som varierer fra noen få hundre ohm i sterkt sollys til over 5 megohms i svart. Mål motstanden på lysnivået du vil slå på, og sett LDR i serie med en motstand på omtrent samme verdi. Jeg ønsket for eksempel å oppdage lysene til en bil som trakk inn i carporten for å slå på noen lys. Motstanden var omtrent 1M fra indirekte lys, så jeg satte en 1M i serie med LDR. Bryter - noen brytere bytter mellom 5V og 0V (en enkeltpolet dobbeltkastbryter), men noen slår bare på og av. Hvis en bryter slås på, kan den sende 5V til en picaxe -chip, men hvis den er slått av, vil picaxe -pinnen være "flytende" og kan ha en hvilken som helst verdi. Denne kretsen viser hvordan du trekker inngangen ned til bakken når bryteren er av. Dette er kretsen som skal brukes for de fleste trykknappbrytere. Potensiomter - en god gammeldags knott. Vri på knappen og les spenningen i brikken. Det finnes alle slags andre elektroniske enheter som skaper en spenning fra 0-5V eller som enkelt kan konfigureres til å gjøre det. Eksempler er magnetiske sensorer, fuktighet, hastighet, berøring, infrarødt lys, trykk, farge og lyd. Sensorer koster generelt bare noen få dollar hver.

Trinn 15: Kontrollere enheter

Kontrollere enheter
Kontrollere enheter

Picaxe -hjelpefilen inneholder en flott forklaring på hvordan du styrer motorer og lys. I tillegg finner jeg ut at det er noen kretser jeg bruker igjen og igjen. Den første er en enkel transistorkrets. En picaxe -chip kan slå på maksimalt 20mA per pinne, noe som er bra for å slå på en LED, men ikke mye annet. En 547 transistor øker strømmen til 100mA som er bra for små lyspærer. Den andre kretsen viser en mosfet. Mosfets trenger praktisk talt ingen strøm for å drive dem - bare volt slik at de kan styres direkte av en picaxe. Det finnes alle slags mosfets, men min preferanse er en som heter BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Den kan kjøres direkte fra 5V (i motsetning til noen som trenger 10V), men den største fordelen er at den har en ekstremt lav motstand når den slås på - 0,045 ohm som ikke er mye mer enn motstanden til ledningene man ville koble til den. Dette betyr at det ikke blir varmt når du kjører ganske høye laster, noe som sparer strøm og sparer på kjøleribben. Som et eksempel kjører en 5amp last som en billykt; watt = nåværende kvadrat x motstand, så W = 5*5*0,045 = 1,12 watt som bare trenger en kjøleribbe som et 1 tommers kvadrat stykke tynt aluminium. Den tredje kretsen viser et relé. Det er flere parametere for alle reléer - spolespenning, spolemotstand og belastningsspenning og strøm. For eksempel kan et relé ha en 12V spole med en spolestrøm på 30mA, spolemotstand på 400 ohm og kan være i stand til å drive opptil 240V ved 1 ampere. Spolestrømmen er mer volt og ampere enn en piksel kan levere, så vi bruker transistorkretsen til å bytte spole. Det er også en diode inkludert - dette undertrykker EMF på baksiden når reléet slår seg av. Tilbake EMF er det som skaper gnisten for en tennplugg, så du vil ikke ha disse høye spenningene hvor som helst i en krets. Kontaktene vil ha maksimal strøm og volt - strømmen kan være noen få ampere og voltene er ofte 240V, så bytte 12V eller 24V vil være godt innenfor rekkevidde. Hvis du er uerfaren med elektronikk, må du ikke leke med nettspenninger. Det er også små reléer som har spolespenninger på 5V eller 6V. For disse reléene trenger du kanskje ikke en separat 12V forsyning, men bare se på spolemotstanden, da mange av disse har nåværende trekk på over 100mA. I så fall, og du bruker en 78L05 100mA 5V regulator, vil du kanskje endre dette til en 7805 regulator som kan levere opptil 1 amp. Reléer er spesielt nyttige for veksling av vekselstrøm - f.eks. 24VAC hagesprinkler -solenoider, 12VAC hagelys og i elektrisk støyende miljøer som en bil. De er også nyttige for å kontrollere store belastninger, f.eks. En picaxe som leverer 20mA ved 5V = 0.1W som styrer en transistor 12V ved 100mA = 1.2W til et relé 24V 100mA = 2.4W til en kontaktor som driver en 3600W pumpe. Hvis du vil styre strøm sånn, så få en elektriker til å koble til en kontrollboks og gi deg to ledninger som kommer ut (spoleledninger for et 12V relé) som du kan kontrollere. På denne måten kan elektrikeren logge av på strømboksen, og du kan gjøre all elektronikken uten å måtte bekymre deg for å bli elektrokutert. En annen bruk for reléer er en revers -kontroll for en motor. Ved å bruke pulsbreddemodulering til en mosfet kan du kontrollere hastigheten på en likestrømsmotor, og med et DPDT -effektrelé kan du endre retningen. Dette er en enkel måte å kontrollere store motorer som de som ble brukt i 'robot wars'. Send en kommentar hvis du trenger hjelp til å bygge noe.

Anbefalt: