Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Avenger Rakitan:Helm Iron Man &Reaktor Busur

Komponen dan persediaan

Arduino UNO
× 1
Adafruit NeoPixel Ring:WS2812 5050 RGB LED
× 1
Adafruit Capacitive Touch Sensor Breakout - MPR121
× 1
Servo (Tower Pro MG996R)
× 1
tempat baterai 4xAA
× 1
Klip Baterai 9V
× 1
Kabel jumper (generik)
× 1

Alat dan mesin yang diperlukan

Printer 3D (generik)
Kami menggunakan Lulzbot Mini yang telah bekerja dengan sempurna selama lebih dari 1 tahun (kecuali untuk kepala flexystruder kami yang memiliki tidak pernah bekerja :( )

Aplikasi dan layanan online

Arduino IDE
Autodesk Netfabb
fritzing

Tentang proyek ini

Avenger Assembled:3D Printed &Arduino Controlled Iron Man Helmet dan Arc Reactor.

Perkenalan dan Motivasi:

Motivasi saya di balik pembuatan helm ini dimulai dengan helm pertama saya, yang pernah saya buat. Itu adalah helm Antman kardus dari beberapa video yang saya temukan online. Itu sangat keren (menjadi penggemar berat marvel), jadi saya memutuskan saya benar-benar ingin membuat helm Iron Man. Saya baru saja ke National Maker Faire di Washington D.C. dan semua orang menyukai helm Antman. Ini semakin memotivasi saya untuk membuat Iron Man. Saya melewati beberapa prototipe, dimulai dengan helm papan kartu lainnya. Helm itu terlalu kecil jadi saya mendesain helm saya sendiri, kali ini ketika saya menggabungkannya, itu lebih mirip bola di kepala saya daripada yang ada di film. Akhirnya, saya pergi ke model kertas. Model kertas ini ternyata terlihat fantastis, tetapi saya mengalami satu masalah lagi. Model kertas terlalu tipis. Saya mencoba memperbaikinya tetapi tidak berhasil, jadi saya memutuskan untuk mencetak helm 3D. Saya akhirnya membuat satu yang cukup stabil dan juga cukup besar untuk muat di kepala dan motor saya.

  • Membuat Helm &Reaktor Busur:

Cetak 3D:

1) Membaginya menjadi beberapa bagian - perangkat lunak

Langkah pertama untuk membuat helm ini adalah mencari file secara online, lalu mencetaknya. Berkas yang saya temukan adalah helm Iron Man bermotor. File yang saya unduh dari thingiverse datang dalam tiga bagian:bagian utama, dagu, dan pelat muka. Karena ketiga bagian itu terlalu besar untuk pelat pembuatan printer saya, saya harus menemukan perangkat lunak yang dapat memotong helm saya menjadi beberapa bagian. Saat mencari online, saya menemukan perangkat lunak online gratis yang disebut netfabb basic. Saya mengunduh alat dan mengunggah file saya ke sana. Netfabb basic sangat mudah digunakan dan saya bisa memotong bagian-bagian helm. Kemudian saya mencetak bagian tersebut ke helm utama, bagian dagu, dan pelat muka. Saat melewati cetakan, saya akan menempelkan potongan-potongan itu bersama-sama dan memeriksa untuk melihat apakah ukurannya bagus. Ketika semua bagian sudah selesai dicetak dan 1 gulungan filamen habis, saya memiliki helm 24 potong.

2) Memilih perekat yang tepat

Tantangan berikutnya adalah menemukan perekat yang tepat untuk merekatkan bagian-bagian tersebut. Agar lem berfungsi, lem harus memenuhi tiga persyaratan:

  • Itu harus menyatukan potongan-potongan itu dengan ikatan yang kuat,
  • semoga cepat sembuh
  • mudah diamplas.

Kami menguji 4 jenis lem yang berbeda, E6000, JB Weld KwikWeld, JB Weld Plastic Bonder, dan epoxy Loctite Plastic Bonder. Pada akhirnya, kami akhirnya menggunakan KwikWeld karena memenuhi ketiga persyaratan tersebut. Untuk menempelkan potongan, langkah pertama adalah membuat sisi yang akan direkatkan menjadi lebih kasar. Saya menggunakan kikir untuk menghaluskan sisi yang halus sampai potongan tersebut memiliki sisi yang kasar dengan sedikit lekukan dan kantong. Ini akan membantu bagian itu tetap bersatu. Kami kemudian mencampur JB KwikWeld bersama-sama dengan bagian yang sama dari pengeras dan baja dan menyebarkannya secara merata di kedua sisi yang diajukan dan menekannya bersama-sama. Jika Anda memiliki penjepit, geser ke dalam penjepit dan bersihkan sisa lem. Dibutuhkan sekitar 10 menit untuk mengering tetapi membantu membiarkannya lebih lama dari itu.

  • 3) Merancang mekanisme servo

Tantangan selanjutnya dalam pembuatan helm Iron Man adalah merancang mekanisme servo. Karena saya kesulitan mencari cara untuk memasang servo ke helm dengan gambar di halaman thingiverse, Saya memutuskan untuk membuat sendiri. Pertama, saya merencanakan di mana servo akan berada dan mengukur garis lurus dari servo ke tempat lampiran. Kemudian saya memperkirakan sudut servo yang akan dibuat. Desain pertama agak kurang pas dengan sudut yang terlalu tajam. Yang berikutnya saya perbaiki dan itu hampir benar. Kemudian saya memasang lengan ke servo dan tempat lampiran untuk melihat apakah itu cocok. Itu benar! Akhirnya, saya merancang penjepit agar pas di sekitar servo dan mencetaknya. Saya mengumpulkan semuanya dan kami melakukan tes pertama. Itu tidak stabil dan pelat muka tidak naik dengan mulus dan merata. Untuk memperbaiki masalah ini, saya membengkokkan gantungan baju logam menjadi bentuk persegi panjang dan memasukkannya ke dalam slot di mana bagian cetakan 3D seharusnya ditempatkan. Kemudian saya merancang klip untuk diletakkan di bawah gantungan baju agar tidak jatuh. Saya memotong slot di bagian atas helm dengan gergaji besi dan kemudian menyatukan semuanya kembali. Kami mencobanya untuk kedua kalinya dan berhasil!

4) Perakitan &Pengecatan

Akhirnya, itu siap untuk dicat. Saya membongkar semuanya dan melakukan lapisan primer putih pertama. Setelah primer selesai, saya menutupi bagian dagu dengan selotip pelukis dan saya mengecat helm merah. Untuk pelat muka, saya melukis semuanya emas. Karena emas mengering dengan cepat, itu segera selesai tetapi cat merah mengering sangat lambat jadi saya membiarkannya kering. Setelah semua bagiannya kering, saya melepas selotip dari bagian dagu dan menutupi semua yang ada di dekat bagian yang masih putih. Kemudian, saya menggunakan kertas timah dan meletakkannya di sekitar sisa helm. Kemudian saya mengecat bagian putihnya dengan emas dan menunggu sampai kering. Kemudian saya memasang kembali helm lagi dan menyatukan semuanya. Kemudian saya melakukan tes terakhir dan berhasil!

5) Reaktor Busur:

Membuat reaktor busur adalah yang berikutnya. Saya pertama kali mengukur ukuran cincin neo-piksel dan merancang kasing untuk menahannya. Kemudian, untuk tutupnya, saya menggunakan desain dari seseorang di thingiverse dan memodifikasinya agar sesuai dengan kebutuhan saya. Anda dapat menemukan model aslinya di sini:http://www.thingiverse.com/thing:33021 Desain baru memiliki fitur yang hampir sama persis meskipun beberapa bagiannya sedikit tidak proporsional. Saya mencetak kasing dan bagian atas dan mereka cukup pas. Satu-satunya masalah adalah, Neopixel terlalu kecil untuk casing. ternyata saya salah melakukan perhitungan jadi saya kembali dan mengubahnya. Kali ini cocok. Selanjutnya, saya menambahkan dua lubang untuk dilalui kabel dan sebatang di bagian atas untuk memasukkan tali sehingga saya bisa memakainya di leher saya. Terakhir, saya menambahkan defuser yang terbuat dari filamen abs tembus pandang yang pas dengan casingnya. Bagian pencetakan akhirnya selesai!

Elektronik:

Setelah pencetakan 3D selesai, kami tahu bahwa kami memiliki platform hebat untuk menyematkan beberapa barang elektronik. Untuk proyek ini, kami ingin mengontrol 1 motor servo yang dipasang pada pelat muka helm. Kami juga ingin mengontrol cincin Neopixel di Reaktor Arc. Kami menggunakan Arduino Uno sebagai dasar dari sistem kontrol untuk proyek ini. Namun, ada banyak jenis papan lain yang dapat digunakan juga dan kami telah membuat perangkat lunak dan perangkat keras tetap generik untuk alasan ini. Faktanya, kami telah menggunakan Uno dan Arduino101 secara bergantian dalam proyek ini. Ini juga akan memungkinkan ekspansi di masa mendatang dan potensi pembuatan helm yang terhubung dengan BLE bawaan 101!

Iron Man perlu menggerakkan motor servo helm dan cincin neopiksel dari reaktor busur. Kami menggunakan MPR121 ADAFRUIT 12-KEY CAPASITIVE TOUCH SENSOR BREAKOUT untuk menyediakan antarmuka berbasis sentuhan. Papan breakout ini memungkinkan 12 input berbeda dan berkomunikasi dengan Uno menggunakan I2C. 12 kontak menyisakan banyak ruang untuk ekspansi di masa mendatang dan I2C adalah bagian dari paket IDE standar untuk keluarga Arduino yang memberi kami kemampuan untuk bertukar papan tanpa memprogram ulang. Ini didokumentasikan dengan baik dan contoh perangkat lunak yang disediakan memudahkan untuk memahami cara menggunakannya dalam sketsa kami.

Kami memasang kabel dengan ujung telanjang untuk bertindak adalah sakelar sentuh kapasitif kami. Meskipun kita tidak melihat "sakelar memantul" seperti yang diamati dengan sakelar mekanis, satu sentuhan akan menghasilkan beberapa ketukan sebagai loop() di arduino sketch polling papan. Untuk menghindari servo "berceloteh" dalam menanggapi hit ini, kami menerapkan mekanisme penundaan perangkat lunak 1/4 detik saat membaca sentuhan. Setelah menguji Uno dan MPR121, kami menambahkan motor servo dan catu daya.

Mempertimbangkan penggunaan motor servo di bawah beban dan keinginan untuk "menerapkan" proyek ini di NYC Maker Faire 2016, salah satu pertimbangan terpenting dari proyek ini adalah catu daya. Kami telah diberitahu bahwa desain catu daya adalah salah satu bidang yang lebih penting, tetapi paling tidak glamor, dari teknik listrik. Tak satu pun dari kami adalah insinyur listrik, jadi solusi yang kami temukan adalah kombinasi dari apa yang kami baca akan berhasil, apa yang kami pahami, apa yang kami miliki, dan apa yang harus kami kerjakan. Jadi kami tidak mengklaim bahwa ini adalah solusi terbaik dan mengharapkan saran untuk perbaikan.

Karena beban ditempatkan pada servo, potensi ggl balik dan rekomendasi dari https://www.arduino.cc/en/Reference/Servo, kami memilih untuk memberi daya servo secara terpisah dari Uno. Daya dan ground motor servo terhubung ke daya dan ground dari baterai 4XAA. Sangat penting bahwa tanah Uno, servo dan baterai harus terhubung untuk menyelesaikan rangkaian. Kami melakukan ini dengan menghubungkan ground rail papan Perma-Proto, baterai 4XAA, dan kabel dari pin ground Uno bersama-sama seperti yang dapat dilihat pada skema Fritzing di bawah ini.

Awalnya kami juga memiliki cincin Neopixel yang juga ditenagai dari paket baterai 4XAA. Kami mengubah ini karena tampaknya ada beberapa "celoteh" servo ketika cincin Neopixel dihidupkan dan dimatikan. Namun, ini mungkin karena baterai lemah pada saat kami menguji. Sayangnya kami melihat ini malam sebelum Maker Faire dan kami sudah berada di Perma-Proto. Kami memutuskan untuk langsung menyambungkan Neopixel Ring ke Uno dan mengganti ke baterai baru secara bersamaan. Ini memperbaiki masalah, tetapi tidak menjawab pertanyaan. Mungkin saat kami bekerja untuk meningkatkan proyek di masa depan, kami akan mengejar ini.

Seluruh rangkaian dibuat prototipe pada papan tempat memotong roti dan kemudian dipindahkan ke papan Adafruit Perma-Proto. Dengan enklosur yang aman, ini adalah salah satu cara paling sederhana untuk membuat paket yang dapat diterapkan dengan cepat untuk proyek Anda. Kami merancang dan mencetak selungkup khusus dalam filamen HIPS biru, terlihat di bawah. Seluruh unit dengan baterai dikemas ke dalam wadah kamera untuk Maker Faire!

Perangkat Lunak:

Saat ini ada 2 versi sketsa, IronMan02.ino dan IronMan04.ino . Keduanya akan bekerja dengan pengaturan perangkat keras seperti yang dijelaskan dalam artikel ini.

Yang pertama, IronMan02.ino adalah versi “selesaikan” yang mengikuti semangat, “Kesempurnaan adalah musuh penyelesaian.” Kami memiliki tenggat waktu yang harus dipenuhi dan versi ini, meskipun tidak elegan, menyelesaikan pekerjaannya. Dalam versi ini Anda akan melihat bahwa kami membuat objek untuk mewakili Helm dan Reaktor Busur. Ini dilakukan untuk mengantisipasi penerapan multi-tasking pada arduino di versi mendatang, jadi ini bukan pekerjaan yang terburu-buru. Kami sangat merekomendasikan membaca rangkaian tiga artikel tentang multitasking arduino oleh Bill Earl dari Adafruit. Kode kami berbasis, terutama IronMan04.ino, didasarkan pada contoh, ide, dan rekomendasi dari kumpulan 3 tutorial ini. Artikel ini akan membawa Anda melampaui dasar-dasar pemrograman arduino dan memungkinkan proyek Anda benar-benar lepas landas!

Satu masalah yang kami hadapi adalah pelat muka dibuka dan ditutup terlalu cepat. Kami memecahkan ini dengan menggunakan delay() berfungsi untuk memperlambat dan menghaluskan gerak pelat muka. Ya, jika Dr. Reallyevilbadguy akan meledakkan wajah Iron Man dengan laser kematian supernya, Anda ingin helmnya menutup dengan cepat, tetapi untuk tujuan demonstrasi, gerakan yang lebih lambat dan halus akan terlihat jauh lebih baik.

// pindahkan helm ke atas, blok waktu 1/4 detik untuk menghindari obrolan/pantulan pada tutup sentuh. switch void up() { if((millis() - lastSwitched)> 250 ) { lastSwitched =millis(); if (!helmetUp int currPos =0; while( currPos  

Masalah dengan menggunakan delay() fungsinya adalah mikrokontroler tidak dapat melakukan hal lain selama delay() . Kami memecahkan masalah ini menggunakan panduan dalam tutorial adafruit di atas dalam versi kedua, IronMan04.ino .

Versi kedua, IronMan04.ino , mencakup 2 elemen utama yang ingin kami terapkan, tetapi kehabisan waktu untuk mencoba menyelesaikannya sebelum Maker Faire:

  • Satu tombol/sentuh kontrol pelat muka
  • Multi-tugas

Ketika kami berbicara dengan orang-orang tentang proyek awal kami, reaksi semua orang adalah, Anda seharusnya hanya memiliki satu tombol/sensor sentuh untuk menggerakkan helm ke atas dan ke bawah. Kami sangat setuju dan memutuskan untuk menerapkan ini ketika kami punya waktu. Solusi kami melibatkan penggunaan beberapa variabel status:

  • balik - untuk mempertahankan keadaan pelat muka
  • membalik - untuk menunjukkan apakah pelat muka sedang dalam posisi transisi
  • keterarahan - untuk menunjukkan pergerakan pelat muka ke atas atau ke bawah

Dalam penyiapan() , kami selalu memulai helm dalam konfigurasi terbuka atau lebih tinggi. Ini tidak mutlak penting. Terlepas dari status awal, mengaktifkan sakelar pelat muka akan membawa Anda ke status yang benar dengan menekan kedua. Kami telah, bagaimanapun, menulis kode untuk memperhitungkan bahwa keadaan awal pelat muka sudah habis, dan oleh karena itu tidak ada penekanan tombol yang sia-sia di awal. Apakah ini cara terbaik? Kami tidak yakin, tetapi karena beberapa pemikir ilmiah terbesar menghabiskan bertahun-tahun mengerjakan teori kontrol, saya pikir kami berhasil dengan proyek ini!

Karena kami melakukan polling untuk sentuhan dari MPR121 dalam loop, satu sentuhan yang dirasakan pengguna akan menghasilkan banyak sinyal sentuh. Ini mirip dengan bouncing sakelar tradisional dan kami menanganinya melalui perangkat lunak. Kami ingin respons cepat terhadap sensor sentuh dan kami ingin menerapkan multi-tugas, jadi alih-alih memblokir banyak sentuhan di sakelar/kasus loop() fungsi, kami menempatkan blok waktu menggunakan millis() fungsi di Helm dan ArcReactor objek, seperti yang terlihat dalam fragmen kode ini dari Helm objek:

void flipFaceplate() { // blok waktu untuk melindungi dari chatter/bounce if ((millis()-lastFlipped)> 500 ) { . . . 

Sekali lagi, dengan tidak menggunakan delay() fungsi kami mempertahankan multitasking dalam proyek kami. Mungkin lebih bijaksana untuk menggunakan variabel untuk interval penundaan 500 milidetik untuk memungkinkan perubahan dan pengujian, tetapi kami melakukannya dengan benar dengan tebakan kedua kami 500 dan hanya sedikit ceroboh di sini.

Untuk menyapu servo dengan lancar melalui sudut rotasinya, kami perlu meningkatkan rotasi servo secara perlahan. Dengan menempatkan blok waktu pada langkah sudut motor servo dengan memeriksa waktu saat ini dengan milis() fungsi:

void Update() { if ( membalik &(millis()-lastMoved)>=15 ) { lastMoved =millis(); if ( directionality ==UP ) { currentPos =currentPos + 3; } else { currentPos =currentPos - 3; } Serial.print("posisi saat ini:");Serial.print(currentPos); helmetServo.write(currentPos); } if ((currentPos>=upAngle) || (currentPos <=downAngle)) { flipping=false; } }}; 

Sekali lagi kami menerapkan ini tanpa delay() fungsi. Jika Anda membangun proyek ini, dan memperhatikan dengan cermat, Anda akan melihat bahwa dengan IronMan04.ino yang berjalan di Uno, Anda dapat membalik pelat muka dan menghidupkan dan mematikan Neopiksel secara bersamaan. Dengan IronMan02.ino, delay() menyebabkan diblokir sampai servo selesai bergerak. Terima kasih Bill Earl!

Baris terakhir dari fungsi pembaruan ini memeriksa untuk memastikan kita tidak melebihi posisi atas atau bawah pelat muka, sebagai loop() pemanggilan fungsi Update() itu akan terus memeriksa ini setelah gerakan terakhir helm dan kemudian mengatur membalik variabel ke false untuk menunjukkan bahwa pelat muka selesai bergerak ke atas atau ke bawah. Pada siklus berikutnya, dengan membalik false, seluruh fungsi pada dasarnya dilewati.

 if ((currentPos>=upAngle) || (currentPos <=downAngle)) { flipping=false; } 

Arah Masa Depan:

Ada begitu banyak hal yang dapat kami lakukan dengan proyek ini, tidak yakin harus mulai dari mana! Mata yang bersinar adalah satu. Mungkin menambahkan konektivitas BLE dengan arduino101? Antarmuka suara? Jarvis pasti memanggil yang satu ini!

Kode

Proyek Helm Iron Man dan Reaktor Busur!
https://github.com/lachendeKatze/Iron-Man

Skema


Proses manufaktur

  1. Penutup Lubang got
  2. Setrika Pakaian
  3. Kompor Besi Cor
  4. Helm Sepak Bola
  5. Besi
  6. Baterai
  7. UnifiedWater v1
  8. Iron Man
  9. Arduino Power
  10. Pengertian besi tempa