Мазмуну:

Ар тараптуу NearBot: 11 кадам (сүрөттөр менен)
Ар тараптуу NearBot: 11 кадам (сүрөттөр менен)

Video: Ар тараптуу NearBot: 11 кадам (сүрөттөр менен)

Video: Ар тараптуу NearBot: 11 кадам (сүрөттөр менен)
Video: АР ТАРАПТУУ ТЕХНИКАЛЫК ЖАҢЫЛАНУУ ЭВОЛЮЦИЯСЫ 2024, Июль
Anonim
Image
Image

Бул көрсөтмө сизге жакын жерде (телефонуңуз же маяк менен) ар кандай түзмөктөрдө баскыч, которуу же терүү сыяктуу нерселерди жылдыра турган универсалдуу робот триггерин кантип курууну көрсөтөт. Демек, ал автоматтык түрдө эшиктин кулпусун ачып, кайра кулпулай алат * сиз гана өтүп бара жатсаңыз, чачыраткычтын клапанын жаап коюңуз, ошондо сиз шаар четиндеги Мусага окшоп, суудан эч кандай жабыркабай өтүп кете аласыз, гаражда жүргөндө динамиктин үнүн азайтыңыз. Бөлмө бөлмөсү, сиз iPod бөлмөсүндө жатканда драмалык кирүү обонун ойноп же тамашалаңыз (Жаден Смит твит?), же ажаткананы колдонуу үчүн турганыңызда кинону токтотуңуз.

Бул долбоорго ширетүү же атайын шаймандар талап кылынбайт

Эгерде сиз бул көрсөтмөлөрдү жетиштүү деңгээлде жактырсаңыз, анда бул робототехника 2017 сынагына добуш берүүнү карап көрүңүз!

1 -кадам: Аппараттык бөлүктөрдү алыңыз

Сага керек болот:

  • NodeMCU v2 же V3
  • Micro 9G Servo Motor eBay же Aliexpressке болжол менен $ 1.40 USD жеткирүү
  • Arduino Jumper аялдан эркекке өткөрөт.
  • NearBot үчүн корпус - мен тапкан пластик кутучаны колдондум.
  • Микро USB маалымат кабели (телефондун тетиктери)
  • USB кубат булагы (телефондун кубаттагычы)

Эгерде сизде мобилдик байланыш түйүнү бар смартфонуңуз жок болсо, сизге дагы керек болот:

  • ESP-01 модулу $ 2.50 АКШ долларына жакын DealExtreme, GearBest, Ebay же Aliexpressке бекер жеткирилет.
  • 1 жуп AAA батареялары
  • которгуч менен кош AAA батарея кармагыч

2 -кадам: Тез баштоо

Бул кадам сизге ушундай нерсени кааласаңыз, тез баштоо көрсөтмөсүн камтыйт. Калган бул нускамалар этап-этабы менен жүрүп, тереңирээк маалыматты кошот

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

// SG90 9G Servo Motor

// USB Power Bank же USB дубал адаптери.

// Микро USB маалымат/кубаттоо кабели

// Arduino эркектен ургаачыга секирүүчү зымдар

// СИЗДИН АЛДЫНЫЗДА:

// 1. Эгерде сиз буга чейин Arduino IDEди түшүрө элек болсоңуз, аны бекер алыңыз (кайрымдуулук ыктыярдуу):

// 2. Arduino IDE ачыңыз (эгер сиз буга чейин Arduino IDEде окубасаңыз!)…

// 3. Файлдарга өтүңүз жана Arduino IDEдеги артыкчылыкты чыкылдатыңыз …

// 4. Төмөндөгү кодду кошумча такталар менеджерине көчүрүңүз: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. артыкчылык өтмөгүн жабуу үчүн ОК басыңыз …

// 6. Куралдарга жана такталарга өтүңүз, анан башкарма башкаруучусун тандаңыз …

// 7. Esp8266 жамааты тарабынан esp8266га өтүңүз жана Arduino үчүн программаны орнотуңуз …

// 8. Эгерде сиз NodeMCU Arduino IDE менен сүйлөшө албасаңыз, CH340 драйверин жүктөп алып, орнотушуңуз керек болот:

// Жогорудагы процесстин баары аяктагандан кийин, биз esp8266 NodeMCU микроконтроллерибизди Arduino IDE менен программалоо үчүн окуйбуз.

//9. тактанын менюсунан NodeMCU V1.0 ESP12E тандаңыз /

/10. Колдонуп жаткан COM портуңузду тандаңыз.

// 11. кодду тандаңыз (www.makersa.ga сайтынан жүктөп алыңыз) жана жүктөөнү чыкылдатыңыз. /

/12. Сервону NodeMCUга секирүүчү зымдарды колдонуу менен сайыңыз. D0 сигналга, жерге жерге, +VCC VO же 3Vга. /

/13. Бурагычтын жардамы менен servo мүйүзүн тууралаңыз.

// 14. Кодду колдонуу менен кыймылдын максималдуу жана минималдуу даражаларын тууралаңыз.

// 15. Код жаңыртылган сайын NodeMCUге кайра жүктөө.

// Сизде NodeMCU кайсы версиясы бар экенин билүү маанилүү болушу мүмкүн. Мына салыштыруу көрсөтмөсү:

frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v1 pinout диаграммасы: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v2 pinout диаграммасы: https://frightanic.com/iot/comparison-of-esp8266-no… // NodeMCU v3 pinout диаграммасы:

// Бургулардын түшүндүрмөсү:

// NodeMCU ESP8266 микроконтроллеринен, батареядан же USB энергия менен камсыздоодон жана SG90 Servoдон жасалган

// Сиз смартфонду колдонуунун ордуна маяктын чекити катары 2 -чи өзгөртүлбөгөн esp8266 модулун колдоно аласыз, программалоонун кереги жок.

3 -кадам: Программалык бөлүктөрдү алыңыз

Алгач сиз бекер Arduino IDE жүктөп алышыңыз керек

Мен жазып жаткан учурда Arduino Web Editor NodeMCU менен иштебейт, андыктан анын ордуна IDEди компьютериңизге орнотушуңуз керек болот.

Ошондой эле, www. MakerSa.ga сайтынан NearBot файлдарын кармашыңыз керек болот - Бул долбоор үчүн файлды жүктөө шилтемеси ошол сайтта көрсөтүлгөн.

4 -кадам: Айдоочуларды жана такталар профилин орнотуңуз

Кээ бир пайдалуу маалымат
Кээ бир пайдалуу маалымат

NearBot zipтин ичинде сиз жүктөп алган жана чыгарылбаган NodeMCU модулунун драйверлери болот. Аларды компьютериңизге орнотуңуз.

Эгерде булар сиз үчүн иштебесе, анда CH340G драйверлерин wemos.cc/downloads сайтынан таба аласыз.

Сиздин NodeMCU CH340G чипин колдонбошу мүмкүн, андыктан сиз издеп жаткан драйвер менен комментарий жазышыңыз керек болот, мен ошол айдоочунун жүктөө шилтемеси менен жооп берем.

  1. Андан кийин, Arduino IDEди ачыңыз жана Arduino IDEдеги File PreferencesAdditional Boards Managerге өтүңүз.
  2. Ал жерге төмөнкү кодду чаптаңыз:
  3. Тандоо өтмөгүн жабуу үчүн ОК басыңыз.
  4. Куралдарга жана такталарга өтүңүз, андан кийин такта менеджерин тандаңыз.
  5. "Esp8266 by esp8266 коомчулукка" өтүңүз жана Arduino үчүн программаны орнотуңуз.

Жогорудагы процесстер аяктагандан кийин, биз esp8266 NodeMCU микроконтроллерибизди Arduino IDE менен программалоого даярбыз!

5 -кадам: Кээ бир пайдалуу маалымат

Кээ бир пайдалуу маалымат
Кээ бир пайдалуу маалымат
Кээ бир пайдалуу маалымат
Кээ бир пайдалуу маалымат

Сизде NodeMCU кайсы версиясы бар экенин билүү оңой болушу мүмкүн. Бул жерде салыштыруу көрсөтмөсү:

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

Ар бир версияда ар кандай пин түзүлүшү бар. Мен v3 (Lolin) версиясын сатып алдым, анткени анын Servo моторун кубаттоо үчүн 5V чыгаруу пинтери бар. Мен акыры анын ордуна коопсуздук үчүн 3 вольттуу электр казыктарын колдондум (NodeMCU I/O казыктары 5В чыдамдуу эмес), бирок сиз 5V казыктарын колдонууну каалашыңыз мүмкүн, анткени техникалык жактан бул түрдөгү моторлор 4,5 - 5 вольт кубаттуулукта көрсөтүлгөн.

6 -кадам: NodeMCUго кодду жүктөңүз

Кодду NodeMCUго жүктөңүз
Кодду NodeMCUго жүктөңүз
Кодду NodeMCUго жүктөңүз
Кодду NodeMCUго жүктөңүз
  1. NodeMCUну каалаган микро USB кабели аркылуу компьютериңизге сайыңыз.
  2. Arduino IDEди ачыңыз жана "Такта" астынан "ESP12E" жана NodeMCU үчүн COM портун тандаңыз.
  3. IDEде FileOpenге өтүп, makersa.ga сайтынан мурда жүктөлгөн zip папкасын карап чыгып, "ProximityActuator013017DonovanMagryta.ino" аттуу Arduino эскизин ачыңыз.
  4. Андан кийин, WiFi маякыңыздын атын жана сырсөзүн кошуу үчүн, муну камтыган код линиясын түзөтүңүз. Бул тууралуу төмөндө кененирээк! Мисалы:

const char* ssid = "mywifi"; // Байланыш чекитинин атын тырмакчалардын ичине киргизиңиз

const char* password = "mywifipassword"; // Hotspot сырсөзүңүздү тырмакчалардын ичине салыңыз

Андан кийин кодду NodeMCU тактасына чагылдыруу үчүн "жүктөө" баскычын басыңыз.

NearBot сизди аныктоо жана аралыкты эсептөө үчүн чөнтөк WiFi маякты колдонот. Жакындыктын ачкычтары сыяктуу, кээ бир жаңы унаалар сиз жакындап келгенде машинанын эшигин ачат.

Сиз смартфонуңуздун мобилдик түйүнүн маяк катары колдоно аласыз, же болбосо бир жуп ААА батарейкасы же кичинекей литий 3.7v батарейкасы менен иштеген арзан ESP-01 WiFi модулун колдонсоңуз болот. ESP-01ди программалоонун кажети жок, ал күйгүзүлгөндө демейки чекит режиминин запасы. Мунун схемасы бул кадамда көрсөтүлгөн.

7 -кадам: Сервону NodeMCUге тиркеңиз

Сервону NodeMCU V3гө туташтыруу үчүн сизге кээ бир секирүүчү зымдар керек болот.

Райондук диаграмма жөнөкөй.

Pin D0 коргошундагы сигналга (серводогу эң ачык түстөгү зым. Көбүнчө сары же ак.)

5V кирүүчү коргошунга 3V же PIN VO пин (серводо экинчи ачык түстүү зым, көбүнчө кызыл же кызгылт сары түстө.)

Жерди коргошунга GND кадап коюңуз (серводогу эң караңгы түстүү зым, көбүнчө күрөң же кара.)

8 -кадам: NearBotту жакшылап тууралаңыз

Код сигналдын күчүн аралыкты баалоого айландырат. Бул 2 метрден же 6,5 футтан аз реакция аралыктары үчүн ишенимдүү иштейт. Бул түздөн -түз конверсия болгондуктан, ал жакшы эсептөө методу менен болушу мүмкүн болгон 3 метрден алыс аралыктарга жылмакай эмес. Бул тууралуу кийинчерээк.

Сиз servo мүйүзү (кыймылдаган кичинекей ак кол) жайгашкан жерди тууралоону каалашыңыз мүмкүн. Бул жөн эле отвертка менен servo колун бурап, жана аны кайра жайгаштыруу аркылуу жасалат.

Кийинки бөлүк - кодду колдонуу менен кыймылдын максималдуу жана минималдуу деңгээлин тууралоо.

Бул окшош саптарда камтылган сандарды өзгөртүү аркылуу жасалышы мүмкүн:

myservo.write (10); // servo колун 10 градуска айлантууга жылдырат

Сиз ошондой эле төмөнкүдөй саптардагы терс сандарды өзгөртүү менен сигналдын күчтүүлүгүн жөндөй аласыз:

if (rssi> -30 && rssi <-5) {// Эгерде сигналдын күчү -30дан күчтүү жана -5тен алсызыраак болсо. анда төмөнкүлөрдү аткарыңыз …

9 -кадам: Бул кантип иштейт

  1. NearBot адегенде колдонуучу жакындаганда, чекитке алдын ала туташат.
  2. Бул RSSI (сигналдын күчү) сканерлейт жана болжолдуу аралыкка айлантат.
  3. Аралык белгиленген чекте болсо да, ал servo мотор колун 1 -позицияга жылдырат.
  4. Болбосо, servo мотор 2 -позицияга жылат.

Мен муну текшергенде, RSSI тюнинги (-50) сервону 1-позицияга жылдырат, ал эми чөнтөгүмдө ESP-01 маягы же телефондун туташуу чекити 0-1.5 метр.

RSSI адатта -90дан -20га чейин болот, -20 эң күчтүү сигналдын күчү.

Nearby компьютерге туташтырылганда Arduino IDE сериялык мониторун ачсаңыз, ал сизге реалдуу убакытта сигналдын күчүн жана триггер чекиттерин көрсөтөт.

Бул жерде толук код:

// СИЗДИН АЛДЫНЫЗДА:

// 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. артыкчылык өтмөгүн жабуу үчүн ОК басыңыз … // 6. Куралдарга жана тактага өтүңүз, андан кийин такта менеджерин тандаңыз … // 7. Esp8266 жамааты тарабынан esp8266га өтүңүз жана Arduino үчүн программаны орнотуңуз … // 8. Эгерде сиз NodeMCUны Arduino IDE менен сүйлөшө албасаңыз, CH340 драйверин жүктөп алып, орнотушуңуз керек болушу мүмкүн: https://www.arduino.cc/en/Main/Software // Жогорудагы процесстин баары аяктагандан кийин esp8266 NodeMCU микроконтроллерибизди Arduino IDE менен программалоо үчүн окуңуз. Сизде кайсы NodeMCU версиясы бар экенин билгиңиз келиши мүмкүн. Бул жерде салыштыруу көрсөтмөсү: https://www.arduino.cc/en/Main/Software // NodeMCU ESP8266 микроконтроллеринен, батареядан же USB энергия менен камсыздоодон жана SG90 Servoдон жасалган // Сиз маяк катары 2 -өзгөртүлбөгөн esp8266 модулун колдоно аласыз. смартфонду колдонуунун ордуна AP. // NearBot Circuit: // Servo сигнал зымына D0 пин (эң ачык түстөгү зым) // 3V pin servo 5v зымына (орто зым) (USB кабелине параллелдүү же NodeMCUдогу VO пинге V3 болсоңуз. / /NodeMCUдагы USB туташтыргычына USB кубаты // GND pin Servo Ground зымына (эң караңгы түстүү зым) // Эскертүү сызыктары эки алдыга кыйшык сызык менен башталат жана аларды компьютерлер этибарга албайт. Эскертүүлөр биз үчүн адамдар үчүн! #Include #include // Сериялык басып чыгаруу үчүн керек болушу мүмкүн. #Кошуу // Серво китепканасы #аныктоо D0 16 // Пиндерди дайындоону жеңилдетүү үчүн төөнөгүчтөрдү аныктайт. (маалымат) #аныктоо D3 0 #аныктоо D4 2 // "LED_BUILTIN" менен бирдей, бирок тескери логика #аныктоо D5 14 // SPI Bus SCK (саат) #аныктоо D6 12 // SPI Bus 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 аттуу servo объектти түзүңүз // Телефон же кошумча ESP8266 модулу hotspot AP режимине коюлган: const ch ar* ssid = ""; // Hotspot атыңызды const char* password = "" тырмакчаларынын ичине киргизиңиз; // Hotspot сырсөзүңүздү тырмакчалардын ичине киргизиңиз void setup () {Serial.begin (115200); // микро контроллер Arduino IDEдеги сериялык басып чыгаруу интерфейси менен сүйлөшө алышы үчүн, сериялык бердин ылдамдыгын коет - Анын ордуна аны 9600гө өзгөртүү керек болушу мүмкүн! myservo.attach (D0); // servo объектиге D0 ака GPIO16 боюнча сервону тиркейт - Дагы караңыз: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // servo колун 10 градуска айлантууга жылдырат Serial.println ("Кулпуланган"); // сериялык мониторду "Кулпуланган" WiFi.mode (WIFI_STA) сөзүн чыгаруу; // WiFi режимин WiFi режимине коет WiFi.begin (ssid, сырсөз); // Хотспот маякка туташат} void loop () {// Эгерде цикл тез -тез иштесе (WiFi.status ()! = WL_CONNECTED) {// Эгерде wifi туташпаса, төмөнкүлөрдү аткарыңыз… Serial.println ("Wi -Fi байланышы алынган жок"); myservo.write (10); // Серво колун 10 градуска жылдырат Serial.println ("Кулпуланган"); } else {// Эгерде WiFi IS туташкан болсо, анда төмөнкүлөрдү аткарыңыз … long rssi = WiFi. RSSI (); // rssi аттуу өзгөрмөнү жаратат жана аны hotspot маяктын сигнал күчүнүн окулушун кайтаруучу функцияга дайындайт Serial.print (rssi); // rssi окуусун сериялык мониторго чыгарат, эгерде (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 ESP8266 үчүн Arduino IDE менен иштей турган Учуу аралыктарын аныктоо функциясын иштеп чыкты, бирок аны эч качан чыгарган жок:

SubPos позициялоо системасы ESP8266 модулдарын жана Path Loss Calculation колдонот, мен муну 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 платформасын эмне үчүн колдонуу керектиги боюнча дагы идеяларыңыз болсо, оюңузду комментарийге калтырыңыз! Бул башка көрсөтмө колдонуучулар үчүн чоң илхам болушу мүмкүн!

Эгерде сиз бул окуу куралын жактырсаңыз, анда бул көрсөтмөлүү конкурстарга добуш бериңиз!

Сунушталууда: