Isi kandungan:

NearBot serba boleh: 11 Langkah (dengan Gambar)
NearBot serba boleh: 11 Langkah (dengan Gambar)

Video: NearBot serba boleh: 11 Langkah (dengan Gambar)

Video: NearBot serba boleh: 11 Langkah (dengan Gambar)
Video: Uang Mini untuk Belanja 2024, Julai
Anonim
Image
Image

Instruksional ini akan menunjukkan kepada anda cara membina pencetus robot serba boleh yang dapat menggerakkan sesuatu seperti butang, suis, atau dail pada pelbagai peranti ketika anda (dengan telefon atau suar di poket anda) berada berdekatan. Ini bererti ia dapat membuka kunci dan mengunci kembali kunci pintu secara automatik kerana * hanya anda * yang lewat, mematikan injap penyiram sehingga anda dapat melewati air tanpa luka seperti sejenis Musa pinggir bandar, volume pembesar suara yang lebih rendah semasa anda berada di garaj bilik pita, mencetuskan iPod memainkan lagu kemasukan dramatik atau bercerita (Jaden Smith tweet?) semasa anda berada di dalam bilik, atau menjeda filem ketika anda bangun untuk menggunakan tandas.

Projek ini tidak memerlukan pematerian atau alat khas

Sekiranya anda cukup menikmati instruksional ini, pertimbangkan untuk memilih instruksional ini dalam peraduan Robotik 2017!

Langkah 1: Dapatkan Bahagian Perkakasan

Anda perlu:

  • NodeMCU v2 atau V3
  • Micro 9G Servo Motor sekitar $ 1.40 USD penghantaran percuma di eBay atau Aliexpress
  • Arduino Jumper Wayar Perempuan ke Lelaki.
  • Selongsong untuk NearBot - Saya menggunakan kotak plastik sekerap yang saya dapati.
  • Kabel data USB mikro (bahagian telefon sekerap)
  • Sumber kuasa USB (pengecas telefon sekerap)

Sekiranya anda tidak mempunyai telefon pintar dengan ciri hotspot mudah alih, anda juga memerlukan:

  • Modul ESP-01 kira-kira $ 2.50 USD penghantaran percuma di DealExtreme, GearBest, Ebay, atau Aliexpress.
  • 1 Pasangkan bateri AAA
  • pemegang bateri dual AAA dengan suis

Langkah 2: Permulaan Pantas

Langkah ini mengandungi panduan permulaan pantas sekiranya anda menyukai perkara semacam itu. Selebihnya arahan ini berjalan selangkah demi selangkah dan menambah maklumat yang lebih mendalam

// Senarai membeli-belah: // mikrokontroler NodeMCU V3 (Lolin) ESP8266

// Motor Servo SG90 9G

// USB Power Bank atau penyesuai dinding USB.

// Kabel data / cas USB mikro

// Wayar jumper jenis lelaki hingga wanita Arduino

//SEBELUM AWAK MULA:

// 1. Sekiranya anda belum memuat turun Arduino IDE, dapatkannya secara percuma (sumbangan pilihan) di:

// 2. buka Arduino IDE (jika anda belum membaca ini di Arduino IDE!)…

// 3. Pergi ke fail dan klik pilihan di Arduino IDE…

// 4. salin kod di bawah dalam Pengurus papan tambahan: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. klik OK untuk menutup tab pilihan …

// 6. Pergi ke alat dan papan, dan kemudian pilih pengurus papan…

// 7. Navigasi ke esp8266 oleh komuniti esp8266 dan pasang perisian untuk Arduino…

// 8. Anda mungkin perlu memuat turun dan memasang pemacu CH340 jika anda tidak dapat membuat NodeMCU bercakap dengan Arduino IDE anda:

// Setelah semua proses di atas selesai, kita akan membaca untuk memprogram mikrokontroler esp8266 NodeMCU kami dengan Arduino IDE.

//9. pilih NodeMCU V1.0 ESP12E dari menu papan /

/ 10. Pilih port COM yang anda gunakan.

// 11. pilih kod (muat turun dari www.makersa.ga) dan klik muat naik. /

/ 12. Pasangkan servo ke NodeMCU menggunakan wayar jumper. D0 ke isyarat, tanah ke tanah, + VCC ke VO atau 3V. /

/ 13. Selaraskan tanduk servo menggunakan pemutar skru.

// 14. Laraskan darjah pergerakan maksimum dan minimum menggunakan kod.

// 15. Muat naik semula ke NodeMCU setiap kali kodnya dikemas kini.

// Anda mungkin perlu mengetahui versi NodeMCU yang anda miliki. Inilah panduan perbandingan:

frightanic.com/iot/comparison-of-esp8266-no… // Gambar rajah pinout NodeMCU v1: https://frightanic.com/iot/comparison-of-esp8266-no… // Gambar rajah pinout NodeMCU v2: https://frightanic.com/iot/comparison-of-esp8266-no… // Gambar rajah pinout NodeMCU v3:

// Penjelasan pelantar:

// Dibuat dari mikrokontroler NodeMCU ESP8266, bekalan kuasa bateri atau USB, dan SG90 Servo

// Anda boleh menggunakan modul esp8266 yang tidak diubah suai sebagai AP hotspot beacon dan bukannya menggunakan telefon pintar, tidak perlu pengaturcaraan.

Langkah 3: Dapatkan Bahagian Perisian

Anda perlu memuat turun Arduino IDE percuma

Editor Web Arduino tidak berfungsi dengan NodeMCU pada masa saya menulis ini, jadi anda harus memasang IDE ke komputer anda.

Anda juga perlu mengambil fail NearBot dari www. MakerSa.ga - Pautan muat turun fail untuk projek ini disenaraikan di laman web tersebut.

Langkah 4: Pasang Pemacu dan Profil Papan

Beberapa Maklumat Berguna
Beberapa Maklumat Berguna

Di dalam zip NearBot yang anda muat turun dan buka zip akan menjadi pemacu untuk modul NodeMCU. Pasang ke komputer anda.

Sekiranya itu tidak berfungsi untuk anda, anda mungkin dapat mencari pemandu CH340G di wemos.cc/downloads

NodeMCU anda mungkin tidak menggunakan cip CH340G, jadi anda mungkin perlu memberi komen dengan pemandu yang anda cari, dan saya akan membalas dengan pautan muat turun untuk pemacu itu.

  1. Seterusnya, buka Arduino IDE dan pergi ke File PreferencesAdditional Boards Manager di Arduino IDE.
  2. Tampal kod berikut di sana:
  3. Klik OK untuk menutup tab pilihan.
  4. Pergi ke alat dan papan, dan kemudian pilih pengurus papan.
  5. Arahkan ke "esp8266 by esp8266 community" dan pasang perisian untuk Arduino.

Setelah semua proses di atas selesai, kami siap memprogram mikrokontroler esp8266 NodeMCU kami dengan Arduino IDE!

Langkah 5: Beberapa Maklumat Berguna

Beberapa Maklumat Berguna
Beberapa Maklumat Berguna
Beberapa Maklumat Berguna
Beberapa Maklumat Berguna

Anda mungkin merasa senang untuk mengetahui versi NodeMCU yang anda miliki. Berikut adalah panduan perbandingan:

frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/

Setiap versi mempunyai susunan pin yang berbeza. Saya membeli versi v3 (Lolin) kerana ia mempunyai pin output 5V untuk menghidupkan motor Servo. Saya akhirnya menggunakan pin kuasa 3 volt untuk keselamatan (Pin NodeMCU I / O tidak bertoleransi 5V), tetapi anda mungkin mahu menggunakan pin 5V kerana secara teknikal motor servo jenis ini ditentukan untuk kuasa 4.5 hingga 5 volt.

Langkah 6: Muatkan Kod ke NodeMCU

Muatkan Kod Ke NodeMCU
Muatkan Kod Ke NodeMCU
Muatkan Kod Ke NodeMCU
Muatkan Kod Ke NodeMCU
  1. Pasang NodeMCU ke komputer anda menggunakan kabel USB mikro.
  2. Buka Arduino IDE, dan di bawah "Papan", pilih "ESP12E", dan port COM untuk NodeMCU.
  3. Di IDE, pergi ke FileOpen dan cari folder zip yang sebelumnya dimuat turun dari makera.ga untuk membuka lakaran Arduino yang disebut "ProximityActuator013017DonovanMagryta.ino"
  4. Kemudian, edit baris kod yang mengandungi ini untuk menambahkan nama dan kata laluan suar WiFi anda. Lebih banyak lagi di bawah! Sebagai contoh:

const char * ssid = "mywifi"; // Masukkan nama hotspot anda di dalam petikan

const char * kata laluan = "mywifipassword"; // Masukkan kata laluan hotspot anda di dalam petikan

Kemudian klik "muat naik" untuk memasukkan kod ke papan NodeMCU.

The NearBot menggunakan suar WiFi yang boleh dikemas untuk mengenal pasti anda dan mengira jarak. Sama seperti kunci jarak beberapa kereta baru yang membuka kunci pintu kereta semasa anda menghampiri.

Anda boleh menggunakan hotspot mudah alih telefon pintar anda sebagai suar, atau sebagai alternatif menggunakan modul WiFi ESP-01 murah yang dikuasakan oleh sepasang bateri AAA atau bateri lithium 3.7v kecil. Tidak perlu memprogram ESP-01, secara lalai untuk stok mod hotspot semasa dihidupkan. Gambarajah litar ditunjukkan pada langkah ini.

Langkah 7: Pasang Servo ke NodeMCU

Anda memerlukan beberapa kabel jumper untuk memasang servo ke NodeMCU V3.

Gambarajah litar mudah.

Pin D0 ke isyarat dalam plumbum (wayar warna paling ringan pada servo. Biasanya kuning atau putih.)

Pin 3V atau pin VO ke plumbum input 5V (wayar warna paling ringan kedua pada servo, biasanya berwarna merah atau oren.)

Pasang GND ke plumbum tanah (wayar berwarna paling gelap pada servo, biasanya berwarna coklat atau hitam.)

Langkah 8: Fine Tune the NearBot

Kod menukar kekuatan isyarat kepada anggaran jarak. Ia berfungsi dengan baik untuk jarak tindak balas kurang dari 2 meter atau 6.5 kaki. Oleh kerana ia adalah penukaran langsung, jaraknya tidak semudah jarak lebih jauh dari 3 meter sebagaimana yang berpotensi dilakukan dengan kaedah pengiraan yang lebih baik. Lebih lanjut mengenai itu kemudian.

Anda mungkin mahu menyesuaikan kedudukan tanduk servo (lengan putih kecil yang bergerak). Ini dilakukan dengan melepaskan penutup servo dengan pemutar skru, dan meletakkannya semula.

Bahagian seterusnya adalah menyesuaikan tahap pergerakan maksimum dan minimum menggunakan kod.

Ini dapat dilakukan dengan mengubah nombor yang terdapat dalam garis yang terlihat seperti ini:

myservo.write (10); // gerakkan servo arm ke putaran 10 darjah

Anda juga boleh menyesuaikan kepekaan kekuatan isyarat dengan menukar nombor negatif dalam garis yang kelihatan seperti ini:

if (rssi> -30 && rssi <-5) {// Sekiranya kekuatan isyarat lebih kuat daripada -30, dan lebih lemah daripada -5. kemudian lakukan perkara berikut …

Langkah 9: Bagaimana Ia Berfungsi

  1. The NearBot pertama kali menyambung ke hotspot terlebih dahulu ketika pengguna menghampiri.
  2. Ia mengimbas RSSI (kekuatan isyarat yang diterima) dan mengubahnya menjadi jarak yang hampir.
  3. Walaupun jarak berada dalam jarak yang ditentukan, ia menggerakkan lengan motor servo ke kedudukan 1.
  4. Jika tidak, motor servo dipindahkan ke kedudukan 2.

Semasa saya menguji ini, penalaan RSSI ini (-50) menggerakkan servo ke kedudukan 1 sementara jaraknya 0 hingga 1.5 meter dengan suar ESP-01 atau hotspot telefon di poket saya.

RSSI biasanya berada dalam lingkungan antara -90 hingga -20, dengan -20 menjadi kekuatan isyarat terkuat.

Sekiranya anda membuka Arduino IDE Serial Monitor semasa NearBot dicolokkan ke komputer, ia akan memaparkan kekuatan isyarat dan titik pencetus dalam masa nyata agar anda mendapat maklum balas yang berguna.

Berikut adalah kod lengkap:

//SEBELUM AWAK MULA:

// 1. Sekiranya anda belum memuat turun Arduino IDE, dapatkannya secara percuma (sumbangan pilihan) di: https://www.arduino.cc/en/Main/Software // 2. buka Arduino IDE (jika anda belum membaca ini di Arduino IDE!)… // 3. Pergi ke fail dan klik pilihan di Arduino IDE… // 4. salin pautan di bawah dalam Pengurus papan tambahan: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. klik OK untuk menutup tab pilihan… // 6. Pergi ke alat dan papan, dan kemudian pilih pengurus papan… // 7. Navigasi ke esp8266 oleh komuniti esp8266 dan pasang perisian untuk Arduino… // 8. Anda mungkin perlu memuat turun dan memasang pemacu CH340 jika anda tidak dapat membuat NodeMCU bercakap dengan Arduino IDE anda: https://www.arduino.cc/en/Main/Software // Setelah semua proses di atas selesai, kami akan baca untuk memprogram mikrokontroler esp8266 NodeMCU kami dengan Arduino IDE. Anda mungkin ingin mengetahui versi NodeMCU yang anda miliki. Berikut adalah panduan perbandingan: https://www.arduino.cc/en/Main/Software // Dibuat dari mikrokontroler NodeMCU ESP8266, bekalan kuasa bateri atau USB, dan SG90 Servo // Anda boleh menggunakan modul esp8266 kedua yang tidak diubah sebagai suar AP hotspot dan bukannya menggunakan telefon pintar. // Litar NearBot: // Pin D0 ke wayar isyarat Servo (wayar warna paling ringan) // Pin 3V ke wayar servo 5v (wayar tengah) (disambung selari dengan kabel usb atau pin VO pada NodeMCU jika anda mempunyai V3. / / Kuasa USB ke palam USB pada pin NodeMCU // GND ke kawat Servo Ground (wayar warna paling gelap) // Garis nota bermula dengan dua garis miring ke depan, dan tidak dihiraukan oleh komputer. Nota hanya untuk kita manusia! #Include #include // Mungkin diperlukan untuk pencetakan bersiri. #Include // Servo library #define D0 16 // Mendefinisikan pin agar pin penugasan lebih mudah. #Define D1 5 // I2C Bus SCL (jam) #define D2 4 // I2C Bus SDA (data) #define D3 0 #define D4 2 // Sama seperti "LED_BUILTIN", tetapi logik terbalik #define D5 14 // SPI Bus SCK (jam) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Bas MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (Serial console) #define D10 1 // TX0 (Serial console) Servo myservo; // Buat objek servo bernama myservo // Telefon atau modul ESP8266 tambahan yang ditetapkan ke mod AP hotspot: const ch ar * ssid = ""; // Masukkan nama hotspot anda di dalam petikan const char * password = ""; // Masukkan kata laluan hotspot anda di dalam persediaan kosongkan tanda kutip () {Serial.begin (115200); // menetapkan kadar baud bersiri supaya pengawal mikro dapat bercakap dengan antara muka cetakan bersiri di Arduino IDE - Anda mungkin perlu menukarnya menjadi 9600! myservo.attach (D0); // melampirkan servo pada pin D0 aka GPIO16 ke objek servo - Lihat lebih lanjut di: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // menggerakkan lengan servo ke putaran 10 darjah Serial.println ("Dikunci"); // keluarkan monitor bersiri perkataan "Locked" WiFi.mode (WIFI_STA); // Menetapkan wifi ke mod Stesen WiFi.begin (SSID, kata laluan); // Menyambung ke hotspot beacon} gelung kosong () {// Gelung berjalan berulang-ulang dengan cepat jika (WiFi.status ()! = WL_CONNECTED) {// Sekiranya wifi TIDAK disambungkan, lakukan yang berikut … Serial.println ("Tidak dapat sambungan wifi"); myservo.write (10); // Gerakkan lengan servo hingga 10 darjah Serial.println ("Dikunci"); } lain {// Jika WiFi disambungkan, lakukan perkara berikut … panjang rssi = WiFi. RSSI (); // Membuat pemboleh ubah bernama rssi dan menetapkannya ke fungsi yang mengembalikan bacaan kekuatan isyarat Serial.print hacpot beacon (rssi); // mengeluarkan bacaan rssi ke monitor bersiri jika (rssi> -50 && rssi <-5) {// Sekiranya kekuatan isyarat lebih kuat daripada -50, dan lebih lemah daripada -5. kemudian lakukan perkara berikut… myservo.write (170); // Putar lengan servo hingga 170 darjah Serial.println ("Tidak dikunci"); } lain {// Sekiranya syarat di atas tidak dipenuhi maka lakukan perkara berikut… myservo.write (10); // Putar lengan servo kembali ke 10 darjah. Serial.println ("Dikunci"); }}}

Langkah 10: Anda Perlu Tahu …

Penafian:

Iterasi semasa kod NearBot berfungsi dengan baik untuk jarak kurang dari 2 meter atau 6.5 kaki. Di luar itu, ia kurang tepat, tetapi masih berfungsi.

Ini boleh diperbaiki, tetapi buat masa ini saya tidak tahu bagaimana melakukannya. Saya sangat menyukainya sekiranya seseorang bekerja dengan saya, jadi saya boleh mengemas kini instruksional ini dengan kaedah mengira jarak yang lebih tepat!

Pautan ini mungkin berguna: YouTuber CNLohr mengembangkan firmware pengesan jarak dan kedudukan untuk ESP8266 dengan kejayaan terhad:

Espressif mengembangkan fungsi pengesanan jarak Waktu Penerbangan yang berfungsi dengan Arduino IDE untuk ESP8266, tetapi tidak pernah melepaskannya:

Sistem penentuan kedudukan SubPos menggunakan modul ESP8266 dan Pengiraan Kehilangan Jalan, yang saya tidak tahu bagaimana melaksanakannya di Arduino IDE:

Saya mendapat contoh dalam bahasa Java, tetapi saya tidak tahu bagaimana meniru ini adalah Arduino IDE:

jarak dua kali = Math.pow (10.0, (((double) (tx_pwr / 10)) - rx_pwr - 10 * Math.log10 (4 * Math. PI / (c / frekuensi))) / (20 * mu));

Langkah 11: Itu sahaja

Sekiranya anda membuat NearBot anda sendiri, hantarkan "Saya membuatnya" dalam komen di bawah!

Sekiranya anda mempunyai lebih banyak idea untuk menggunakan platform Versatile NearBot, sila komen idea anda! Ini boleh menjadi inspirasi hebat bagi pengguna instruksional lain!

Sekiranya anda menikmati tutorial ini, pertimbangkan untuk memilih ini dalam pertandingan!

Disyorkan: