Innehållsförteckning:
- Steg 1: Samla delarna
- Steg 2: Ladda ner och installera viss programvara
- Steg 3: Bygg en nedladdningskrets
- Steg 4: Protoboard -layout för nedladdningskretsen
- Steg 5: Ladda ner Picaxe -programmet
- Steg 6: Konfigurera om kretsen som en seriell gränssnittskrets
- Steg 7: Skriv lite VB -gränssnittskod
- Steg 8: Utforma VB.Net -formuläret
- Steg 9: Lägg till en timer
- Steg 10: Lägg till ett par knappar
- Steg 11: Formulär med alla kontroller tillagda
- Steg 12: Lägg till lite kod
- Steg 13: Kör programmet
- Steg 14: Inmatningsenheter
- Steg 15: Kontrollera enheter
Video: Styr verkliga enheter med din dator: 15 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:47
Denna instruktionsbok visar hur du kopplar en dator och en mikrokontroller. Denna demo känner av värdet på en kruka eller någon analog ingång och styr även en servo. Total kostnad är under $ 40 inklusive servon. Servon tänder en mikrobrytare och sedan slår mikrobrytaren på en lampa. I en praktisk tillämpning kan potten vara en temperatursensor och servon kan slå på en värmare. Servon kan bytas ut mot ett relä eller annan effektregulator. Picaxen är programmerad i en förenklad version av basic och gränssnittet använder VB. Net. All programvara är tillgänglig gratis. En relaterad instruerbar visar hur man länkar två mikrokontroller via internet
Steg 1: Samla delarna
Dellista: Picaxe 08M-chip tillgängligt från många källor, inklusive Rev Ed https://www.rev-ed.co.uk/picaxe/ (Storbritannien), PH Anderson https://www.phanderson.com/ (USA) och Microzed https://www.microzed.com.au/ (Australien) Protoboard, servo, mikrobrytare, 9V batteri, 4xAA batterier och hållare, taglist, 10k motstånd, 22k motstånd, 33uF 16V kondensator, 0.1uF kondensator, 7805L låg effekt 5V regulator, 10k gryta, ledningar (telefon/datakabel med fast kärna, t.ex. Cat5/6), 6V glödlampa, D9 hona och hölje, 2 meter med 3 (eller 4) kärndatatråd, batteriklämmor Ovanstående företag säljer också USB till seriella enheter som är användbara för bärbara datorer som inte har en seriell port. Det är värt att notera att vissa USB till seriella enheter inte fungerar lika bra som andra och det är värt att skaffa en från en av ovanstående leverantörer eftersom de har testats för användning med picaxe -chips. Den som är känd för att fungera är https://www.rev-ed.co.uk/docs/axe027.pdf Naturligtvis, om din dator har en seriell port (eller ett gammalt seriellt portkort) kommer detta inte vara en fråga.
Steg 2: Ladda ner och installera viss programvara
Vi behöver VB. Net och picaxe-kontrollprogramvaran. VB. Net (Visual Basic Express) är tillgängligt från https://msdn2.microsoft.com/en-us/express/aa718406.aspxOm denna länk inte fungerar, sök sedan i Google för: visual basic express -nedladdning Picaxe -programvaran är tillgänglig från https://www.rev-ed.co.uk/picaxe/Du måste registrera dig hos Microsoft för att ladda ner - om detta är ett problem använder du en falsk e -post eller något. Jag tyckte faktiskt att det var bra att ge min riktiga e -post när de skickar uppdateringar ibland.
Steg 3: Bygg en nedladdningskrets
Denna nedladdningskrets använder ett picaxe -chip, ett par motstånd, en regulator och ett 9V -batteri. Mer information finns i picaxe -dokumentationen och detta bör bara ta några minuter att bygga när alla delar är tillgängliga.
Jag kan också tillägga att picaxer körs lyckligt på 3 AA -batterier. En 5V reglerad matning är användbar för att köra analoga ingångar eftersom referensspänningarna inte ändras, men för enkla på/av -kretsar behövs ingen reglerad matning. 5V reg kan utelämnas i dessa situationer.
Steg 4: Protoboard -layout för nedladdningskretsen
Detta foto visar nedladdningskabeln som helt enkelt är en D9 -kontakt och ett par meter med en flerkärnig kabel. De flesta moderna datorer har en D9 seriell portanslutning. En dator som byggdes före 1998 kan ha en 25 -polig kontakt. Jag lödde cirka 1 cm massiv kärntråd på änden av de flexibla trådarna och satte sedan värmekrymp runt detta - de massiva kärntrådarna går in i ett protoboard mycket bättre än flexibla trådar.
Steg 5: Ladda ner Picaxe -programmet
Klicka på den blå pilen för att ladda ner. Om det inte laddas ner finns det några felsökningsförslag i picaxe bruksanvisning. Du kan försöka ladda ner ett enkelt program för att slå på och stänga av en lysdiod för att kontrollera att chipet fungerar. Detta program som det gör ingenting förrän det är anslutet till en dator eftersom det väntar på att datorn skickar något. Om det laddas ner ok fungerar det och chipet är programmerat och nästa steg är att omkonfigurera chipet som ett seriellt gränssnittschip.
Kopiera och klistra in koden nedan. För att se den med färgsyntax, titta i Visa/Alternativ/Editor. Färgkonventionerna liknar 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 potten och skicka sedan tillbaka serout 0, N2400, ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) välj fall b0 'läs databit b0 fall <140' om <140 ställ sedan in servo i ett läge servo 2, 120 paus 1000 'paus en sekund annars servo 2, 160 paus 1000 slutvälj låg 2' stäng av servon då serin gör detta ändå gå till main
Steg 6: Konfigurera om kretsen som en seriell gränssnittskrets
Två subtila ändringar har gjorts i picaxekretsen. 22k -motståndet som brukade gå till ben 2 går nu till ben 4. Och ben 2 har jordats. Det enda syftet med etapp 2 är att ta emot programmeringsdata från datorn så att när chipet är programmerat kan det knytas till marken. Om du går tillbaka till att programmera chipet för att korrigera buggar osv, koppla sedan bort ben 2 från marken och återanslut 22k till ben 2. Picaxen talar tillbaka till datorn via ben 7 så detta behöver inte ändras.
En kruka har lagts till och servon har lagts till. Servon är egentligen inte nödvändig och en LED och ett 1k motstånd skulle fungera bra och/eller vilken krets du vill ansluta. Jag använde bara en servo för att visa hur ett klick på något på en skärm kan få något att röra sig. Servon drivs av egen strömförsörjning. Denna separata strömförsörjning skulle inte behövas om picaxen bara slog på och av lysdioder. Picaxen är klar att gå - nu behöver vi lite VB -kod.
Steg 7: Skriv lite VB -gränssnittskod
När VB. Net är installerat kör det och välj Arkiv/Nytt projekt och välj Windows -program. Du kan klicka på Arkiv/Spara alla direkt i början och spara till var du vill och sedan i framtiden antingen starta projektet från VB. Net eller genom att klicka på en.sln -fil som kommer att skapas.
Steg 8: Utforma VB. Net -formuläret
VB skapar ett nytt tomt formulär som heter Form1.vb. Du kan ändra namnet på detta nu eller senare eller bara lämna det som Form1 om projektet är enkelt. Vi kommer att lämna det som det är. För att lägga till lite kontroll måste vi öppna verktygslådan som är inringad i grönt. Verktygslådan kan öppnas och stängas när det behövs - vanligtvis är det första steget att lägga till kontrollerna och sedan stänga verktygslådan och arbeta med kod. Du kan låta den vara öppen hela tiden men det tar lite skärm.
Steg 9: Lägg till en timer
Vi har rullat ner i verktygslådan och valt en timer. Dubbelklicka på timern för att lägga till den. En bild av en klocka som heter Timer1 kommer att visas längst ner på skärmen och över till höger markeras timeregenskaperna. Du kan redigera dessa eller de kan ändras i kodens texttext. Vi kommer att lämna dem som de är och ändra dem i texten.
För övrigt ser verktygslådan lite skrämmande ut, men bara några få behövs för de flesta program - dessa inkluderar knappar, textrutor, etiketter, timers, bildrutor, kryssrutor och radioboxar. Kanske öppna ett nytt program och spela med några någon gång.
Steg 10: Lägg till ett par knappar
Klicka på knappverktyget och rita knappens storlek på Form1. Vi kommer att behöva två knappar, en bildruta och en etikett. Fortsätt och lägg till dessa - nästa skärmdump visar allt detta. Storlek och position är inte viktigt och du kan byta namn på dem senare om du vill.
Steg 11: Formulär med alla kontroller tillagda
Form 1 är nu upplagd. Lådan bredvid Button2 är en liten bildruta. Du kan lägga in bilder i detta men vi kommer bara att använda det för att indikera vilken knapp som har tryckts genom att ändra den från rött till grönt. Etikett1 visar picaxe -registren.
Steg 12: Lägg till lite kod
Över till höger inringat i grönt finns flera användbara knappar - den andra från höger är knappen View Code och den högra knappen är View Designer. I praktiken går man fram och tillbaka mellan dessa åsikter när man skriver kod. I allmänhet om man är i Designer -läge dubbelklickar man på ett objekt, till exempel en knapp, visas en plats i kodvyn för att lägga till en kod eller tar en till den kodbit som körs när knappen trycks in. På så sätt blir programflödet ganska intuitivt - användaren klickar på saker och bitar av kod som körs och ändrar skärmen och så vidare. För våra syften kommer vi dock att fuska och klistra in en hel platta med arbetskod. Kodvyn kommer att ha Public Class Form1 … End Class - markera detta och ta bort det. Ta nu all koden nedan och klistra in den i. Imports System. IOImports Strings = Microsoft. VisualBasic 'så kan du använda saker som vänster (och höger (för stringsPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer)' för sömnutlåtanden Dim WithEvents serialPort As New IO. Ports. SerialPort 'seriell port deklareraDim PicaxeRegisters (0 To 13) As Byte' register b0 to b13Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) Handles Me. LoadTimer1. E = True 'sätt detta i koden som standard till falskt när skapatTimer1. Interval = 5000' 5 sekunderPictureBox1. BackColor = Color. Red 'ställt till position' red'Array. Clear (PicaxeRegisters, 0, 13) 'behövs troligen inte som arraydeklarerad blankEnd SubPrivate Sub Timer1_Tick (ByVal sender As System. Object, ByVal e As System. EventArgs) Hanterar Timer1. Tick 'timer markerar var 5: e sekund Call Call SerialTxRx ()' talk to picaxeEnd SubSub SerialTxRx () Dim LabelString As String 'string to display byte valuesD DataP acket (0 till 17) Som Byte hela datapaketet "Data" +14 bytesDim i As Integer 'i är alltid användbart för slingor etcLabel1. Text = ""' rensa texten på skärmen För i = 0 Till 3DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'lägg till ordet "Data" i packetNextFor i = 0 Till 13DataPacket (i + 4) = PicaxeRegisters (i)' lägg till alla byte till packetNextFor i = 0 Till 13DataPacket (i + 4) = PicaxeRegisters (i) 'lägg till alla byte i packetNextFf i serialPort. IsOpen ThenserialPort. Close () 'ifall redan öppnatEnd IfTryWith serialPort. PortName = "COM1"' De flesta nya datorer är standard på com1 men alla datorer från 1999 med en seriell mus kommer förmodligen att vara com2. BaudRate = 2400 '2400 är max hastighet för små picaxes. Parity = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' millisekunder så time out på 1 sekund om inget svar. Öppna () 'öppna seriell port. DiscardInBuffer ()' rensa inmatningsbufferten. Skriv (DataPacket, 0, 18) 'skicka datapacket arrayCall Sleep (300)' 100 millisekunder minst för att vänta fo r data för att komma tillbaka och mer om dataströmmen är längre. Läs (DataPacket, 0, 18) 'läs tillbaka i datapaketets array. Close ()' stäng den seriella porten End WithFor i = 4 To 17LabelString = LabelString + "" + Str (DataPacket (i)) 'förvandlas till en text stringNextLabel1. Text = LabelString' lägg textsträngen på screenCatch ex As Exception'MsgBox (ex. ToString) 'kommentera detta om du vill se det faktiska felmeddelandetLabel1. Text = " Timeout "'visar detta om picaxe inte är ansluten etcEnd TryEnd SubPrivate Sub Button1_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button1. ClickPictureBox1. BackColor = Color. Red' ändra rutan till redPicaxeRegisters (0) 120 'ett godtyckligt värde för servoEnd SubPrivate Sub Button2_Click (ByVal -avsändare som System. Object, ByVal e As System. EventArgs) Hanterar Button2. ClickPictureBox1. BackColor = Color. Green' ruta till greenPicaxeRegisters (0) = 160 'godtyckligt värde för servoEnd SubEnd Class
Steg 13: Kör programmet
Slå på picaxen om den inte startas. Kör programmet vb.net genom att klicka på den gröna triangeln högst upp på skärmen nära mitten. Till höger om körtriangeln finns en pausknapp och en stoppknapp, eller så kan programmet stoppas genom att klicka högst upp till höger x eller med Arkiv/Avsluta om du har lagt till en meny. Programmet kan kompileras om du vill, men för felsökning, låt det vara igång inom VB. Timern skickar ut byte var 5: e sekund så det tar 5 sekunder för displayen att komma upp. Etiketten1 visar en dumpning av de 14 picaxregistren. Dessa skickas till picaxen och skickas sedan tillbaka igen. Det är nästan inte nödvändigt att skicka alla 14 och din kod kan ändras för att passa. Den andra byten med värdet 152 är värdet på potten som ändras från 0 till 255. Om knappen 1 klickas skickar det ett värde på 120 i den första byten och om knappen2 klickas skickar den 160 och picaxeprogrammet avkodar dessa och flyttar servon. Denna kod visar hur man skickar data och får tillbaka data från en mikrokontroller. Mikrokontrollern kan slå på alla typer av enheter - jag har cirka 30 runt mitt hus som kör sprinkler, lampor, säkerhet, upptäcker bilar i uppfartar, slår på ett antal 3,6 kW pumpar och känner av vattennivån i tankar. Picaxer kan Daisychained på en gemensam buss och kan till och med kommunicera med varandra via radiolänkar. Det är också möjligt att ladda upp och ladda ner data från webbplatser och därmed använda internet för att ansluta enheter var som helst i världen https://www.instructables. com/id/Worldwide-microcontroller-link-for-under-20/De följande två sidorna innehåller också några exempel på hur man använder olika sensorer och hur man styr olika enheter. Dr James MoxhamAdelaide, South Australia
Steg 14: Inmatningsenheter
Picaxe-programmeraren innehåller några mycket användbara hjälpfiler, varav en kallas "gränssnittskretsar" och den är också tillgänglig på https://www.rev-ed.co.uk/docs/picaxe_manual3.pdfDetta visar hur man styr motorer, känna miljön och annan användbar kontroll. Förutom dessa ciruciter finns det några som jag använder om och om igen. Temperatur - LM35 temperatursensorn producerar en spänning som kan gå direkt in i en picaxe och kan läsas med ett readadc eller readadc10 kommando. Ljus - ett ljusberoende motstånd har ett motstånd som varierar från några hundra ohm i starkt solljus till över 5 megohms i kolsvart. Mät motståndet på den ljusnivå du vill slå på och sätt LDR i serie med ett motstånd av ungefär samma värde. Jag ville t.ex. upptäcka lamporna på en bil som drog in i carporten för att tända några lampor. Motståndet var ca 1M från indirekt ljus så jag satte en 1M i serie med LDR. Brytare - vissa omkopplare växlar mellan 5V och 0V (en enpolig dubbelkastarknapp) men vissa slås bara på och av. Om en omkopplare slås på kan den skicka 5V till ett picaxe -chip, men om den är avstängd skulle picaxe -stiftet vara "flytande" och kan vara valfritt. Denna krets visar hur man drar ingången ner till marken när strömbrytaren är avstängd. Detta är kretsen som ska användas för de flesta tryckknappsbrytare. Potentiomter - en gammaldags vred. Vrid ratten och läs in spänningen i chipet. Det finns alla möjliga andra elektroniska enheter som skapar en spänning från 0-5V eller enkelt kan konfigureras för att göra det. Exempel är magnetiska sensorer, fuktighet, hastighet, beröring, infrarött ljus, tryck, färg och ljud. Sensorer i allmänhet kostar bara några dollar vardera.
Steg 15: Kontrollera enheter
Picaxe -hjälpfilen innehåller en bra förklaring till hur man styr motorer och lampor. Dessutom tycker jag att det finns några kretsar jag använder om och om igen. Den första är en enkel transistorkrets. Ett picaxe -chip kan slå på högst 20mA per stift vilket är bra för att slå på en LED men inte mycket annat. En 547 transistor ökar strömmen till 100mA vilket är bra för små glödlampor. Den andra kretsen visar en mosfet. Mosfets behöver nästan ingen ström för att driva dem - bara volt så att de kan styras direkt av en picaxe. Det finns alla möjliga mosfets men min preferens är en som heter BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Den kan drivas direkt från 5V (till skillnad från vissa som behöver 10V) men den största fördelen är att den har ett extremt lågt motstånd när den slås på - 0,045 ohm vilket inte är mycket mer än motståndet hos trådarna man skulle ansluta till den. Det betyder att det inte blir varmt när du kör ganska höga laster vilket sparar ström och sparar även kylflänskostnader. Som ett exempel som kör en 5amp -last som en bilstrålkastare; watt = strömkvadrat x motstånd, så W = 5*5*0,045 = 1,12 watt som bara skulle behöva en kylfläns som en 1 tum fyrkantig bit tunn aluminium. Den tredje kretsen visar ett relä. Det finns flera parametrar för alla reläer - spolspänning, spolmotstånd och lastspänning och ström. Till exempel kan ett relä ha en 12V spole med en spolström på 30mA, spolmotstånd på 400 ohm och kanske kunna driva upp till 240V vid 1 ampere. Spolströmmen är mer volt och ampere än vad en picax kan leverera, så vi använder transistorkretsen för att växla spolen. Det finns också en diod - detta undertrycker den bakre EMF när reläet stängs av. Tillbaka EMF är det som skapar gnistan för en tändstift så att du inte vill ha dessa höga spänningar någonstans i en krets. Kontakterna kommer att ha en maximal ström och volt - strömmen kan vara några ampere och volt är ofta 240V så att växling 12V eller 24V kommer att ligga långt inom räckvidd. Om du är oerfaren med elektronik ska du inte spela med nätspänningar. Det finns också små reläer som har spolspänningar på 5V eller 6V. För dessa reläer kanske du inte behöver en separat 12V -strömförsörjning utan bara titta på spolmotståndet eftersom många av dessa har strömdragningar på över 100mA. Om så är fallet och du använder en 78L05 100mA 5V regulator kanske du vill ändra detta till en 7805 regulator som kan leverera upp till 1 ampere. Reläer är särskilt användbara för växling av AC - t.ex. 24VAC trädgårdssprinklersolenoider, 12VAC trädgårdsbelysning och i elektriskt bullriga miljöer som en bil. De är också användbara för att styra stora laster, t.ex. en picaxe som levererar 20mA vid 5V = 0.1W som styr en transistor 12V vid 100mA = 1.2W till ett relä 24V 100mA = 2.4W till en kontaktor som driver en 3600W pump. Om du vill styra ström så får du en elektriker att koppla upp en kontrollbox och ge dig två ledningar som kommer ut (spoltrådar för ett 12V relä) som du kan styra. På detta sätt kan elektrikerna logga ut på strömboxen och du kan göra all elektronik utan att behöva oroa dig för att bli elektrokut. En annan användning för reläer är en backkontroll för en motor. Med hjälp av pulsbreddsmodulering i en mosfet kan du styra hastigheten på en likströmsmotor, och med ett DPDT -effektrelä kan du ändra riktning. Detta är ett enkelt sätt att styra stora motorer som de som används i "robotkrig". Skriv en kommentar om du behöver hjälp med att bygga något.
Rekommenderad:
Styr din dator med huvudet !: 6 steg (med bilder)
Styr din dator med huvudet !: Hej, jag skapade ett system som låter dig styra datorns mus bara genom att flytta huvudet. Om du gillar mitt projekt, tveka inte att rösta på mig i Arduino Contest 2017 .;) Varför gjorde jag det här? Jag ville göra ett objekt som gör videospel m
Styr din dator med en stegmotor !: 9 steg (med bilder)
Styr din dator med en stegmotor !: I en av mina tidigare instruktioner visade jag dig hur du kan använda en stegmotor som en roterande kodare. I den här instruktionsboken, låt oss lära oss hur vi kan använda den för att styra vår dator. Så utan vidare, låt oss komma igång
Styr din dator med en LASER !: 5 steg (med bilder)
Styr din dator … Med en LASER !: Har du någonsin blivit irriterad för att du måste komma nära din dator när du använder den? Har du någonsin önskat dig en trådlös mus, men aldrig riktigt slutat köpa en? Här är en tillfällig lösning för dig! Detta låter dig styra musens rörelser
Använda PSP som dator joystick och sedan styra din dator med PSP: 5 steg (med bilder)
Använda PSP som dator joystick och sedan styra din dator med PSP: Du kan göra många häftiga saker med PSP homebrew, och i den här instruerbara lär jag dig hur du använder din PSP som en joystick för att spela spel, men det finns också ett program som låter dig använda din joystick som mus. Här är materien
Styr din dator med din iPod Touch eller Iphone: 4 steg
Styr din dator med din iPod Touch eller Iphone: Detta är min första instruerbara så jag är ledsen om det inte är det bästa. Har du någonsin inte velat sitta i din soffa eller säng och styra din Mac eller Windows -enheter på det enkla sättet. Denna instruerbara kommer att lära dig hur du helt kontrollerar din dator med din Ipo