Indholdsfortegnelse:

Alsidig NearBot: 11 trin (med billeder)
Alsidig NearBot: 11 trin (med billeder)

Video: Alsidig NearBot: 11 trin (med billeder)

Video: Alsidig NearBot: 11 trin (med billeder)
Video: Ingenious Construction Workers That Are At Another Level ►2 2024, November
Anonim
Image
Image

Denne instruktive viser dig, hvordan du opbygger en alsidig robottrigger, der kan flytte noget, f.eks. En knap, kontakt eller skive på forskellige enheder, når du (med din telefon eller et fyrtårn i lommen) er i nærheden. Det betyder, at den automatisk kan låse op og låse en dørlås igen, da * kun du * går forbi, lukker en sprinklerventil, så du kan passere uskadt gennem vandet som en slags forstæder Moses, lavere højttalervolumen, mens du er i garagen bandrum, udløse en iPod, der spiller en dramatisk indgangssang eller fortæl en vittighed (Jaden Smith tweet?), mens du er i rummet, eller sæt en film på pause, når du står op for at bruge toilettet.

Dette projekt kræver ikke lodning eller specialværktøj

Hvis du nyder denne instruktør nok, kan du overveje at stemme på denne instruerbare i Robotics 2017 -konkurrencen!

Trin 1: Anskaf hardwaredele

Du får brug for:

  • NodeMCU v2 eller V3
  • Micro 9G Servomotor omkring $ 1,40 USD gratis forsendelse på eBay eller Aliexpress
  • Arduino Jumper Wires Kvinde til Mand.
  • Et kabinet til NearBot - jeg brugte en skrot plastkasse, jeg fandt.
  • Mikro -USB -datakabel (skrottelefondele)
  • USB -strømkilde (telefonoplader)

Hvis du ikke har en smartphone med en mobil hotspot -funktion, skal du også bruge:

  • ESP-01 modul omkring $ 2,50 USD gratis forsendelse på DealExtreme, GearBest, Ebay eller Aliexpress.
  • 1 par AAA -batterier
  • dobbelt AAA batteriholder med switch

Trin 2: Hurtig start

Dette trin indeholder en hurtig startguide, hvis du kan lide den slags. Resten af denne instruerbare går trin for trin og tilføjer mere dybdegående information

// Indkøbsliste: // NodeMCU V3 (Lolin) ESP8266 mikrokontroller

// SG90 9G Servomotor

// USB Power Bank eller USB -vægadapter.

// Micro USB data/opladningskabel

// Arduino han til hun type jumpertråde

//FØR DU STARTER:

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

// 2. åbn Arduino IDE (hvis du ikke allerede læser dette i Arduino IDE!) …

// 3. Gå til filer, og klik på præferencen i Arduino IDE …

// 4. kopier nedenstående kode i Supplerende bestyrelsesmanager: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. klik på OK for at lukke fanen præference …

// 6. Gå til værktøjer og tavle, og vælg derefter bestyrelsesleder …

// 7. Naviger til esp8266 af esp8266 community og installer softwaren til Arduino …

// 8. Du skal muligvis downloade og installere CH340 -driveren, hvis du ikke kan få NodeMCU til at tale med din Arduino IDE:

// Når hele ovenstående proces er afsluttet, læses vi for at programmere vores esp8266 NodeMCU mikrokontroller med Arduino IDE.

//9.vælge NodeMCU V1.0 ESP12E i tavle -menuen /

/10. Vælg den COM -port, du bruger.

// 11. vælg koden (download fra www.makersa.ga) og klik på upload. /

/12. Slut servoen til NodeMCU ved hjælp af jumperkabler. D0 for at signalere, jord til jord, +VCC til VO eller 3V. /

/13. Juster servohornet ved hjælp af en skruetrækker.

// 14. Juster den maksimale og minimale bevægelsesgrad ved hjælp af koden.

// 15. Upload igen til NodeMCU, når koden opdateres.

// Du finder det måske vigtigt at finde ud af, hvilken NodeMCU -version 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 af rigge:

// Lavet af NodeMCU ESP8266 mikrokontroller, batteri eller USB strømforsyning og SG90 Servo

// Du kan bruge et 2. uændret esp8266 -modul som et beacon hotspot AP i stedet for at bruge en smartphone, ingen programmering nødvendig.

Trin 3: Anskaf softwaredelene

Du skal først downloade den gratis Arduino IDE

Arduino Web Editor fungerer ikke med NodeMCU på det tidspunkt, jeg skriver dette, så du bliver nødt til at installere IDE på din computer i stedet.

Du skal også få fat i NearBot -filerne fra www. MakerSa.ga - Filoverførselslinket til dette projekt er angivet på dette websted.

Trin 4: Installer drivere og kortprofiler

Nogle nyttige oplysninger
Nogle nyttige oplysninger

Inde i NearBot -zipen, du downloadede og pakkede ud, er driverne til NodeMCU -modulet. Installer dem på din computer.

Hvis disse ikke virker for dig, kan du muligvis finde CH340G -drivere på wemos.cc/downloads

Din NodeMCU bruger muligvis ikke CH340G -chip, så du skal muligvis kommentere med den driver, du leder efter, og jeg svarer med downloadlinket til denne driver.

  1. Åbn derefter Arduino IDE og gå til File PreferencesAdditional Boards Manager i Arduino IDE.
  2. Indsæt følgende kode der:
  3. Klik på OK for at lukke fanen præference.
  4. Gå til værktøjer og board, og vælg derefter board manager.
  5. Naviger til "esp8266 by esp8266 community" og installer softwaren til Arduino.

Når hele ovenstående proces er afsluttet, er vi klar til at programmere vores esp8266 NodeMCU mikrokontroller med Arduino IDE!

Trin 5: Nogle nyttige oplysninger

Nogle nyttige oplysninger
Nogle nyttige oplysninger
Nogle nyttige oplysninger
Nogle nyttige oplysninger

Du finder det måske praktisk at finde ud af, hvilken NodeMCU -version du har. Her er en sammenligningsguide:

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

Hver version har forskellige pin -arrangementer. Jeg købte v3 (Lolin) versionen, fordi den har 5V output pins til at drive servomotoren. Jeg brugte i sidste ende i stedet de 3 volt strømstifter i stedet for sikkerheden (NodeMCU I/O benene er ikke 5V tolerante), men du vil måske bruge 5V benene, fordi teknisk set er denne slags servomotorer specificeret til 4,5 til 5 volt effekt.

Trin 6: Indlæs koden på NodeMCU

Indlæs koden på NodeMCU
Indlæs koden på NodeMCU
Indlæs koden på NodeMCU
Indlæs koden på NodeMCU
  1. Slut NodeMCU'en til din computer ved hjælp af et hvilket som helst mikro -USB -kabel.
  2. Åbn Arduino IDE, og vælg "ESP12E" under "Boards" og COM -porten til NodeMCU.
  3. I IDE skal du gå til FileOpen og gennemse zip -mappen, der tidligere var downloadet fra makersa.ga for at åbne Arduino -skitsen kaldet "ProximityActuator013017DonovanMagryta.ino"
  4. Rediger derefter kodelinjen, der indeholder denne, for at tilføje navn og adgangskode til dit WiFi -beacon. Mere om det herunder! For eksempel:

const char* ssid = "mywifi"; // Indsæt dit hotspots navn inde i citaterne

const char* password = "mywifipassword"; // Indsæt din hotspot -adgangskode inde i citaterne

Klik derefter på "upload" for at blinke koden til NodeMCU -kortet.

NearBot bruger et WiFi -fyrtårn til lomme til at identificere dig og estimere afstand. Ligesom nærhedsnøglerne har nogle nyere biler, der låser døren op til bilen, når du nærmer dig.

Du kan bruge din smartphones mobile hotspot som et fyrtårn eller alternativt bruge et billigt ESP-01 WiFi-modul drevet af et par AAA-batterier eller et lille lithium 3,7v batteri. Ingen grund til at programmere ESP-01, den bruges som standard til hotspot-tilstand, når den er tændt. Kredsløbsdiagrammet for det er vist på dette trin.

Trin 7: Fastgør servoen til NodeMCU

Du skal bruge nogle jumperwires for at tilslutte servoen til NodeMCU V3.

Kredsløbsdiagrammet er enkelt.

Pin D0 til signalet i bly (lyseste farvetråd på servoen. Normalt gul eller hvid.)

Pin 3V eller pin VO til 5V inputledning (anden lyseste farvetråd på servoen, normalt rød eller orange.)

Pin GND til jordledningen (mørkeste tråd på servoen, normalt brun eller sort.)

Trin 8: Finjuster NearBot

Koden konverterer signalstyrke til afstandsestimering. Det fungerer pålideligt til reaktionsafstande mindre end 2 meter eller 6,5 fod. Fordi det er en direkte konvertering, er det ikke så glat for længere afstande end 3 meter, som det potentielt kunne være med en bedre beregningsmetode. Mere om det senere.

Du vil måske justere, hvor servohornet (den lille hvide arm, der bevæger sig) er placeret. Dette gøres ved blot at skrue servoarmen af med en skruetrækker og placere den igen.

Den næste del er at justere den maksimale og minimale bevægelsesgrad ved hjælp af koden.

Dette kan gøres ved at ændre tallene i linjer, der ser sådan ud:

myservo.write (10); // flytter servo -armen til 10 graders rotation

Du kan også justere følsomheden for signalstyrken ved at ændre de negative tal i linjer, der ser sådan ud:

if (rssi> -30 && rssi <-5) {// Hvis signalstyrken er stærkere end -30 og svagere end -5. gør derefter følgende …

Trin 9: Sådan fungerer det

  1. NearBot opretter først forbindelse til hotspot på forhånd, når en bruger nærmer sig.
  2. Det scanner RSSI (modtaget signalstyrke) og konverterer det til omtrentlig afstand.
  3. Mens afstanden er inden for det angivne område, flytter den servomotorarmen til position 1.
  4. Ellers flyttes servomotoren til position 2.

Da jeg testede dette, flytter denne RSSI-tuning (-50) servoen til position 1, mens afstanden er 0 til 1,5 meter med ESP-01-varselet eller telefonens hotspot i lommen.

RSSI falder typisk inden for et område på -90 til -20, hvor -20 er den stærkeste signalstyrke.

Hvis du åbner Arduino IDE Serial Monitor, mens NearBot er tilsluttet computeren, viser den signalstyrken og triggerpunkter i realtid, så du kan få praktisk feedback.

Her er den komplette kode:

//FØR DU STARTER:

// 1. Hvis du ikke allerede har downloadet Arduino IDE, kan du få den gratis (donation valgfri) på: https://www.arduino.cc/en/Main/Software // 2. Åbn Arduino IDE (hvis du ikke allerede læser dette i Arduino IDE!) … // 3. Gå til filer, og klik på præferencen i Arduino IDE … // 4. kopier nedenstående link i Supplerende bestyrelsesmanager: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. klik på OK for at lukke fanen præference … // 6. Gå til værktøjer og board, og vælg derefter board manager … // 7. Naviger til esp8266 af esp8266 community og installer softwaren til Arduino … // 8. Du skal muligvis downloade og installere CH340 -driveren, hvis du ikke kan få NodeMCU til at tale med din Arduino IDE: https://www.arduino.cc/en/Main/Software // Når alle ovenstående processer er gennemført, er vi læs for at programmere vores esp8266 NodeMCU mikrokontroller med Arduino IDE. Du vil måske finde ud af, hvilken NodeMCU -version du har. Her er en sammenligningsguide: https://www.arduino.cc/en/Main/Software // Lavet af NodeMCU ESP8266 mikrokontroller, batteri eller USB -strømforsyning og SG90 Servo // Du kan bruge et andet uændret esp8266 -modul som et fyrtårn hotspot AP i stedet for at bruge en smartphone. // NearBot -kredsløb: // D0 -pin til Servosignaltråd (lyseste farveledning) // 3V pin til servo 5v -ledning (midterkabel) (splejset parallelt med usb -kabel eller VO -pin på NodeMCU, hvis du har V3. / /USB -strøm til USB -stik på NodeMCU // GND -pin til Servo Jordledning (mørkeste farveledning) // Notelinjer starter med to skråstreger og ignoreres af computerne. Noter er kun for os mennesker! #Include #include // Kan være nødvendig for seriel udskrivning. #Include // Servobibliotek #define D0 16 // Definerer pins for at gøre tildeling af pins lettere. #Define D1 5 // I2C Bus SCL (ur) #define D2 4 // I2C Bus SDA (data) #define D3 0 #define D4 2 // Samme som "LED_BUILTIN", men omvendt logik #define D5 14 // SPI Bus SCK (ur) #define D6 12 // SPI Bus MISO #define D7 13 // SPI Bus MOSI #define D8 15 // SPI Bus SS (CS) #define D9 3 // RX0 (seriekonsol) #define D10 1 // TX0 (seriekonsol) Servo myservo; // Opret et servoobjekt ved navn myservo // Telefon eller yderligere ESP8266 -modul sat til hotspot -AP -tilstand: const ch ar* ssid = ""; // Indsæt dit hotspots navn inde i anførselstegnene const char* password = ""; // Sæt din hotspot -adgangskode inde i anførselstegnens ugyldige opsætning () {Serial.begin (115200); // indstiller seriel baudhastighed, så mikrokontrolleren kan tale med den serielle printgrænseflade i Arduino IDE - Du skal muligvis ændre den til 9600 i stedet! myservo.attach (D0); // fastgør servoen på pin D0 aka GPIO16 til servoobjektet - Se mere på: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // flytter servo -armen til 10 graders rotation Serial.println ("låst"); // udsend den serielle skærm ordet "Locked" WiFi.mode (WIFI_STA); // Sætter wifi til stationstilstand WiFi. Begynd (ssid, adgangskode); // Opretter forbindelse til hotspot beacon} void loop () {// Loopen kører hurtigt igen og igen, hvis (WiFi.status ()! = WL_CONNECTED) {// Hvis wifi IKKE er tilsluttet, skal du gøre følgende … Serial.println ("Kunne ikke få en wifi -forbindelse"); myservo.write (10); // Flytter servoarmen til 10 grader Serial.println ("låst"); } andet {// Hvis WiFi ER tilsluttet, skal du gøre følgende … lang rssi = WiFi. RSSI (); // Opretter en variabel ved navn rssi og tildeler den til funktionen, der returnerer signalstyrkeaflæsningen for hotspot -beacon Serial.print (rssi); // udsender rssi -aflæsningen til den serielle skærm hvis (rssi> -50 && rssi <-5) {// Hvis signalstyrken er stærkere end -50 og svagere end -5. gør derefter følgende … myservo.write (170); // Drej servoarmen til 170 grader Serial.println ("ulåst"); } ellers {// Hvis ovenstående betingelser ikke er opfyldt, skal du gøre følgende … myservo.write (10); // Drejer servo -armen tilbage til 10 grader. Serial.println ("Låst"); }}}

Trin 10: Du burde vide …

Ansvarsfraskrivelse:

Den nuværende iteration af NearBot -koden fungerer pålideligt for afstande mindre end 2 meter eller 6,5 fod. Udover det bliver det mindre præcist, men fungerer stadig.

Dette kan rettes, men i øjeblikket ved jeg ikke, hvordan jeg skal gøre det. Jeg ville elske det, hvis nogen ville arbejde med mig, så jeg kan opdatere denne instruktør med en mere præcis metode til beregning af afstand!

Disse links kan være nyttige: YouTuber CNLohr udviklede en afstands- og positionssensor -firmware til ESP8266 med begrænset succes:

Espressif udviklede en Time of Flight afstandsregistreringsfunktion, der ville fungere med Arduino IDE til ESP8266, men aldrig frigivet den:

SubPos positioneringssystem bruger ESP8266 moduler og Path Loss Calculation, hvilket jeg ikke ved, hvordan man implementerer i Arduino IDE:

Jeg fandt et eksempel på Java -sprog, men jeg ved ikke, hvordan jeg skal replikere dette, er Arduino IDE:

dobbelt afstand = Math.pow (10,0, (((dobbelt) (tx_pwr/10)) - rx_pwr - 10*Math.log10 (4*Math. PI/(c/frekvens)))/(20*mu));

Trin 11: Det er alt

Hvis du laver din egen NearBot, skal du skrive din "Jeg klarede det" i kommentarerne herunder!

Hvis du har flere ideer til, hvad du skal bruge den alsidige NearBot -platform til, kan du kommentere dine ideer! Det kunne være stor inspiration for andre instruerbare brugere!

Hvis du nyder denne vejledning, kan du overveje at stemme på dette instruerbare i konkurrencer!

Anbefalede: