Isi kandungan:

Sorter Bin - Kesan dan Susun Sampah Anda: 9 Langkah
Sorter Bin - Kesan dan Susun Sampah Anda: 9 Langkah

Video: Sorter Bin - Kesan dan Susun Sampah Anda: 9 Langkah

Video: Sorter Bin - Kesan dan Susun Sampah Anda: 9 Langkah
Video: MAK SAYA LAGI GARANG DARI ULAR🤣! 2024, November
Anonim
Image
Image
Bagaimana ia berfungsi
Bagaimana ia berfungsi

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

Bagaimana ia berfungsi
Bagaimana ia berfungsi
Bagaimana ia berfungsi
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

Image
Image
Reka Bentuk Mekanikal
Reka Bentuk Mekanikal
Reka Bentuk Mekanikal
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)

Elektronik (Sambungan)
Elektronik (Sambungan)
Elektronik (Sambungan)
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

Pengaturcaraan
Pengaturcaraan

Bahagian ini akan menerangkan logik pengaturcaraan di sebalik mesin Menyusun Bin.

Program ini terbahagi kepada 4 langkah, seperti berikut:

  1. Memulakan sistem
  2. Periksa kehadiran objek
  3. Periksa jenis objek yang ada
  4. 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

Kemungkinan Penambahbaikan
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: