Daftar Isi:

NearBot Serbaguna: 11 Langkah (dengan Gambar)
NearBot Serbaguna: 11 Langkah (dengan Gambar)

Video: NearBot Serbaguna: 11 Langkah (dengan Gambar)

Video: NearBot Serbaguna: 11 Langkah (dengan Gambar)
Video: Советы и Хитрости Мастеров по Дому, Которые Действительно Помогают▶11 2024, Juli
Anonim
Image
Image

Instruksi ini akan menunjukkan kepada Anda cara membuat pemicu robot serbaguna yang dapat menggerakkan sesuatu seperti tombol, sakelar, atau dial di berbagai perangkat saat Anda (dengan ponsel atau suar di saku) berada di dekat Anda. Ini berarti dapat secara otomatis membuka dan mengunci kembali kait pintu saat *hanya Anda* lewat, mematikan katup penyiram sehingga Anda dapat melewati air tanpa cedera seperti semacam Musa di pinggiran kota, menurunkan volume speaker saat Anda berada di garasi ruang band, memicu iPod memainkan lagu entri dramatis atau menceritakan lelucon (tweet Jaden Smith?) saat Anda berada di dalam ruangan, atau jeda film saat Anda bangun untuk menggunakan kamar kecil.

Proyek ini tidak memerlukan solder atau alat khusus

Jika Anda cukup menikmati instruksi ini, harap pertimbangkan untuk memilih instruksi ini dalam kontes Robotika 2017!

Langkah 1: Dapatkan Bagian Perangkat Keras

Anda akan perlu:

  • NodeMCU v2 atau V3
  • Micro 9G Servo Motor sekitar $1.40 USD pengiriman gratis di eBay atau Aliexpress
  • Kabel Jumper Arduino Wanita ke Pria.
  • Casing untuk NearBot - Saya menggunakan kotak plastik bekas yang saya temukan.
  • Kabel data USB mikro (bagian ponsel bekas)
  • Sumber daya USB (pengisi daya ponsel bekas)

Jika Anda tidak memiliki ponsel cerdas dengan fitur hotspot seluler, Anda juga memerlukan:

  • Modul ESP-01 sekitar $2.50 USD pengiriman gratis di DealExtreme, GearBest, Ebay, atau Aliexpress.
  • 1 Pasang baterai AAA
  • dudukan baterai AAA ganda dengan sakelar

Langkah 2: Mulai Cepat

Langkah ini berisi panduan memulai cepat jika Anda menyukai hal semacam itu. Sisa dari instruksi ini berjalan selangkah demi selangkah dan menambahkan lebih banyak informasi mendalam

//Daftar belanja: //NodeMCU V3 (Lolin) mikrokontroler ESP8266

//SG90 9G Servo Motor

// Bank Daya USB atau adaptor dinding USB.

// Kabel data/pengisian USB mikro

// Kabel jumper tipe pria ke wanita Arduino

//SEBELUM KAMU MEMULAI:

//. Jika Anda belum mengunduh Arduino IDE, dapatkan secara gratis (donasi opsional) di:

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

///3. Buka file dan klik pada preferensi di Arduino IDE…

///4. salin kode di bawah ini di Manajer papan tambahan: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

///5. klik OK untuk menutup tab preferensi…

///6. Buka alat dan papan, lalu pilih pengelola papan…

///7. Arahkan ke esp8266 oleh komunitas esp8266 dan instal perangkat lunak untuk Arduino…

///8. Anda mungkin perlu mengunduh dan menginstal driver CH340 jika Anda tidak dapat membuat NodeMCU berbicara dengan IDE Arduino Anda:

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

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

/10. Pilih port COM yang Anda gunakan.

//11. pilih kodenya (unduh dari www.makersa.ga) dan klik unggah. /

/12. Colokkan servo ke NodeMCU menggunakan kabel jumper. D0 ke sinyal, ground ke ground, +VCC ke VO atau 3V. /

/13. Sesuaikan klakson servo menggunakan obeng.

//14. Sesuaikan derajat gerakan maksimum dan minimum menggunakan kode.

//15. Unggah ulang ke NodeMCU setiap kali kode diperbarui.

// Anda mungkin merasa penting untuk mengetahui versi NodeMCU yang Anda miliki. Berikut panduan perbandingan:

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

//Penjelasan tentang rig:

//Terbuat dari mikrokontroler NodeMCU ESP8266, baterai atau catu daya USB, dan Servo SG90

//Anda dapat menggunakan modul esp8266 ke-2 yang tidak dimodifikasi sebagai AP hotspot suar alih-alih menggunakan ponsel cerdas, tidak perlu pemrograman.

Langkah 3: Dapatkan Bagian Perangkat Lunak

Anda harus mengunduh Arduino IDE gratis terlebih dahulu

Editor Web Arduino tidak bekerja dengan NodeMCU pada saat saya menulis ini, jadi Anda harus menginstal IDE ke komputer Anda.

Anda juga perlu mengambil file NearBot dari www. MakerSa.ga - Tautan unduhan file untuk proyek ini terdaftar di situs itu.

Langkah 4: Instal Driver dan Profil Papan

Beberapa Info Bermanfaat
Beberapa Info Bermanfaat

Di dalam zip NearBot yang Anda unduh dan buka ritsletingnya akan menjadi driver untuk modul NodeMCU. Instal itu ke komputer Anda.

Jika itu tidak bekerja untuk Anda, Anda mungkin dapat menemukan driver CH340G di wemos.cc/downloads

NodeMCU Anda mungkin tidak menggunakan chip CH340G, jadi Anda mungkin perlu berkomentar dengan driver yang Anda cari, dan saya akan membalas dengan tautan unduhan untuk driver itu.

  1. Selanjutnya, buka Arduino IDE dan buka File PreferencesAdditional Boards Manager di Arduino IDE.
  2. Rekatkan kode berikut di sana:
  3. Klik OK untuk menutup tab preferensi.
  4. Buka alat dan papan, lalu pilih pengelola papan.
  5. Arahkan ke "esp8266 by esp8266 community" dan instal perangkat lunak untuk Arduino.

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

Langkah 5: Beberapa Info Bermanfaat

Beberapa Info Bermanfaat
Beberapa Info Bermanfaat
Beberapa Info Bermanfaat
Beberapa Info Bermanfaat

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

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

Setiap versi memiliki pengaturan pin yang berbeda. Saya membeli versi v3 (Lolin) karena memiliki pin output 5V untuk menyalakan motor Servo. Saya akhirnya menggunakan pin daya 3 volt sebagai gantinya untuk keamanan (Pin I/O NodeMCU tidak toleran 5V), tetapi Anda mungkin ingin menggunakan pin 5V karena secara teknis jenis motor servo ini ditentukan untuk daya 4,5 hingga 5 volt.

Langkah 6: Muat Kode Ke NodeMCU

Muat Kode Ke NodeMCU
Muat Kode Ke NodeMCU
Muat Kode Ke NodeMCU
Muat Kode Ke NodeMCU
  1. Colokkan NodeMCU ke komputer Anda menggunakan kabel micro USB apa pun.
  2. Buka Arduino IDE, dan di bawah "Boards", pilih "ESP12E", dan port COM untuk NodeMCU.
  3. Di IDE, buka FileOpen dan telusuri folder zip yang sebelumnya diunduh dari makersa.ga untuk membuka sketsa Arduino yang disebut "ProximityActuator013017DonovanMagryta.ino"
  4. Kemudian, edit baris kode yang berisi ini untuk menambahkan nama dan kata sandi suar WiFi Anda. Lebih lanjut tentang itu di bawah ini! Sebagai contoh:

const char* ssid = "wifi saya"; //Masukkan nama hotspot Anda di dalam tanda kutip

const char* kata sandi = "mywifipassword"; //Masukkan kata sandi hotspot Anda di dalam tanda kutip

Kemudian klik "upload" untuk mem-flash kode ke papan NodeMCU.

NearBot menggunakan suar WiFi yang dapat dikantongi untuk mengidentifikasi Anda dan memperkirakan jarak. Sama seperti kunci kedekatan, beberapa mobil baru memiliki yang membuka kunci pintu mobil saat Anda mendekat.

Anda dapat menggunakan hotspot seluler ponsel cerdas Anda sebagai suar, atau sebagai alternatif menggunakan modul WiFi ESP-01 murah yang ditenagai oleh sepasang baterai AAA atau baterai lithium 3.7v kecil. Tidak perlu memprogram ESP-01, defaultnya adalah stok mode hotspot saat dihidupkan. Diagram sirkuit untuk itu ditunjukkan pada langkah ini.

Langkah 7: Pasang Servo ke NodeMCU

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

Diagram sirkuitnya sederhana.

Pin D0 ke sinyal di lead (kabel warna paling terang pada servo. biasanya kuning atau putih.)

Pin 3V atau pin VO ke input lead 5V (kabel warna kedua paling terang pada servo, biasanya merah atau oranye.)

Pasang GND ke kabel ground (kabel berwarna paling gelap pada servo, biasanya coklat atau hitam.)

Langkah 8: Sempurnakan NearBot

Kode mengubah kekuatan sinyal menjadi estimasi jarak. Ia bekerja dengan andal untuk jarak reaksi kurang dari 2 meter atau 6,5 kaki. Karena merupakan konversi langsung, tidak semulus untuk jarak yang lebih jauh dari 3 meter karena berpotensi dengan metode perhitungan yang lebih baik. Lebih lanjut tentang itu nanti.

Anda mungkin ingin menyesuaikan di mana tanduk servo (lengan putih kecil yang bergerak) diposisikan. Ini dilakukan hanya dengan membuka lengan servo dengan obeng, dan memposisikannya kembali.

Bagian selanjutnya adalah mengatur derajat gerakan maksimum dan minimum menggunakan kode.

Ini dapat dilakukan dengan mengubah angka yang terdapat dalam baris yang terlihat seperti ini:

myservo.write(10); //menggerakkan lengan servo ke rotasi 10 derajat

Anda juga dapat menyesuaikan sensitivitas kekuatan sinyal dengan mengubah angka negatif pada baris yang terlihat seperti ini:

if (rssi > -30 && rssi < -5) { //Jika kekuatan sinyal lebih kuat dari -30, dan lebih lemah dari -5. kemudian lakukan hal berikut…

Langkah 9: Cara Kerjanya

  1. NearBot pertama-tama terhubung ke hotspot terlebih dahulu saat pengguna mendekat.
  2. Ini memindai RSSI (kekuatan sinyal yang diterima) dan mengubahnya menjadi perkiraan jarak.
  3. Sementara jarak berada dalam kisaran yang ditentukan, itu menggerakkan lengan motor servo ke posisi 1.
  4. Jika tidak, motor servo dipindahkan ke posisi 2.

Ketika saya menguji ini, tuning RSSI (-50) ini menggerakkan servo ke posisi 1 saat jarak 0 hingga 1,5 meter dengan suar ESP-01 atau hotspot ponsel di saku saya.

RSSI biasanya berada dalam kisaran -90 hingga -20, dengan -20 sebagai kekuatan sinyal terkuat.

Jika Anda membuka Serial Monitor Arduino IDE saat NearBot dicolokkan ke komputer, itu akan menampilkan kekuatan sinyal dan titik pemicu secara real time agar Anda memiliki umpan balik yang berguna.

Berikut kode lengkapnya:

//SEBELUM KAMU MEMULAI:

//. Jika Anda belum mengunduh Arduino IDE, dapatkan secara gratis (donasi opsional) di: https://www.arduino.cc/en/Main/Software //2. buka Arduino IDE (jika Anda belum membaca ini di Arduino IDE!)… ///3. Buka file dan klik pada preferensi di Arduino IDE… //4. salin tautan di bawah ini di Manajer papan tambahan: //https://arduino.esp8266.com/stable/package_esp8266com_index.json //5. klik OK untuk menutup tab preferensi… ///6. Buka alat dan papan, lalu pilih pengelola papan… ///7. Navigasikan ke esp8266 by esp8266 community dan instal perangkat lunak untuk Arduino… //8. Anda mungkin perlu mengunduh dan menginstal driver CH340 jika Anda tidak dapat membuat NodeMCU berbicara dengan Arduino IDE Anda: https://www.arduino.cc/en/Main/Software // Setelah semua proses di atas selesai, kami baca untuk memprogram mikrokontroler esp8266 NodeMCU kami dengan Arduino IDE. Anda mungkin ingin mengetahui versi NodeMCU yang Anda miliki. Berikut panduan perbandingan: https://www.arduino.cc/en/Main/Software //Terbuat dari mikrokontroler NodeMCU ESP8266, baterai atau catu daya USB, dan Servo SG90 //Anda dapat menggunakan modul esp8266 kedua yang tidak dimodifikasi sebagai suar hotspot AP daripada menggunakan smartphone. // Sirkuit NearBot: // D0 pin ke kabel sinyal Servo (kabel warna paling terang) //3V pin ke kabel 5v servo (kabel tengah) (disambung secara paralel ke kabel usb atau pin VO pada NodeMCU jika Anda memiliki V3. / /USB power to USB plug pada NodeMCU //GND pin ke Servo Ground wire (kabel warna paling gelap) // Baris note dimulai dengan dua garis miring, dan diabaikan oleh komputer. Notes hanya untuk kita manusia! #include #include //Mungkin diperlukan untuk pencetakan serial. #include //Servo library #define D0 16 //Menentukan pin untuk mempermudah pemberian pin. #define D1 5 // I2C Bus SCL (clock) #define D2 4 // I2C Bus SDA (data) #define D3 0 #define D4 2 // Sama seperti "LED_BUILTIN", tetapi logika terbalik #define D5 14 // SPI Bus SCK (clock) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Bus MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (Konsol serial) #define D10 1 // TX0 (Konsol serial) Servo myservo; //Buat objek servo bernama myservo //Phone atau modul ESP8266 tambahan diatur ke mode hotspot AP: const ch ar*ssid = " "; //Masukkan nama hotspot Anda di dalam tanda kutip const char* password = " "; //Masukkan kata sandi hotspot Anda di dalam tanda kutip void setup(){ Serial.begin(115200); //menetapkan baud rate serial sehingga mikrokontroler dapat berbicara dengan antarmuka cetak serial di Arduino IDE - Anda mungkin perlu mengubahnya ke 9600 sebagai gantinya! myservo.attach(D0); // pasang servo pada pin D0 alias GPIO16 ke objek servo - Lihat selengkapnya di: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write(10); //menggerakkan lengan servo ke putaran 10 derajat Serial.println("Terkunci"); //output serial monitor kata "Terkunci" WiFi.mode(WIFI_STA); //Mengatur wifi ke mode Stasiun WiFi.begin(ssid, password); //Connects to hotspot beacon } void loop() { //Loop berjalan berulang-ulang dengan cepat if (WiFi.status() != WL_CONNECTED) { //Jika wifi TIDAK terhubung, lakukan hal berikut… Serial.println("Tidak bisa mendapatkan koneksi wifi"); myservo.write(10); //Memindahkan lengan servo ke 10 derajat Serial.println("Terkunci"); } else { //Jika WiFi terhubung, lakukan hal berikut… long rssi = WiFi. RSSI(); //Membuat variabel bernama rssi dan menetapkannya ke fungsi yang mengembalikan pembacaan kekuatan sinyal dari suar hotspot Serial.print(rssi); //mengoutput pembacaan rssi ke monitor serial if (rssi > -50 && rssi < -5) { //Jika kekuatan sinyal lebih kuat dari -50, dan lebih lemah dari -5. kemudian lakukan yang berikut… myservo.write(170); //Putar lengan servo hingga 170 derajat Serial.println("Tidak Terkunci"); } else { //Jika kondisi di atas tidak terpenuhi maka lakukan hal berikut… myservo.write(10); //Memutar lengan servo kembali ke 10 derajat. Serial.println("Terkunci"); } } }

Langkah 10: Anda Harus Tahu…

Penafian:

Iterasi kode NearBot saat ini bekerja dengan andal untuk jarak kurang dari 2 meter atau 6,5 kaki. Di luar itu, itu menjadi kurang tepat, tetapi masih berfungsi.

Ini bisa diperbaiki, tetapi saat ini saya tidak tahu bagaimana melakukannya. Saya akan senang jika seseorang mau bekerja dengan saya sehingga saya dapat memperbarui instruksi ini dengan metode penghitungan jarak yang lebih tepat!

Tautan ini mungkin berguna: YouTuber CNLohr mengembangkan firmware penginderaan jarak dan posisi untuk ESP8266 dengan keberhasilan terbatas:

Espressif mengembangkan fungsi deteksi jarak Waktu Penerbangan yang akan bekerja dengan Arduino IDE untuk ESP8266, tetapi tidak pernah merilisnya:

Sistem penentuan posisi SubPos menggunakan modul ESP8266 dan Perhitungan Kehilangan Jalur, yang saya tidak tahu bagaimana menerapkannya di Arduino IDE:

Saya menemukan contoh dalam bahasa Java, tetapi saya tidak tahu cara mereplikasi ini adalah Arduino IDE:

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

Langkah 11: Itu Saja

Jika Anda membuat NearBot Anda sendiri, posting "Saya membuatnya" di komentar di bawah!

Jika Anda memiliki ide lain untuk menggunakan platform NearBot Serbaguna, silakan komentari ide Anda! Ini bisa menjadi inspirasi besar bagi pengguna instruksional lainnya!

Jika Anda menikmati tutorial ini, harap pertimbangkan untuk memilih instruksi ini dalam kontes!

Direkomendasikan: