Penguji Perangkat Berbasis Arduino yang Andalkan untuk Produk Power Blough-R
Komponen dan Perlengkapan
Arduino Nano R3
1
USB Male
1
USB Female
1
Aplikasi dan Layanan Online
Arduino IDE
Tentang Proyek Ini
Ini mungkin tidak terlihat seperti hal yang besar, namun ini mungkin merupakan hal paling berguna yang pernah saya buat dengan Arduino. Ini adalah penguji otomatis untuk produk yang saya jual, disebut Power Blough-R. Selain menghemat waktu (saat ini telah menghemat setidaknya 4 jam, dan masih bertambah), ini juga memberikan kepercayaan yang lebih besar bahwa produk berfungsi 100% sebelum dikirim.
Power Blough-R, diucapkan "Power Blocker" (ini adalah play on nama saya yang kebetulan diucapkan "lock"!), adalah solusi untuk masalah back-feed power yang sering Anda alami saat menggunakan Octoprint dengan printer 3D.
Untuk menggunakan penguji, cukup tempatkan Power Blough-R ke dalam header USB dan tekan tombol reset pada Arduino Nano. Penguji akan menjalankan serangkaian tes dan akan menunjukkan apakah perangkat lulus atau gagal menggunakan LED bawaan Nano (menyala untuk lulus, berkedip untuk gagal).
Saat Anda memiliki banyak sesuatu yang harus dibuat, menemukan cara untuk mengurangi waktu per unit dapat memberikan dampak besar. Menggunakan penguji ini mengurangi waktu yang saya butuhkan untuk menguji satu unit dari sekitar 30 detik menjadi 5 detik. Meskipun 25 detik tidak terlihat banyak, ketika Anda memiliki ratusan hal ini untuk dilakukan, semuanya akan menumpuk!
Saya pikir hal paling mengesankan yang dapat saya katakan tentangnya adalah, dengan alat ini, membutuhkan waktu lebih singkat untuk menguji Power Blough-R dua kali daripada hanya membuka kantong anti-statis tempat produk dikirim!
Anda mungkin tidak perlu membuat perangkat yang tepat ini, tapi semoga sebagian dari apa yang saya lakukan bermanfaat bagi Anda.
Lihat Video!
Sebagian besar yang saya bahas dalam tulisan ini tersedia dalam video ini, jadi silakan tonton jika Anda menyukai video!
Power Blough-R
Jadi apa itu Power Blough-R dan apa fungsinya?
Jika Anda pernah menggunakan Octoprint dengan printer 3D Anda, sering kali ada masalah di mana layar printer tetap menyala karena daya USB dari raspberry pi, bahkan saat daya printer mati. Meskipun ini bukan akhir dunia, ini bisa menjadi cukup mengganggu, terutama di kamar gelap.
Power Blough-R hanyalah PCB sederhana dengan konektor USB Male dan Female di atasnya, tetapi tidak menghubungkan garis 5V.
Ada metode lain untuk mengatasi masalah ini, beberapa orang memotong garis 5V kabel USB mereka atau menempelkan sekotak kertas di atas konektor 5V, tetapi saya ingin mencari cara yang sederhana dan kuat untuk mencapai hasil yang sama, tanpa merusak kabel USB apa pun!
Jika Anda tertarik dengan Power Blough-R, mereka tersedia untuk dibeli:
Di Tindie Store saya (Kit atau Terrakit)
TH3dstudio.com (Terrakit)
(Cukup sebagai informasi, tulisan ini tidak disponsori dan saya tidak memiliki keterlibatan dengan TH3D selain pasokan Power Blough-Rs. Saya tidak menerima apa pun tambahan untuk menyertakan tautan ke TH3D, atau tulisan/video ini pernah dibahas sebagai bagian dari perjanjian awal)
Latar Belakang: Pesanan Besar
Saya menjual Power Blough-Rs di Tindie store saya, terutama sebagai kit. Tapi untuk yang saya jual dalam keadaan terrakit, saya akan mengujinya dengan multimeter. Saya akan menguji koneksi yang baik antara input dan output Ground, D- dan D+ dan bahwa 5V tidak terhubung serta menguji jembatan.
Ini akan memakan waktu sekitar 30 detik dan sangat rentan terhadap kesalahan saya jika saya tidak hati-hati. Namun untuk jumlah yang saya jual, ini bukan komitmen waktu yang besar.
Tapi saya memposting foto Power Blough-R di subreddit pencetakan 3D, dan Tim dari TH3DStudio.com menghubungi saya menanyakan tentang pemesanan beberapa untuk disimpan di tokonya sebagai coba. Saya setuju dan bertanya berapa banyak yang dicarinya. Saya berharap dia akan mengatakan 10 atau 20, tapi dia katakan mari kita mulai dengan 100....
Sampaknya hampir mustahil bagi saya untuk dengan yakin menguji 100 perangkat dengan multimeter jadi saya tahu saya harus melakukan sesuatu!
Hardware
Saya memilih cara paling sederhana yang bisa saya rangkai karena saya sedikit tergesa-gesa! Ini juga pembangunan yang sangat murah (kurang dari ~$5 untuk segalanya).
Arduino Nano (Yang ini memiliki micro USB, tetapi yang mana saja juga bisa)*
Nano Screw Terminal Breakout*
Male USB Breakout*
Female USB Breakout*
Beberapa kabel
Tidak ada banyak yang perlu dilakukan dalam rangkaian ini. Pasang pin header ke nano jika belum ada dan masukkan ke dalam breakout terminal sekrup.
5 kabel harus di-solder pada breakout USB Male dan Female. Catatan untuk kabel pelindung, breakout female tidak memiliki pad untuk ini jadi saya soldernya ke sisi konektor. Kabel-kabel ini dapat dikupas di ujung lainnya dan disekrup ke terminal sekrup (Pastikan untuk memberi sedikit longgar sehingga lebih mudah untuk memasang dan mencabut perangkat)
Untuk konektor male saya menggunakan pin berikut
GND > 2
D+ > 3
D- > 4
VCC > 5
Shield > 10
Untuk konektor female saya menggunakan:
GND > 6
D+ > 7
D- > 8
VCC > 9
Shield > 11
*Tautan Afiliasi
Software
Pertama-tama Anda perlu mengunduh Arduino IDE dan menyiapkannya jika Anda belum memilikinya.
Anda dapat mengambil skets yang saya gunakan dari Github saya dan mengunggahnya ke papan. Setelah selesai, Anda siap!
Pada saat startup, skets menjalankan serangkaian tes. Jika semua tes lulus, itu akan menyetel LED bawaan menjadi menyala. Jika ada kegagalan, itu akan berkedipkan LED bawaan. Perangkat juga akan mengeluarkan alasan kegagalan ke serial monitor, tetapi saya sebenarnya tidak menggunakan fitur ini.
Skets menjalankan tes-tes berikut
Tes awal:
Ini untuk memeriksa apakah pin Female dibaca sesuai harapan sambil mengabaikan pin male. Lihat langkah tentang logika Tri-state untuk informasi lebih lanjut tentang ini.
Tes utama:
Tes ini memeriksa bahwa GND, D+, D- dan Shield terhubung sementara garis 5V diblokir. Ini untuk memeriksa fungsionalitas utama Power Blough-R, di mana itu melewati segala sesuatu selain garis 5V.
Tes jembatan:
Ini memeriksa bahwa tidak ada pin yang disambung bersama. Jadi itu melangkah melalui setiap pin, menyetel outputnya dan kemudian memeriksa semua pin lain tidak terpengaruh oleh hal ini.
Di bawah ini saya akan membahas beberapa fitur/konssep yang digunakan dalam pengujian.
INPUT_PULLUP
Ini sangat berguna di mana itu dapat menghemat Anda resistor tambahan (per pin) dalam proyek Anda. Ini sangat berguna saat Anda menggunakan tombol.
Saat pin diatur ke INPUT_PULLUP, itu secara dasar menghubungkan pin ke VCC dengan resistor 10k. Tanpa resistor pull-up (atau pull-down), status default pin dianggap floating dan Anda akan mendapatkan nilai yang tidak konsisten saat Anda membaca pin. Karena ini nilai yang cukup tinggi untuk resistor, status pin dengan mudah berubah dengan menerapkan level logika yang berbeda ke pin (misalnya saat tombol ditekan, itu menghubungkan pin ke ground dan pin akan membaca LOW.
Saya mengatur mode pin dari pin FEMALE menjadi INPUT_PULLUP jadi saya memiliki titik referensi untuk apa yang harusnya pin (HIGH) selama tidak ada gaya eksternal padanya. Seluruh tes, pin MALE diatur LOW dan saat keduanya harus terhubung kita akan mengharapkan pin FEMALE menjadi LOW.
Logika Tri-state
Untuk tes awal, saya ingin memeriksa level logika pin FEMALE sambil pada dasarnya mengabaikan pin MALE.
Ini mungkin terlihat seperti masalah karena pin MALE harus memiliki level logika yang akan mempengaruhi, kan?
Nah sebenarnya pin dari sebagian besar mikrokontroler memiliki yang dikenal sebagai logika Tri-state, berarti memiliki 3 status yang dapat dimilikinya: HIGH, LOW dan HIGH-IMPEDENCE
HIGH-IMPEDENCE dicapai dengan menyetel pin sebagai INPUT. Ini setara dengan menempatkan resistor 100 Mega OHM di depan pin, yang akan secara efektif memutuskan dari rangkaian kita.
Logika Tri-state adalah salah satu fitur utama dalam Charlie-plexing, yang merupakan cara ajaib untuk mengaddress LED individu menggunakan jumlah pin yang lebih sedikit. Lihat video berikut jika Anda tertarik untuk mempelajari lebih lanjut tentang Charlie-plexing.
Menguji Penguji
Ini sebenarnya langkah yang sangat penting, karena jika Anda tidak menguji apakah penguji menangkap skenario negatif, maka bagaimana Anda dapat yakin bahwa saat tes lulus perangkat berfungsi sesuai yang diinginkan.
Jika Anda familiar dengan unit testing dalam pengembangan perangkat lunak, ini setara dengan membuat skenario tes negatif.
Untuk menguji ini, saya membuat beberapa papan dengan kesalahan pada mereka:
D-solder header USB di sisi papan yang salah. Header USB akan pas dengan baik, tetapi garis Ground tidak akan terhubung dan garis 5V akan terhubung. (sayangnya ini tidak dibuat sengaja, yang membuktikan kebutuhan akan penguji!)
Sengaja menyambungkan dua pin untuk menguji kode pengujian jembatan.
Kesimpulan
Seperti yang saya sebutkan di awal tulisan ini, ini mungkin merupakan hal paling berguna yang pernah saya bangun dengan Arduino.
Sejak pesanan awal Tim memesan lagi 200 Power BLough-Rs dan sementara penghemat waktu sangat dihargai, kepercayaan yang diberikan bahwa produk dalam kondisi kerja sempurna adalah hal utama yang saya nikmati darinya.
Faktanya untuk pesanan 200, isteri saya pada dasarnya melakukan semua pengujian mereka. Dia sangat menyukai seberapa cepat digunakan dan seberapa sederhana indikator lulus/gagal.
Semoga ada sesuatu yang berguna untuk dipelajari dari panduan ini, jika Anda memiliki pertanyaan silakan tanyakan di bawah!