Isi kandungan:

Membina Mesin Pemantau: 9 Langkah
Membina Mesin Pemantau: 9 Langkah

Video: Membina Mesin Pemantau: 9 Langkah

Video: Membina Mesin Pemantau: 9 Langkah
Video: cara membuat "SEGI 9" beraturan/NONAGON menggunakan jangka, || gambar bangun datar/segi 9 2024, Julai
Anonim
Membina Mesin Pemerhati
Membina Mesin Pemerhati
Membina Mesin Pemerhati
Membina Mesin Pemerhati

Titik permulaan untuk projek ini adalah mengerjakan projek konkrit untuk mempelajari beberapa perkara mengenai papan pengawal mikro.

Idea awal adalah untuk membuat objek fizikal yang dapat memantau Sistem Integrasi Berterusan (VSTS | Azure DevOps) dan melaporkan kegagalan pembuatan perisian. Kerana masalah keselamatan dari jabatan IT, saya ditolak untuk menyambungkan peranti "tidak standard" secara langsung ke rangkaian perusahaan.

Saya berakhir dengan seni bina yang ditunjukkan dalam gambar di atas. Aliran kerja pelaksanaan dapat diringkaskan sebagai:

Aplikasi desktop Windows mengimbas (menarik) Definisi Binaan VSTS. Ia menganalisis hasil binaan, dan kemudian mengirim perintah ke peranti fizikal yang menjalankan urutan animasi sedikit sebelum menunjukkan bendera merah atau hijau.

Langkah 1: Bahagian yang Diperlukan

Senarai berikut merangkum semua item yang diperlukan:

  • 1 Arduino UNO R3 (https://store.arduino.cc/usa/arduino-uno-rev3).
  • 1 Expension Shield (https://www.dfrobot.com/wiki/index.php/IO_Expansion_Shield_for_Arduino_V7_SKU:DFR0265).
  • 2 modul XBee S1 (https://www.adafruit.com/product/128).
  • 1 XBee explorer dongle (https://www.sparkfun.com/products/11697).
  • 2 motor servo berterusan 5VDC dengan pemasangan aksesori (https://www.parallax.com/sites/default/files/downloads/900-00008-Continuous-Rotation-Servo-Documentation-v2.2.pdf).
  • 1 bekalan kuasa 9VDC.
  • 3 LED.
  • 3 perintang 220 Ohm.
  • lengan termal yang boleh ditarik.
  • 1 butang tekan.
  • Perintang tarik 10KΩ untuk tarikan.
  • Kapasitor 100nF.
  • wayar elektrik.
  • papan jalur (untuk pemasangan butang)
  • Kayu 5mm (50x50cm).
  • bahagian kayu batang persegi 5x5 mm (1m).
  • kadbod.
  • Skru 10 X diameter 2mm.
  • 4 skru diameter 5mm.
  • magnet kuat.
  • modul berpusing. Saya menggunakan semula bahagian bergerak dalaman lampu berkelip. anda boleh meletakkan apa sahaja yang anda mahukan. Anda hanya perlu berhati-hati bahawa 2 bahagian mudah alih dapat bergerak dengan bebas tanpa bersentuhan.

Langkah 2: Membina Kotak

Membina Kotak
Membina Kotak

Sebenarnya anda boleh memiliki kotak apa sahaja bentuk yang anda mahukan. Perkara utama yang perlu difikirkan sebelum memulakannya adalah di mana bahagian yang bergerak dan memastikannya dapat bergerak bebas tanpa bersentuhan bersama. Perkara lain ialah di mana anda akan meletakkan peranti ini? Saya akhirnya menggunakan magnet (kuat) untuk melekatkannya pada sebarang sokongan logam. jika anda mahu membina kotak yang sama, anda boleh mengikuti arahan di file_drawings.pdf fail.

Sekiranya anda hanya perlu memotong semua kepingan yang berbeza, buat lubang untuk servomotor, LED, butang dan skru dan akhirnya gam semua bahagian bersama-sama. Setelah kering, sedikit pengamplasan dan sedikit warna.

Kedua bendera itu dibuat menggunakan kadbod merah dan hijau. Untuk memasang tiang bendera pada servomotor, anda boleh menggunakan bahagian pelekap yang disediakan semasa anda membelinya.

Langkah 3: Persediaan Arduino

Persediaan Arduino
Persediaan Arduino

Item yang disambungkan ke papan sambungan Arduino adalah:

  • PIN D2: butang tekan.
  • PIN D4: LED untuk mengatakan sistem ON.
  • PIN D5: LED untuk mengatakan bahawa kita menjalankan kitaran.
  • PIN D6: LED untuk mengatakan bahawa peranti telah menerima mesej baru.
  • PIN D9: isyarat nadi PWM untuk servomotor yang mengendalikan gyro.
  • PIN D10: isyarat denyut PWM untuk servomotor yang mengendalikan bendera.
  • Soket XBee: satu Modul ZigBee.

Skema di atas menunjukkan bagaimana semua item disambungkan ke papan.

Untuk LED, perintang dan wayar dikimpal secara langsung di atasnya (jaga kekutuban). Segala-galanya kemudian dibungkus dalam beberapa lengan termal yang boleh ditarik.

Untuk butang tekan, semua bahagian (butang, perintang dan kapasitor) dikimpal secara langsung pada papan jalur satelit kecil. Papan jalur kemudian dipasang secara langsung dengan dua skru (2mm)

Servomotor beroperasi dengan kuasa 5V sehingga mereka dapat disambungkan terus ke Arduino. Sekiranya anda menggunakan voltan yang lebih tinggi (12V), anda perlu menambahkan lapisan lain untuk bekalan kuasa.

Untuk modul XBee, setelah dikonfigurasikan untuk berbicara bersama (lihat bahagian seterusnya), modul tersebut dapat dipasang ke soket secara langsung.

Catatan: LED dan butang tekan boleh disambungkan secara langsung ke pin Arduino kerana ia boleh menggunakan sekuriti yang diperlukan secara dalaman. Saya hanya melakukan cara lama kerana aspek ini tidak begitu jelas bagi saya.

Langkah 4: Perisian - XCTU

Perisian - XCTU
Perisian - XCTU

Seperti disebutkan di atas, kedua-dua peranti XBee mesti dikonfigurasikan untuk berbicara bersama. Untuk melakukan itu, anda perlu menggunakan perisian X-CTU khusus dari DIGI. Anda perlu melakukan langkah konfigurasi ini sekali sahaja. sila ikuti prosedur yang dijelaskan dalam fail xbee_configuration.pdf.

Setelah konfigurasi selesai, anda boleh menyambungkan setiap modul pada soketnya. Satu di penukar USB / Serial dan satu di papan sambungan Arduino.

Penukar USB / Serial harus dikenali secara automatik oleh windows 10. Sekiranya tidak, anda mungkin perlu memasang pemacu secara manual

Catatan:

Menggunakan modul XBee untuk melakukan komunikasi bersiri asas sedikit berlebihan. Pada masa saya memulakan projek, saya tidak berjaya mencari alat komunikasi bersiri yang mudah digunakan pada windows 10 (masalah pemandu). Ini juga merupakan kesempatan untuk mempelajari beberapa perkara mengenai

Langkah 5: Perisian - Arduino Sketch

Perisian - Arduino Sketch
Perisian - Arduino Sketch

Untuk memprogram Arduino, kami menggunakan IDE yang dapat diakses dari laman web rasmi.

Logik programnya agak mudah, hanya mendengarkan pada port bersiri lalai papan untuk huruf tunggal (‘a’, ‘b’,…). Sekiranya watak yang diterima sesuai dengan perintah yang diketahui, maka sub-fungsi memainkan urutan yang sesuai.

2 arahan berguna utama adalah animasi kejayaan (‘a’) dan animasi ralat (‘b’).

Untuk dapat memainkan (atau debugging) sedikit lebih banyak dengan kotak terdapat beberapa perintah tambahan yang dapat dilaksanakan. Mereka adalah:

  • ‘O’: memaksa LED ON menyala
  • ‘P’: memaksa LED ON mati
  • ‘Q’: memaksa LED Mesej Baru dihidupkan
  • ‘R’: memaksa LED Mesej Baru dimatikan
  • ‘S’: memaksa LED Kitaran hidup
  • ‘T’: memaksa LED Kitaran mati
  • ‘U’: aktifkan servomotor gyro
  • ‘V’: aktifkan servomotor bendera.

Selain perintah bersiri terdapat sub-rutin (handlePushButton) yang diaktifkan ketika butang tekan ditekan pada perangkat. Sekiranya kesilapan atau animasi kejayaan dimainkan secara automatik. Ciri ini memungkinkan untuk memeriksa bahawa peranti fizikal telah dipasang dengan betul.

Kod lakaran Arduino ada dalam fail tunggal bsldevice.ino. Anda boleh memuat naiknya secara langsung menggunakan IDE.

Langkah 6: Perisian - Aplikasi Desktop

Perisian - Aplikasi Desktop
Perisian - Aplikasi Desktop

Tujuan aplikasi desktop adalah untuk memantau laman web Microsoft Azure DevOps (sebelumnya VSTS) dan untuk mengesan sama ada Build Definition berjaya atau tersilap. Setiap kali build selesai, aplikasi desktop menentukan status build dan mengirim perintah yang sesuai (‘a’ atau ‘b’) ke port serial (COMx).

Setelah melancarkan aplikasi, tindakan pertama adalah memilih port com yang betul di mana modul ZigBee disambungkan. Untuk menentukan port anda boleh menggunakan Windows Device Manager (di bawah Port (bahagian COM & LPT)). Sambungan ke Azure DevOps dilakukan secara automatik pada permulaan menggunakan kelayakan pengguna semasa. Anda juga boleh menghantar sebarang arahan yang telah ditentukan secara manual menggunakan kotak kombo di sebelah kanan.

Semua sumber telah dihasilkan dengan edisi profesional Visual Studio 2017. Ia memerlukan. NET Framework 4.6.1. Versi Kerangka ini lebih disukai untuk memudahkan penyambungan / pengesahan ke laman web VSTS.

untuk menggunakan:

  • muat turun arkib bslwatcher_sources.zip.
  • Ekstrak pada cakera anda.
  • Baca fail how_to_build.txt untuk perincian binaan.

Langkah 7: Permulaan Pertama

Terdapat dua perkara utama yang perlu diingat semasa memulakan kotak:

1- Tidak ada cara bagi sistem untuk mengetahui sendiri di mana bendera. Sistem menganggap bahawa pada permulaan bendera hijau naik.

2- Semasa menghidupkan papan Arduino tidak ada yang boleh bergerak. Semasa kami menggunakan servo berterusan, kedudukan sifar ditetapkan pada 90 secara lalai dalam fail lakaran. Sekiranya servomotor mula berpusing atau mengeluarkan sedikit bunyi. anda mungkin perlu menentukan semula kedudukan sifarnya. Untuk melakukan itu, anda hanya perlu menyesuaikan potensiometer di dalam lubang kecil di sisi servomotor.

www.arduino.cc/en/Reference/ServoWrite

cmra.rec.ri.cmu.edu/content/electronics/boe…

Langkah 8: Kesimpulannya

Peranti kecil ini secara fizikal akan melaporkan status Sistem Integrasi Berterusan anda.

Kerana "kecerdasan" ada di aplikasi desktop, Anda dapat menggunakan kotak untuk memantau perisian atau proses lain (surat, sensor suhu …). Anda hanya perlu mempunyai akses ke API lain dan memutuskan apa yang "baik" atau apa "buruk". Sekiranya anda tidak menggunakan warna konvensyen merah dan hijau, anda bahkan boleh mengubah makna "mesej".

Penambahbaikan juga dapat dibawa ke kotak itu sendiri:

  • Gunakan bateri.
  • Gunakan protokol komunikasi lain.
  • Tambahkan sensor untuk mengetahui bendera mana yang berada di bahagian atas.

Harap anda dapati projek ini menarik.

Terima kasih kerana membaca hingga ke sini.

Langkah 9: Lampiran

Beberapa pautan yang digunakan untuk membuat projek ini:

Laman web Arduino:

Laman web DIGI:

Perisian XCTU:

Beberapa maklumat yang digunakan dari orang lain:

arduino.stackexchange.com/questions/1321/se…

stackoverflow.com/questions/10399400/best-w…

www.mon-club-elec.fr/pmwiki_reference_ardui… (dalam bahasa Perancis)

jeromeabel.net/

Laman web MSDN secara umum:

docs.microsoft.com/en-us/dotnet/framework/…

Disyorkan: