Олон талт NearBot: 11 алхам (зурагтай)
Олон талт NearBot: 11 алхам (зурагтай)
Anonim
Image
Image

Энэхүү зааварчилгаа нь ойролцоо байхдаа (гар утас эсвэл гэрэлт цамхагтай байхдаа) янз бүрийн төхөөрөмж дээр товчлуур, унтраалга, залгах гэх мэт зүйлийг хөдөлгөж чаддаг олон талт роботын гохыг хэрхэн бүтээхийг танд үзүүлэх болно. Энэ нь хаалганы түгжээг автоматаар онгойлгож, дахин түгжих боломжтой гэсэн үг бөгөөд зөвхөн та хажуугаар өнгөрөхөд ус цацагч хавхлагыг хааж, гаражид байхдаа хотын захын Мосе шиг ус дамжин өнгөрөх боломжтой. Хамтлагийн өрөө, iPod -г тоглож, хөгжмийн аяыг тоглуулах эсвэл өрөөнд байгаа үедээ хошигнол хэлэх (Жаден Смит жиргэдэг үү?), эсвэл ариун цэврийн өрөө ашиглахаар босохдоо киногоо түр зогсоо.

Энэ төсөл нь гагнуур эсвэл тусгай багаж хэрэгсэл шаарддаггүй

Хэрэв танд энэ зааварчилгаа хангалттай таалагдсан бол Robotics 2017 тэмцээнд энэхүү зааварчилгааны төлөө саналаа өгөхийг бодоорой!

Алхам 1: Тоног төхөөрөмжийн хэсгүүдийг олж аваарай

Танд хэрэгтэй болно:

  • NodeMCU v2 эсвэл V3
  • Бичил 9G Servo Motor eBay эсвэл Aliexpress дээр 1.40 доллар орчим үнэгүй хүргэлт хийдэг
  • Arduino Jumper нь эрэгтэй, эмэгтэй утас холбоно.
  • NearBot -ийн бүрхүүл - Би олсон хаягдал хуванцар хайрцгийг ашигласан.
  • Микро USB өгөгдлийн кабель (утасны эд анги)
  • USB тэжээлийн эх үүсвэр (утасны цэнэглэгч хаягдал)

Хэрэв танд гар утасны холболтын цэг бүхий ухаалаг гар утас байхгүй бол танд бас хэрэгтэй болно.

  • ESP-01 модуль нь ойролцоогоор 2.50 долларын үнэтэй бөгөөд DealExtreme, GearBest, Ebay эсвэл Aliexpress дээр үнэгүй хүргэгддэг.
  • 1 хос AAA батерей
  • унтраалгатай хос AAA зай эзэмшигч

Алхам 2: Түргэн эхлэх

Хэрэв танд ийм зүйл таалагдаж байвал энэ алхам нь хурдан эхлэх гарын авлагыг агуулсан болно. Энэхүү зааварчилгааны үлдсэн хэсэг нь алхам алхмаар явж, илүү гүнзгий мэдээллийг нэмж өгдөг

// Худалдааны жагсаалт: // NodeMCU V3 (Lolin) ESP8266 микроконтроллер

// SG90 9G Servo мотор

// USB Power Bank эсвэл USB ханын адаптер.

// Микро USB дата/цэнэглэгч кабель

// Arduino эрэгтэй, эмэгтэй төрлийн холбогч утас

// ЭХЛЭХЭЭС ӨМНӨ:

// 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. Хэрэв та NodeMCU -ийг Arduino IDE -тэйгээ ярих боломжгүй бол CH340 драйверийг татаж суулгах шаардлагатай болно:

// Дээрх бүх процесс дууссаны дараа бид esp8266 NodeMCU микроконтроллерийг Arduino IDE програмчлахаар уншдаг.

//9. Самбарын цэснээс NodeMCU V1.0 ESP12E -ийг сонгоно уу /

/10. Ашиглаж буй COM портоо сонгоно уу.

// 11. кодыг сонгоно уу (www.makersa.ga дээрээс татаж авна уу), байршуулах дээр дарна уу. /

/12. Холбогч утас ашиглан servo -ийг NodeMCU руу залгаарай. D0 дохио өгөх, газардуулах, +VCC - VO эсвэл 3V. /

/13. Халив ашиглан servo эвэрийг тохируулна уу.

// 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 -ийг компьютер дээрээ суулгах хэрэгтэй болно.

Та мөн www. MakerSa.ga -аас NearBot файлуудыг татаж авах хэрэгтэй болно - Энэ төслийн файлыг татаж авах линкийг тухайн сайт дээр жагсаасан болно.

Алхам 4: Жолооч болон самбарын профайлыг суулгана уу

Зарим хэрэгтэй мэдээлэл
Зарим хэрэгтэй мэдээлэл

NearBot зип дотор таны татаж аваад задалсан нь 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) хувилбарыг худалдаж авсан, учир нь энэ нь 5V гаралтын тээглүүртэй бөгөөд Servo моторыг тэжээдэг. Эцэст нь би аюулгүй байдлын үүднээс 3 вольтын тэжээлийн зүү ашигласан (NodeMCU I/O тээглүүр нь 5В тэсвэрлэх чадваргүй), гэхдээ техникийн хувьд ийм төрлийн servo моторыг 4.5-5 вольтын хүчээр зааж өгсөн тул та 5V зүү ашиглахыг хүсч магадгүй юм.

Алхам 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"; // Халуун цэгийнхээ нууц үгийг ишлэл дотор оруулна уу

Дараа нь "байршуулах" дээр дарж кодыг NodeMCU самбар дээр асаагаарай.

NearBot нь халаасанд холбогдсон WiFi дохиог ашиглан таныг таних, зайг тооцоолох боломжтой. Ойролцоох түлхүүрүүдийн нэгэн адил зарим шинэ машинууд ойртох тусам машины хаалгыг онгойлгодог.

Та ухаалаг гар утасныхаа гар утасны цэгийг гэрэлт цамхаг болгон ашиглаж болно, эсвэл хос AAA батерей эсвэл 3.7V литийн жижиг батерейгаар ажилладаг хямд ESP-01 WiFi модулийг ашиглаж болно. ESP-01-ийг програмчлах шаардлагагүй, асаалттай үед энэ нь анхдагчаар халуун цэгийн горимын хувьцааг өгдөг. Үүний схемийг энэ алхам дээр харуулав.

Алхам 7: Servo -г NodeMCU -д холбоно уу

NodeMCU V3 -т servo залгахын тулд танд хэдэн холбогч утас хэрэгтэй болно.

Хэлхээний диаграм нь энгийн.

D0 зүүг хар тугалга бүхий дохио руу залгаарай (servo дээрх хамгийн цайвар өнгийн утас. Ихэвчлэн шар эсвэл цагаан өнгөтэй).

3V эсвэл VO зүүг 5V оролтын залгуурт холбоно уу (servo дээрх хоёр дахь цайвар өнгийн утас, ихэвчлэн улаан эсвэл улбар шар).

GND -ийг газардуулгатай холбоно уу (servo дээрх хамгийн бараан өнгөтэй утас, ихэвчлэн хүрэн эсвэл хар өнгөтэй).

Алхам 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) нь servo-ийг 1-р байрлалд шилжүүлж, 0-1.5 метрийн зайтай байгаа бөгөөд ESP-01 дохио эсвэл утасны халуун цэгийг халаасандаа хийж болно.

RSSI нь ихэвчлэн -90 -20 хооронд хэлбэлздэг бөгөөд -20 нь хамгийн хүчтэй дохионы хүч юм.

Хэрэв та NearBot -ийг компьютерт залгаж байх үед Arduino IDE Serial Monitor -ийг нээвэл энэ нь танд хэрэгтэй санал хүсэлтийг өгөх бодит цагийн дохионы хүч болон гох цэгүүдийг харуулах болно.

Энд бүрэн код байна:

// ЭХЛЭХЭЭС ӨМНӨ:

// 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. Хэрэв та 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: // D0 pin to Servo дохионы утас (хамгийн цайвар өнгийн утас) // 3V зүү 5V утас (дунд утас) (3 -р зүү, хэрэв та V3 -тэй бол NodeMCU дээрх USB кабель эсвэл VO зүүтэй зэрэгцүүлэн залгана. / /NodeMCU дээрх USB залгуураас USB тэжээл авах // GND зүү нь Servo Ground утас руу (хамгийн бараан өнгөний утас) // Тэмдэглэлийн мөрүүд нь урагшаа хоёр ташуу зураасаар эхэлдэг бөгөөд тэдгээрийг компьютер үл тоомсорлодог. Тэмдэглэл нь зөвхөн хүмүүст зориулагдсан болно! #Include #include // Цуврал хэвлэхэд хэрэгтэй байж магадгүй. #Оруулах // Servo номын сан #тодорхойлох D0 16 // Зүү тогтоохыг хялбарчлахын тулд тээглүүрүүдийг тодорхойлно. (өгөгдөл) #тодорхойлох D3 0 #тодорхойлох D4 2 // "LED_BUILTIN" -тэй адил боловч урвуу логик #тодорхойлох D5 14 // SPI Bus 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 нэртэй servo объект үүсгэх // Утас эсвэл нэмэлт ESP8266 модулийг hotspot AP горимд тохируулсан: const ch ar* ssid = ""; // Өөрийн халуун цэгийн нэрийг quotes const char* password = "" дотор оруулна уу; // Өөрийн халуун цэгийн нууц үгийг quotes void setup () {Serial.begin (115200) дотор оруулна уу; // цуваа дамжуулалтын хурдыг тохируулдаг тул микроконтроллер нь Arduino IDE дээрх цуврал хэвлэх интерфэйстэй ярих боломжтой - Та үүнийг 9600 болгож өөрчлөх хэрэгтэй байж магадгүй юм! myservo.attach (D0); // servo объекттой D0 aka GPIO16 зүү дээрх servo -ийг хавсаргана - Илүү ихийг үзнэ үү: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // servo гарыг 10 градус эргүүлэхэд шилжүүлнэ Serial.println ("Locked"); // цуваа дэлгэцийг "Locked" WiFi.mode (WIFI_STA) гэсэн үгийг гаргана; // WiFi -ийг Станцын горимд тохируулна WiFi.begin (ssid, нууц үг); // Халуун цэгийн гэрэлт цэгт холбогддог} void loop () {// (WiFi.status ()! = WL_CONNECTED) {// Хэрэв wifi холбогдоогүй бол дараах зүйлийг хий … Serial.println ("Wi -Fi холболт авч чадсангүй"); myservo.write (10); // Servo гарыг 10 градус руу шилжүүлнэ Serial.println ("Locked"); } else {// Хэрэв WiFi IS холбогдсон бол дараах зүйлийг хий … long rssi = WiFi. RSSI (); // rssi нэртэй хувьсагч үүсгэж, hotspot beacon 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 платформыг юу ашиглах талаар өөр санаа байгаа бол саналаа хэлээрэй! Энэ нь бусад зааварчилгаа өгөх хэрэглэгчдэд маш их урам зориг өгөх болно!

Хэрэв танд энэ заавар таалагдсан бол уралдаан тэмцээнд оролцохдоо саналаа өгнө үү!

Зөвлөмж болгож буй: