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

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Komponen dan Perlengkapan

Nama BagianJumlah
Walabot Creator1
Arduino MKR10001
Raspberry Pi 3 Model B1
Amazon Alexa Amazon Echo1
SparkFun Motor Driver - Dual TB6612FNG (1A)1
Bingkai Tank (berisi 2 motor DC brush)1
Servo (Tower Pro MG996R)3
Kit pembangun logam1
Motor stepper + driver1
Aki LiPo 7.4V1
Charger aki LiPo 7.4V1
Potensiometer rotary (generik)1
LED (generik)2
Kail pancing1
Plastik tipis atau kertas keras untuk tutup1
Rangkaian BEC 5V1
Resistor 10k ohm1
Resistor 22.1k ohm1
Resistor 2.21k ohm1
Transistor Darlington Daya Tinggi1
Penggaris kayu 30 cm2
Voltmeter1
Penerima pengirim RC1
Bir1

Alat dan Mesin yang Diperlukan

Pemoles solder (generik)
Pistolet lem panas (generik)
Alat gergaji
Bor
Rasp

Aplikasi dan Layanan Online

Arduino IDE
Amazon Web Services AWS IoT
Amazon Web Services AWS Lambda
Amazon Alexa Alexa Skills Kit
Walabot SDK
Python

Tentang Proyek

Abstrak

Ada hal-hal yang di dalam hati setiap pria ingin miliki. Menggabungkan bir dan tank adalah salah satunya! Proyek ini akan tentang hal ini, tank yang dikontrol suara yang mengantarkan bir kepada Anda dengan fungsi «ikuti saya» otonom atau dengan kontrol RC. Mari kita bangun tank bir impian kita!

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Chassis

Kami memerlukan basis yang baik untuk tank. Saya menemukan chassis ini di banggood. Ini cukup murah dan terlihat sangat keren sehingga saya perlu membeli satu.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Tepat setelah menerima produk datang masalah pertama. Karena kemasan yang tidak tepat, iinya mengalami cedera serius selama pengiriman.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Butuh banyak jam dan banyak lem tetapi kebanyakan saya dapat memperbaikinya.

Kerem

Chassis tank berisi baik motor maupun gearbox, jadi langkah berikutnya adalah mencari tahu bagaimana melayani bir. Setelah banyak ide, saya menemukan bahwa cara terbaik dan paling keren untuk melakukannya adalah menyembunyikan bir lalu mengangkatnya menggunakan kerem. Ini adalah desain dasar yang saya buat:

Saya menggunakan kit pembangun logam lama saya karena saya perlu kerangka yang kuat tetapi mudah dimodifikasi. Kerem terhubung ke motor stepper dengan kabel pancing. Motor stepper 28byj-48 hebat untuk tujuan ini. Ini tidak cepat tetapi dapat dengan mudah mengangkat kerem dan bir. Sebenarnya motor ini sangat kuat sehingga jika saya tidak memberhentikannya tepat waktu ia akan memutuskan kabel pancing.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Ia bekerja luar biasa, namun kerangka tidak cukup kuat dan mulai membungkuk sangat awal. Untuk mengatasi masalah ini saya perlu meningkatkan integritas struktural. Saya menggunakan dua, penggaris kayu keras panjang 30 cm dan beberapa bagian tambah untuk membuatnya lebih kuat. Setelah beberapa pemboran, penggergaji dan pengasahan inilah versi berikutnya:

Seperti yang Anda lihat modifikasi memecahkan masalah membungkuk dan sangat stabil.

Kotak

Walabot (versi Developer) akan menjadi 'mata' tank. Tempat depan memiliki bagian pemegang untuk Walabot. Saya memiliki bagian logam yang ukurannya sempurna untuk menggunakan pemegang magnetik Walabot. Saya juga membuat bentuk logo Walabot dari lem panas untuk mencegah Walabot berputar pada bagian bundar:

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Pemasangan magnetik hebat karena saya dapat dengan mudah menggunakan satu Walabot dalam banyak proyek tanpa penguraian yang serius dan juga cukup kuat.

Saya mulai membuat tutup di sekitar kerangka untuk menyembunyikan bagian. Saya menggunakan kertas kardus hitam dan lembar plastik untuk tutup.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Pada titik ini bagian depan dan tengah belum tertutup. Saya juga membutuhkan luang di atas untuk menyembunyikan bir sepenuhnya. Untuk menggerakkan luang saya menggunakan dua servo, beberapa lem biru dan beberapa lem isolasi. Pintu atas ini hanya untuk desain, ini tidak benar-benar melindungi bir. Namun ini sangat keren ketika terbuka dan mengangkat bir.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Pintu terbuat dari dua lembar plastik, kayu stik dan beberapa kertas yang dilekatkan dan digulung, dilekatkan bersama dengan lem panas. Ini bukan hal yang paling indah, tetapi dalam kehidupan nyata tidak terlihat buruk seperti itu. Saya mewarnai semuanya hitam. Dalam kehidupan nyata jauh lebih sulit untuk melihat perbedaan antara bagian hitam.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Kerem - Vol. 2

Mari kita kembali ke kerem sekali lagi. Saya membutuhkan satu hal lagi untuk menggunakannya dengan andal: umpan balik.

Pada awalnya saya ingin menggunakan umpan balik biner sederhana untuk ini. Saat kerem dalam keadaan diturunkan, ia akan menutup rangkaian. Saat diangkat ia akan membuka: Baut dan pegas di lingkaran merah akan menjadi saklar itu. Ia akan menggunakan timer untuk menentukan posisi atas.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Itu tidak terlalu canggih tetapi ide itu bekerja. Sayangnya itu tidak andal sama sekali sehingga bisa dengan mudah mengakibatkan kerusakan kerem.

Saya menemukan solusi lain, yang jauh lebih baik, yang di persegi panjang biru. Saya melekatkan potensiometer 10K ke ujung poros kerem, jadi saya memiliki umpan balik yang andal tentang sudut saat ini kerem. Sangat mudah untuk menentukan posisi atas dan bawah dengan cara ini. FYI: hingga titik ini saya menggunakan Arduino Uno tua saya untuk pengujian karena proto shield-nya sangat praktis.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Sebenarnya saya sangat suka bagian umpan balik ini. Ini tidak direncanakan tetapi menambahkan kehangatan ekstra pada penampilan tank.

Rangkiran

Baiklah, badan tank selesai tetapi kita membutuhkan beberapa elektronik untuk membuatnya bergerak!

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Saya juga menempatkan gambar ini ke bagian Skematik, tetapi di sini Anda dapat memperbesarnya tanpa mengunduh. Rangkiran mungkin terlihat sedikit kompleks pada awalnya tetapi sebenarnya cukup sederhana. Catatan yang dilampirkan harus membantu dengan apapun yang membutuhkan penjelasan.

Proyek ini tidak menggunakan fungsi WiFi dari Arduino MKR1000 saat ini, tetapi sejauh saya tahu, Anda tidak bisa hanya menggantinya dengan Arduino Uno jika Anda ingin mengontrol tank menggunakan pengirim RC. Proyek saya menggunakan 3 saluran untuk mengontrol kecepatan, belok dan kerem. Saya membutuhkan 3 pin dengan kemampuan interupsi eksternal. Arduino Uno hanya memiliki 2 pin untuk tujuan ini. Kita membutuhkan pin tersebut untuk membaca nilai PWM dari saluran yang bersesuaian penerima RC.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Saya membangun rangkiran pada papan PCB proto. Ini cukup padat. LED biru di kiri akan menjadi LED 'built-in' sederhana untuk debugging, tetapi saya tidak pernah benar-benar menggunakannya. Konektor hijau digunakan untuk menghubungkan aki LiPo.

Sebagian besar kabel yang terhubung ke papan ini berada di bagian atas tank. Ternyata untuk melekatkan papan di sana untuk menghindari 'neraka kabel'.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Seperti yang Anda lihat pada gambar, awalnya saya memulai dengan Raspberry Pi Zero W, tetapi karena kekurangan daya saya beralih untuk menggunakan Raspberry Pi 3 B.

Itu bekerja sempurna pada titik ini tetapi saya menambahkan fitur keren ekstra: lampu depan tersembunyi. Bagian plastik hitam di kanan dapat dengan mudah dipindahkan. Saya melekatkan servo untuk menggerakkannya ke atas dan bawah dan saya juga menggunakan satu segmen pita LED 12V. Menyalakan pita LED 12V dari aki LiPo 7.4V bukan ide bagus. Lampu akan sangat lemah. Saya mengganti LED tengah dengan kabel untuk membuat LED yang tersisa terang. Itu bekerja sempurna.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

LED depan dikontrol dengan pin yang sama seperti LED indikator biru. Saya harus sedikit memodifikasi papan dengan menambahkan beberapa header tambahan dan transistor padanya. Hasilnya luar biasa:

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Arduino - Hardware

Saya menggunakan Arduino MKR1000 untuk mengontrol tank. Ini adalah perangkat Arduino atau Arduino IDE terkecil dalam koleksi saya yang dapat menangani 3 interupsi eksternal dan memiliki cukup pin untuk proyek ini. Ini juga memiliki kemampuan WiFi tetapi saya tidak akan menggunakannya saat ini.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Tank membutuhkan 5 pin yang mampu PWM. 3 untuk servo dan 2 untuk motor. Jika Anda memeriksa kemampuan maka Anda akan melihat bahwa ada 12 pin yang mampu PWM. Itu cukup baik, kan? Ya dan tidak.

Pin 2-5 memiliki tanda ~. Saya percaya itu berarti hanya empat pin ini yang mampu membuat sinyal PWM hardware. Saya pikir pin lain hanya mampu membuat sinyal PWM perangkat lunak. Spesifikasi teknis tidak menulis tentang ini, namun ketika saya mendapatkan MKR1000 prototipe pertama saya, dokumentasi menyebutkan hanya 4 pin yang mampu PWM. Empat ini. Awalnya saya mengontrol servo luang melalui dua dari pin perangkat lunak PWM ini. Kombinasi pembuatan PWM perangkat lunak dan pembacaan sinyal PWM berbasis interupsi hardware menghasilkan masalah ini:

Saya memecahkan masalah ini dengan menggunakan pin PWM hardware untuk servo. Sayangnya saya harus menggunakan salah satu pin itu untuk servo pintu LED, karena pin hardware lainnya diperlukan untuk mengontrol motor. Berkat driver motor TB6612FNG, saya hanya membutuhkan dua pin PWM (dan 4 pin digital lainnya) untuk mengontrol motor. Servo 'pintu LED' lebih lambat dari yang lain jadi itu hanya membuat beberapa bunyi dengung tenang kadang-kadang. Menggunakan hanya satu pin PWM perangkat lunak daripada dua juga membantu. Di masa depan saya mungkin akan membangun ulang bagian itu untuk menggunakan beberapa cara lain untuk membuka pintu LED. Solenoid mungkin akan berhasil.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Arduino dapat mengukur tegangan aki dan kemudian mengirimkannya melalui serial. Selain itu, saya mengintegrasikan voltmeter sederhana di bagian belakang tank. Digunakan sebagai umpan balik untuk pengguna terkait status aki. Ini adalah rangkiran terpisah dan tidak dikontrol oleh Arduino.

Arduino - Kontrol Radio

MKR1000 memproses 3 sinyal PWM terpisah dengan interupsi eksternal. Waktu pulsa sinyal berada dalam kisaran sekitar 1000 dan 2000 us. Saluran pertama digunakan untuk menghitung variabel yang disebut motorSpeedBase. Ini adalah kecepatan dasar untuk motor dan dihitung seperti ini:

motorSpeedBase = (vertical_pulse_time - 1500) / 2; 

Untuk mengontrol motor saya menggunakan sinyal PWM 8 bit, jadi saya menskalakan nilai ke rentang -255 hingga 255. MKR1000 dapat lebih baik dari 8 bit tetapi lebih dari cukup untuk motor ini.

Variabel motorSpeedChange digunakan untuk belok dan dihitung dari saluran kedua. Dihitung sama seperti motorSpeedBase. Perbedaannya adalah pembagian dengan 3 bukan 2: Perbedaan ini membantu mengontrol tank.

motorSpeedChange = (horizontal_pulse_time - 1500) / 3; 

Saluran ke-3 digunakan oleh satu saklar. Ini mengontrol gerakan kerem dan pintu luang. Dihitung seperti ini:

elevated = state_switch_pulse_time < 1500; 

Nilainya adalah 1000 us saat dimatikan dan 2000 us saat dinyalakan. Hasilnya adalah bool.

Kecepatan motor akhir dihitung seperti ini:

int rightMotorSpeed = motorSpeedBase + motorSpeedChange; int leftMotorSpeed = motorSpeedBase - motorSpeedChange; 

Jika hasilnya lebih tinggi / lebih rendah dari nilai maksimum / minimum maka nilai akan diatur ke nilai max / min (255 atau -255). Pin yang terkait akan diperbarui berdasarkan nilai motorSpeed. Jika nilai kecepatan tidak mencapai nilai minimum maka motor tersebut akan dinonaktifkan.

Kerem dan luang ditangani oleh fungsi ini:

void handleCrane() { int craneValue = analogRead(CRANE_FEEDBACK_PIN); if (elevated) { if (craneValue < CRANE_ELEVATED_VALUE) { elevateCrane(); } else { disableTheCoils(); } openTheHatch(); } else { if (craneValue < CRANE_LOWERED_VALUE) { closeTheHatch(); disableTheCoils(); } else { dropCrane(); } } } 

Ia dimulai dengan memeriksa keadaan saat ini kerem. Jika perlu diangkat tetapi belum maka ia akan memperbarui servo pintu luang dan menggerakkan kerem ke atas. Jika harus diturunkan tetapi belum maka ia menurunkan kerem dan kemudian menutup luang. Coils motor stepper perlu dinonaktifkan di akhir proses karena mereka dapat secara serius memanas dan menguras aki jika kita membiarkan satu menyala.

Arduino - Komunikasi Raspberry Pi

Arduino terhubung dan mendapatkan daya dari Raspberry Pi dengan kabel USB - micro USB dan mereka berkomunikasi melalui serial. Raspberry akan mengontrol Arduino dengan perintah ini:

Perlu dicatat bahwa dalam kasus kontrol serial, Arduino menonaktifkan interupsi pada saluran RC 1 dan 2 tetapi tidak pada 3. Saluran 3 (saklar) digunakan sebagai saklar keamanan untuk menonaktifkan WalaBeer Tank jika mulai melakukan hal aneh dalam mode otonom.

Walabot

Inilah bagian tempat Walabot masuk. Walabot adalah sensor 3D yang menggunakan gelombang mikro untuk citra. Ia dapat melakukan hal-hal luar biasa seperti melihat melalui dinding, mendeteksi napas Anda dari jarak jauh, melihat dalam kegelapan dan sebagainya. Saya tidak ingin menulis halaman tentang kemampuan lainnya karena orang lain telah melakukan pekerjaan hebat melakukannya. Namun saya sangat merekomendasikan untuk membaca tentangnya.

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Saya akan menggunakan Walabot sebagai sensor navigasi tunggal pada tank. Untuk menggunakan Walabot dengan Raspberry Pi kita harus menginstal Walabot SDK terlebih dahulu. Anda dapat mengunduh SDK dari sini dan situs API Walabot akan membantu Anda menginstalnya. Ada banyak informasi dan contoh yang berguna di sana tentang cara menggunakan Walabot. Saya merekomendasikan untuk memeriksa situs.

Konsumsi daya Walabot antara 0.4-0.9A. Ini berarti secara default Raspberry Pi tidak dapat memberikan cukup energi untuk memberi daya pada Walabot. Untungnya ada cara untuk meningkatkan keluaran daya port USB rpi dengan menambahkan baris ini: `max_usb_current=1` ke /boot/config.txt. Sejauh saya tahu ini meningkatkan keluaran daya dari 600mA menjadi 1200mA.

Itu akan hebat tetapi di sini timbul masalah: Saya juga memberi daya pada Arduino dan servo dari Raspberry. Motor tank dan motor stepper diberi daya oleh aki jadi saya pikir tidak akan masalah. Namun itu memang masalah. Jika saya memulai Walabot dalam kondisi ini ia berhenti dengan pesan WALABOT_ERR_PROTOCOL. Mungkin terjadi brownout ketika saya mencoba memulainya.

Penguat daya dapat memberikan hingga 3A, jadi lebih dari cukup di sini. Walabot memiliki dua port micro USB. Port tengah akan membantu saya dalam situasi ini karena dapat diberi daya dari sana sambil berkomunikasi di yang lain. Untuk melakukan ini saya harus melakukan modifikasi dan membuka tutup Walabot untuk memindahkan jumper ini

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Setelah itu Walabot bekerja sempurna, tidak ada lagi WALABOT_ERR_PROTOCOL.

Logo di belakang (bagian halus adalah sisi depan) berisi empat magnet built-in yang sangat kuat. Mereka digunakan untuk dengan mudah melekatkan Walabot ke logam depan tank tanpa hardware tambahan.

Ikuti Saya

Salah satu 'poin jual' tank adalah mode ikuti saya. Jika Anda meminta tank bir untuk mengikuti Anda, maka ia akan melakukan yang terbaik dan mengikuti Anda. Setelah Anda sampai di tujuan Anda Anda hanya meminta bir di dalamnya. Ini adalah trik pesta yang hebat!

Walabot SDK menyediakan segala macam cara untuk berinteraksi dengan Walabot. Proyek saya menggunakan fungsi getTargets dengan mode Moving Target Identification (MTI). Digunakan untuk mendeteksi objek bergerak di depan Walabot. Dengan konfigurasi saya, getTargets akan mengembalikan maksimal 4 target dan akan melihat objek pada jarak maksimal 1,5 meter.

Target memiliki koordinat XYZ dan parameter amplitudo. Saya hanya menggunakan koordinat Y dan Z karena tinggi (X) tidak penting di sini. Masalahnya adalah tidak ada cara untuk mengetahui target mana yang mana.

Dalam versi awal, untuk menemukan manusia dalam daftar target saya membuat aturan: sebelum Anda memintanya untuk mengikuti Anda, Anda harus berdiri di depan Walabot pada jarak 80cm. Setelah itu kode saya mengasumsikan bahwa objek terdekat dengan amplitudo cukup tinggi adalah manusia. Jika manusia terdeteksi, semua yang harus dilakukan tank adalah menjaga manusia pada posisi yang diinginkan dengan bergerak.

Sayangnya itu tidak sempurna. Untungnya saya mendapatkan saran untuk pendekatan yang berbeda. Ini dimulai sama: Anda harus berdiri di depan Walabot pada jarak 80cm. Target terdekat ke tank akan dianggap sebagai manusia. Setelah itu, pada setiap iterasi posisi manusia akan menjadi target terdekat ke posisi sebelumnya. Jika jarak antara posisi baru dan lama terlalu jauh maka tank tidak akan memperbarui posisi manusia dan akan berhenti. Tank akan mencoba menemukan manusia di sekitar posisi lama jadi jika ia menemukan orang tersebut maka ia akan melanjutkan mengikuti dia. Ini adalah ide yang cukup sederhana.

Mari kita periksa beberapa kasus pada tampilan Arena. Tujuan tank adalah menjaga manusia di area target (persegi panjang merah). Biru adalah yang terdekat dan itu adalah manusia dalam kasus-kasus ini:

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Gambar-gambar ini adalah tangkapan layar dari tampilan Arena dari versi yang sedikit dimodifikasi dari demo Walabot-SensorTargets. Proyek saya tidak memerlukan dan jadi tidak memiliki GUI tetapi menggunakan prinsip yang sama. Saya merekomendasikan untuk memeriksa proyek demo lain dari halaman github mereka.

Gerakan dengan pengaturan saat ini tidak terlalu lancar. Tidak dapat maju dan belok dalam mode otonom pada saat yang sama. Alasan utamanya adalah frame rate Walabot. Ini sekitar 6 FPS dengan pengaturan saat ini. Ini berarti Raspberry mendapat satu pembaruan setiap 0,16 detik. Ini adalah masalah. Banyak hal dapat terjadi dalam 0,16 detik. Untuk mengatasi masalah ini saya memperlambat tank. Saya menggunakan kecepatan minimum yang mungkin untuk maju dan belok. Saya juga menghapus kombinasi belok dan maju karena gerakan-gerakan tersebut tidak andal dengan pengaturan jejak saya. Pada kecepatan lebih tinggi mereka melebihi banyak dan pada kecepatan lebih rendah mereka kurang andal dari versi saat ini.

Kontrol Suara

Dalam mode otonom saya membutuhkan cara keren untuk mengontrol tank. Saya menggunakan Amazon Alexa Skill Kit untuk melakukannya. Dalam versi awal saya menggunakannya dengan ngrok untuk mengontrol Raspberry secara langsung. Biasanya orang akan menggunakan versi Amazon Echo untuk melakukan ini, tetapi sayangnya saya tidak memiliki perangkat tersebut. Saya harus menggunakan echosim dan aplikasi Amazon Alexa dari Google Play untuk melakukan ini. Nama keterampilan adalah Beer Tank karena WalaBeer adalah sesuatu yang tidak dikenali Alexa. Beli bir, cinta bir, dll, tetapi tidak WalaBeer. Anda dapat menggunakan perintah ini untuk berinteraksi dengan Alexa:

Ini adalah video tentang dua kemampuan pertama:

Beberapa perintah suara dalam video mungkin berbeda dari perintah saat ini karena beberapa persyaratan selama proses penerbitan (misalnya: 'stop' berubah menjadi 'stop following me'). Mengontrol Raspberry Pi menggunakan Alexa sangat mudah, namun untuk mendapatkan pengetahuan untuk melakukan itu tidaklah mudah. Untuk pertama kalinya saya menggunakan ngrok dan sangat mudah untuk melakukan ini tetapi ngrok hanya bagus untuk tujuan pengujian. URL yang disediakan ngrok akan berubah setelah setiap restart dan ada masalah lain juga. Cerita pendek, saya membutuhkan solusi yang lebih baik.

Saya beralih untuk menggunakan AWS Lambda dan AWS IoT. Mereka sempurna untuk tujuan saya tetapi cukup sulit untuk menemukan informasi yang berguna tentang cara menggunakannya. Saya menemukan banyak tutorial parsial dan dokumentasi tetapi biasanya mereka kehilangan informasi penting dan/atau tidak bekerja. Akhirnya, saya menemukan channel YouTube Kurt Braun. Ia membuat tutorial yang luar biasa yang membantu saya BANYAK. Saya sangat merekomendasikan video-nya jika Anda ingin menggunakan AWS Lambda dan AWS IoT:

Video lain ini juga membantu saya ketika saya melakukan bagian eksperimen. Saya tidak akan masuk ke detail tentang konfigurasi Lambda dan AWS IoT, video-video ini berisi semua informasi yang diperlukan tentang topik ini.

Ia menggunakan Node-RED dalam video-nya. Itu adalah alat yang sangat berguna, namun saya perlu menggunakan Python daripada JavaScript. Amazon menyediakan SDK untuk Python, tetapi saya menggunakan Paho MQTT Client untuk membuat Raspberry Pi berlangganan ke pesan topik 'wbt' saya. Lebih mudah bagi saya untuk menggunakannya.

Akhirnya, inilah video tentang status saat ini prototipe:

Seperti yang Anda lihat mode «ikuti saya» bekerja cukup baik, tetapi tank sangat lambat dalam mode ini. Mungkin ia mampu kecepatan sedikit lebih tinggi tetapi saya ingin yakin bahwa ia tidak melakukan hal aneh. Memperlambat tank diperlukan karena pada kecepatan lebih tinggi ia dapat dengan mudah kehilangan saya, terutama saat ia belok. Saya memiliki beberapa ide bagaimana saya dapat secara signifikan meningkatkan kecepatan dalam mode «ikuti saya» tetapi itu akan memakan waktu dan mungkin beberapa hardware tambahan untuk mengimplementasikan solusi untuk itu.

Anda dapat mengakses keterampilan saya di sini dan ini adalah id-nya:

amzn1.ask.skill.a7453502-b1aa-47fa-a552-ed8e2c792b2e

Jika Anda ingin menerbitkan keterampilan Anda mungkin ide bagus untuk menggunakan autentikasi untuk membedakan perangkat. Untuk itu ikuti tutorial hebat ini.

Dibatalkan

Saya ingin menulis beberapa kata tentang bagian lain yang ada pada gambar «Sebagian besar elektronik terintegrasi di bagian atas». Saya bicara tentang ini:

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa
Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Ini adalah tachometer. Saya tidak menggunakannya dalam versi akhir, tetapi mereka masih ada.

Tachometer seperti ini terdiri dari dua bagian: kertas hitam dan putih pada roda utama dan sensor IR reflektif di depannya. Cahaya yang dipantulkan tergantung pada warna objek. Perbedaan sangat besar sehingga membedakan keadaan sangat mudah dan jadi Anda dapat dengan mudah menghitung kecepatan putaran. Satu masalah dari pengaturan ini adalah laju sampel yang rendah dalam kasus gerakan lambat, namun mereka bekerja cukup baik pada kecepatan lebih tinggi.

Tachometer bekerja hebat, tetapi saya menyadari bahwa saya tidak memerlukannya untuk proyek dan saya juga membutuhkan pin GPIO pada Arduino untuk tujuan lain. Inilah cerita mereka.

Kesimpulan

Hasil akhir hebat, berguna dan menyenangkan! Ini juga platform yang baik untuk proyek lain di masa depan. Dengan kerja keras saya berhasil membuat kontrol suara berfungsi dan Walabot terbukti menjadi sensor yang hebat untuk tujuan ini juga. Saya melihat banyak cara untuk meningkatkan tank ini jadi kemungkinan besar Anda akan melihat lebih banyak tentangnya di masa depan!

Ini adalah proyek terbaik dan paling sukses saya sejauh ini. Dan juga yang terpanjang. Untuk menjaga agar tidak menjadi lebih panjang lagi saya ingin mengucapkan terima kasih atas semua bantuan yang saya terima dan saya juga mengucapkan terima kasih telah membaca! Sebagai hadiah inilah gambar tentang anjing aneh:

Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & Alexa

Kode

Kode untuk Arduino dan Raspberry Pi

Repositori ini berisi kode yang berjalan pada MKR1000 dan Raspberry Pi 3 Bhttps://github.com/abysmalsb/Beer-Tank

Skematik

Jika saya tidak dapat menemukan bagian maka saya menggantinya dengan sesuatu yang serupa. Lihat catatan untuk info lebih lanjut. Walabot terhubung ke Raspberry Pi dengan kabel USB.Bangun Tank Autonom Sendiri: Integrasi Walabot, Arduino, Raspberry Pi & AlexaJika saya tidak dapat menemukan bagian maka saya menggantinya dengan sesuatu yang serupa. Lihat catatan untuk info lebih lanjut. Walabot terhubung ke Raspberry Pi dengan kabel USB.beer_tank_YN88vVuS9b.fzz

Proses manufaktur

  1. Menguasai Sintaks Netlist SPICE: Penamaan Komponen, Elemen Pasif & Aktif, dan Definisi Sumber
  2. Manufaktur Tabung Oksigen: Dari Bahan Baku hingga Jaminan Kualitas
  3. Sirkuit Terpadu (IC): Chip Kompak dan Canggih yang Menggerakkan Elektronik Modern
  4. Kontrol Chromecast Anda dengan Amazon Alexa Menggunakan Raspberry Pi dan Python
  5. Membangun Tank Lego Otonom Biaya Rendah dengan NVIDIA Jetson Nano & Isaac SDK
  6. Kit Proyek MOSMusic: MOSFET, Arduino, dan Lainnya
  7. Memahami Mikroelektronika: Ilmu Elektronika Kecil
  8. Tangki Cadangan: Tujuan, Jenis, dan Manfaat
  9. Komponen Esensial Mesin Bor: Gambaran Umum Komprehensif
  10. Komponen Utama Mesin Pembakaran Dalam