Indholdsfortegnelse:

Styr den virkelige verden med din pc: 15 trin (med billeder)
Styr den virkelige verden med din pc: 15 trin (med billeder)

Video: Styr den virkelige verden med din pc: 15 trin (med billeder)

Video: Styr den virkelige verden med din pc: 15 trin (med billeder)
Video: Denne Video Kan Gætte Hvor Du Er! 2024, Juli
Anonim
Styr den virkelige verden med din pc
Styr den virkelige verden med din pc

Denne instruktion viser dig, hvordan du tilslutter en pc og en mikrokontroller. Denne demo vil mærke værdien af en gryde eller en hvilken som helst analog indgang og også styre en servo. Samlede omkostninger er under $ 40 inklusive servoen. Servoen tænder en mikrokontakt og derefter tænder mikrokontakten en lampe. I en praktisk anvendelse kan gryden være en temperatursensor, og servoen kan tænde for en varmelegeme. Servoen kan udskiftes med et relæ eller en anden power controller. Picaxe er programmeret i en forenklet version af basic, og grænsefladen bruger VB. Net. Al software er gratis tilgængelig. En relateret instruerbar viser, hvordan man forbinder to mikrokontrollere via internettet

Trin 1: Saml delene

Saml delene
Saml delene

Delliste: Picaxe 08M-chip tilgængelig fra mange kilder, herunder Rev Ed https://www.rev-ed.co.uk/picaxe/ (UK), PH Anderson https://www.phanderson.com/ (USA) og Microzed https://www.microzed.com.au/ (Australien) Protoboard, servo, mikrokontakt, 9V batteri, 4xAA batterier og holder, tagstrimmel, 10k modstand, 22k modstand, 33uF 16V kondensator, 0.1uF kondensator, 7805L lav effekt 5V regulator, 10k pot, ledninger (solid core telefon/datakabel f.eks. Cat5/6), 6V lyspære, D9 hunstik og dæksel, 2 meter 3 (eller 4) core data wire, batteriklemmer Ovenstående virksomheder sælger også USB til serielle enheder som er nyttige til bærbare computere, der ikke har en seriel port. Det er værd at bemærke, at nogle USB til serielle enheder ikke fungerer lige så godt som andre, og det er værd at få en fra en af ovenstående leverandører, da de er blevet testet til brug med picaxe -chips. Den, der vides at fungere, er https://www.rev-ed.co.uk/docs/axe027.pdf Selvfølgelig, hvis din computer har en seriel port (eller et gammelt serielt portkort), vil dette ikke være et problem.

Trin 2: Download og installer noget software

Download og installer noget software
Download og installer noget software

Vi skal bruge VB. Net og picaxe-controllersoftwaren. VB. Net (Visual Basic Express) er tilgængelig fra https://msdn2.microsoft.com/en-us/express/aa718406.aspxHvis dette link ikke virker, skal du søge i Google for: visual basic express download Picaxe -softwaren er tilgængelig fra https://www.rev-ed.co.uk/picaxe/Du bliver nødt til at registrere dig hos Microsoft for at få downloadet - hvis dette er et problem, skal du bruge en falsk e -mail eller noget. Jeg fandt faktisk det nyttigt at give min rigtige e -mail, da de lejlighedsvis sender opdateringer.

Trin 3: Byg et downloadkredsløb

Byg et downloadkredsløb
Byg et downloadkredsløb

Dette downloadkredsløb bruger en picaxe -chip, et par modstande, en regulator og et 9V batteri. Flere oplysninger er tilgængelige i picaxe -dokumentationen, og det bør kun tage et par minutter at bygge, når alle delene er ved hånden.

Jeg kan også tilføje, at picaxer godt kan køre på 3 AA -batterier. En 5V reguleret forsyning er nyttig til at køre analoge indgange, da referencespændingerne ikke ændres, men for enkle tænd/sluk -kredsløb er en reguleret forsyning ikke nødvendig. 5V reg kan udelades i disse situationer.

Trin 4: Protoboard -layout af downloadkredsløbet

Protoboard -layout til downloadkredsløbet
Protoboard -layout til downloadkredsløbet

Dette foto viser downloadkablet, som simpelthen er et D9 -stik og et par meter med et multi -core kabel. De fleste moderne pc'er har en D9 seriel portforbindelse. En pc bygget før omkring 1998 kan have et 25 -polet stik. Jeg loddet cirka 1 cm massiv kernetråd på enden af de fleksible ledninger og satte derefter varmekrymp omkring dette - de faste kernetråde går meget bedre ind i en protoboard end fleksible ledninger.

Trin 5: Download Picaxe -programmet

Download Picaxe -programmet
Download Picaxe -programmet

Klik på den blå pil for at downloade. Hvis den ikke downloades, er der nogle forslag til fejlfinding i picaxe -betjeningsvejledningen. Du kan prøve at downloade et simpelt program til at tænde og slukke en LED for at kontrollere, at chippen fungerer. Dette program som det gør ikke noget, før det er forbundet til en pc, da det venter på, at pc'en sender det noget. Hvis den downloades ok, fungerer den, og chippen er programmeret, og det næste trin er at omkonfigurere chippen som en seriel interface -chip.

Kopier og indsæt koden herunder. Hvis du vil se det med farvesyntaks, skal du se i View/Options/Editor. Farvekonventionerne ligner VB. Net main: serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'læs puljen, og send derefter denne serout 0, N2400, ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) vælg case b0 'læs databit b0 case <140' hvis <140 derefter indstil servo til en position servo 2, 120 pause 1000 'pause en anden servo 2, 160 pause 1000 ende vælg lav 2' sluk for servoen, da serin gør dette alligevel gå til main

Trin 6: Konfigurer kredsløbet som et serielt interface -kredsløb

Omkonfigurer kredsløbet som et serielt interface -kredsløb
Omkonfigurer kredsløbet som et serielt interface -kredsløb

To subtile ændringer er foretaget i picaxekredsløbet. Den 22k modstand, der plejede at gå til ben 2, går nu til ben 4. Og ben 2 er blevet jordet. Det eneste formål med ben 2 er at modtage programmeringsdata fra pc'en, så når chippen er programmeret, kan den bindes til jorden. Hvis du går tilbage til at programmere chippen til at korrigere fejl osv., Skal du afbryde ben 2 fra jorden og tilslutte 22k igen til ben 2. Picaxen taler tilbage til pc'en via ben 7, så dette behøver ikke ændres.

Der er tilføjet en gryde, og servoen er tilføjet. Servoen er egentlig ikke nødvendig, og en LED og en 1k modstand ville fungere fint og/eller ethvert kredsløb, du ønsker at tilslutte. Jeg brugte bare en servo til at vise, hvordan klik på noget på en skærm kan få noget til at bevæge sig. Servoen kører af egen strømforsyning. Denne separate strømforsyning ville ikke være nødvendig, hvis picaxen bare tændte og slukkede lysdioder. Picaxen er klar til at gå - nu har vi brug for noget VB -kode.

Trin 7: Skriv nogle VB -grænsefladekode

Skriv nogle VB -grænsefladekode
Skriv nogle VB -grænsefladekode

Når VB. Net er installeret, skal du køre det og vælge File/New Project og vælge Windows Application. Du kan klikke på Fil/Gem alle lige i begyndelsen og gemme, hvor du vil, og derefter i fremtiden enten starte projektet indefra VB. Net eller ved at klikke på en.sln -fil, der vil blive oprettet.

Trin 8: Design VB. Net -formularen

Design VB. Net -formularen
Design VB. Net -formularen

VB opretter en ny blank form kaldet Form1.vb. Du kan ændre navnet på dette nu eller senere eller bare lade det være som form1, hvis projektet er enkelt. Vi lader det være som det er. For at tilføje lidt kontrol skal vi åbne værktøjskassen, der er omkranset med grønt. Værktøjskassen kan åbnes og lukkes, når det er nødvendigt - normalt er det første trin at tilføje kontrollerne og derefter lukke værktøjskassen og arbejde med kode. Du kan lade det være åbent hele tiden, men det tager lidt skærm.

Trin 9: Tilføj en timer

Tilføj en timer
Tilføj en timer

Vi har rullet ned i værktøjskassen og valgt en timer. Dobbeltklik på timeren for at tilføje den. Et billede af et ur kaldet Timer1 vises i bunden af skærmen, og til højre er timerenes egenskaber fremhævet. Du kan redigere disse, eller de kan ændres i tekstteksten i koden. Vi vil efterlade dem som de er og ændre dem i tekstens brødtekst.

Til sidst ser værktøjskassen lidt skræmmende ud, men kun få er nødvendige for de fleste programmer - disse vil omfatte knapper, tekstbokse, etiketter, timere, billedbokse, afkrydsningsfelter og radiobokse. Måske åbne et nyt program og få en leg med et par engang.

Trin 10: Tilføj et par knapper

Tilføj et par knapper
Tilføj et par knapper

Klik på knapværktøjet og tegn størrelsen på knappen på Form1. Vi skal bruge to knapper, en billedboks og en etiket. Fortsæt og tilføj disse - det næste skærmbillede viser disse alle trukket ind. Størrelse og position er ikke vigtig, og du kan omdøbe dem senere, hvis du vil.

Trin 11: Form med alle tilføjede kontrolelementer

Skema med alle kontrolelementerne tilføjet
Skema med alle kontrolelementerne tilføjet

Form 1 er nu udlagt. Boksen ved siden af Button2 er en lille billedboks. Du kan sætte billeder i dette, men vi skal bare bruge det til at angive, hvilken knap der er blevet trykket på ved at ændre det fra rødt til grønt. Label1 viser picaxe -registre.

Trin 12: Tilføj noget kode

Tilføj noget kode
Tilføj noget kode

Over til højre med en grøn cirkel er der flere nyttige knapper - den anden fra højre er knappen Vis kode, og den højre knap er Visningsdesigner. I praksis går man frem og tilbage mellem disse synspunkter, når man skriver kode. Generelt hvis man er i Designer -tilstand dobbeltklikker man på et objekt, f.eks. En knap, får man et sted i kodevisningen for at tilføje en kode eller tager en med til det stykke kode, der kører, når der trykkes på knappen. På denne måde bliver programforløbet ret intuitivt - brugeren klikker på ting og kodestykker kører og ændrer skærmen og så videre. For vores formål, selvom vi skal snyde og indsætte en hel plade arbejdskode. Kodevisningen vil have Public Class Form1 … End Class - fremhæv dette, og slet det. Tag nu al koden herunder og indsæt den i. Imports System. IOImports Strings = Microsoft. VisualBasic 'så kan bruge ting som venstre (og højre (for stringsPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)' til søvnopgørelser Dim WithEvents serialPort som ny IO. Ports. SerialPort 'seriel port deklarereDim PicaxeRegisters (0 til 13) As Byte' registrerer b0 til b13Privat subform1_Load (ByVal afsender som objekt, ByVal e Som System. EventArgs) Håndterer Me. LoadTimer1. E = True 'sæt dette i kode som standard til false, når det oprettesTimer1. Interval = 5000' 5 sekunderPictureBox1. BackColor = Color. Red 'indstillet til position' red'Array. Clear (PicaxeRegisters, 0, 13) 'sandsynligvis ikke nødvendig som array erklæret 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 altid nyttig til loops etcLabel1. Text = "" 'ryd teksten på skærmen For i = 0 Til 3DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'tilføj ordet "Data" til packetNextFor i = 0 Til 13DataPacket (i + 4) = PicaxeRegisters (i)' tilføj alle bytes til packetNextFor i = 0 Til 13DataPacket (i + 4) = PicaxeRegisters (i) 'tilføj alle bytes til packetNextFor i = 0 Til 13DataPacket (i + 4) = PicaxeRegisters (i)' tilføj alle bytes til packetNextFf i serialPort. IsOpen ThenserialPort. Close () 'bare hvis allerede åbnetEnd IfTryWith serialPort. PortName = "COM1"' De fleste nye computere er standard til com1, men enhver computer fra 1999 med en seriel mus vil sandsynligvis være com2. BaudRate = 2400 '2400 er maksimum 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 intet svar. Åbn () 'åbn den serielle port. DiscardInBuffer ()' ryd inputbufferen. Skriv (DataPacket, 0, 18) 'send datapakket arrayCall Sleep (300)' 100 millisekunder minimum for at vente fo r data vender tilbage og mere, hvis datastrøm er længere. Read (DataPacket, 0, 18) 'læs tilbage i datapakkearrayet. Luk ()' luk den serielle portEnd WithFor i = 4 To 17LabelString = LabelString + "" + Str (DataPacket (i)) 'bliver til en tekst stringNextLabel1. Text = LabelString' læg tekststrengen på screenCatch ex As Exception'MsgBox (ex. ToString) 'kommenter dette, hvis du vil se den faktiske fejlmeddelelseLabel1. Text = " Timeout "'viser dette, hvis picaxe ikke er tilsluttet etcEnd TryEnd SubPrivate Sub Button1_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button1. ClickPictureBox1. BackColor = Color. Red' change the box to redPicaxeRegisters (0) 120 'en vilkårlig værdi for servoEnd SubPrivate Sub Button2_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button2. ClickPictureBox1. BackColor = Color. Green' box to greenPicaxeRegisters (0) = 160 'vilkårlig værdi for servoEnd SubEnd Class

Trin 13: Kør programmet

Kør programmet
Kør programmet

Tænd for picaxen, hvis den ikke er tændt. Kør programmet vb.net ved at klikke på den grønne trekant øverst på skærmen nær midten. Til højre for kørtrekanten er en pause -knap og en stop -knap, eller programmet kan stoppes ved at klikke på øverst til højre x eller med File/Exit, hvis du har tilføjet en menu. Programmet kan kompileres, hvis du vil, men lad os lade det køre inden for VB inden for fejlfinding. Timeren sender bytes ud hvert 5. sekund, så det tager 5 sekunder, før displayet kommer frem. Etiketten1 viser et dump af de 14 picaxe -registre. Disse sendes til picaxen og sendes derefter tilbage igen. Det er næsten ikke nødvendigt at sende alle 14, og din kode kan ændres, så den passer. Den anden byte med en værdi på 152 er værdien af puljen, der skifter fra 0 til 255. Hvis der klikkes på knap1, sender den en værdi på 120 i den første byte, og hvis der klikkes på knap2, sender den 160, og picaxe -programmet afkoder disse og flytter servoen. Denne kode viser, hvordan man sender data og får data tilbage fra en mikrokontroller. Mikrokontrolleren kan tænde alle slags enheder - jeg har omkring 30 rundt i mit hus, der kører sprinklere, lys, sikkerhed, registrerer biler i indkørsler, tænder for et antal 3,6Kw pumper og registrerer vandniveauet i tanke. Picaxes kan daisychains på en fælles bus og kan endda kommunikere med hinanden via radiolinks. Det er også muligt at uploade og downloade data fra websteder og dermed bruge internettet til at forbinde enheder overalt i verden https://www.instructables. com/id/Worldwide-microcontroller-link-for-under-20/De næste to sider indeholder også nogle eksempler på, hvordan man bruger forskellige sensorer, og hvordan man styrer forskellige enheder. Dr James MoxhamAdelaide, South Australia

Trin 14: Inputenheder

Inputenheder
Inputenheder

Picaxe-programmereren indeholder nogle meget nyttige hjælpefiler, hvoraf den ene kaldes "Interfacing circuits", og den er også tilgængelig på https://www.rev-ed.co.uk/docs/picaxe_manual3.pdf Dette viser, hvordan man styrer motorer, mærke miljøet og anden nyttig kontrol. Ud over disse cirucitter er der et par stykker, jeg bruger igen og igen. Temperatur - LM35 temperatursensoren producerer en spænding, der kan gå direkte ind i en picaxe og kan aflæses med en readadc eller readadc10 kommando. Lys - en lysafhængig modstand har en modstand, der varierer fra et par hundrede ohm i stærkt sollys til over 5 megohms i kulsort. Mål modstanden på det lysniveau, du vil skifte til, og sæt LDR i serie med en modstand på omtrent samme værdi. Jeg ville f.eks. Opdage lysene fra en bil, der trak ind i carporten for at tænde nogle lys. Modstanden var cirka 1 M fra indirekte lys, så jeg satte en 1 M i serie med LDR. Kontakt - nogle kontakter skifter mellem 5V og 0V (en enkeltpolet dobbeltkastkontakt), men nogle tænder og slukker bare. Hvis en switch tændes, kan den sende 5V til en picaxe -chip, men hvis den er slukket, ville picaxe -stiften være 'flydende' og kunne have en hvilken som helst værdi. Dette kredsløb viser, hvordan man trækker input ned til jorden, når kontakten er slukket. Dette er kredsløbet, der skal bruges til de fleste trykknapper. Potentiomter - en god gammeldags knap. Drej knappen og læs spændingen ind i chippen. Der er alle mulige andre elektroniske enheder, der skaber en spænding fra 0-5V eller let kan konfigureres til at gøre det. Eksempler er magnetiske sensorer, fugtighed, hastighed, berøring, infrarødt lys, tryk, farve og lyd. Sensorer koster generelt kun et par dollars hver.

Trin 15: Kontrol af enheder

Kontrol af enheder
Kontrol af enheder

Picaxe -hjælpefilen indeholder en god forklaring på, hvordan man styrer motorer og lys. Derudover finder jeg, at der er et par kredsløb, jeg bruger igen og igen. Den første er et simpelt transistorkredsløb. En picaxe -chip kan maksimalt tænde 20mA pr. Stift, hvilket er godt til at tænde en LED, men ikke meget andet. En 547 transistor øger strømmen til 100mA, hvilket er godt for små pærer. Det andet kredsløb viser en mosfet. Mosfets har stort set ingen strøm for at drive dem - kun volt, så de kan styres direkte af en picaxe. Der findes alle slags mosfets, men min præference er en, der hedder BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Den kan drives direkte fra 5V (i modsætning til nogle, der har brug for 10V), men den største fordel er, at den har en ekstremt lav modstand, når den er tændt - 0,045 ohm, hvilket ikke er meget mere end modstanden på de ledninger, man ville forbinde til den. Det betyder, at det ikke bliver varmt, når der køres temmelig høje belastninger, hvilket sparer strøm og også sparer på køleribber. Som et eksempel kører en 5amp belastning som en bil forlygte; watt = strøm i kvadrat x modstand, så W = 5*5*0,045 = 1,12 watt, som kun ville have brug for en kølelegeme som et 1 tommer firkantet stykke tyndt aluminium. Det tredje kredsløb viser et relæ. Der er flere parametre for alle relæer - spolespændingen, spolemodstanden og belastningsspændingen og strømmen. For eksempel kan et relæ have en 12V spole med en spolestrøm på 30mA, spolemodstand på 400 ohm og kan muligvis køre op til 240V ved 1 ampere. Spolestrømmen er flere volt og ampere end en picaxe kan levere, så vi bruger transistorkredsløbet til at skifte spolen. Der er også en diode inkluderet - dette undertrykker den bageste EMF, når relæet slukker. Tilbage EMF er det, der skaber gnisten til et tændrør, så du ikke vil have disse høje spændinger nogen steder i et kredsløb. Kontakterne vil have en maksimal strøm og volt - strømmen kan være et par ampere, og volt er ofte 240V, så switch 12V eller 24V vil være godt inden for rækkevidde. Hvis du er uerfaren med elektronik, skal du ikke lege med netspændinger. Der er også små relæer, der har spolespændinger på 5V eller 6V. Til disse relæer har du muligvis ikke brug for en separat 12V forsyning, men bare se spolemodstanden, da mange af disse har strømtræk på over 100mA. Hvis det er tilfældet, og du bruger en 78L05 100mA 5V regulator, vil du måske ændre dette til en 7805 regulator, der kan levere op til 1 amp. Relæer er særligt nyttige til at skifte vekselstrøm - f.eks. 24VAC havesprinklersolenoider, 12VAC havelys og i elektrisk støjende omgivelser som f.eks. En bil. De er også nyttige til styring af store belastninger, f.eks. En picaxe, der leverer 20mA ved 5V = 0,1W, der styrer en transistor 12V ved 100mA = 1,2W til et relæ 24V 100mA = 2,4W til en kontaktor, der driver en 3600W pumpe. Hvis du vil styre strømmen sådan, så få en elektriker til at oprette en kontrolboks og give dig to ledninger, der kommer ud (spoleledninger til et 12V relæ), som du kan styre. På denne måde kan elektrikeren afmelde strømkassen, og du kan gøre al elektronikken uden at skulle bekymre dig om at blive elektrokut. En anden anvendelse til relæer er en omvendt kontrol til en motor. Ved hjælp af pulsbreddemodulation i en mosfet kan du styre hastigheden på en DC -motor, og med et DPDT -effektrelæ kan du ændre retningen. Dette er en enkel måde at styre store motorer som dem, der blev brugt i 'robot krige'. Send en kommentar, hvis du har brug for hjælp til at bygge noget.

Anbefalede: