Isi kandungan:

Kawal Peranti Dunia Sebenar Dengan PC Anda: 15 Langkah (dengan Gambar)
Kawal Peranti Dunia Sebenar Dengan PC Anda: 15 Langkah (dengan Gambar)

Video: Kawal Peranti Dunia Sebenar Dengan PC Anda: 15 Langkah (dengan Gambar)

Video: Kawal Peranti Dunia Sebenar Dengan PC Anda: 15 Langkah (dengan Gambar)
Video: 15 Pintasan Keren yang Belum Kamu Pakai 2024, Julai
Anonim
Kawal Peranti Dunia Sebenar dengan PC anda
Kawal Peranti Dunia Sebenar dengan PC anda

Instructable ini menunjukkan kepada anda bagaimana untuk menghubungkan PC dan mikrokontroler. Demo ini akan merasakan nilai pot atau input analog dan juga mengawal servo. Jumlah kos di bawah $ 40 termasuk servo. Servo menghidupkan microswitch dan kemudian microswitch menyalakan lampu. Dalam aplikasi praktis, panci bisa menjadi sensor suhu dan servo dapat menghidupkan pemanas. Servo boleh diganti dengan relay atau pengawal kuasa lain. Picaxe diprogramkan dalam versi asas yang ringkas dan antara muka menggunakan VB. Net. Semua perisian tersedia secara percuma. Instructable yang berkaitan menunjukkan cara menghubungkan dua mikrokontroler melalui internet

Langkah 1: Kumpulkan Bahagian

Kumpulkan Bahagian
Kumpulkan Bahagian

Senarai bahagian: Cip Picaxe 08M tersedia dari banyak sumber termasuk Ed Ed https://www.rev-ed.co.uk/picaxe/ (UK), PH Anderson https://www.phanderson.com/ (USA) dan Microzed https://www.microzed.com.au/ (Australia) Protoboard, servo, microswitch, bateri 9V, bateri dan pemegang 4xAA, label tag, resistor 10k, perintang 22k, kapasitor 33uF 16V, kapasitor 0.1uF, daya rendah 7805L 5V pengawal selia, periuk 10k, wayar (wayar padat / wayar data seperti Cat5 / 6), bola lampu 6V, soket dan penutup wanita D9, wayar data teras 3 (atau 4) 2 meter, klip bateri Syarikat di atas juga menjual USB ke peranti bersiri yang berguna untuk komputer riba yang tidak mempunyai port bersiri. Perlu diperhatikan bahawa beberapa peranti USB ke siri tidak berfungsi seperti yang lain dan perlu mendapatkannya dari salah satu pembekal di atas kerana telah diuji untuk digunakan dengan cip picaxe. Yang diketahui berfungsi ialah https://www.rev-ed.co.uk/docs/axe027.pdf Sudah tentu, jika komputer anda mempunyai port bersiri (atau kad port bersiri lama) maka ini tidak akan menjadi isu.

Langkah 2: Muat turun dan Pasang Beberapa Perisian

Muat turun dan Pasang Beberapa Perisian
Muat turun dan Pasang Beberapa Perisian

Kami memerlukan perisian VB. Net dan pengawal picaxe. VB. Net (Visual Basic Express) boleh didapati di https://msdn2.microsoft.com/en-us/express/aa718406.aspxJika pautan ini tidak berfungsi, cari di Google untuk: muat turun ekspres visual asas Perisian picaxe tersedia dari https://www.rev-ed.co.uk/picaxe/Anda perlu mendaftar dengan microsoft untuk mendapatkan muat turun - jika ini adalah masalah, gunakan e-mel palsu atau sesuatu. Saya benar-benar merasa berguna untuk memberikan e-mel sebenar saya kerana mereka menghantar kemas kini sekali-sekala.

Langkah 3: Bina Litar Muat Turun

Bina Litar Muat Turun
Bina Litar Muat Turun

Litar muat turun ini menggunakan cip picaxe, beberapa perintang, pengatur dan bateri 9V. Lebih banyak maklumat terdapat dalam dokumentasi picaxe dan ini hanya memerlukan beberapa minit untuk dibina setelah semua bahagian diserahkan.

Saya mungkin juga menambah bahawa picaxes berjalan dengan senang hati pada 3 bateri AA. Bekalan terkawal 5V berguna untuk menjalankan input analog kerana voltan rujukan tidak berubah, tetapi untuk litar hidup / mati sederhana, bekalan yang diatur tidak diperlukan. Reg 5V boleh ditinggalkan dalam situasi seperti ini.

Langkah 4: Tata Letak Protoboard Litar Muat Turun

Susun atur Protoboard Litar Muat Turun
Susun atur Protoboard Litar Muat Turun

Foto ini menunjukkan kabel muat turun yang hanya merupakan palam D9 dan beberapa meter beberapa kabel pelbagai teras. Sebilangan besar PC moden mempunyai sambungan port bersiri D9. PC yang dibina sebelum sekitar tahun 1998 mungkin mempunyai penyambung 25 pin. Saya menyolder kira-kira 1cm wayar teras pepejal ke hujung wayar fleksibel dan kemudian meletakkan heatshrink di sekitar ini - wayar teras pepejal masuk ke protoboard jauh lebih baik daripada wayar fleksibel.

Langkah 5: Muat turun Program Picaxe

Muat turun Program Picaxe
Muat turun Program Picaxe

Klik pada anak panah biru untuk memuat turun. Sekiranya tidak memuat turun terdapat beberapa cadangan penyahpepijatan dalam manual arahan picaxe. Anda boleh mencuba memuat turun program sederhana untuk menghidupkan dan mematikan petunjuk untuk memeriksa cip berfungsi. Program ini kerana tidak melakukan apa-apa sehingga disambungkan ke PC kerana menunggu PC menghantar sesuatu. Sekiranya ia memuat turun ok, ia berfungsi dan cip diprogramkan dan langkah seterusnya adalah mengkonfigurasi semula cip sebagai cip antara muka bersiri.

Salin dan tampal kod di bawah. Untuk melihatnya dengan sintaks warna, lihat di View / Options / Editor. Konvensyen warna serupa dengan VB. Net utama: serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1 'baca pot kemudian hantar serout belakang ini 0, N2400, ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) pilih kes b0 'baca data bit b0 kes <140' jika <140 kemudian tetapkan servo ke satu posisi servo 2, 120 jeda 1000 'jeda sesaat lain servo 2, 160 jeda 1000 pilih rendah 2' matikan servo kerana serin tetap melakukannya goto utama

Langkah 6: Konfigurasikan semula Litar Sebagai Litar Antara Muka Serial

Susun semula Litar Sebagai Litar Antara Muka Serial
Susun semula Litar Sebagai Litar Antara Muka Serial

Dua perubahan halus telah dilakukan pada litar picaxe. Perintang 22k yang dulu pergi ke kaki 2 kini menuju ke kaki 4. Dan kaki 2 telah dibumikan. Tujuan satu-satunya dari leg 2 adalah untuk menerima data pengaturcaraan dari PC sehingga setelah cip diprogram, ia dapat diikat ke tanah. Sekiranya anda kembali ke program cip untuk membetulkan pepijat dan lain-lain, kemudian putuskan kaki 2 dari tanah dan sambungkan semula 22k ke kaki 2. Picaxe bercakap kembali ke PC melalui kaki 7 jadi ini tidak perlu diubah.

Periuk telah ditambah dan servo telah ditambah. Servo tidak semestinya diperlukan dan perintang yang dipimpin dan 1k akan berfungsi dengan baik dan / atau litar yang ingin anda sambungkan. Saya baru sahaja menggunakan servo untuk menunjukkan bagaimana mengklik sesuatu di skrin dapat membuat sesuatu bergerak. Servo ini kekurangan bekalan elektriknya sendiri. Bekalan kuasa yang terpisah ini tidak akan diperlukan jika picaxe hanya menghidupkan dan mematikan plumbum. Picaxe sudah siap digunakan - sekarang kita memerlukan beberapa kod VB.

Langkah 7: Tulis Beberapa Kod Antara Muka VB

Tulis Beberapa Kod Antara Muka VB
Tulis Beberapa Kod Antara Muka VB

Setelah VB. Net dipasang, jalankan dan pilih Fail / Projek Baru dan pilih Aplikasi Windows. Anda boleh mengklik Fail / Simpan Baiklah pada awalnya dan simpan ke mana sahaja anda mahu dan kemudian di masa hadapan sama ada memulakan projek dari dalam VB. Net atau dengan mengklik pada fail.sln yang akan dibuat.

Langkah 8: Reka Bentuk VB. Net

Reka Bentuk VB. Net
Reka Bentuk VB. Net

VB membuat borang kosong baru yang dipanggil Form1.vb. Anda boleh menukar nama ini sekarang atau lambat atau membiarkannya sebagai Form1 jika projeknya ringkas. Kami akan meninggalkannya sebagaimana adanya. Untuk menambahkan beberapa kawalan, kita perlu membuka kotak alat yang dilingkari hijau. Kotak alat dapat dibuka dan ditutup kapan pun diperlukan - biasanya langkah pertama adalah menambahkan kawalan kemudian menutup kotak alat dan mengerjakan kod. Anda boleh membiarkannya terbuka sepanjang masa tetapi ia memerlukan sedikit skrin.

Langkah 9: Tambah Pemasa

Tambahkan Pemasa
Tambahkan Pemasa

Kami telah menatal ke bawah kotak alat dan memilih pemasa. Klik dua kali pada pemasa untuk menambahkannya. Gambar jam bernama Timer1 akan muncul di bahagian bawah skrin dan di sebelah kanan sifat pemasa diserlahkan. Anda boleh mengeditnya atau boleh diubah dalam badan teks kod. Kami akan meninggalkannya sebagaimana adanya dan mengubahnya dalam badan teks.

Selain itu, kotak alat kelihatan agak menakutkan tetapi hanya sedikit yang diperlukan untuk kebanyakan program - ini termasuk Butang, Kotak teks, Label, Pemasa, kotak Gambar, kotak Centang dan kotak Radio. Mungkin buka program baru dan main-main dengan beberapa ketika.

Langkah 10: Tambahkan Beberapa Butang

Tambah Beberapa Butang
Tambah Beberapa Butang

Klik pada alat butang dan lukis ukuran butang pada Form1. Kita akan memerlukan dua butang, kotak gambar dan label. Teruskan dan tambahkan ini - tangkapan skrin seterusnya menunjukkan semuanya dilukis. Ukuran dan kedudukan tidak penting dan anda boleh menamakannya kemudian jika anda mahu.

Langkah 11: Bentuk Dengan Semua Kawalan Ditambah

Borang Dengan Semua Kawalan Ditambah
Borang Dengan Semua Kawalan Ditambah

Form1 kini dibentangkan. Kotak di sebelah Button2 adalah kotak gambar kecil. Anda boleh meletakkan gambar ini tetapi kami hanya akan menggunakannya untuk menunjukkan butang mana yang telah ditekan dengan menukarnya dari merah ke hijau. Label1 memaparkan daftar picaxe.

Langkah 12: Tambahkan Beberapa Kod

Tambah Beberapa Kod
Tambah Beberapa Kod

Di sebelah kanan yang dilingkari hijau terdapat beberapa butang berguna - yang kedua dari kanan adalah butang View Code dan butang kanan adalah View Designer. Dalam praktiknya semasa menulis kod seseorang berulang-alik antara pandangan ini. Umumnya jika seseorang dalam mod Designer mengklik dua kali pada objek seperti butang akan memunculkan tempat dalam Code View untuk menambahkan beberapa kod atau membawa satu ke bahagian kod yang berjalan ketika butang ditekan. Dengan cara ini aliran program menjadi sangat intuitif - pengguna mengklik pada beberapa perkara dan menjalankan kod dan menukar skrin dan sebagainya. Untuk tujuan kita, walaupun kita akan menipu dan menampal seluruh lembaran kod kerja. akan mempunyai Kelas Awam Tingkatan1… Kelas Akhir - sorot ini dan hapuskannya. Sekarang ambil semua kod di bawah dan tampal di. Imports System. IOImports Strings = Microsoft. VisualBasic 'sehingga boleh menggunakan perkara seperti kiri (dan kanan (untuk rentetan untuk penyataan tidurDim WithEvents serialPort As IO. Ports. SerialPort 'port bersiri menyatakanDim PicaxeRegisters (0 To 13) As Byte' register b0 to b13Private Sub Form1_Load (ByVal sender As Object, ByVal e As System. EventArgs) Mengendalikan Saya. LoadTimer1. Enabled. = True 'letakkan ini dalam kod sebagai lalai ke false ketika dibuatTimer1. Interval = 5000' 5 saatPictureBox1. BackColor = Color. Red 'diset ke kedudukan' red'Array. Clear (PicaxeRegisters, 0, 13) 'mungkin tidak diperlukan seperti array yang diisytiharkan blankEnd SubPrivate Sub Timer1_Tick (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Timer1. Tandakan 'timer tick setiap 5 saatCall SerialTxRx ()' bercakap dengan picaxeEnd SubSub SerialTxRx () Dim LabelString As String DataP acket (0 Hingga 17) Sebagai keseluruhan paket data Byte 'Data' +14 byteDim i Sebagai Integer 'i selalu berguna untuk gelung dllLabel1. Teks = ""' hapus teks di skrinUntuk i = 0 Ke 3DataPacket (i) = Asc (Mid ("Data", i + 1, 1)) 'tambahkan perkataan "Data" ke paketNextFor i = 0 Hingga 13DataPacket (i + 4) = PicaxeRegisters (i)' tambahkan semua bait ke paketPortNextIf serialPort. IsOpen ThenserialPort. Close () 'sekiranya telah dibukaEnd If TryWith serialPort. PortName = "COM1"' Sebilangan besar komputer baru lalai ke com1 tetapi mana-mana komputer pra 1999 dengan tetikus bersiri mungkin akan lalai ke com2. BaudRate = 2400 '2400 adalah maksimum kelajuan untuk picaxes. Parity = IO. Ports. Parity. None 'no parity. DataBits = 8' 8 bit. StopBits = IO. Ports. StopBits. One 'one stop bit. ReadTimeout = 1000' milisaat sehingga habis dalam 1 saat jika tiada tindak balas. Buka () 'buka port bersiri. DiscardInBuffer ()' kosongkan penyangga input. Tulis (DataPacket, 0, 18) 'hantar array datapacketCall Sleep (300)' 100 milisaat minimum untuk menunggu r data akan kembali dan lebih banyak lagi jika aliran data lebih panjang. Read (DataPacket, 0, 18) 'baca semula dalam array paket data. Tutup ()' tutup port bersiriEnd WithFor i = 4 Hingga 17LabelString = LabelString + "" + Str (DataPacket (i)) 'berubah menjadi rentetan teksNextLabel1. Text = LabelString' letakkan rentetan teks di layarCatch ex As Exception'MsgBox (ex. ToString) 'unmentasikan ini jika ingin melihat mesej ralat sebenarLabel1. Text = " Timeout "'akan memaparkan ini jika picaxe tidak tersambung dllEnd TryEnd SubPrivate Sub Button1_Click (ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button1. ClickPictureBox1. BackColor = Color. Red' menukar kotak menjadi merahPicaxeRegisters (0) 120 'nilai sewenang-wenangnya untuk 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 'nilai sewenang-wenangnya Kelas SubEnd servoEnd

Langkah 13: Jalankan Program

Jalankan Program
Jalankan Program

Nyalakan picaxe jika tidak dihidupkan. Jalankan program vb.net dengan mengklik segitiga hijau di bahagian atas skrin berhampiran tengah. Di sebelah kanan segitiga jalankan adalah butang jeda dan butang berhenti, atau program dapat dihentikan dengan mengklik di kanan atas x atau dengan File / Exit jika Anda telah menambahkan menu. Program ini dapat disusun jika anda suka tetapi untuk melakukan debug, biarkan ia berjalan dalam VB. Pemasa menghantar bait setiap 5 saat sehingga diperlukan 5 saat untuk paparan muncul. Label1 memaparkan dump dari 14 daftar picaxe. Ini dihantar ke picaxe dan kemudian dihantar kembali. Sudah tentu tidak perlu menghantar semua 14 dan kod anda boleh diubah mengikut kesesuaian. Byte kedua dengan nilai 152 adalah nilai periuk yang berubah dari 0 hingga 255. Sekiranya butang1 diklik, ia akan menghantar nilai 120 pada bait pertama dan jika butang2 diklik, ia akan menghantar 160 dan program picaxe menyahkod ini dan memindahkan servo. Kod ini menunjukkan cara menghantar data dan mendapatkan kembali data dari mikrokontroler. Mikrokontroler dapat menghidupkan pelbagai jenis peranti - Saya mempunyai kira-kira 30 pusingan rumah saya yang menjalankan penyiram, lampu, keselamatan, mengesan kereta di jalan masuk, menghidupkan sejumlah pam 3.6Kw dan merasakan tahap air dalam tangki. Picaxes boleh dinyalakan dalam bas biasa dan bahkan dapat berkomunikasi antara satu sama lain melalui pautan radio. Juga dimungkinkan untuk memuat naik dan memuat turun data dari laman web dan dengan itu menggunakan internet untuk menyambungkan peranti di mana sahaja di dunia https://www.instructables. com / id / Worldwide-microcontroller-link-for-under-20 / Dua halaman seterusnya juga mengandungi beberapa contoh bagaimana menggunakan sensor yang berbeza dan bagaimana mengawal peranti yang berbeza. Dr James MoxhamAdelaide, Australia Selatan

Langkah 14: Peranti Input

Peranti Input
Peranti Input

Pengaturcara picaxe mengandungi beberapa fail bantuan yang sangat berguna, salah satunya disebut "Interfacing Circuits" dan ia juga boleh didapati di https://www.rev-ed.co.uk/docs/picaxe_manual3.pdfIni menunjukkan cara mengendalikan motor, merasakan persekitaran dan kawalan berguna lain. Sebagai tambahan kepada cirucits ini, ada beberapa yang saya gunakan berulang kali. Suhu - sensor suhu LM35 menghasilkan voltan yang boleh masuk terus ke picaxe dan dapat dibaca dengan perintah readadc atau readadc10. Cahaya - perintang yang bergantung kepada cahaya mempunyai rintangan yang bervariasi dari beberapa ratus ohm dalam cahaya matahari yang terang hingga lebih dari 5 megohms dalam warna gelap. Ukur rintangan pada tahap cahaya yang ingin anda beralih dan pasangkan LDR secara bersiri dengan perintang dengan nilai yang hampir sama. Contohnya, saya ingin mengesan lampu sebuah kereta yang masuk ke carport untuk menghidupkan beberapa lampu. Rintangan kira-kira 1 juta dari cahaya tidak langsung jadi saya meletakkan siri 1M dengan LDR. Suis - beberapa suis beralih antara 5V dan 0V (suis lemparan dua tiang tunggal) tetapi beberapa hanya menghidupkan dan mematikan. Sekiranya suis dihidupkan, ia dapat mengirim 5V ke cip picaxe tetapi jika tidak, pin picaxe akan 'mengambang' dan boleh menjadi nilai apa pun. Litar ini menunjukkan cara menarik input ke tanah semasa suis dimatikan. Ini adalah litar yang akan digunakan untuk kebanyakan suis tekan butang. Potentiomter - tombol lama yang baik. Putar tombol dan baca voltan ke dalam cip. Terdapat pelbagai jenis alat elektronik lain yang menghasilkan voltan dari 0-5V atau dapat dikonfigurasikan dengan mudah untuk melakukannya. Contohnya ialah sensor magnetik, kelembapan, kelajuan, sentuhan, cahaya inframerah, tekanan, warna dan suara. Sensor pada amnya berharga hanya beberapa dolar setiap satu.

Langkah 15: Mengawal Peranti

Mengawal Peranti
Mengawal Peranti

Fail bantuan picaxe mengandungi penjelasan hebat mengenai cara mengawal motor dan lampu. Di samping itu saya dapati terdapat beberapa litar yang saya gunakan berulang kali. Yang pertama ialah litar transistor sederhana. Cip picaxe dapat menghidupkan maksimum 20mA per pin yang baik untuk menyalakan LED tetapi tidak banyak yang lain. Transistor 547 meningkatkan arus ke 100mA yang baik untuk mentol lampu kecil. Litar kedua menunjukkan mosfet. Mosfets hampir tidak memerlukan arus untuk menggerakkannya - hanya volt sehingga dapat dikendalikan secara langsung oleh picaxe. Terdapat pelbagai jenis mosfet tetapi pilihan saya adalah yang dipanggil BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Ia boleh didorong secara langsung dari 5V (tidak seperti beberapa yang memerlukan 10V) tetapi kelebihan utamanya ialah ia mempunyai rintangan yang sangat rendah apabila dihidupkan - 0,045 ohm yang tidak lebih daripada rintangan wayar yang akan disambungkan kepadanya. Ini bermakna ia tidak menjadi panas ketika memandu muatan yang cukup tinggi yang menjimatkan tenaga dan juga menjimatkan kos heatsink. Sebagai contoh memandu beban 5amp seperti lampu depan kereta; watt = rintangan kuasa dua x sekarang, jadi W = 5 * 5 * 0.045 = 1.12 watt yang hanya memerlukan heatsink seperti sekeping aluminium tipis 1 inci. Litar ketiga menunjukkan geganti. Terdapat beberapa parameter untuk semua geganti - voltan gegelung, rintangan gegelung dan voltan dan arus beban. Sebagai contoh geganti mungkin mempunyai gegelung 12V dengan arus gegelung 30mA, rintangan gegelung 400 ohm dan mungkin dapat mengemudi hingga 240V pada 1 amp. Arus gegelung lebih banyak volt dan amp daripada bekalan picaxe, jadi kami menggunakan litar transistor untuk menukar gegelung. Terdapat diod yang disertakan juga - ini menekan EMF belakang apabila relay dimatikan. EMF belakang adalah yang membuat percikan api untuk palam pencucuh sehingga anda tidak mahu voltan tinggi ini berada di litar. Kenalan akan mempunyai arus maksimum dan volt - arus mungkin beberapa amp dan volt sering 240V sehingga beralih 12V atau 24V akan berada dalam jarak yang baik. Sekiranya anda tidak berpengalaman dengan elektronik, jangan bermain dengan voltan utama. Terdapat juga geganti kecil yang mempunyai voltan gegelung 5V atau 6V. Untuk geganti ini, anda mungkin tidak memerlukan bekalan 12V yang berasingan tetapi hanya menonton rintangan gegelung kerana kebanyakannya mempunyai daya tarikan arus lebih dari 100mA. Sekiranya demikian dan anda menggunakan pengatur 78L05 100mA 5V, anda mungkin ingin mengubahnya menjadi pengatur 7805 yang dapat membekalkan hingga 1 amp. Relay sangat berguna untuk menukar AC - contohnya solenoid penyiram taman 24VAC, lampu taman 12VAC dan di persekitaran yang bising elektrik seperti kereta. Mereka juga berguna untuk mengawal beban besar, misalnya picaxe yang membekalkan 20mA pada 5V = 0.1W mengendalikan transistor 12V pada 100mA = 1.2W ke relay 24V 100mA = 2.4W ke kontaktor yang menggerakkan pam 3600W. Sekiranya anda ingin mengawal kuasa seperti itu, dapatkan juruelektrik untuk memasang kotak kawalan dan berikan dua wayar yang keluar (wayar gegelung untuk relay 12V) yang boleh anda kendalikan. Dengan cara ini juruelektrik dapat keluar dari kotak kuasa dan anda boleh melakukan semua elektronik tanpa perlu risau akan tersengat elektrik. Penggunaan lain untuk relay adalah kawalan terbalik untuk motor. Dengan menggunakan modulasi lebar nadi ke dalam mosfet, Anda dapat mengatur kecepatan motor DC, dan dengan relai daya DPDT, Anda dapat mengubah arah. Ini adalah kaedah mudah untuk mengawal motor besar seperti yang digunakan dalam 'robot wars'. Sila hantar komen jika anda memerlukan bantuan untuk membina sesuatu.

Disyorkan: