Isi kandungan:
- Langkah 1: Bagaimana Ia Berfungsi
- Langkah 2: Bil Bahan (BOM)
- Langkah 3: Reka Bentuk Mekanikal
- Langkah 4: Elektronik (Pilihan Komponen)
- Langkah 5: Elektronik (Sambungan)
- Langkah 6: Pengaturcaraan
- Langkah 7: Kemungkinan Penambahbaikan
- Langkah 8: Mengatasi Faktor
- Langkah 9: Kredit
Video: Sorter Bin - Kesan dan Susun Sampah Anda: 9 Langkah
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Pernahkah anda melihat seseorang yang tidak mengitar semula atau melakukannya dengan cara yang tidak baik?
Adakah anda pernah menginginkan mesin yang boleh dikitar semula untuk anda?
Teruskan membaca projek kami, anda tidak akan menyesal!
Sorter bin adalah projek dengan motivasi yang jelas untuk membantu mengitar semula di dunia. Seperti yang diketahui umum, kekurangan kitar semula menyebabkan masalah serius di planet kita, seperti hilangnya bahan mentah dan pencemaran laut, antara lain.
Atas sebab itu, pasukan kami telah memutuskan untuk mengembangkan projek dalam skala kecil: tong pengasing yang dapat memisahkan sampah menjadi penerima yang berbeza bergantung pada apakah bahan itu logam atau bukan logam. Pada versi yang akan datang, tong penyortir itu dapat diekstrapolasi ke skala besar, yang memungkinkan pembagian sampah menjadi semua jenis bahan (kayu, plastik, logam, organik…).
Oleh kerana tujuan utamanya adalah membezakan antara logam atau bukan logam, tong penyortir akan dilengkapi dengan sensor induktif, tetapi juga dengan sensor ultrasonik untuk mengesan jika ada sesuatu di tong sampah. Selain itu, tong sampah memerlukan pergerakan linear untuk memindahkan sampah ke dalam dua kotak, oleh itu motor stepper dipilih.
Pada bahagian seterusnya, projek ini akan dijelaskan langkah demi langkah.
Langkah 1: Bagaimana Ia Berfungsi
Tong penyortir telah dirancang untuk membuat kerja relatif mudah bagi pengguna: sampah harus dimasukkan melalui lubang yang diletakkan di piring atas, butang kuning harus ditekan dan prosesnya dimulakan, diakhiri dengan sampah menjadi satu penerima. Tetapi persoalannya sekarang … bagaimana proses itu berfungsi secara dalaman?
Setelah proses itu dimulakan, LED hijau menyala. Kemudian sensor ultrasonik, yang terpasang ke plat atas melalui sokongan, memulakan kerja mereka untuk menentukan sama ada terdapat objek di dalam kotak atau tidak.
Sekiranya tidak ada objek di dalam kotak, LED merah menyala dan yang hijau mati. Sebaliknya, jika terdapat objek, sensor induktif akan diaktifkan untuk mengesan sama ada objek itu logam atau bukan logam. Setelah jenis bahan ditentukan, LED merah dan kuning akan menyala dan kotak akan bergerak ke arah satu arah atau sebaliknya bergantung pada jenis bahan, didorong oleh motor stepper.
Apabila kotak tiba di penghujung pukulan dan objek telah dijatuhkan ke penerima yang betul, kotak akan kembali ke kedudukan awal. Akhirnya, dengan kotak di kedudukan awal, LED kuning akan mati. Penyusun telah bersedia untuk memulakannya semula dengan prosedur yang sama. Proses ini yang dijelaskan dalam perenggan terakhir juga ditunjukkan dalam gambar carta aliran kerja yang dilampirkan dalam Langkah 6: Pengaturcaraan.
Langkah 2: Bil Bahan (BOM)
Bahagian mekanikal:
-
Membeli bahagian untuk struktur bawah
- Struktur logam [Pautan]
- Kotak kelabu [Pautan]
-
Pencetak 3D
PLA untuk semua bahagian yang dicetak (bahan lain juga boleh digunakan, seperti ABS)
-
Mesin pemotong laser
- MDF 3mm
- Plexiglass 4mm
- Set Galas Linear [Pautan]
- Galas Linear [Pautan]
- Shaft [Pautan]
- Pemegang aci (x2) [Pautan]
Bahagian elektronik:
-
Motor
Linear Stepper Motor Nema 17 [Pautan]
-
Bateri
12 v Bateri [Pautan]
-
Sensor
- 2 Sensor ultrasonik HC-SR04 [Pautan]
- 2 Sensor induktif LJ30A3-15 [Pautan]
-
Pengawal mikro
1 papan arduino UNO
-
Komponen tambahan
- Pemandu DRV8825
- 3 LED: merah, hijau dan oren
- 1 butang
- Beberapa wayar lompat, wayar dan pateri pematerian
- Papan roti
- Kabel USB (sambungan Arduino-PC)
- Kapasitor: 100uF
Langkah 3: Reka Bentuk Mekanikal
Pada gambar sebelumnya, semua bahagian pemasangan ditunjukkan.
Untuk reka bentuk mekanikal, SolidWorks telah digunakan sebagai program CAD. Bahagian-bahagian pemasangan yang berlainan telah dirancang dengan mengambil kira kaedah pembuatan mana yang akan dihasilkan.
Bahagian potong laser:
-
MDF 3mm
- Tiang
- Plat atas
- Sokongan sensor ultrasonik
- Sokongan sensor induktif
- Kotak sampah
- Sokongan bateri
- Sokongan papan roti dan Arduino
-
Plexiglass 4mm
Pelantar
Bahagian bercetak 3D:
- Pangkalan tiang
- Elemen penghantaran pergerakan linear dari motor stepper
- Motor stepper dan sokongan galas
- Bahagian pemasangan dinding untuk kotak sampah
Untuk pembuatan setiap bahagian ini, fail. STEP harus diimport ke format yang betul, bergantung pada mesin yang akan digunakan untuk tujuan tersebut. Dalam kes ini, fail.dxf telah digunakan untuk mesin potong laser dan fail.gcode untuk pencetak 3D (Ultimaker 2).
Pemasangan mekanikal projek ini boleh didapati di fail. STEP yang dilampirkan di bahagian ini.
Langkah 4: Elektronik (Pilihan Komponen)
Dalam bahagian ini, penerangan ringkas mengenai komponen elektronik yang digunakan dan penjelasan mengenai pilihan komponen akan dilakukan.
Papan Arduino UNO (sebagai pengawal mikro):
Perkakasan dan perisian sumber terbuka. Murah, senang didapati, senang dikodkan. Papan ini serasi dengan semua komponen yang kami gunakan dan anda dapati banyak tutorial dan forum sangat berguna untuk belajar dan menyelesaikan masalah.
Motor (Linear Stepper Motor Nema 17):
Merupakan jenis motor stepper yang membahagi putaran penuh dalam beberapa langkah. Akibatnya, ia dikendalikan dengan memberikan sejumlah langkah. Ia kuat dan tepat dan tidak memerlukan sensor untuk mengawal kedudukan sebenarnya. Misi motor adalah untuk mengawal pergerakan kotak yang mengandungi objek yang dilemparkan dan menjatuhkannya ke tong sampah.
Untuk memilih model, anda membuat beberapa pengiraan tork maksimum yang diperlukan dengan menambahkan faktor keselamatan. Mengenai hasilnya, kami membeli model yang sebahagian besarnya merangkumi nilai yang dikira.
Pemacu DRV8825:
Papan ini digunakan untuk mengawal motor stepper bipolar. Ia mempunyai kawalan arus laras yang membolehkan anda menetapkan output arus maksimum dengan potensiometer serta enam resolusi langkah yang berbeza: langkah penuh, setengah langkah, 1/4-langkah, 1/8-langkah, 1 / 16- langkah, dan 1/32 langkah (akhirnya kami menggunakan langkah penuh kerana kami tidak perlu pergi ke langkah mikro tetapi masih boleh digunakan untuk meningkatkan kualiti pergerakan).
Sensor ultrasonik:
Ini adalah sejenis sensor akustik yang menukar isyarat elektrik menjadi ultrasound dan sebaliknya. Mereka menggunakan respons echo dari isyarat akustik yang pertama kali dipancarkan untuk mengira jarak ke suatu objek. Kami menggunakannya untuk mengesan sama ada terdapat objek di dalam kotak atau tidak. Mereka mudah digunakan dan memberikan ukuran yang tepat.
Walaupun output sensor ini adalah nilai (jarak), dengan menetapkan ambang untuk menentukan sama ada objek ada atau tidak, kita mengubah
Sensor induktif:
Berdasarkan undang-undang Faraday, ini termasuk dalam kategori sensor jarak elektronik bukan hubungan. Kami meletakkannya di bahagian bawah kotak bergerak, di bawah platform plexiglass yang menyokong objek. Tujuan mereka adalah untuk membezakan antara objek logam dan bukan logam yang memberikan output digital (0/1).
LED (hijau, kuning, merah):
Misi mereka adalah untuk berkomunikasi dengan pengguna:
-Green LED menyala: robot sedang menunggu objek.
-RED LED menyala: mesin berfungsi, anda tidak boleh membuang objek apa pun.
-Yellow LED menyala: objek dikesan.
Bateri 12V atau sumber kuasa 12V + kuasa USB 5V:
Sumber voltan diperlukan untuk menghidupkan sensor dan motor stepper. Sumber kuasa 5V diperlukan untuk menghidupkan Arduino. Ini dapat dilakukan melalui bateri 12V tetapi yang terbaik adalah mempunyai sumber kuasa 5V yang terpisah untuk Arduino (seperti dengan kabel USB dan penyesuai telefon yang disambungkan ke sumber kuasa atau ke komputer).
Masalah yang kami dapati:
-
Pengesanan sensor induktif, kami tidak mendapat ketepatan yang diinginkan kerana kadangkala objek logam yang tidak diposisikan tidak dapat dilihat. Ini disebabkan oleh 2 had:
- Kawasan yang diliputi oleh sensor dalam platform persegi mewakili kurang dari 50% daripadanya (jadi objek kecil tidak dapat dikesan). Untuk menyelesaikannya, kami mengesyorkan menggunakan 3 atau 4 sensor induktif untuk memastikan lebih daripada 70% kawasan dilindungi.
- Jarak pengesanan sensor terhad kepada 15mm, jadi kami terpaksa menggunakan platform plexiglass yang baik. Ini juga boleh menjadi batasan lain untuk mengesan objek dengan bentuk yang pelik.
- Pengesanan ultrasonik: sekali lagi, objek yang dibentuk dengan cara yang kompleks memberikan masalah kerana isyarat yang dipancarkan oleh sensor dipantulkan dengan teruk dan kembali lebih lambat daripada yang seharusnya ke sensor.
- Bateri: kami mempunyai beberapa masalah mengawal arus yang dihantar oleh bateri dan untuk menyelesaikannya akhirnya kami menggunakan sumber kuasa. Walau bagaimanapun, penyelesaian lain seperti menggunakan dioda dapat dilakukan.
Langkah 5: Elektronik (Sambungan)
Bahagian ini menunjukkan pendawaian komponen yang berlainan sama sekali. Ia juga menunjukkan ke pin mana di setiap komponen yang dihubungkan ke Arduino.
Langkah 6: Pengaturcaraan
Bahagian ini akan menerangkan logik pengaturcaraan di sebalik mesin Menyusun Bin.
Program ini terbahagi kepada 4 langkah, seperti berikut:
- Memulakan sistem
- Periksa kehadiran objek
- Periksa jenis objek yang ada
- Kotak Pindah
Untuk penerangan terperinci mengenai setiap langkah, lihat di bawah:
Langkah 1 Memulakan sistem
Panel LED (3) - set LED Kalibrasi (merah) TINGGI, Siap LED (hijau) RENDAH, Objek hadir (kuning) RENDAH
Periksa motor stepper pada kedudukan awal
-
Jalankan ujian sensor ultrasonik untuk mengukur jarak dari sisi ke dinding kotak
- Kedudukan awal == 0 >> Kemas kini nilai Ready LED HIGH dan Calibrating LED LOW -> langkah 2
-
Kedudukan awal! = 0 >> nilai bacaan digital sensor ultrasonik dan berdasarkan nilai sensor:
- Kemas kini nilai LED bergerak motor TINGGI.
- Jalankan kotak bergerak sehingga nilai kedua-dua sensor ultrasonik <nilai ambang.
Kemas kini nilai kedudukan awal = 1 >> Kemas kini nilai LED Siap TINGGI dan motor bergerak RENDAH dan Mengkalibrasi RENDAH >> langkah 2
Langkah 2
Periksa kehadiran objek
Jalankan pengesanan Objek Ultrasonik
- Objek hadir == 1 >> Kemas kini nilai Objek yang hadir LED TINGGI >> Langkah 3
- Objek hadir == 0 >> Jangan buat apa-apa
Langkah 3
Periksa jenis objek yang ada
Jalankan pengesanan sensor Induktif
- inductiveState = 1 >> Langkah 4
- inductiveState = 0 >> Langkah 4
Langkah 4
Kotak Pindah
Jalankan operasi Motor
-
induktifState == 1
Kemas kini LED bergerak motor TINGGI >> Jadikan motor bergerak ke kiri, (kemas kini kedudukan awal = 0) kelewatan dan bergerak ke belakang ke kanan >> Langkah 1
-
induktifState == 0
Kemas kini LED bergerak motor TINGGI >> Buat motor bergerak ke kanan, (kemas kini kedudukan awal = 0), tunda dan pusing ke belakang ke kiri >> Langkah 1
Fungsi
Seperti yang dapat dilihat dari logik pengaturcaraan, program ini berfungsi dengan menjalankan fungsi dengan tujuan tertentu. Sebagai contoh, langkah pertama adalah menginisialisasi sistem yang berisi fungsi "Periksa motor stepper pada posisi awal". Langkah kedua kemudian memeriksa keberadaan objek yang dengan sendirinya adalah fungsi lain (fungsi "Pengesanan Objek Ultrasonik"). Dan sebagainya.
Selepas langkah 4, program ini telah dijalankan sepenuhnya dan akan kembali ke langkah 1 sebelum berjalan lagi.
Fungsi yang digunakan dalam badan utama ditentukan di bawah.
Mereka masing-masing:
- Ujian induktif ()
- moveBox (keadaan induktif)
- ultrasonikObjectDetection ()
// Periksa sama ada objek itu logam atau tidak
bool inductiveTest () {if (digitalRead (inductiveSwitchRight) == 1 || digitalRead (inductiveSwitchLeft == 0)) {kembali benar; lain {kembali palsu; }} void moveBox (bool inductiveState) {// Kotak ke kiri apabila logam dikesan dan inductiveState = true if (inductiveState == 0) {stepper.moveTo (step); // kedudukan rawak hingga akhir untuk menguji stepper.runToPosition (); kelewatan (1000); stepper.moveTo (0); stepper.runToPosition (); kelewatan (1000); } lain jika (inductiveState == 1) {stepper.moveTo (-steps); // kedudukan rawak hingga akhir untuk menguji stepper.runToPosition (); kelewatan (1000); stepper.moveTo (0); // kedudukan rawak hingga akhir untuk menguji stepper.runToPosition (); kelewatan (1000); }} ultrasonik booleanObjectDetection () {durasi panjang1, jarak1, tempohTemp, jarakTemp, purataJarak1, purataDistanceTemp, purataDistanceOlympian1; // Tentukan bilangan ukuran untuk mengambil jarak jauhMaks = 0; jarak jauhMin = 4000; jarak jauhJumlah = 0; untuk (int i = 0; i jarakMax) {jarakMax = jarakTemp; } jika (jarakTemp <jarakMin) {jarakMin = jarakTemp; } jarakTotal + = jarakTemp; } Serial.print ("Sensor1 maxDistance"); Serial.print (jarakMax); Serial.println ("mm"); Serial.print ("Sensor1 minDistance"); Serial.print (jarakMin); Serial.println ("mm"); // Ambil jarak purata dari bacaan purataJarak1 = jarakJumlah / 10; Serial.print ("Sensor1 purataDistance1"); Serial.print (purata Jarak1); Serial.println ("mm"); // Keluarkan nilai pengukuran tertinggi dan terendah untuk mengelakkan rata-rata bacaan yang keliruDistanceTemp = jarakTotal - (jarakMaks + jarakMin); purataDistanceOlympian1 = purataDistanceTemp / 8; Serial.print ("Sensor1 purataDistanceOlympian1"); Serial.print (purataJarakOlympian1); Serial.println ("mm");
// Tetapkan semula nilai temp
jarakJumlah = 0; jarakMaks = 0; jarakMin = 4000; jangka masa panjang2, jarak2, purataJarak2, purataJarakOlympian2; // Tentukan bilangan pengukuran yang perlu dilakukan (int i = 0; i jarakMax) {jarakMaks = jarakTemp; } jika (jarakTemp <jarakMin) {jarakMin = jarakTemp; } jarakTotal + = jarakTemp; } Serial.print ("Sensor2 maxDistance"); Serial.print (jarakMax); Serial.println ("mm"); Serial.print ("Sensor2 minDistance"); Serial.print (jarakMin); Serial.println ("mm"); // Ambil jarak purata dari bacaan purataJarak2 = jarakJumlah / 10; Serial.print ("Sensor2 purataDistance2"); Serial.print (purata Jarak2); Serial.println ("mm"); // Keluarkan nilai pengukuran tertinggi dan terendah untuk mengelakkan rata-rata bacaan yang keliruDistanceTemp = jarakTotal - (jarakMaks + jarakMin); purataDistanceOlympian2 = purataDistanceTemp / 8; Serial.print ("Sensor2 averageDistanceOlympian2"); Serial.print (purataDistanceOlympian2); Serial.println ("mm"); // Tetapkan semula nilai temp jarakTotal = 0; jarakMaks = 0; jarakMin = 4000; jika (purataDistanceOlympian1 + purataDistanceOlympian2 <kosongBoxDistance) {kembali benar; } lain {kembali palsu; }}
Badan Utama
Badan utama mengandungi logik yang sama yang dijelaskan di bahagian atas bahagian ini, tetapi ditulis dalam kod. Fail ini boleh dimuat turun di bawah.
Amaran
Banyak ujian dilakukan untuk mencari pemalar: jarak kosongBox, langkah-langkah dan kelajuan maksimum dan pecutan dalam persediaan.
Langkah 7: Kemungkinan Penambahbaikan
- Kami memerlukan maklum balas mengenai kedudukan kotak untuk memastikan bahawa ia berada di posisi yang tepat untuk memilih objek pada awalnya. Pilihan yang berbeza tersedia untuk menyelesaikan masalah tetapi yang mudah adalah menyalin sistem yang kami dapati dalam pencetak 3D menggunakan suis di salah satu hujung kotak.
-Sebab masalah yang kami dapati dengan pengesanan ultrasonik, kami dapat mencari beberapa alternatif untuk fungsi tersebut: KY-008 Laser dan Laser Detector (gambar), sensor kapasitif.
Langkah 8: Mengatasi Faktor
Projek ini berfungsi seperti yang dijelaskan dalam instruksional tetapi perhatian khusus harus dilakukan semasa langkah-langkah berikut:
Penentukuran Sensor Ultrasonik
Sudut di mana sensor ultrasonik ditempatkan berkaitan dengan objek yang mereka harus mengesan adalah sangat penting untuk fungsi prototaip yang betul. Untuk projek ini, sudut 12.5 ° hingga normal dipilih untuk orientasi sensor ultrasonik tetapi sudut terbaik harus ditentukan secara eksperimen dengan merakam bacaan jarak menggunakan pelbagai objek.
Sumber kuasa
Kuasa yang diperlukan untuk pemacu motor stepper DRV8825 ialah 12V dan antara 0.2 dan 1 Amp. Arduino juga dapat digerakkan dengan maksimum 12V dan 0.2 Amp dengan menggunakan input jack pada Arduino. Walau bagaimanapun, perlu diberi perhatian khusus sekiranya menggunakan sumber kuasa yang sama untuk pemandu motor Arduino dan stepper. Jika digerakkan dari soket kuasa biasa yang menggunakan misalnya bekalan kuasa AC / DC 12V / 2A, harus ada pengatur voltan dan dioda di litar sebelum kuasa dimasukkan ke pemacu motor arduino dan stepper.
Menjemput Kotak
Walaupun projek ini menggunakan motor stepper yang dalam keadaan normal kembali ke posisi awal dengan ketepatan yang tinggi, adalah baik untuk mempunyai mekanisme homing sekiranya berlaku kesalahan. Projek ini tidak mempunyai mekanisme homing tetapi cukup mudah untuk melaksanakannya. Untuk ini, suis mekanikal pada kedudukan awal kotak harus ditambahkan sehingga apabila kotak menyentuh suis, ia tahu ia berada di kedudukan rumahnya.
Pemacu Stepper DRV8825 Tuning
Pemandu stepper memerlukan penalaan untuk bekerja dengan motor stepper. Ini dilakukan secara eksperimen dengan memutar potensiometer (skru) pada cip DRV8825 sehingga jumlah arus yang sesuai dibekalkan ke motor. Oleh itu, putar skru potensiometer sedikit sehingga motor bertindak secara ramping.
Langkah 9: Kredit
Projek ini dilakukan sebagai sebahagian daripada kursus mekatronik pada tahun akademik 2018-2019 untuk Bruface Master di Université Libre de Bruxelles (ULB) - Vrije Universiteit Brussel (VUB).
Penulis adalah:
Maxime Decleire
Lidia Gomez
Markus Poder
Adriana Puentes
Narjisse Snoussi
Terima kasih khas kepada penyelia kami Albert de Beir yang membantu kami sepanjang projek ini juga.
Disyorkan:
Kata Jam (Susun atur Jerman): 8 Langkah
Kata Jam (Tata Letak Jerman): Hai, ich möchte Euch hier mal mein letztes Projekt vorstellen. Ich habe eine Uhr gebaut. Allerdings keine " normale " Uhr, sondern eine Word Jam. Zu solchen Bastelprojekten gibt es hier zwar schon ein paar Artikel, aber trotzdem möchte yang
Menggunakan Python untuk Belajar Susun Atur Papan Kekunci Bukan Bahasa Inggeris: 8 Langkah
Menggunakan Python untuk Belajar Susun Atur Papan Kekunci Bukan Bahasa Inggeris: Hai, Saya Julien! Saya seorang pelajar sains komputer dan hari ini saya akan menunjukkan kepada anda bagaimana anda boleh menggunakan Python untuk mengajar sendiri susun atur papan kekunci bahasa bukan Inggeris. Banyak pembelajaran bahasa berlaku dalam talian pada masa kini, dan satu perkara yang dapat dilakukan oleh
Z80 MBC2 - Susun semula QP / M Bios dan Loader: 6 Langkah
Z80 MBC2 - Susun semula QP / M Bios dan Loader: Sekiranya, seperti saya, anda mendapati diri anda berada dalam kedudukan di mana anda perlu menyusun semula bios QP / M untuk MBC2 anda - maka begitulah cara anda melakukannya. prosesnya, bagaimana menyusun semula versi yang ada. Terserah anda untuk membuat perubahan pada Bios sebenarnya
RoboBin -- Tong Sampah Sampah: 6 Langkah (dengan Gambar)
RoboBin || Tong Sampah Sampah: RoboBin adalah tong sampah yang menyimpan sampah semasa membuangnya. Ini bermakna anda boleh membuang sampah tanpa harus bangun untuk membuang sesuatu. Mari bermula Bagaimana ia berfungsi Robo bin berfungsi dengan solenoid yang menolak penutup tong sampah ketika
Lembaran Susun Atur Papan Roti Solderless (pasang dan Mainkan Elektronik): 3 Langkah (dengan Gambar)
Lembaran Tata Letak Solderless Breadboard (plug and Play Electronics): Berikut adalah sistem yang menyeronokkan yang direka untuk menguruskan beberapa sakit kepala yang terlibat dalam papan roti. Ini adalah sekumpulan fail templat yang mudah dibuat dengan skala dengan komponen elektronik dunia nyata. Dengan menggunakan program melukis vektor, anda hanya menggerakkan c