Daftar Isi:

Kontrol Perangkat Dunia Nyata Dengan PC Anda: 15 Langkah (dengan Gambar)
Kontrol Perangkat Dunia Nyata Dengan PC Anda: 15 Langkah (dengan Gambar)

Video: Kontrol Perangkat Dunia Nyata Dengan PC Anda: 15 Langkah (dengan Gambar)

Video: Kontrol Perangkat Dunia Nyata Dengan PC Anda: 15 Langkah (dengan Gambar)
Video: Cara Jadi Seperti Hacker dalam 5 Detik 2024, Juli
Anonim
Kontrol Perangkat Dunia Nyata Dengan PC Anda
Kontrol Perangkat Dunia Nyata Dengan PC Anda

Instruksi ini menunjukkan kepada Anda cara menghubungkan PC dan mikrokontroler. Demo ini akan merasakan nilai pot atau input analog apa pun dan juga mengontrol servo. Total biaya di bawah $40 termasuk servo. Servo menyalakan microswitch dan kemudian microswitch menyalakan lampu. Dalam aplikasi praktis panci bisa menjadi sensor suhu dan servo bisa menyalakan pemanas. Servo dapat diganti dengan relai atau pengontrol daya lainnya. Picaxe diprogram dalam versi dasar yang disederhanakan dan antarmuka menggunakan VB. Net. Semua perangkat lunak tersedia secara gratis. Instructable terkait menunjukkan cara menghubungkan dua mikrokontroler melalui internet

Langkah 1: Kumpulkan Bagian

Kumpulkan Bagiannya
Kumpulkan Bagiannya

Daftar suku cadang: Chip Picaxe 08M tersedia dari banyak sumber termasuk Rev 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, baterai 9V, baterai dan dudukan 4xAA, strip tag, resistor 10k, resistor 22k, kapasitor 33uF 16V, kapasitor 0,1uF, 7805L daya rendah 5V regulator, pot 10k, kabel (kabel telepon/kabel data inti padat misalnya Cat5/6), bola lampu 6V, soket dan penutup D9 female, 2 meter dari 3 (atau 4) kabel data inti, klip bateraiPerusahaan di atas juga menjual USB ke perangkat serial yang berguna untuk laptop yang tidak memiliki port serial. Perlu dicatat bahwa beberapa perangkat USB ke serial tidak berfungsi sebaik yang lain dan layak untuk mendapatkannya dari salah satu pemasok di atas karena telah diuji untuk digunakan dengan chip picaxe. Salah satu yang diketahui berfungsi adalah https://www.rev-ed.co.uk/docs/axe027.pdf Tentu saja, jika komputer Anda memiliki port serial (atau kartu port serial lama) maka ini tidak akan berfungsi. menjadi masalah.

Langkah 2: Unduh dan Instal Beberapa Perangkat Lunak

Unduh dan Instal Beberapa Perangkat Lunak
Unduh dan Instal Beberapa Perangkat Lunak

Kami akan membutuhkan VB. Net dan perangkat lunak pengontrol picaxe. VB. Net (Visual Basic Express) tersedia dari https://msdn2.microsoft.com/en-us/express/aa718406.aspxJika tautan ini tidak berfungsi, cari di Google untuk: unduhan ekspres visual basicPerangkat lunak picaxe tersedia dari https://www.rev-ed.co.uk/picaxe/Anda harus mendaftar ke microsoft untuk mendapatkan unduhan - jika ini masalah gunakan email palsu atau sesuatu. Saya benar-benar merasa terbantu dengan memberikan email asli saya karena mereka mengirim pembaruan sesekali.

Langkah 3: Bangun Sirkuit Unduh

Bangun Sirkuit Unduh
Bangun Sirkuit Unduh

Rangkaian unduhan ini menggunakan chip picaxe, sepasang resistor, regulator, dan baterai 9V. Informasi lebih lanjut tersedia di dokumentasi picaxe dan ini hanya membutuhkan waktu beberapa menit untuk membangun setelah semua bagian siap.

Saya mungkin juga menambahkan bahwa picax berjalan dengan senang hati menggunakan 3 baterai AA. Suplai teregulasi 5V berguna untuk menjalankan input analog karena tegangan referensi tidak berubah, tetapi untuk rangkaian on/off sederhana, suplai teregulasi tidak diperlukan. Reg 5V dapat ditinggalkan dalam situasi ini.

Langkah 4: Tata Letak Protoboard dari Sirkuit Unduh

Tata Letak Protoboard dari Sirkuit Unduh
Tata Letak Protoboard dari Sirkuit Unduh

Foto ini menunjukkan kabel unduhan yang hanya merupakan colokan D9 dan beberapa meter dari beberapa kabel multi inti. Sebagian besar PC modern memiliki koneksi port serial D9. Sebuah PC yang dibuat sebelum sekitar tahun 1998 mungkin memiliki konektor 25 pin. Saya menyolder sekitar 1cm kawat inti padat ke ujung kabel fleksibel dan kemudian memasang heatshrink di sekitarnya - kabel inti padat masuk ke protoboard jauh lebih baik daripada kabel fleksibel.

Langkah 5: Unduh Program Picaxe

Unduh Program Picaxe
Unduh Program Picaxe

Klik panah biru untuk mengunduh. Jika tidak mengunduh, ada beberapa saran debug di manual instruksi picaxe. Anda dapat mencoba mengunduh program sederhana untuk menghidupkan dan mematikan led untuk memeriksa kerja chip. Program ini tidak melakukan apa-apa sampai terhubung ke PC saat menunggu PC mengirimkan sesuatu. Jika unduhan ok maka berfungsi dan chip diprogram dan langkah selanjutnya adalah mengkonfigurasi ulang chip sebagai chip antarmuka serial.

Salin dan tempel kode di bawah ini. Untuk melihatnya dengan sintaks warna, lihat di View/Options/Editor. Konvensi warna mirip dengan VB. Net main:serin 3, N2400, ("Data"), b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13 readadc 1, b1' baca pot lalu kirim kembali ini serout 0, N2400 ("Data", b0, b1, b2, b3, b4, b5, b6, b7, b8, b9, b10, b11, b12, b13) pilih case b0' baca data bit b0 case <140' jika <140 kemudian atur servo ke satu posisi servo 2, 120 jeda 1000' jeda satu detik lagi servo 2, 160 jeda 1000 akhir pilih rendah 2' matikan servo karena serin tetap melakukan ini harus utama

Langkah 6: Konfigurasi Ulang Sirkuit Sebagai Sirkuit Antarmuka Serial

Konfigurasi Ulang Sirkuit Sebagai Sirkuit Antarmuka Serial
Konfigurasi Ulang Sirkuit Sebagai Sirkuit Antarmuka Serial

Dua perubahan halus telah dibuat pada sirkuit picaxe. Resistor 22k yang dulu masuk ke kaki 2 sekarang masuk ke kaki 4. Dan kaki 2 telah di-ground. Satu-satunya tujuan leg 2 adalah untuk menerima data pemrograman dari PC sehingga setelah chip diprogram, chip tersebut dapat diikat ke ground. Jika Anda kembali memprogram chip untuk memperbaiki bug, dll, maka lepaskan kaki 2 dari ground dan sambungkan kembali 22k ke kaki 2. Picaxe berbicara kembali ke PC melalui kaki 7 jadi ini tidak perlu diubah.

Sebuah pot telah ditambahkan dan servo telah ditambahkan. Servo tidak terlalu diperlukan dan led dan resistor 1k akan berfungsi dengan baik dan/atau sirkuit apa pun yang ingin Anda sambungkan. Saya baru saja menggunakan servo untuk menunjukkan bagaimana mengklik sesuatu di layar dapat membuat sesuatu benar-benar bergerak. Servo dijalankan dari catu dayanya sendiri. Catu daya terpisah ini tidak akan diperlukan jika picaxe hanya menyalakan dan mematikan led. Picaxe siap digunakan - sekarang kita membutuhkan beberapa kode VB.

Langkah 7: Tulis Beberapa Kode Antarmuka VB

Tulis Beberapa Kode Antarmuka VB
Tulis Beberapa Kode Antarmuka VB

Setelah VB. Net terinstal jalankan dan pilih File/New Project dan pilih Windows Application. Anda dapat mengklik File/Save All tepat di awal dan menyimpan ke mana pun Anda suka dan kemudian di masa mendatang baik memulai proyek dari dalam VB. Net atau dengan mengklik file.sln yang akan dibuat.

Langkah 8: Rancang Formulir VB. Net

Rancang Formulir VB. Net
Rancang Formulir VB. Net

VB membuat formulir kosong baru yang disebut Form1.vb. Anda dapat mengubah nama ini sekarang atau nanti atau biarkan saja sebagai Form1 jika proyeknya sederhana. Kami akan membiarkannya apa adanya. Untuk menambahkan beberapa kontrol kita perlu membuka kotak alat yang dilingkari hijau. Toolbox dapat dibuka dan ditutup kapanpun dibutuhkan - biasanya langkah pertama adalah menambahkan kontrol kemudian menutup toolbox dan mengerjakan kode. Anda dapat membiarkannya terbuka sepanjang waktu tetapi membutuhkan sedikit layar.

Langkah 9: Tambahkan Timer

Tambahkan Timer
Tambahkan Timer

Kami telah menggulir ke bawah kotak alat dan memilih pengatur waktu. Klik dua kali pada timer untuk menambahkannya. Gambar jam yang disebut Timer1 akan muncul di bagian bawah layar dan di sebelah kanan properti timer disorot. Anda dapat mengedit ini atau mereka dapat diubah di badan teks kode. Kami akan membiarkannya apa adanya dan mengubahnya di badan teks.

Selain itu, toolbox memang terlihat sedikit menakutkan tetapi hanya sedikit yang diperlukan untuk sebagian besar program - ini akan mencakup Buttons, Text box, Labels, Timer, Picture box, Check box dan Radio box. Mungkin membuka program baru dan bermain dengan beberapa kapan-kapan.

Langkah 10: Tambahkan Beberapa Tombol

Tambahkan Beberapa Tombol
Tambahkan Beberapa Tombol

Klik pada alat tombol dan gambar ukuran tombol pada Form1. Kita akan membutuhkan dua tombol, kotak gambar dan label. Silakan dan tambahkan ini - tangkapan layar berikutnya menunjukkan ini semua. Ukuran dan posisi tidak penting dan Anda dapat mengganti namanya nanti jika Anda mau.

Langkah 11: Bentuk Dengan Semua Kontrol Ditambahkan

Formulir Dengan Semua Kontrol Ditambahkan
Formulir Dengan Semua Kontrol Ditambahkan

Form1 sekarang ditata. Kotak di sebelah Button2 adalah kotak gambar kecil. Anda dapat menempatkan gambar di dalamnya tetapi kami hanya akan menggunakannya untuk menunjukkan tombol mana yang telah ditekan dengan mengubahnya dari merah menjadi hijau. Label1 menampilkan register picaxe.

Langkah 12: Tambahkan Beberapa Kode

Tambahkan Beberapa Kode
Tambahkan Beberapa Kode

Di sebelah kanan yang dilingkari hijau adalah beberapa tombol yang berguna - yang kedua dari kanan adalah tombol Lihat Kode dan tombol kanan adalah Perancang Tampilan. Dalam praktiknya saat menulis kode, seseorang bolak-balik di antara pandangan-pandangan ini. Umumnya jika seseorang dalam mode Designer mengklik dua kali pada objek seperti tombol memunculkan tempat di Tampilan Kode untuk menambahkan beberapa kode atau mengambil satu ke bagian kode yang berjalan ketika tombol ditekan. Dengan cara ini alur program menjadi cukup intuitif - pengguna mengklik sesuatu dan bit kode menjalankan dan mengubah layar dan seterusnya. Untuk tujuan kita, kita akan mencontek dan menempelkan seluruh lempengan kode yang berfungsi. Tampilan kode akan memiliki Public Class Form1 …End Class - sorot ini dan hapus. Sekarang ambil semua kode di bawah ini dan tempel di. Imports System. IOImports Strings = Microsoft. VisualBasic ' sehingga dapat menggunakan hal-hal seperti kiri (dan kanan (untuk stringsPublic Class Form1Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Integer) ' untuk pernyataan tidurDim WithEvents serialPort As New IO. Ports. SerialPort ' serial port mendeklarasikanDim PicaxeRegisters(0 Hingga 13) Saat Byte ' mendaftar b0 ke b13Private Sub Form1_Load(ByVal sender As Object, ByVal e As System. EventArgs) Menangani Me. LoadTimer1. Enabled = True ' masukkan kode ini sebagai default ke false saat dibuatTimer1. Interval = 5000 ' 5 detikPictureBox1. BackColor = Color. Red ' disetel ke posisi 'red'Array. Clear(PicaxeRegisters, 0, 13) ' mungkin tidak diperlukan saat array dideklarasikan blankEnd SubPrivate Sub Timer1_Tick(ByVal sender As System. Object, ByVal e As System. EventArgs) Menangani Timer1. Tick' timer berdetak setiap 5 detikCall SerialTxRx() ' bicara dengan picaxeEnd SubSub SerialTxRx()Dim LabelString As String ' string untuk menampilkan nilai byteDim DataP acket(0 To 17) As Byte ' seluruh paket data "Data"+14 bytesDim i As Integer ' i selalu berguna untuk loop dllLabel1. Text = "" ' menghapus teks di layarFor i = 0 To 3DataPacket(i) = Asc(Mid("Data", i + 1, 1)) ' tambahkan kata "Data" ke paketNextFor i = 0 To 13DataPacket(i + 4) = PicaxeRegisters(i) ' tambahkan semua byte ke packetNextIf serialPort. IsOpen ThenserialPort. Close() ' untuk berjaga-jaga jika sudah dibukaEnd IfTryWith serialPort. PortName = "COM1" ' Kebanyakan komputer baru default ke com1 tetapi komputer pra 1999 dengan mouse serial mungkin akan default ke com2. BaudRate = 2400 ' 2400 adalah maksimum kecepatan untuk picaxes kecil. Parity = IO. Ports. Parity. None ' no parity. DataBits = 8' 8 bits. StopBits = IO. Ports. StopBits. One ' one stop bit. ReadTimeout = 1000' milidetik jadi waktu habis dalam 1 detik if no response. Open() ' open the serial port. DiscardInBuffer() ' clear buffer input. Write(DataPacket, 0, 18) ' send the datapacket arrayCall Sleep(300) ' minimal 100 milidetik untuk menunggu r data untuk kembali dan lebih banyak lagi jika aliran data lebih panjang. Baca(DataPacket, 0, 18) ' baca kembali dalam larik paket data. Tutup() ' tutup port serialEnd WithFor i = 4 To 17LabelString = LabelString + " " + Str(DataPacket(i)) ' berubah menjadi teks stringNextLabel1. Text = LabelString ' letakkan string teks pada screenCatch ex As Exception'MsgBox(ex. ToString)' batalkan komentar ini jika ingin melihat kesalahan sebenarnya messageLabel1. Text = " Timeout" ' akan menampilkan ini jika picaxe tidak terhubung dllEnd TryEnd SubPrivate Sub Button1_Click(ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button1. ClickPictureBox1. BackColor = Color. Red ' ubah kotak menjadi redPicaxeRegisters(0) = 120 ' nilai arbitrer untuk servoEnd SubPrivate Sub Button2_Click(ByVal sender As System. Object, ByVal e As System. EventArgs) Handles Button2. ClickPictureBox1. BackColor = Color. Green ' kotak ke greenPicaxeRegisters(0) = 160 ' nilai arbitrer untuk Kelas SubEnd servoEnd

Langkah 13: Jalankan Program

Jalankan Programnya
Jalankan Programnya

Nyalakan picaxe jika tidak dinyalakan. Jalankan program vb.net dengan mengklik segitiga hijau di bagian atas layar dekat bagian tengah. Di sebelah kanan segitiga run terdapat tombol pause dan stop, atau program dapat dihentikan dengan mengklik kanan atas x atau dengan File/Exit jika Anda telah menambahkan menu. Program dapat dikompilasi jika Anda suka tetapi untuk debugging, biarkan berjalan dalam VB. Timer mengirimkan byte setiap 5 detik sehingga dibutuhkan 5 detik untuk tampilan muncul. Label1 menampilkan dump dari 14 register picaxe. Ini dikirim ke picaxe dan kemudian dikirim kembali. Hampir pasti tidak perlu mengirim semua 14 dan kode Anda dapat diubah sesuai. Byte kedua dengan nilai 152 adalah nilai pot yang berubah dari 0 menjadi 255. Jika tombol1 diklik ia mengirimkan nilai 120 pada byte pertama dan jika tombol2 diklik ia mengirim 160 dan program picaxe menerjemahkan ini dan menggerakkan servo. Kode ini menunjukkan cara mengirim data dan mendapatkan kembali data dari mikrokontroler. Mikrokontroler dapat menghidupkan semua jenis perangkat - Saya memiliki sekitar 30 rumah yang menjalankan alat penyiram, lampu, keamanan, mendeteksi mobil di jalan masuk, menyalakan sejumlah pompa 3.6Kw dan merasakan ketinggian air dalam tangki. Picax dapat di-daisychain pada bus umum dan bahkan dapat berkomunikasi satu sama lain melalui tautan radio. Juga dimungkinkan untuk mengunggah dan mengunduh data dari situs web dan karenanya menggunakan internet untuk menghubungkan perangkat di mana pun di dunia https://www.instructables. com/id/Worldwide-microcontroller-link-for-under-20/Dua halaman berikutnya juga berisi beberapa contoh cara menggunakan sensor yang berbeda dan cara mengontrol perangkat yang berbeda. Dr James MoxhamAdelaide, Australia Selatan

Langkah 14: Perangkat Input

Perangkat masukan
Perangkat masukan

Pemrogram picaxe berisi beberapa file bantuan yang sangat berguna, salah satunya disebut "Sirkuit antarmuka" dan juga tersedia di https://www.rev-ed.co.uk/docs/picaxe_manual3.pdfIni menunjukkan cara mengontrol motor, merasakan lingkungan dan kontrol berguna lainnya. Selain sirkit ini, ada beberapa yang saya gunakan berulang kali. Suhu - sensor suhu LM35 menghasilkan tegangan yang dapat langsung masuk ke picaxe dan dapat dibaca dengan perintah readadc atau readadc10. Cahaya - resistor yang bergantung pada cahaya memiliki resistansi yang bervariasi dari beberapa ratus ohm di bawah sinar matahari yang cerah hingga lebih dari 5 megaohm dalam gelap gulita. Ukur resistansi pada tingkat cahaya yang ingin Anda nyalakan dan pasang LDR secara seri dengan resistor dengan nilai yang hampir sama. Misalnya saya ingin mendeteksi lampu mobil yang masuk ke carport untuk menyalakan beberapa lampu. Resistansinya sekitar 1M dari cahaya tidak langsung jadi saya memasang seri 1M dengan LDR. Sakelar - beberapa sakelar beralih antara 5V dan 0V (saklar lemparan ganda kutub tunggal) tetapi beberapa hanya hidup dan mati. Jika sakelar menyala, itu dapat mengirim 5V ke chip picaxe tetapi jika mati, pin picaxe akan 'mengambang' dan dapat berupa nilai apa pun. Sirkuit ini menunjukkan cara menarik input ke ground saat sakelar dimatikan. Ini adalah sirkuit yang digunakan untuk sebagian besar sakelar tombol tekan. Potensiomter - kenop kuno yang bagus. Putar kenop dan baca tegangan ke dalam chip. Ada berbagai perangkat elektronik lain yang menghasilkan tegangan dari 0-5V atau dapat dengan mudah dikonfigurasi untuk melakukannya. Contohnya adalah sensor magnetik, kelembaban, kecepatan, sentuhan, cahaya inframerah, tekanan, warna dan suara. Sensor pada umumnya hanya berharga beberapa dolar masing-masing.

Langkah 15: Mengontrol Perangkat

Mengontrol Perangkat
Mengontrol Perangkat

File bantuan picaxe berisi penjelasan bagus tentang cara mengontrol motor dan lampu. Selain itu saya menemukan ada beberapa sirkuit yang saya gunakan berulang kali. Yang pertama adalah rangkaian transistor sederhana. Chip picaxe dapat menyalakan maksimum 20mA per pin yang bagus untuk menyalakan LED tetapi tidak banyak lagi. Transistor 547 meningkatkan arus menjadi 100mA yang bagus untuk bola lampu kecil. Rangkaian kedua menunjukkan MOSFET. MOSFET hampir tidak memerlukan arus untuk menggerakkannya - hanya volt sehingga dapat langsung dikontrol oleh picaxe. Ada berbagai macam MOSFET yang tersedia tetapi preferensi saya adalah yang disebut BUK555 60B https://www.ortodoxism.ro/datasheets/philips/BUK555-60A.pdf Dapat langsung digerakkan dari 5V (tidak seperti beberapa yang membutuhkan 10V) tetapi keuntungan utamanya adalah ia memiliki resistansi yang sangat rendah saat dihidupkan - 0,045 ohm yang tidak lebih dari resistansi kabel yang akan dihubungkan dengannya. Ini berarti tidak menjadi panas saat mengemudikan beban yang cukup tinggi yang menghemat daya dan juga menghemat biaya heatsink. Sebagai contoh mengendarai beban 5amp seperti headlamp mobil; watt = kuadrat arus x hambatan, jadi W = 5*5*0,045=1,12 watt yang hanya membutuhkan heatsink seperti sepotong aluminium tipis berukuran 1 inci persegi. Sirkuit ketiga menunjukkan relay. Ada beberapa parameter untuk semua relai - tegangan koil, resistansi koil, serta tegangan dan arus beban. Misalnya relay mungkin memiliki kumparan 12V dengan arus kumparan 30mA, resistansi kumparan 400 ohm dan mungkin dapat mendorong hingga 240V pada 1 amp. Arus koil lebih banyak volt dan amp daripada yang dapat disuplai oleh picaxe, jadi kami menggunakan rangkaian transistor untuk mengganti koil. Ada dioda yang disertakan juga - ini menekan EMF belakang saat relai mati. Kembali EMF adalah apa yang menciptakan percikan untuk busi sehingga Anda tidak ingin tegangan tinggi ini di mana pun di sirkuit. Kontak akan memiliki arus dan volt maksimum - arus mungkin beberapa amp dan volt sering 240V sehingga beralih 12V atau 24V akan berada dalam jangkauan. Jika Anda tidak berpengalaman dengan elektronik, jangan bermain-main dengan tegangan listrik. Ada juga relai kecil yang memiliki tegangan kumparan 5V atau 6V. Untuk relai ini, Anda mungkin tidak memerlukan suplai 12V terpisah, tetapi perhatikan saja resistansi koil karena banyak di antaranya memiliki arus lebih dari 100mA. Jika demikian dan Anda menggunakan regulator 78L05 100mA 5V, Anda mungkin ingin mengubahnya ke regulator 7805 yang dapat memasok hingga 1 amp. Relai sangat berguna untuk mengganti AC - misalnya solenoid penyiram taman 24VAC, lampu taman 12VAC, dan di lingkungan yang bising seperti mobil. Mereka juga berguna untuk mengendalikan beban besar, misalnya sebuah picaxe yang memasok 20mA pada 5V = 0,1W mengendalikan transistor 12V pada 100mA=1.2W ke relai 24V 100mA =2.4W ke kontaktor yang menggerakkan pompa 3600W. Jika Anda ingin mengontrol daya seperti itu, mintalah teknisi listrik untuk memasang kotak kontrol dan memberi Anda dua kabel yang keluar (kabel koil untuk relai 12V) yang dapat Anda kendalikan. Dengan cara ini tukang listrik dapat menandatangani kotak listrik dan Anda dapat melakukan semua elektronik tanpa harus khawatir tersengat listrik. Penggunaan lain untuk relay adalah kontrol terbalik untuk motor. Menggunakan modulasi lebar pulsa menjadi MOSFET Anda dapat mengontrol kecepatan motor DC, dan dengan relai daya DPDT Anda dapat mengubah arah. Ini adalah cara sederhana untuk mengendalikan motor besar seperti yang digunakan dalam 'perang robot'. Silakan kirim komentar jika Anda memerlukan bantuan membangun sesuatu.

Direkomendasikan: