Съдържание:

Универсален NearBot: 11 стъпки (със снимки)
Универсален NearBot: 11 стъпки (със снимки)

Видео: Универсален NearBot: 11 стъпки (със снимки)

Видео: Универсален NearBot: 11 стъпки (със снимки)
Видео: 5 Рецептов с Фаршем На Каждый День 2024, Юли
Anonim
Image
Image

Тази инструкция ще ви покаже как да създадете универсален робот спусък, който може да премества нещо като бутон, превключвател или набиране на различни устройства, когато вие (с телефона си или маяк в джоба си) сте наблизо. Това означава, че може автоматично да отключи и заключи ключалката на вратата, докато * само вие * минете покрай нея, да спрете разпръскващия вентил, за да можете да преминете през водата невредим като нещо като предградие Моисей, по-ниска сила на високоговорителя, докато сте в гаража стаята на групата, пуснете iPod, който свири драматична мелодия за влизане или разкажете шега (туитър на Джейдън Смит?), докато сте в стаята, или спрете филм, когато станете, за да използвате тоалетната.

Този проект не изисква запояване или специални инструменти

Ако се наслаждавате достатъчно на тези инструкции, моля, помислете за гласуване за тази инструкция в конкурса Robotics 2017!

Стъпка 1: Придобийте хардуерни части

Ще имаш нужда:

  • NodeMCU v2 или V3
  • Микро 9G серво мотор за около $ 1.40 USD безплатна доставка в eBay или Aliexpress
  • Arduino Jumper проводници женски към мъжки.
  • Корпус за NearBot - използвах пластмасова кутия за скрап, която намерих.
  • Micro USB кабел за данни (части от скрап на телефона)
  • USB източник на захранване (зарядно устройство за скрап за телефон)

Ако нямате смартфон с функция за мобилна гореща точка, ще ви трябва също:

  • Модул ESP-01 за около $ 2,50 USD безплатна доставка за DealExtreme, GearBest, Ebay или Aliexpress.
  • 1 чифт батерии AAA
  • двоен държач за батерия AAA с превключвател

Стъпка 2: Бърз старт

Тази стъпка съдържа ръководство за бърз старт, в случай че харесвате такива неща. Останалата част от тази инструкция върви стъпка по стъпка и добавя по-задълбочена информация

// Списък за пазаруване: // NodeMCU V3 (Lolin) ESP8266 микроконтролер

// SG90 9G серво мотор

// USB захранваща банка или USB адаптер за стена.

// Micro USB кабел за данни/зареждане

// Кабелни проводници от мъжки към женски тип Arduino

//ПРЕДИ ДА ЗАПОЧНЕШ:

// 1. Ако все още не сте изтеглили Arduino IDE, вземете го безплатно (дарение по избор) на:

// 2. отворете Arduino IDE (ако вече не четете това в Arduino IDE!) …

// 3. Отидете на файлове и кликнете върху предпочитанието в Arduino IDE …

// 4. копирайте кода по -долу в мениджъра на допълнителните дъски: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. щракнете върху OK, за да затворите раздела с предпочитания …

// 6. Отидете до инструменти и дъска и след това изберете мениджър на табла …

// 7. Отидете до esp8266 от общността esp8266 и инсталирайте софтуера за Arduino …

// 8. Може да се наложи да изтеглите и инсталирате драйвера CH340, ако не можете да накарате NodeMCU да разговаря с вашата Arduino IDE:

// След като горният процес приключи, ние сме прочетени да програмираме нашия esp8266 NodeMCU микроконтролер с Arduino IDE.

//9.изберете NodeMCU V1.0 ESP12E от менюто на платката /

/10. Изберете COM порта, който използвате.

// 11. изберете кода (изтеглете от www.makersa.ga) и щракнете върху качване. /

/12. Включете серво в NodeMCU с помощта на джъмперни проводници. D0 за сигнал, земя към земя, +VCC към VO или 3V. /

/13. Регулирайте серво клаксона с помощта на отвертка.

// 14. Регулирайте максималната и минималната степен на движение с помощта на кода.

//15. Качвайте отново в NodeMCU всеки път, когато кодът се актуализира.

// Може да ви се стори важно да разберете коя версия на NodeMCU имате. Ето ръководство за сравнение:

frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v1 диаграма на извеждане: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v2 диаграма на извеждане: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v3 диаграма на извеждане:

// Обяснение на платформите:

// Изработен от микроконтролер NodeMCU ESP8266, батерия или USB захранване и SG90 Servo

// Можете да използвате 2 -ри немодифициран esp8266 модул като точка за достъп до маяк, вместо да използвате смартфон, не е необходимо програмиране.

Стъпка 3: Придобийте софтуерни части

Първо ще трябва да изтеглите безплатната Arduino IDE

Arduino Web Editor не работи с NodeMCU по времето, когато пиша това, така че вместо това ще трябва да инсталирате IDE на вашия компютър.

Също така ще трябва да вземете файловете NearBot от www. MakerSa.ga - Връзката за изтегляне на файлове за този проект е посочена на този сайт.

Стъпка 4: Инсталирайте драйвери и профили на платки

Малко полезна информация
Малко полезна информация

Вътре в NearBot ципа, който сте изтеглили и разархивирали, ще бъдат драйверите за модула NodeMCU. Инсталирайте ги на компютъра си.

Ако те не работят за вас, може да успеете да намерите драйвери на CH340G на wemos.cc/downloads

Вашият NodeMCU може да не използва чип CH340G, така че може да се наложи да коментирате с драйвера, който търсите, а аз ще отговоря с връзката за изтегляне на този драйвер.

  1. След това отворете Arduino IDE и отидете на File PreferencesAdditional Boards Manager в Arduino IDE.
  2. Поставете следния код там:
  3. Щракнете върху OK, за да затворите раздела с предпочитания.
  4. Отидете до инструменти и дъска и след това изберете мениджър на дъска.
  5. Отидете до „esp8266 от общността esp8266“и инсталирайте софтуера за Arduino.

След като горният процес приключи, ние сме готови да програмираме нашия микроконтролер esp8266 NodeMCU с Arduino IDE!

Стъпка 5: Полезна информация

Малко полезна информация
Малко полезна информация
Малко полезна информация
Малко полезна информация

Може да ви бъде полезно да разберете коя версия на NodeMCU имате. Ето ръководство за сравнение:

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

Всяка версия има различно подреждане на щифтове. Купих версията v3 (Lolin), защото има 5V изходни щифтове за захранване на серво мотора. В крайна сметка вместо това използвах 3 -волтовите захранващи щифтове вместо това за безопасност (Входно -изходните щифтове на NodeMCU не са 5V толерантни), но може да искате да използвате 5V щифтовете, защото технически тези видове серво мотори са определени за мощност от 4,5 до 5 волта.

Стъпка 6: Заредете кода в NodeMCU

Заредете кода в NodeMCU
Заредете кода в NodeMCU
Заредете кода в NodeMCU
Заредете кода в NodeMCU
  1. Включете NodeMCU в компютъра си с помощта на всеки микро USB кабел.
  2. Отворете IDE на Arduino и под „Платки“изберете „ESP12E“и COM порта за NodeMCU.
  3. В IDE отидете на FileOpen и разгледайте zip папката, изтеглена преди това от makersa.ga, за да отворите скицата на Arduino, наречена „ProximityActuator013017DonovanMagryta.ino“
  4. След това редактирайте реда с код, съдържащ това, за да добавите името и паролата на вашия WiFi маяк. Повече за това по -долу! Например:

const char* ssid = "mywifi"; // Поставете името на вашата гореща точка в кавичките

const char* password = "mywifipassword"; // Поставете вашата парола за гореща точка в кавичките

След това щракнете върху „качване“, за да прехвърлите кода на платката NodeMCU.

NearBot използва джобен WiFi маяк, за да ви идентифицира и да оцени разстоянието. Точно като ключовете за близост, някои по -нови автомобили имат, които отключват вратата на колата, когато се приближите.

Можете да използвате мобилната гореща точка на вашия смартфон като маяк или алтернативно да използвате евтин WiFi модул ESP-01, захранван от чифт батерии AAA или малка литиева батерия 3.7v. Няма нужда да програмирате ESP-01, той по подразбиране е в режим на гореща точка, когато е включен. Схемата за това е показана на тази стъпка.

Стъпка 7: Прикрепете Servo към NodeMCU

Ще ви трябват джъмперни проводници, за да включите серво в NodeMCU V3.

Схемата е проста.

Пин D0 към сигнала в проводник (най -светлият цветен проводник на серво. Обикновено жълт или бял.)

Пин 3V или щифт VO към 5V входния проводник (втори най -светъл цветен проводник на серво, обикновено червен или оранжев.)

Закрепете GND към заземяващия проводник (най -тъмно оцветен проводник на серво, обикновено кафяв или черен.)

Стъпка 8: Фина настройка на NearBot

Кодът преобразува силата на сигнала в оценка на разстоянието. Той работи надеждно за реакционни разстояния под 2 метра или 6,5 фута. Тъй като това е директно преобразуване, то не е толкова гладко за по -далечни разстояния от 3 метра, колкото потенциално би могло да бъде с по -добър метод на изчисление. Повече за това по -късно.

Може да искате да регулирате къде е разположен серво клаксонът (малката бяла ръка, която се движи). Това става като просто развиете серво рамото с отвертка и го позиционирате отново.

Следващата част е да регулирате максималната и минималната степен на движение с помощта на кода.

Това може да стане чрез промяна на числата, съдържащи се в редове, които изглеждат така:

myservo.write (10); // премества серво рамото на въртене на 10 градуса

Можете също да регулирате чувствителността на силата на сигнала, като промените отрицателните числа в редове, които изглеждат така:

if (rssi> -30 && rssi <-5) {// Ако силата на сигнала е по -силна от -30 и по -слаба от -5. след това направете следното …

Стъпка 9: Как работи

  1. NearBot първо се свързва с горещата точка предварително, когато потребителите се приближат.
  2. Той сканира RSSI (силата на получения сигнал) и го преобразува в приблизително разстояние.
  3. Докато разстоянието е в рамките на определения диапазон, той премества рамото на сервомотора в позиция 1.
  4. В противен случай сервомоторът се премества в позиция 2.

Когато тествах това, тази RSSI настройка (-50) премества серво в позиция 1, докато разстоянието е 0 до 1,5 метра с ESP-01 маяк или гореща точка на телефона в джоба ми.

RSSI обикновено попада в диапазона от -90 до -20, като -20 е най -силната сила на сигнала.

Ако отворите Arduino IDE Serial Monitor, докато NearBot е включен в компютъра, той ще покаже силата на сигнала и точките на задействане в реално време, за да имате удобна обратна връзка.

Ето пълния код:

//ПРЕДИ ДА ЗАПОЧНЕШ:

// 1. Ако все още не сте изтеглили Arduino IDE, вземете го безплатно (дарение по избор) на: https://www.arduino.cc/en/Main/Software // 2. отворете Arduino IDE (ако вече не четете това в Arduino IDE!) … // 3. Отидете на файлове и щракнете върху предпочитанието в Arduino IDE … // 4. копирайте връзката по -долу в мениджъра на допълнителните дъски: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. щракнете върху OK, за да затворите раздела с предпочитания … // 6. Отидете до инструменти и дъска и след това изберете мениджър на табла … // 7. Придвижете се до esp8266 от общността esp8266 и инсталирайте софтуера за Arduino… // 8. Може да се наложи да изтеглите и инсталирате драйвера CH340, ако не можете да накарате NodeMCU да разговаря с вашата Arduino IDE: https://www.arduino.cc/en/Main/Software // След като горният процес приключи, ние сме прочетете, за да програмирате нашия esp8266 NodeMCU микроконтролер с Arduino IDE. Може да искате да разберете коя версия на NodeMCU имате. Ето ръководство за сравнение: https://www.arduino.cc/bg/Main/Software hotspot AP вместо да използвате смартфон. // Електрическа верига NearBot: // D0 щифт към серво сигнален проводник (най -светъл цветен проводник) // 3V щифт към серво 5v проводник (среден проводник) (снаден успоредно с usb кабел или VO щифт на NodeMCU, ако имате V3. / /USB захранване към USB щепсел на NodeMCU // GND щифт към заземяващ проводник (най -тъмният цветен проводник) // Редовете за бележки започват с две наклонени черти напред и се игнорират от компютрите. Бележките са само за нас, хората! #Include #include // Може да е необходимо за сериен печат. #Include // Серво библиотека #define D0 16 // Дефинира щифтове, за да улесни присвояването на щифтове. #Define D1 5 // I2C Bus SCL (часовник) #define D2 4 // I2C Bus SDA (данни) #дефинирайте D3 0 #дефинирайте D4 2 // Същото като "LED_BUILTIN", но обърната логика #дефинирайте D5 14 // SPI шина SCK (часовник) #дефинирайте D6 12 // SPI шина MISO #дефинирайте D7 13 // SPI Bus MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (Serial console) #define D10 1 // TX0 (Serial console) Servo myservo; // Създайте серво обект с име myservo // Телефон или допълнителен модул ESP8266, настроен на режим AP на гореща точка: const ch ar* ssid = ""; // Поставете името на вашата гореща точка вътре в кавичките const char* password = ""; // Поставете вашата парола за гореща точка в кавичките void setup () {Serial.begin (115200); // задава серийна скорост на предаване, така че микроконтролерът да може да говори с интерфейса за сериен печат в IDE на Arduino - вместо това може да се наложи да го промените на 9600! myservo.attach (D0); // прикачва серво на щифт D0, известен още като GPIO16, към серво обекта - Вижте повече на: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // премества серво рамото на въртене на 10 градуса Serial.println ("Заключено"); // извежда серийния монитор думата "Заключен" WiFi.mode (WIFI_STA); // Задава wifi в режим на станция WiFi.begin (ssid, парола); // Свързва се с hotspot beacon} void loop () {// Цикълът работи отново и отново бързо, ако (WiFi.status ()! = WL_CONNECTED) {// Ако wifi НЕ е свързан, направете следното … Serial.println („Не можах да получа wifi връзка“); myservo.write (10); // Премества серво рамото до 10 градуса Serial.println ("Заключено"); } else {// Ако WiFi е свързан, направете следното … long rssi = WiFi. RSSI (); // Създава променлива с име rssi и я присвоява на функцията, която връща отчитането на силата на сигнала на маяка за гореща точка Serial.print (rssi); // извежда отчитането на rssi към серийния монитор if (rssi> -50 && rssi <-5) {// Ако силата на сигнала е по -силна от -50 и по -слаба от -5. след това направете следното … myservo.write (170); // Завъртете серво рамото до 170 градуса Serial.println ("Отключено"); } else {// Ако горните условия не са изпълнени, направете следното … myservo.write (10); // Завърта серво рамото обратно на 10 градуса. Serial.println ("Заключен"); }}}

Стъпка 10: Трябва да знаете …

Опровержение:

Текущата итерация на кода NearBot работи надеждно за разстояния под 2 метра или 6,5 фута. Освен това той става по -малко точен, но все пак работи.

Това може да се поправи, но в момента не знам как да го направя. Ще се радвам, ако някой работи с мен, за да мога да актуализирам тези инструкции с по -прецизен метод за изчисляване на разстоянието!

Тези връзки може да са полезни: YouTuber CNLohr разработи фърмуер за отчитане на разстояние и позиция за ESP8266 с ограничен успех:

Espressif разработи функция за откриване на разстояние на полета, която ще работи с Arduino IDE за ESP8266, но никога не я пусна:

Системата за позициониране на SubPos използва модули ESP8266 и изчисляване на загуба на път, което не знам как да внедря в Arduino IDE:

Намерих пример на език Java, но не знам как да копирам това е Arduino IDE:

двойно разстояние = Math.pow (10.0, (((двойно) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/честота)))/(20*mu));

Стъпка 11: Това е всичко

Ако направите свой собствен NearBot, публикувайте вашето „Аз го направих“в коментарите по -долу!

Ако имате още идеи за какво да използвате универсалната платформа NearBot, моля, коментирайте идеите си! Това би могло да бъде страхотно вдъхновение за други потребители с инструкции!

Ако ви харесва този урок, моля, помислете за гласуване за този инструктаж в конкурси!

Препоръчано: