Мазмұны:

NearBot әмбебап: 11 қадам (суреттермен)
NearBot әмбебап: 11 қадам (суреттермен)

Бейне: NearBot әмбебап: 11 қадам (суреттермен)

Бейне: NearBot әмбебап: 11 қадам (суреттермен)
Бейне: NearBot Demo | Door Lock Use Case 2024, Шілде
Anonim
Image
Image

Бұл нұсқаулық сізге жақын жерде (телефон немесе маяк болғанда) түрлі құрылғыларда түйме, қосқыш немесе теру сияқты нәрсені жылжытуға болатын әмбебап робот -триггерді қалай жасау керектігін көрсетеді. Бұл дегеніміз, ол есіктің ысырмасын автоматты түрде ашады және қайта құлыптай алады, тек * сіз ғана өтіп бара жатсаңыз, су шашатын клапанды жабыңыз, осылайша сіз қала маңындағы Муса тәрізді судан жарақатсыз өтуге болады, гаражда болғанда динамиктің дыбыс деңгейі төмендейді. Бөлме бөлмесі, бөлмеде отырғанда драмалық дыбысты ойнайтын iPod -ды іске қосыңыз немесе әзіл айтыңыз (Джейден Смит твит?) немесе дәретхананы пайдалану үшін тұрғанда фильмді кідіртіңіз.

Бұл жоба дәнекерлеуді немесе арнайы құралдарды қажет етпейді

Егер сіз осы нұсқаулықты ұнатсаңыз, робототехника 2017 байқауында осы нұсқаулыққа дауыс беруді қарастырыңыз!

1 -қадам: аппараттық бөліктерді алыңыз

Саған қажет болады:

  • NodeMCU v2 немесе V3
  • Micro 9G Servo Motor eBay немесе Aliexpress -те 1,40 АҚШ доллары шамасында тегін жеткізіледі
  • Arduino Jumper әйелдер мен еркектерді байланыстырады.
  • NearBot корпусы - мен тапқан пластикалық қорапты қолдандым.
  • Micro USB деректер кабелі (телефон бөлшектері)
  • USB қуат көзі (телефон зарядтау құрылғысы)

Егер сізде ұялы байланыс нүктесі бар смартфон болмаса, сізге қажет:

  • ESP-01 модулі 2,50 АҚШ долларына жуық, DealExtreme, GearBest, Ebay немесе Aliexpress-те тегін жеткізіледі.
  • 1 жұп AAA батареялары
  • қосқышы бар қос ААА батарея ұстағышы

2 -қадам: жылдам бастау

Бұл қадам сізге осындай нәрсені ұнататын жағдайда жылдам бастау нұсқаулығын қамтиды. Қалған нұсқаулар біртіндеп жүреді және тереңірек ақпаратты қосады

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

// SG90 9G Servo Motor

// USB Power Bank немесе 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. Егер 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. Серво мүйізін бұрағыш көмегімен реттеңіз.

// 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 веб -редакторы NodeMCU -мен жұмыс істемейді, сондықтан оның орнына компьютерге IDE орнату қажет болады.

Сондай -ақ, www. MakerSa.ga сайтынан NearBot файлдарын алу қажет болады - бұл жобаға арналған файлды жүктеу сілтемесі осы сайтта көрсетілген.

4 -қадам: Драйверлер мен тақта профильдерін орнатыңыз

Кейбір пайдалы ақпарат
Кейбір пайдалы ақпарат

NearBot zip ішінде NodeMCU модулінің драйверлері жүктеледі және ашылмайды. Оларды компьютерге орнатыңыз.

Егер олар сізге көмектеспесе, CH340G драйверлерін wemos.cc/downloads сайтынан таба аласыз.

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

  1. Әрі қарай, Arduino IDE -ді ашып, Arduino IDE -дегі файлдық преференциялардың қосымша тақталар менеджеріне өтіңіз.
  2. Келесі кодты мына жерге қойыңыз:
  3. Таңдау қойындысын жабу үшін OK түймесін басыңыз.
  4. Құралдар мен тақтаға өтіңіз, содан кейін тақта менеджерін таңдаңыз.
  5. «Esp8266 by esp8266 қауымдастығына» өтіңіз және Arduino үшін бағдарламалық жасақтаманы орнатыңыз.

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

5 -қадам: пайдалы ақпарат

Кейбір пайдалы ақпарат
Кейбір пайдалы ақпарат
Кейбір пайдалы ақпарат
Кейбір пайдалы ақпарат

Сізде NodeMCU нұсқасы бар екенін анықтау ыңғайлы болуы мүмкін. Міне салыстыру бойынша нұсқаулық:

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

Әр нұсқада әр түрлі түйреуіштер бар. Мен v3 (Lolin) нұсқасын сатып алдым, себебі оның Servo моторын қуаттандыратын 5В шығыс түйреуіштері бар. Мен, сайып келгенде, қауіпсіздіктің орнына 3 вольтты қуат түйреуіштерін қолдандым (NodeMCU I/O түйреуіштері 5В төзімді емес), бірақ сіз 5В түйреуіштерді қолданғыңыз келуі мүмкін, себебі техникалық түрде серво қозғалтқыштарының бұл түрлері 4,5 -тен 5 вольтке дейін көрсетілген.

6 -қадам: NodeMCU -ге кодты жүктеңіз

NodeMCU -ге кодты жүктеңіз
NodeMCU -ге кодты жүктеңіз
NodeMCU -ге кодты жүктеңіз
NodeMCU -ге кодты жүктеңіз
  1. NodeMCU компьютеріне кез келген микро USB кабелі арқылы қосыңыз.
  2. Arduino IDE бағдарламасын ашыңыз және «Тақталар» астында «ESP12E» мен NodeMCU үшін COM портын таңдаңыз.
  3. IDE -де FileOpen -ге өтіңіз және «ProximityActuator013017DonovanMagryta.ino» деп аталатын Arduino нобайын ашу үшін makersa.ga сайтынан бұрын жүктелген zip қалтасын шолыңыз.
  4. Содан кейін, WiFi маякының атын және құпия сөзін қосу үшін осы кодты түзетіңіз. Бұл туралы толығырақ төменде! Мысалға:

const char* ssid = «mywifi»; // Дереккөздердің ішіне кіру нүктесінің атауын қойыңыз

const char* password = «mywifipassword»; // Қатысу нүктесінің құпия сөзін тырнақшаға енгізіңіз

Содан кейін кодты NodeMCU тақтасына түсіру үшін «жүктеу» түймесін басыңыз.

NearBot сізді анықтау және қашықтықты бағалау үшін қалталы WiFi маякын пайдаланады. Жақындық кілттері сияқты, кейбір жаңа көліктер сіз жақындаған кезде көліктің есігін ашады.

Сіз смартфонның ұялы кіру нүктесін шамшырақ ретінде пайдалана аласыз немесе балама AAA батареяларымен немесе 3,7В литийлі шағын батареямен жұмыс істейтін арзан ESP-01 WiFi модулін қолдана аласыз. ESP-01 бағдарламалаудың қажеті жоқ, ол қосылған кезде хотспот режимінің қорына әдепкі бойынша қосылады. Бұл схемада осы қадамда көрсетілген.

7 -қадам: Серводты NodeMCU -ге қосыңыз

Сервоны NodeMCU V3 -ке қосу үшін сізге бірнеше секіргіш сымдар қажет болады.

Электр схемасы қарапайым.

D0 түйреуішін қорғасындағы сигналға бекітіңіз (серводағы ең ашық түсті сым. Әдетте сары немесе ақ.)

5В кіріс сымына 3V немесе VO түйреуіші (серводағы екінші ашық түсті сым, әдетте қызыл немесе қызғылт сары).

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-ші орынға жылжытады, ал қалтада ESP-01 маягы немесе телефон нүктесі 0-ден 1,5 метрге дейін.

RSSI әдетте -90 -20 диапазонына түседі, ал -20 ең күшті сигнал күші.

Егер сіз NearBot компьютерге қосылған кезде Arduino IDE сериялық мониторын ашсаңыз, ол сізге кері байланыс үшін сигналдың күші мен іске қосу нүктелерін көрсетеді.

Міне толық код:

// БАСТАУ АЛДЫНДА:

// 1. Егер сіз Arduino IDE бағдарламасын әлі жүктеп алмаған болсаңыз, оны https://www.arduino.cc/kz/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. Егер сіз NodeMCU -ді Arduino IDE -мен сөйлесе алмасаңыз, CH340 драйверін жүктеу және орнату қажет болуы мүмкін: https://www.arduino.cc/kz/Main/Software // Жоғарыда аталған барлық процестер аяқталғаннан кейін біз біздің esp8266 NodeMCU микроконтроллерін Arduino IDE көмегімен бағдарламалау үшін оқыңыз. Сізде NodeMCU нұсқасы бар екенін білгіңіз келуі мүмкін. Мұнда салыстыру бойынша нұсқаулық: https://www.arduino.cc/kz/Main/Software // NodeMCU ESP8266 микроконтроллерінен, батареядан немесе USB қуат көзінен және SG90 Servo -дан жасалған // Сіз маяк ретінде 2 -ші өзгертілмеген esp8266 модулін пайдалана аласыз. смартфонды пайдаланудың орнына AP нүктесі. // NearBot Circuit: // D0 түйреуіші Servo сигнал сымына (ең ашық түсті сым) // 3V түйреуіш 5V сымға (орта сым) (USB кабеліне параллель немесе NodeMCU -дегі VO түйрегіне қосылады, егер сізде V3 болса. / /USB қуаты NodeMCU -дегі USB штепсельдік ұшына // GND түйреуіші Servo Ground сымына (ең қараңғы түсті сым) // Ескерту сызықтары екі ілгері қиғаш сызықтан басталады және оларды компьютер елемейді. Ескертпелер біз үшін адамдарға арналған! #Include #include // Сериялық басып шығару үшін қажет болуы мүмкін. #Қосу // Серво кітапханасы #анықтаңыз D0 16 // түйреуіштерді тағайындауды жеңілдету үшін түйреуіштерді анықтайды. #Анықтау D1 5 // I2C шинасы SCL (сағат) #D2 4 анықтау (деректер) #анықта 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 (Сериялық консоль) #define D10 1 // TX0 (Сериялық консоль) Servo myservo; // myservo деп аталатын серво объектісін жасаңыз // Телефон немесе қосымша ESP8266 модулі кіру нүктесінің кіру нүктесі режиміне орнатылды: const ch ar* ssid = «»; // Өз нүктеңіздің атауын тырнақшаға const char* password = «» қойыңыз; // хотспот құпия сөзін тырнақшалардың ішіне енгізіңіз void setup () {Serial.begin (115200); // микроконтроллер Arduino IDE -де сериялық басып шығару интерфейсімен сөйлесе алатындай сериялық беру жылдамдығын орнатады - оның орнына оны 9600 -ге өзгерту қажет болуы мүмкін! myservo.attach (D0); // сервоприводты D0 aka GPIO16 түйісіндегі серво бекітеді - Толығырақ мына жерден қараңыз: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // серво қолын 10 градусқа айналдырады Serial.println («Құлыптаулы»); // сериялық монитордың «Locked» WiFi.mode (WIFI_STA) сөзін шығарады; // 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 деп аталатын айнымалы мәнді жасайды және оны 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 модульдерін және жол жоғалтуды есептеуді қолданады, мен оны 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 платформасын не үшін қолдануға болатынын білгіңіз келсе, өз пікіріңізді білдіріңіз! Бұл басқа қолданушылар үшін үлкен шабыт болуы мүмкін!

Егер сізге бұл оқулық ұнаса, конкурстарда осы нұсқаулыққа дауыс беруді қарастырыңыз!

Ұсынылған: