Innholdsfortegnelse:

Allsidig NearBot: 11 trinn (med bilder)
Allsidig NearBot: 11 trinn (med bilder)

Video: Allsidig NearBot: 11 trinn (med bilder)

Video: Allsidig NearBot: 11 trinn (med bilder)
Video: Стрижка Боб Каре 2023 Пошагово дома / Стрижка Каре на удлинение / Уроки стрижек Евы Лорман 2024, November
Anonim
Image
Image

Denne instruksen vil vise deg hvordan du bygger en allsidig robotutløser som kan flytte noe som en knapp, bryter eller ringe på forskjellige enheter når du (med telefonen eller et fyrtårn i lommen) er i nærheten. Dette betyr at den automatisk kan låse opp og låse igjen en dørlås mens * bare du * går forbi, stenger en sprinklerventil slik at du kan passere uskadd gjennom vannet som en slags forstad til Moses, lavere høyttalervolum mens du er i garasjen bandrom, utløs en iPod som spiller en dramatisk melodi eller fortell en vits (Jaden Smith tweet?) mens du er i rommet, eller sett en film på pause når du står opp for å bruke toalettet.

Dette prosjektet krever ikke lodding eller spesialverktøy

Hvis du liker denne instruksjonen nok, kan du vurdere å stemme på denne instruerbare i Robotics 2017 -konkurransen!

Trinn 1: Skaff deg maskinvaredelene

Du vil trenge:

  • NodeMCU v2 eller V3
  • Micro 9G Servomotor ca $ 1,40 USD gratis frakt på eBay eller Aliexpress
  • Arduino Jumper Wires Female to Male.
  • Et foringsrør for NearBot - jeg brukte en plastboks jeg fant.
  • Micro USB -datakabel (skraptelefondeler)
  • USB -strømkilde (telefonlader)

Hvis du ikke har en smarttelefon med en mobil hotspot -funksjon, trenger du også:

  • ESP-01-modul ca $ 2,50 USD gratis frakt på DealExtreme, GearBest, Ebay eller Aliexpress.
  • 1 par AAA -batterier
  • dobbel AAA batteriholder med bryter

Trinn 2: Hurtigstart

Dette trinnet inneholder en hurtigstartguide hvis du liker den slags. Resten av denne instruerbare går trinn for trinn og legger til mer grundig informasjon

// Handleliste: // NodeMCU V3 (Lolin) ESP8266 mikrokontroller

// SG90 9G Servomotor

// USB Power Bank eller USB -veggadapter.

// Micro USB data/ladekabel

// Arduino hane til hunn type

//FØR DU BEGYNNER:

//1. Hvis du ikke allerede har lastet ned Arduino IDE, kan du få den gratis (donasjon valgfri) på:

// 2. åpne Arduino IDE (hvis du ikke allerede har lest dette i Arduino IDE!) …

// 3. Gå til filer og klikk på preferansen i Arduino IDE …

// 4. kopier koden nedenfor i tilleggstavler Manager: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. klikk OK for å lukke preferansefanen …

// 6. Gå til verktøy og tavle, og velg deretter styreleder …

// 7. Naviger til esp8266 av esp8266 community og installer programvaren for Arduino …

// 8. Du må kanskje laste ned og installere CH340 -driveren hvis du ikke kan få NodeMCU til å snakke med Arduino IDE:

// Når all den ovennevnte prosessen er fullført, leses vi for å programmere vår esp8266 NodeMCU mikrokontroller med Arduino IDE.

//9.velg NodeMCU V1.0 ESP12E fra brettmenyen /

/10. Velg COM -porten du bruker.

// 11. velg koden (last ned fra www.makersa.ga) og klikk på last opp. /

/12. Koble servoen til NodeMCU ved hjelp av jumperkabler. D0 for å signalere, jord til bakke, +VCC til VO eller 3V. /

/1. 3. Juster servohornet med en skrutrekker.

// 14. Juster maksimal og minimum bevegelsesgrad ved hjelp av koden.

// 15. Last opp på nytt til NodeMCU når koden oppdateres.

// Det kan hende du finner det viktig å finne ut hvilken NodeMCU -versjon du har. Her er en sammenligningsguide:

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

// Forklaring til riggene:

// Laget av NodeMCU ESP8266 mikrokontroller, batteri eller USB -strømforsyning og SG90 Servo

// Du kan bruke en andre, uendret esp8266 -modul som et varselpunkt -hotspot -AP i stedet for å bruke en smarttelefon, ingen programmering nødvendig.

Trinn 3: Skaff deg programvaredelene

Du må først laste ned gratis Arduino IDE

Arduino Web Editor fungerer ikke med NodeMCU på det tidspunktet jeg skriver dette, så du må installere IDE på datamaskinen din i stedet.

Du må også hente NearBot -filene fra www. MakerSa.ga - Filnedlastingskoblingen for dette prosjektet er oppført på dette nettstedet.

Trinn 4: Installer drivere og brettprofiler

Litt nyttig informasjon
Litt nyttig informasjon

Inne i NearBot -zipen du lastet ned og pakket ut, vil driverne for NodeMCU -modulen være. Installer dem på datamaskinen din.

Hvis disse ikke fungerer for deg, kan du finne CH340G -drivere på wemos.cc/downloads

NodeMCU bruker kanskje ikke CH340G -brikken, så det kan hende du må kommentere driveren du leter etter, så svarer jeg med nedlastingskoblingen for den driveren.

  1. Deretter åpner du Arduino IDE og går til File PreferencesAdditional Boards Manager i Arduino IDE.
  2. Lim inn følgende kode der:
  3. Klikk OK for å lukke kategorien for preferanser.
  4. Gå til verktøy og tavle, og velg deretter styreleder.
  5. Naviger til "esp8266 by esp8266 community" og installer programvaren for Arduino.

Når all den ovennevnte prosessen er fullført, er vi klare til å programmere vår esp8266 NodeMCU mikrokontroller med Arduino IDE!

Trinn 5: Noen nyttig informasjon

Litt nyttig informasjon
Litt nyttig informasjon
Litt nyttig informasjon
Litt nyttig informasjon

Du kan finne det praktisk å finne ut hvilken NodeMCU -versjon du har. Her er en sammenligningsguide:

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

Hver versjon har forskjellige pin -arrangementer. Jeg kjøpte v3 (Lolin) versjonen fordi den har 5V utgangspinner for å drive servomotoren. Jeg brukte til slutt i stedet 3 volt strømpinnene i stedet for sikkerhet (NodeMCU I/O -pinnene er ikke 5V -tolerante), men du vil kanskje bruke 5V -pinnene fordi teknisk sett er denne typen servomotorer spesifisert for 4,5 til 5 volt effekt.

Trinn 6: Last koden inn på NodeMCU

Last koden inn på NodeMCU
Last koden inn på NodeMCU
Last koden inn på NodeMCU
Last koden inn på NodeMCU
  1. Koble NodeMCU til datamaskinen din med en hvilken som helst mikro -USB -kabel.
  2. Åpne Arduino IDE, og under "Boards" velger du "ESP12E" og COM -porten for NodeMCU.
  3. I IDE, gå til FileOpen og bla gjennom zip -mappen som tidligere var lastet ned fra makersa.ga for å åpne Arduino -skissen som heter "ProximityActuator013017DonovanMagryta.ino"
  4. Deretter redigerer du kodelinjen som inneholder dette for å legge til navn og passord for WiFi -fyret. Mer om det nedenfor! For eksempel:

const char* ssid = "mywifi"; // Legg inn hotspot -navnet ditt i anførselstegnene

const char* password = "mywifipassword"; // Legg inn ditt hotspot -passord i anførselstegnene

Klikk deretter "last opp" for å blinke koden til NodeMCU -kortet.

NearBot bruker et WiFi -fyrtårn som kan lomme for å identifisere deg og estimere avstand. Akkurat som nærhetsnøklene har noen nyere biler som låser opp døren til bilen når du nærmer deg.

Du kan bruke smarttelefonens mobile hotspot som et fyrtårn, eller alternativt bruke en billig ESP-01 WiFi-modul drevet av et par AAA-batterier eller et lite litium 3,7v batteri. Du trenger ikke å programmere ESP-01, den bruker som standard hotspot-modus når den er slått på. Kretsdiagrammet for det er vist på dette trinnet.

Trinn 7: Fest servoen til NodeMCU

Du trenger noen jumperkabler for å koble servoen til NodeMCU V3.

Kretsdiagrammet er enkelt.

Fest D0 til signalet i bly (lyseste fargetråd på servoen. Vanligvis gul eller hvit.)

Fest 3V eller pin VO til 5V inngangsledning (nest lyseste fargetråd på servoen, vanligvis rød eller oransje.)

Fest GND til bakken (mørkeste ledning på servoen, vanligvis brun eller svart.)

Trinn 8: Finjuster NearBot

Koden konverterer signalstyrken til avstandsestimering. Det fungerer pålitelig for reaksjonsavstander mindre enn 2 meter eller 6,5 fot. Fordi det er en direkte konvertering, er det ikke så jevnt for lengre avstander enn 3 meter som det potensielt kan være med en bedre beregningsmetode. Mer om det senere.

Det kan være lurt å justere hvor servohornet (den lille hvite armen som beveger seg) er plassert. Dette gjøres ved å skru ut servoarmen med en skrutrekker og plassere den på nytt.

Den neste delen er å justere maksimal og minimum bevegelsesgrad ved hjelp av koden.

Dette kan gjøres ved å endre tallene i linjer som ser slik ut:

myservo.write (10); // flytter servoarmen til 10 grader rotasjon

Du kan også justere følsomheten for signalstyrken ved å endre de negative tallene i linjer som ser slik ut:

if (rssi> -30 && rssi <-5) {// Hvis signalstyrken er sterkere enn -30, og svakere enn -5. gjør deretter følgende …

Trinn 9: Slik fungerer det

  1. NearBot kobler seg først til hotspot på forhånd når en bruker nærmer seg.
  2. Den skanner RSSI (mottatt signalstyrke) og konverterer den til omtrentlig avstand.
  3. Selv om avstanden er innenfor det angitte området, flytter den servomotorarmen til posisjon 1.
  4. Ellers flyttes servomotoren til posisjon 2.

Da jeg testet dette, flytter denne RSSI-tuningen (-50) servoen til posisjon 1 mens avstanden er 0 til 1,5 meter med ESP-01-varselet eller telefonens hotspot i lommen.

RSSI faller vanligvis innenfor et område på -90 til -20, med -20 som den sterkeste signalstyrken.

Hvis du åpner Arduino IDE Serial Monitor mens NearBot er koblet til datamaskinen, viser den signalstyrken og triggerpunkter i sanntid for at du skal ha praktisk tilbakemelding.

Her er den komplette koden:

//FØR DU BEGYNNER:

//1. Hvis du ikke allerede har lastet ned Arduino IDE, kan du få den gratis (donasjon valgfri) på: https://www.arduino.cc/en/Main/Software // 2. åpne Arduino IDE (hvis du ikke allerede har lest dette i Arduino IDE!) … // 3. Gå til filer og klikk på preferansen i Arduino IDE … // 4. kopier koblingen nedenfor i tilleggstavler Manager: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. klikk OK for å lukke preferansefanen … // 6. Gå til verktøy og tavle, og velg deretter brettleder … // 7. Naviger til esp8266 av esp8266 community og installer programvaren for Arduino … // 8. Du må kanskje laste ned og installere CH340 -driveren hvis du ikke klarer å få NodeMCU til å snakke med Arduino IDE: https://www.arduino.cc/en/Main/Software // Når alle ovennevnte prosesser er fullført, er vi les for å programmere vår esp8266 NodeMCU mikrokontroller med Arduino IDE. Det kan være lurt å finne ut hvilken NodeMCU -versjon du har. Her er en sammenligningsguide: https://www.arduino.cc/en/Main/Software // Laget av NodeMCU ESP8266 mikrokontroller, batteri eller USB -strømforsyning og SG90 Servo // Du kan bruke en andre, uendret esp8266 -modul som et fyrtårn hotspot AP i stedet for å bruke en smarttelefon. // NearBot -krets: // D0 -pinne til Servosignaltråd (lyseste fargetråd) // 3V -pinne til servo 5v -ledning (midtre ledning) (skjøt parallelt med usb -kabel eller VO -pinne på NodeMCU hvis du har V3. / /USB -strøm til USB -plugg på NodeMCU // GND -pinne til Servo Jordledning (mørkeste fargekabel) // Notatlinjer starter med to skråstreker og ignoreres av datamaskinene. Merknader er bare for oss mennesker! #Include #include // Kan være nødvendig for seriell utskrift. #Include // Servobibliotek #define D0 16 // Definerer pins for å gjøre tildeling av pins enklere. #Define D1 5 // I2C Bus SCL (klokke) #define D2 4 // I2C Bus SDA (data) #define D3 0 #define D4 2 // Samme som "LED_BUILTIN", men invertert logikk #define D5 14 // SPI Bus SCK (klokke) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Buss MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (seriekonsoll) #define D10 1 // TX0 (seriekonsoll) Servo myservo; // Lag et servoobjekt som heter myservo // Telefon eller ekstra ESP8266 -modul satt til hotspot AP -modus: const ch ar* ssid = ""; // Legg inn hotspot -navnet ditt i anførselstegnene const char* password = ""; // Legg inn hotspot -passordet ditt i anførselstegn -oppsett () {Serial.begin (115200); // angir seriell overføringshastighet slik at mikrokontrolleren kan snakke med det serielle utskriftsgrensesnittet i Arduino IDE - Du må kanskje endre den til 9600 i stedet! myservo.attach (D0); // fester servoen på pin D0 aka GPIO16 til servoobjektet - Se mer på: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // flytter servoarmen til 10 grader rotasjon Serial.println ("Låst"); // skriv ut den serielle skjermen ordet "Låst" WiFi.mode (WIFI_STA); // Setter wifi til stasjonsmodus WiFi. Begynner (ssid, passord); // Kobler til hotspot beacon} void loop () {// loopet går raskt igjen og igjen hvis (WiFi.status ()! = WL_CONNECTED) {// Hvis wifi IKKE er tilkoblet, gjør følgende … Serial.println ("Kunne ikke få en wifi -tilkobling"); myservo.write (10); // Flytter servoarmen til 10 grader Serial.println ("Låst"); } annet {// Hvis WiFi ER tilkoblet, gjør deretter følgende … long rssi = WiFi. RSSI (); // Oppretter en variabel som heter rssi og tilordner den til funksjonen som returnerer signalstyrkeavlesningen til hotspot beacon Serial.print (rssi); // sender ut rssi -avlesningen til den serielle skjermen hvis (rssi> -50 && rssi <-5) {// Hvis signalstyrken er sterkere enn -50 og svakere enn -5. gjør deretter følgende … myservo.write (170); // Roter servoarmen til 170 grader Serial.println ("ulåst"); } annet {// Hvis betingelsene ovenfor ikke er oppfylt, gjør følgende: myservo.write (10); // Roter servoarmen tilbake til 10 grader. Serial.println ("Låst"); }}}

Trinn 10: Du burde vite …

Ansvarsfraskrivelse:

Den nåværende iterasjonen av NearBot -koden fungerer pålitelig for avstander mindre enn 2 meter eller 6,5 fot. Utover det blir det mindre presist, men fungerer fortsatt.

Dette kan fikses, men for øyeblikket vet jeg ikke hvordan jeg skal gjøre det. Jeg ville elske det hvis noen ville jobbe med meg, slik at jeg kan oppdatere denne instruksjonene med en mer presis metode for å beregne avstand!

Disse koblingene kan være nyttige: YouTuber CNLohr utviklet en avstands- og posisjonssensorfastvare for ESP8266 med begrenset suksess:

Espressif utviklet en Time of Flight distanse deteksjon funksjon som ville fungere med Arduino IDE for ESP8266, men aldri gitt den ut:

SubPos posisjoneringssystem bruker ESP8266 -moduler og Path Loss Calculation, som jeg ikke vet hvordan jeg skal implementere i Arduino IDE:

Jeg fant et eksempel på Java -språk, men jeg vet ikke hvordan jeg skal replikere dette er Arduino IDE:

dobbel avstand = Math.pow (10.0, (((double) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frekvens)))/(20*mu));

Trinn 11: Det er alt

Hvis du lager din egen NearBot, legg ut "Jeg klarte det" i kommentarene nedenfor!

Hvis du har flere ideer til hva du kan bruke den allsidige NearBot -plattformen til, kan du kommentere ideene dine! Det kan være stor inspirasjon for andre instruerbare brukere!

Hvis du liker denne opplæringen, kan du vurdere å stemme på denne instruksen i konkurranser!

Anbefalt: