Isi kandungan:

The RADbot: 7 Langkah
The RADbot: 7 Langkah

Video: The RADbot: 7 Langkah

Video: The RADbot: 7 Langkah
Video: How To Draw A Rabbit From Numbers 200 @jellydrawart 2024, Oktober
Anonim
The RADbot
The RADbot

Projek oleh Jackson Breakell, Tyler McCubbins dan Jakob Thaler untuk EF 230

Di Marikh, angkasawan akan mengalami berbagai bahaya, mulai dari suhu yang melampau hingga ribut debu. Salah satu faktor yang sering diabaikan adalah bahaya yang ditunjukkan oleh radioisotop kuat yang berada di permukaan planet. RADbot memberikan bantuan untuk menjelajahi angkasawan di permukaan Marikh dengan mengenal pasti sampel batu dengan aktiviti tinggi ketika bergerak, dan juga mempunyai fitur keselamatan yang diprogramkan yang menggunakan sensor tebing, sensor cahaya, sensor bumper dan kamera, mencegah robot dari kerosakan di kawasan Martian yang tidak kenal ampun. Selain memberi amaran kepada angkasawan tentang kemungkinan bahaya radioaktif di permukaan, fitur lokasi sampel radioaktif robot dapat dilaksanakan sebagai alat untuk mengenal pasti kawasan yang dapat menyimpan deposit besar Uranium dan aktinida lain. Angkasawan dapat melombong unsur-unsur ini, memperkaya mereka dengan cukup dan menggunakannya dalam reaktor nuklear dan penjana termoelektrik, yang dapat membantu memberi kuasa kepada sebuah koloni kekal yang dapat bertahan sendiri di planet ini.

Tidak seperti rover Mars yang biasa, reka bentuk kami menampilkan komponen luar rak dan tanda harga yang berpatutan. Dengan syarat anda mempunyai dana dan keinginan, anda boleh membuatnya sendiri dengan mengikuti panduan ini. Sila baca untuk mengetahui cara membuat RADbot anda sendiri.

Langkah 1: Memperolehi Bahagian dan Bahan yang Diperlukan

Memperolehi Bahagian dan Bahan yang Diperlukan
Memperolehi Bahagian dan Bahan yang Diperlukan
Memperolehi Bahagian dan Bahan yang Diperlukan
Memperolehi Bahagian dan Bahan yang Diperlukan
Memperolehi Bahagian dan Bahan yang Diperlukan
Memperolehi Bahagian dan Bahan yang Diperlukan

Apa yang anda perlukan untuk memulakan (Gambar diletakkan mengikut urutan yang disenaraikan)

1. One Roomba (mana-mana model yang lebih baru)

2. Satu Kaunter Geiger-Mueller

3. Satu Raspberry Pi

4. Satu kamera papan dengan soket USB

5. Satu kabel USB mikro ke USB

6. Satu kabel USB ke USB

7. Satu sampel radioaktif yang mencukupi (~ 5μSv atau lebih tinggi)

8. Satu komputer dengan Matlab dipasang

9. Pelekat (Pita saluran lebih disukai agar mudah ditanggalkan)

Langkah 2: Mengkonfigurasi Kaunter Kamera dan Geiger-Muller

Mengkonfigurasi Kaunter Kamera dan Geiger-Muller
Mengkonfigurasi Kaunter Kamera dan Geiger-Muller

Sekarang anda mempunyai semua bahan yang diperlukan untuk membuat RADbot, kami akan mulakan dengan meletakkan kamera sehingga dapat membaca aktiviti di kaunter. Letakkan kaunter Geiger-Muller sedekat mungkin dengan hujung Roomba, dan pastikan sensornya tidak tersekat. Pasang kaunter di tempatnya dengan kuat dengan pelekat yang anda pilih, dan terus pasang kamera untuk menghadapnya. Letakkan kamera sedekat mungkin ke layar kaunter untuk mengelakkan input luar mempengaruhi program, dan selamatkan di tempat sebaik sahaja anda merasa selesa. Kami mengesyorkan anda menyimpan pengaman kamera untuk yang terakhir, kerana, apabila kod anda selesai, anda dapat memaparkan gambar dari kamera ke komputer anda, memungkinkan anda untuk meletakkan kamera berdasarkan bidang pandangannya. Setelah kamera dan kaunter dipasang dengan baik, pasangkan kamera ke salah satu input USB dari Raspberry Pi dengan kabel USB ke USB, dan pasangkan Raspberry Pi ke Roomba dengan kabel USB mikro ke USB.

Langkah 3: Sambungkan ke Roomba Anda dan Buat Kod Sensor Cahaya

Sambungkan ke Roomba Anda dan Buat Kod Sensor Cahaya
Sambungkan ke Roomba Anda dan Buat Kod Sensor Cahaya

Pertama, muat turun kotak alat Roomba dari laman web EF 230, dan pastikan meletakkannya ke dalam folder yang ditentukan. Untuk menyambung ke Roomba anda, cukup merujuk pelekat yang dilekatkan pada Raspberry Pi dan masukkan "r = roomba (x)" ke dalam tetingkap arahan, tanpa tanda petik, dan di mana x bermaksud nombor Roomba. Roomba harus memainkan nada, dan butang bersih harus menunjukkan cincin hijau di sekelilingnya. Mulakan kod anda dengan pernyataan "sementara", dan lihat sensor cahaya seperti yang terdapat dalam senarai sensor. Buka senarai sensor dengan mengetik "r.testSensors" di tetingkap arahan.

Berdasarkan warna objek kami, yang menentukan seberapa banyak cahaya dipantulkan, tetapkan syarat untuk pernyataan sementara yang akan dilaksanakan sebagai fungsi>. Dalam kes kami, kami menetapkan sensor cahaya depan untuk menjalankan kod dalam pernyataan sementara jika bacaan pada sensor cahaya tengah kiri atau kanan> 25. Untuk pernyataan yang boleh dilaksanakan, tetapkan kelajuan Roomba untuk melambatkan dengan menaip "r.setDriveVelocity (x, y)" di mana x dan y adalah halaju roda kiri dan kanan masing-masing. Masukkan pernyataan "lain", agar Roomba tidak memperlahankan nilai yang tidak ditentukan, dan masukkan perintah kelajuan pemacu yang ditetapkan lagi, kecuali dengan kelajuan yang berbeza. Tamatkan pernyataan sementara dengan "akhir". Segmen kod ini akan membuat Roomba mendekati objek, dan melambatkan setelah mencapai julat tertentu untuk meminimumkan kesan.

Terlampir adalah tangkapan skrin kod kami, tetapi silakan mengeditnya agar sesuai dengan parameter misi anda.

Langkah 4: Buat Kod Bumper

Buat Kod Bumper
Buat Kod Bumper

Oleh kerana Roomba semakin perlahan, ia akan meminimumkan kesannya pada objek, walaupun tidak begitu banyak sehingga tidak memicu bumper fizikal. Untuk segmen kod ini, mulakan sekali lagi dengan gelung "while", dan tetapkan ungkapannya menjadi benar. Untuk pernyataan, tetapkan pemboleh ubah T sama dengan keluaran bumper, sama ada 0 atau 1, untuk false dan true. Anda boleh menggunakan "T = r.getBumpers" untuk ini. T akan dihasilkan sebagai struktur. Masukkan pernyataan "if", dan tetapkan ungkapannya untuk substruktur T. depan sama dengan 1, dan tetapkan pernyataan tersebut untuk menetapkan kelajuan pemacu pada 0, menggunakan "r.setDriveVelocity (x, y)" atau "r.stop ". Masukkan "break" supaya Roomba dapat bergerak setelah syarat dalam kod berikutnya dipenuhi. Tambahkan "else", dan tetapkan pernyataannya untuk menetapkan kelajuan pemacu ke kelajuan pelayaran normal Roomba.

Terlampir adalah tangkapan skrin kod kami, tetapi silakan mengeditnya agar sesuai dengan parameter misi anda.

Langkah 5: Buat Kod untuk Membaca Skrin Kaunter, Mentafsirkannya dan Mundur Dari Sumber

Buat Kod untuk Membaca Skrin Pembilang, Mentafsirkannya dan Mundur Dari Sumber
Buat Kod untuk Membaca Skrin Pembilang, Mentafsirkannya dan Mundur Dari Sumber

Inti projek kami adalah kaunter Geiger-Muller dan segmen kod berikut digunakan untuk menentukan apa maksud data pada layar menggunakan kamera. Memandangkan skrin kaunter kami berubah warna berdasarkan aktiviti sumbernya, kami akan mengatur kamera untuk menafsirkan warna layar. Mulakan kod anda dengan menetapkan pemboleh ubah yang sama dengan perintah "r.getImage". Pemboleh ubah akan mengandungi susunan nilai warna 3d gambar yang diambilnya dengan warna merah, hijau dan biru. Tetapkan pemboleh ubah sama dengan purata matriks warna masing-masing dengan menggunakan perintah "mean (mean (img1 (:,:, x)))" di mana x adalah bilangan bulat dari 1 hingga 3. 1, 2 dan 3 mewakili merah, hijau dan biru masing-masing. Seperti semua arahan yang dirujuk, jangan sertakan tanda petik.

Mintalah program berhenti selama 20 saat menggunakan "jeda (20)" sehingga pembilang dapat memperoleh bacaan sampel yang tepat, dan kemudian mulakan pernyataan "jika". Kami telah mengeluarkan bip Roomba beberapa kali dengan menggunakan "r.beep" sebelum memaparkan menu dengan teks, "Radioisotop dijumpai! Awas!" ini dapat dicapai dengan perintah "waitfor (helpdlg ({'texthere'})". Setelah mengklik ok, Roomba akan terus mengikuti sisa kod dalam pernyataan "if". Minta Roomba memandu di sekitar sampel menggunakan gabungan perintah "r.moveDistance" dan "r.turnAngle". Pastikan untuk mengakhiri pernyataan if anda dengan "akhir".

Terlampir adalah tangkapan skrin kod kami, tetapi silakan mengeditnya agar sesuai dengan parameter misi anda.

Langkah 6: Buat Kod Sensor Tebing

Buat Kod Sensor Tebing
Buat Kod Sensor Tebing

Untuk membuat kod untuk menggunakan sensor tebing bawaan Roomba, mulakan dengan gelung "while", dan tetapkan ekspresinya menjadi benar. Tetapkan pemboleh ubah agar sama dengan "r.getCliffSensors", dan ini akan menghasilkan struktur. Mulakan pernyataan "if", dan tetapkan pemboleh ubah "X.leftFront" dan "X.rightFront" dari struktur menjadi lebih besar daripada beberapa nilai yang telah ditentukan, di mana "X" adalah pemboleh ubah yang anda pilih perintah "r.getCliffSensors" ke sama dengan. Dalam kes kami, kami menggunakan 1000, kerana sehelai kertas putih digunakan untuk mewakili tebing, dan, ketika sensor menghampiri, kertas itu, nilainya meningkat menjadi lebih dari 1000, memastikan kod hanya akan dapat dilaksanakan apabila tebing dikesan. Tambahkan perintah "break" selepas itu, dan kemudian masukkan pernyataan "lain". Untuk pernyataan "else", yang akan dilaksanakan jika tidak ada tebing yang dikesan, tetapkan halaju pemacu ke kelajuan pelayaran normal untuk setiap roda. Sekiranya Roomba mengesan tebing, "break" akan dijalankan, dan kemudian kod di luar loop sementara akan dijalankan. Setelah meletakkan gelung "akhir" untuk gelung "if" dan "while", tetapkan Roomba untuk bergerak ke belakang menggunakan arahan jarak bergerak. Untuk memberi amaran kepada angkasawan bahawa tebing berada di dekatnya, tetapkan halaju pemacu setiap roda, x dan y dalam perintah halaju pemacu, menjadi a dan -a, dengan a adalah nombor nyata. Ini akan menyebabkan Roomba berputar, memberi amaran kepada angkasawan ke tebing.

Terlampir adalah tangkapan skrin kod kami, tetapi silakan mengeditnya agar sesuai dengan parameter misi anda.

Langkah 7: Kesimpulannya

Kesimpulannya
Kesimpulannya

Matlamat utama RADbot di Marikh adalah untuk membantu angkasawan menjelajah dan menjajah planet merah. Dengan mengenal pasti sampel radioaktif di permukaan, harapan kami adalah robot, atau rover, dalam hal ini, dapat benar-benar menjaga keselamatan angkasawan dan membantu mengenal pasti sumber kuasa untuk pangkalan mereka. Setelah mengikuti semua langkah ini, dan mungkin dengan beberapa percubaan dan ralat, RADbot anda harus berjalan lancar. Letakkan sampel radioaktif di suatu tempat di dalam kawasan ujian anda, laksanakan kod anda, dan perhatikan rover melakukan apa yang dirancang untuk dilakukan. Nikmati RADbot anda!

-Pasukan EF230 RADbot

Disyorkan: