Talaan ng mga Nilalaman:
- Hakbang 1: Mga Bahagi at Tool
- Hakbang 2: Pagputol ng Mga piraso at Assembly
- Hakbang 3: Software - (Arduino)
- Hakbang 4: Software - Robot Laptop (WebServer)
- Hakbang 5: Software - (Webpage)
- Hakbang 6: Tapos na
Video: Gumawa ng isang Robot na Nakakonekta sa Web (para sa Halos $ 500) (gamit ang isang Arduino at Netbook): 6 na Hakbang (na may Mga Larawan)
2024 May -akda: John Day | [email protected]. Huling binago: 2024-01-30 13:15
Ipapakita sa iyo ng Instructable na ito kung paano bumuo ng iyong sariling Robot na Nakakonekta sa Web (gumagamit ng isang Arduino micro-controller at Asus eee pc). Bakit mo gugustuhin ang isang Robot na Nakakonekta sa Web? Makipaglaro syempre. Itaboy ang iyong robot mula sa buong silid o sa buong bansa, na gumagamit ng hindi hihigit sa Skype at isang web browser (walang mai-install sa kumokontrol na computer). Pagkatapos? Humukay sa software at iakma ito subalit nais mo, magdagdag ng GPS upang mapanood mo kung saan ka nagmamaneho sa isang mapa, magdagdag ng mga sensor ng temperatura upang mapa ang mga gradient ng temperatura sa iyong bahay, o mga sonar sensor upang magdagdag ng mga kontrol sa kung ano ang iyong web driver ay maaari at hindi maaaring masagasaan. Mga Tampok:
- Mura - (~ $ 500 kung bibili ka ng lahat ng mga bahagi ng bago at mas mura kung maghukay ka sa iyong mga bahagi ng bas)
- Kapag naipatakbo na ang pagkontrol ng robot ay nangangailangan lamang ng isang web browser - (at Skype kung nais mong makita kung saan ka nagmamaneho)
- Buksan ang Pinagmulan at Madaling Adaptable - (gumagamit ng isang Arduino micro-controller, Pagpoproseso para sa web server at lahat ng software ay maaaring patakbuhin sa Linux (lahat ng code ay mabibigat din na nagkomento upang gawing madali ang paglukso at pagbago ng mga bagay))
- Modular Design (hindi isang kumpletong isinamang sistema, kung nais mong gumamit ng ibang serbisyo sa pagkumperensya sa video nang walang pag-aalala, o kung mayroon kang isang Basic stamp sa halip na isang Arduino na tama lamang ng isang maliit na piraso ng code at ipasok ito)
Narito ang isang mabilis na video ng aking Web Connected Robot na hinihimok palabas ng kusina.
Hakbang 1: Mga Bahagi at Tool
Ilang bahagi lamang ang kinakailangan: Robot: Arduino Controlled Servo Robot - (SERB) ($ 175 @ oomlout.com) o (gumawa ng sarili mong)
Isang bukas na mapagkukunan ng robot na gumagamit ng isang Arduino micro-controller bilang utak
(ang anumang dalawahang servo platform ng robot na may isang arduino ay maaaring magamit (pagpipilian 1) (mangyaring mensahe sa akin kung may matuklasan kang anumang iba pang mga pagpipilian) Computer: Asus eee PC 4G ($ 280) (@Best Buy)
Isang maliit na murang laptop na perpekto para sa hangaring ito
(anumang laptop (o desktop kung nais mong tumakbo gamit ang isang kuwerdas) na may kakayahang magpatakbo ng Mga sketch ng pagproseso ay maaaring magamit) Laptop Desk: Laser Cut Acrylic ($ 25 (@ oomlout)) o (bumuo ng iyong sariling hakbang 3)
Ang ilang karagdagang mga piraso ng acrylic na kung saan bolt papunta sa isang (SERB) upang bigyan ito ng isang desk para makaupo ang laptop
Nuts at Bols: (magagamit sa home depot)
- 3mm x 10mm bolt (x4)
- 3mm x 15mm bolt (x4)
- 3mm nut (x8)
Hakbang 2: Pagputol ng Mga piraso at Assembly
Mayroong tatlong mga pagpipilian para sa pagkuha ng mga piraso para sa iyong laptop desk. Pagpiputol ng Pagpipilian 1: (Pagbili mula sa oomlout.com)
magagamit ang mga piraso ng laser cut desk at ang hardware na kinakailangan mula sa oomlout sa halagang $ 25 (dito)
Pagpipilian 2: (Pagputol sa iyong sariling laser cutter o Ponoko.com)
- I-download ang file sa ibaba (03-WEBB-Acrylic Parts.cdr o 03-WEBB-Acrylic Bahagi (Ponoko P2).eps)
- Gupitin ang mga ito mula sa 3mm (1/8 ") Acrylic
Pagpipilian 3: (Saw Scroll)
- I-download ang pattern ng scroll saw mula sa ibaba (03-WEBB-ScrollSaw Pattern (A4).pdf (para sa laki ng papel na A4) o 03-WEBB-ScrollSaw Pattern (letra).pdf (para sa laki ng laki ng papel))
- I-double check na hindi ito nai-scale kapag nagpi-print (sa pamamagitan ng pagsukat sa mga naka-print na pinuno)
- Kola sa isang piraso ng 3mm (1/8 ") acrylic at gupitin ang mga piraso.
Assembling: I-download ang gabay sa pagpupulong (04-WEBB-Assembly Guide.pdf) sa ibaba at isama ang laptop desk.
Hakbang 3: Software - (Arduino)
Para sa mga bago sa Arduino tingnan ang mahusay na gabay sa pagsisimula sa Arduino.cc Una ang software na tumatakbo sa Arduino. Ito ay isang napaka-simpleng programa, kung ano ang ginagawa ng Arduino ay subaybayan ang serial port para sa data. Ang hinahanap nito ay isang pag-uusap na 5 bytes ang haba.
- Byte 1-3 (Suriin ang mga byte na "AAA")
- Byte 4 Command (Sinasabi sa arduino kung ano ang gagawin) (Mga sinusuportahang utos na 'F' - Ipasa, 'B' - Paatras, 'L' - Kaliwa, 'R' - Kanan, 'S' - Bilis, 'X' - SetSpeedLeft, 'Y' - SetSpeedRight, 'C' - Itigil)
- Byte 5 Parameter - Para sa mga utos ng paglipat ito ay binibigyang kahulugan bilang isang agwat ng oras (Parameter * 100 ms), at para sa bilis ng utos ng isang porsyento mula 0-100
Ang code ay lubos na nagkomento at binigyan ang balangkas na ito ng pagdaragdag ng mga karagdagang utos ay dapat madali. Upang Mag-download:
- I-download ang nakalakip na zip file. (05-WEBB-Arduino Code.zip)
- I-unzip sa iyong direktoryo ng Arduino Sketch. (default: Aking Mga Dokumento / Arduino )
- Buksan ang iyong enviroment na pag-unlad ng arduino at i-upload sa iyong Arduino.
Upang Kopyahin at I-paste
- Kopyahin ang code mula sa ibaba.
- I-paste sa kapaligiran ng pag-unlad ng Arduino.
- Mag-upload sa iyong Arduino.
Apendiks: Ang Arduino Program
/ * * Arduino Controlled Web Connected Robot (WEBB) - Serial Host * Para sa karagdagang detalye bisitahin ang: https://www.oomlout.com/serb * * Pag-uugali: Nakikinig ang Arduino sa Serial port nito para sa isang utos * sa format 254, 88, 88, (UTOS), (TIME) * Mga Suportadong Utos - & aposF & apos - 70 - Ipasa * & aposB & apos - 66 - Paatras * & aposL & apos - 76 - Kaliwa * & aposR & apos - 82 - Kanan * & aposS & apos - 83 - Bilis * & aposX & apos - 88 - SetSpeedLeft * & aposY & apos - 89 - SetSpeedRight * & aposC & apos - 67 - Ihinto * Mga Sinusuportahang Panahon - 0 - 255 (0 hanggang 25.5 Segundo) na halaga * 100 milliseconds * sp * Mga Kable: Tamang Servo Signal - pin 9 * Kaliwa Servo Signal - pin 10 * * Lisensya: Ang gawaing ito ay lisensyado sa ilalim ng Creative Commons * Attribution-Share Alike 3.0 Unported License. Upang * tingnan ang isang kopya ng lisensyang ito, bisitahin ang * https://creativecommons.org/licenses/by-sa/3.0/ * o magpadala ng isang sulat sa Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * USA. * * / // -------------------------------------------- ---------------------------- // SIMULA NG ARDUINO SERIAL SERVER PREAMBLE // Ang pagtukoy ng mga pare-pareho na naaayon sa bawat utos (din ang numero ng code ng Alexa) #define FORWARD 70 // F # tukuyin BACKWARD 66 // B # tukuyin LEFT 76 // L # tukuyin ANG KARAPATAN 82 // R # tukuyin ang SETSPEED 83 // S # tukuyin ang STOP 67 // C # tukuyin ang SETSPEEDLEFT 88 // X #define SETSPEEDRIGHT 89 // Y / * Ang tatlong byte ng tseke (ginamit upang mapanatili ang robot mula sa pagtugon sa random na serial * data) na kasalukuyang "AAA" * / # tukuyin ang checkByte1 65 // "A" #define checkByte2 65 // "A "#define checkByte3 65 //" A "// ----------------- ------------------------------------ // SIMULA NG ARDUINO CONTROLLED SERVO ROBOT (SERB) PREAMBLE # isama #define LEFTSERVOPIN 10 // Ang pin na kaliwang servo ay konektado sa # tukuyin ang RIGHTTSERVOPIN 9 // Ang pin na kanang servo ay konektado saServo leftServo; Servo rightServo; int leftSpeed = 50; // hawak ang bilis ng mga robot leftServo // isang porsyento sa pagitan ng 0 at 100int rightSpeed = 100; // hawak ang bilis ng mga robot rightServo // isang porsyento sa pagitan ng 0 at 100 // END OF ARDUINO CONTROLLED SERVO ROBOT (SERB) PREAMBLE // ----------------- ---- ----- // Gets up up everything and runningvoid setup () {Serial.begin (9600); // Nagsisimula ang serial port serbSetup (); // nagtatakda ng estado ng lahat ng mga // // pin at nagdaragdag ng mga servos sa iyong sketch} // Ang pangunahing loop loop ng loop ng programa () {serbPollSerialPort (); // tuloy-tuloy na pagtingin sa serial port // kung may data ay pinoproseso ito} // ------------------------------ ---- * * Mga proseso ng proseso na naihatid sa arduino at aposs serial port * / void serbPollSerialPort () {int dta; // variable upang hawakan ang serial byte kung (Serial.available ()> = 5) {// kung 5 bytes ang nasa buffer (haba pf isang buong kahilingan) dta = Serial.read (); kung (dta = checkByte1) {// Mga pagsusuri para sa unang check byte dta = Serial.read (); kung (dta = checkByte2) {// Mga tseke para sa pangalawang tsek byte dta = Serial.read (); kung (dta = checkByte3) {// Mga tseke para sa pangatlong check byte int command = Serial.read (); // Fourth byte ay ang utos int param1 = Serial.read (); // Fifth byte is param1 interpretCommand (utos, param1); // nagpapadala ng naka-parse na kahilingan dito at handler ng aposs}}}}} / * * Kinukuha ang utos at parameter at ipinapasa ito sa robot * / void interpretCommand (int command, int param1) {if (command == FORWARD) {goForward (); pagkaantala (param1 * 100); goStop ();} // kung pasulong pa kung (utusan == BACKWARD) {goBackward (); pagkaantala (param1 * 100); goStop ();} // kung paatras kung (command == LEFT) {goLeft (); pagkaantala (param1 * 100); goStop ();} // kung natitira pa kung (utusan == TAMA) {goRight (); pagkaantala (param1 * 100); goStop ();} // kung tama pa kung (command == SETSPEED) {setSpeed (param1);} // kung ang bilis ng setting kung iba pa (command == STOP) {goStop ();} // kung huminto pa kung (utos == SETSPEEDLEFT) {setSpeedLeft (param1);} // kung nagtatakda sa kaliwang bilis pa kung (utos == SETSPEEDRIGHT) {setSpeedRight (param1);} // kung nagtatakda ng tamang bilis pa {// kung hindi kilalang utos gumawa ng kaunting shimmey goLeft (); pagkaantala (150); Kumanan ka(); pagkaantala (150); goStop (); }} // ----------------- -------------------------- // Start OF ARDUINO CONTROLLED SERVO ROBOT (SERB) ROUTINES / * * set up your arduino to address your SERB using ang kasama na mga gawain * / void serbSetup () {setSpeed (leftSpeed); pinMode (LEFTSERVOPIN, OUTPUT); // nagtatakda ng kaliwang servo signal pin // sa output pinMode (RIGHTTSERVOPIN, OUTPUT); // nagtatakda ng tamang pin ng signal ng servo // sa output leftServo.attach (LEFTSERVOPIN); // nakakabit sa left servo rightServo.attach (RIGHTTSERVOPIN); // nakakabit ang kanang servo goStop ();} / * * nagtatakda ng bilis ng robot sa pagitan ng 0- (huminto) at 100- (buong bilis) * TANDAAN: ang bilis ay hindi magbabago ng kasalukuyang bilis dapat mong baguhin ang bilis * pagkatapos ay tumawag sa isa ng mga pamamaraang go bago maganap ang mga pagbabago. * / void setSpeed (int newSpeed) {setSpeedLeft (newSpeed); // nagtatakda ng kaliwang bilis setSpeedRight (newSpeed); // nagtatakda ng tamang bilis} / * * Itinatakda ang bilis ng kaliwang gulong * / void setSpeedLeft (int newSpeed) {kung (newSpeed> = 100) {newSpeed = 100;} // kung ang bilis ay higit sa 100 // gawin ito 100 kung (newSpeed = 100) {newSpeed = 100;} // kung ang bilis ay higit sa 100 // gawing 100 kung (newSpeed <= 0) {newSpeed = 0;} // kung ang bilis ay mas mababa sa 0 gumawa // ito 0 rightSpeed = newSpeed * 0.9; // scales the speed to be} / * * nagpapadala ng robot pasulong * / void goForward () {leftServo.write (90 + leftSpeed); rightServo.write (90 - rightSpeed);} / * * nagpapadala ng robot paatras * / void goBackward () {leftServo.write (90 - leftSpeed); rightServo.write (90 + rightSpeed);} / * * ipinapadala ang robot sa kanan * / void goRight () {leftServo.write (90 + leftSpeed); rightServo.write (90 + rightSpeed);} / * * nagpapadala ng robot sa kaliwa * / void goLeft () {leftServo.write (90 - leftSpeed); rightServo.write (90 - rightSpeed);} / * * hinihinto ang robot * / void goStop () {leftServo.write (90); rightServo.write (90);} // END OF ARDUINO CONTROLLED SERVO ROBOT (SERB) ROUTINES // ---------------------------- ------------ -------------
Hakbang 4: Software - Robot Laptop (WebServer)
(Ang pagpoproseso ay isang bukas na mapagkukunan ng programa ng wika at kapaligiran na napakadaling magsimula. Para sa higit pang mga detalye bisitahin ang Pagproseso) Ang software na tumatakbo sa robot laptop ay medyo simple din. Ito ay isang walang katuturan na web-server (pakikinig para sa mga kahilingan sa web page mula sa isang web browser), isang maliit na interface ng gumagamit (upang i-set up ito), at mga pasilidad para sa pagpasa ng mga utos na natanggap mula sa Web Server sa Arduino. Upang Mabilis na Mag-install: (sa windows)
- I-download ang zip file sa ibaba (06-WEBB-Processing Webserver (windows exe).zip)
- I-unzip ito at patakbuhin ang.exe file (_WEBB_WebServer_RobotComputer.exe)
Upang mag-edit sa Pagproseso:
- I-download ang zip file sa ibaba (06-WEBB-Processing Webserver (pinagmulan ng mga file).zip)
- I-unzip saanman sa iyong computer.
- Buksan ang kapaligiran sa Pagproseso at buksan (_WEBB_WebServer_RobotComputer.pde)
Upang Subukan:
- Patakbuhin ang programa.
- Sa kahon # 1 magkakaroon ng isang listahan ng mga magagamit na mga port ng comm sa iyong computer (mag-click sa kung saan nakakonekta ang iyong Arduino. (Ang iyong robot ay magkikintal ng ilang beses habang kumokonekta ang computer, at lilitaw ang isang cyan dot sa tabi ng napili comm port)
- Sa kahon # 2 na pagsubok upang makita kung nakakonekta ang iyong Arduino. Mag-click sa isa sa mga arrow at inaasahan na ang iyong robot ay lilipat sa na-click na direksyon sa kalahating segundo.
- Sa kahon # 3 i-click ang pindutang "Start" upang simulan ang web server.
- Buksan ang isang web browser (sa Robot Laptop) at bisitahin ang https://127.0.0.1:12345/ControlPage.html (inaasahan na lilitaw ang control web page na may mga pindutan) -Mga Detalye kung paano gamitin ang pahinang ito sa susunod na hakbang -
Anong nangyayari:
- Ang Web Server ay nakikinig sa port 12345 para sa mga kahilingan sa http (kung ano ang ipinadala kapag nagta-type ka sa isang web page address)
- Mayroong dalawang uri ng mga kahilingan na tumutugon dito.
1. Nakikinig ito para sa "ControlPage.html" at ipapadala ang control Webpage 2. Nakikinig ito para sa mga kahilingan ng form "/ request? Command = F & param1 = 100" (ang mga utos na ito ay na-parse at ipinadala sa Arduino (ang halimbawang ito ay magreresulta sa robot na pasulong sa loob ng 10 segundo) Apendiks: (Ang code para sa WebServer)
/ * * Arduino Controlled Web Connected Robot (WEBB) - Webserver * Para sa karagdagang detalye bisitahin ang: https://www.oomlout.com/serb * * Pag-uugali: Nakikinig ang programa para sa mga kahilingan sa http (webpage) sa form * "/ request ? command = F & param1 = 100 "at pagkatapos ay ipapasa ang mga ito sa * Arduino * Mga Suportadong Utos - & aposF & apos - 70 - Ipasa * & aposB & apos - 66 - Paatras * & aposL & apos - 76 - Kaliwa * & aposR & apos - 82 - Kanan * & aposS & apos - 83 - Bilis * at aposX at apos - 88 - SetSpeedLeft * & aposY & apos - 89 - SetSpeedRight * & aposC & apos - 67 - Ihinto ang * param1 & aposs - 0 - 255 (0 hanggang 25.5 Segundo) na halaga * 100 milliseconds * * Naghahatid din ng control webpage sa browser kung humihingi ng ControlPage.html * * Operasyon: 1. Mag-click sa Comm port ang iyong Arduino ay konektado sa * 2. Gamitin ang mga pindutan ng pagsubok upang makita kung nakikinig ang iyong arduino * (lilipat sa direksyon na na-click para sa kalahating segundo) * 3. I-click ang Start at ang iyong webserver ay nakikinig para sa mga kahilingan * * * Lisensya: Ang gawaing ito ay lisensyado sa ilalim ng Creative Commons * Attribu tion-Share Alike 3.0 Hindi Na-angkat na Lisensya. Upang * tingnan ang isang kopya ng lisensyang ito, bisitahin ang * https://creativecommons.org/licenses/by-sa/3.0/ * o magpadala ng isang sulat sa Creative Commons, 171 Second * Street, Suite 300, San Francisco, California 94105, * USA. * * / pagproseso ng pag-import.serial. *; // import the serial library to use Serial (for pakikipag-usap sa Arduino) import processing.net. *; // import the net library to use Server (for pakikipag-usap sa internet) / * Serial Port Related Variables * / int serialPortIndex = -1; // ang index ng serial port na ginagamit namin sa Serial.list () listString commOptions; // Isang variable upang maiimbak ang Serial.list () sa gayon hindi na kailangang mag-poll // ang mga serial port sa bawat oras na nais naming i-refence ito (ang botohan ay nagdudulot ng // jump sa mga arduino servos) Serial serialPort; // Ginagawang address ang serial port sa buong sketch na ito / * Mga graphic at Paghahatid na Mga Kaugnay na variable * / font ng PFont; // ginagawang pampubliko ang font kaya kailangan lamang itong mai-load nang isang beses (Arial-72) / * Mga variable na Kaugnay ng Network * / Server wServer; // Ang Server na humahawak sa mga web requestint port = 12345; // The port the Server nakikinig sa toint cycleCount = 0; // Binibilang ang bilang ng beses na gumaganap ang draw loop (ginamit upang // buhayin ang teksto na "tumatakbo") / * Mga variable ng Utility * / PImage bg; // Ang background image na kasalukuyang / WEBB-background.png / * * Mga Variable na Kaugnay ng Button * (ang mga pindutan ay ipinatupad nang halos magaspang, ang mga hangganan na kahon ay nakaimbak at graphic at teksto ay * iginuhit sa background na imahe) ie. ang paglipat ng mga variable ng pindutan ay hindi ilipat ang hitsura ng mga pindutan * / Button comm1; Button comm2; Button comm3; Button comm4; // Ang mga pindutan upang piliin ang tamang serial port Button up; Kanang butones; Umalis ang pindutan; Bumaba ang pindutan; // Ang mga pindutan ng direksyon upang subukan kung ang robot ay tumutugon sa Button webServer; // The button to start the webServer / * * set evrything up * / void setup () {frameRate (5); // Pinapabagal ng kaunti ang sketch kaya't hindi ito nagbubuwis sa system bg = loadImage ("WEBB-background.png"); // Naglo-load ang imahe ng background (nakaimbak sa sketch folder) na laki (700, 400); // Itinatakda ang laki ng sketch window font = loadFont ("ArialMT-72.vlw"); // Load the font we will use throught this sketch commOptions = Serial.list (); // Poll the Serial ports at nakakakuha ng isang listahan ng mga magagamit na port // (ginagawa ito nang isang beses lamang na pinapanatili ang robot mula sa pag-twitch tuwing ito & aposs // serial port ay nai-polled) tukuyinTetton (); // Tinutukoy ang mga hangganan na kahon para sa bawat background na pindutan (bg); // Pinipinta ang larawan sa background (ang imaheng ito ay mayroong lahat ng mga graphic na pindutan dito)} / * Ang pangunahing sketch * / walang bisa na gumuhit () {kung (cycleCount == 0) {// - tumawag sa mga gawain sa draw drawBBBox (); // Gumuhit ng mga emelment sa Comm Box (kahon 1) drawTestBox (); // Nakaguhit ang lahat ng mga elemento sa Test Box (kahon 2) drawWebServerBox (); // Nakaguhit ang lahat ng mga elemento sa WebServer Box (kahon 3)} // - tumawag sa mga gumaganang gawain na pollWebServer (); // Poll ang web server upang makita kung may anumang mga kahilingan na dumating sa pamamagitan ng network} // ------------------------------ ----------------------------------------------//Simula ng gumuhit ng mga gawain (paghiwalayin lamang upang mas mahusay na mabasa ang code) / * * Ang gawain sa pag-update ng draw (naisagawa bawat ikot) para sa mga item sa comm box (kahon 1) * / void drawCommBox () {punan (0, 0, 0); // Itakda ang punan sa itim na textFont (font, 15); // Itakda ang font sa tamang sukat para sa (int i = 0; i 0) {running = running + ".";} // ang bilang ng mga tuldok ay batay sa cycleCount kung ((cycleCount / 1)> 1) { running = running + ".";} if ((cycleCount / 1)> 2) {running = running + ".";} if ((cycleCount / 1)> 3) {cycleCount = 0;} text (running, 520, 210); } cycleCount ++; // Every time through cycleCount is incremented by one} // End of Draw routine // ------------------------------- ------------------------------ // ---------------- ------------------------------------------- // Pagsisimula ng mga gawain sa Serbisyo / * * Ang mousePressed ay tinatawag na sa tuwing pinipindot ito ng mouse * sinusuri kung ang mouse ay nasa loob ng anuman sa mga kahon na may hangganan na pindutan * at kung ito ang naaangkop na gawain ay tinatawag na * / void mousePressed () {if (comm1.pressed ()) { updateSerialPort (0);} // Mga pagbabago sa comm port sa index 0 sa Serial.list () iba pa kung (comm2.pressed ()) {updateSerialPort (1);} // Mga pagbabago sa comm port sa index 1 sa Serial.list () iba pa kung (comm3.pressed ()) {updateSerialPort (2);} // Mga pagbabago sa comm port sa index 2 sa Serial.list () iba pa kung (comm4.pressed ()) {updateSerialPort (3);} // Mga pagbabago sa port ng comm sa index 3 sa Serial.list () kung iba pa (up.pressed ()) {sendRobotCommand ("F", 5);} // Nagpadala ng isang utos upang ilipat ang robot Ipasa para sa 0.5 segundo pa kung (left.pressed ()) {sendRobotCommand ("L", 5);} / / Nagpadala ng isang utos upang ilipat ang robot Kaliwa sa loob ng 0.5 segundo pa kung (kanan.pressed ()) {sendRobotCommand ("R", 5);} // Nagpadala ng isang utos upang ilipat ang robot Kanan sa loob ng 0.5 segundo pa kung (pababa. pinindot ()) {sendRobotCommand ("B", 5);} // Nagpadala ng isang utos upang ilipat ang robot Paatras nang 0.5 segundo pa kung (webServer.pressed ()) {startWebServer ();} // Sinisimulan ang webServer cycleCount = 0; background (bg); // Repaints the background image (ang imaheng ito ay mayroong lahat ng mga graphic na pindutan dito) gumuhit ();} / * * Tinawag nang isang beses na pagpapatupad sinusuri nito ang Server upang makita kung may mga naghihintay na koneksyon * kung may naghihintay na koneksyon na hinihila nito ang kahilingan at ipasa ito sa parseRequest (String) * na gawain upang alisin ang labis na teksto. Pagkatapos ay ipinadala ito sa routine na interpretRequest (String) upang * tawagan ang naaangkop na gawain sa pagkilos (ie magpadala ng mga tagubilin sa robot).* * Ang isang Kahilingan ay naipasa sa pamamagitan ng pagpasok ng mga computer address at port sa isang web browser * Para sa lokal na makina na "https://127.0.0.1:12345/request?command=F¶m1=100" * * Halimbawa ng Kahilingan: * GET / request? utos = F & param1 = 100 HTTP / 1.1 * User-Agent: Mozilla / 5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit / 525.19 (KHTML, tulad ng Gecko) * Tanggapin: * // * * Tanggapin-Wika: en-US, tl * Accept-Charset: ISO-8859-1, *, utf-8 * Accept-Encoding: gzip, deflate, bzip2 * Host: 127.0.0.1:12345 * Koneksyon: Keep-Alive * * Halimbawa ng Sagot (para sa naprosesong kahilingan) * HTTP / 1.1 200 OK * Koneksyon: isara * Uri ng Nilalaman: teksto / html * * utos: F param1: 100 * / void pollWebServer () {if (wServer! = null) {// Kung ang webServer ay tumatakbo Client request = wServer.available (); // Load the next Client in line in the // server (null kung walang mga kahilingan na naghihintay) kung (request! = Null) {// kung mayroong isang proseso ng kahilingan ito String fullRequest = request.readString (); // Mga nilalaman ng kahilingan sa tindahan bilang isang string String ip = request.ip (); // Itago ang mga ip address ng mga kliyente bilang isang string String requestString = parseRequest (fullRequest.toUpperCase ()); // Alisin ang lahat ng sobrang // impormasyon na iniiwan lamang ang string ng kahilingan (teksto pagkatapos ng GET) // (lumilipat sa itaas na kaso upang gawing mas madali ang pagsubok sa string) kung (requestString.indexOf ("REQUEST?")! = -1) { // Sinusuri kung ang kahilingan ay may "REQUEST?" String reply = interpretRequest (requestString); // Ipinadala ang kahilingan sa kahilingan sa interpreter request.write ("HTTP / 1.1 200 OK / nConnection: close / nContent-Type: text / html / n / n" + reply); // Ipinadala ang tugon ng 200 upang masabing ang kahilingan ay // hinawakan at ang string na "sumagot" bilang ang tugon wServer.disconnect (kahilingan); // Ididiskonekta ang Client} iba pa kung (requestString.indexOf ("CONTROLPAGE")! = -1) {// Kung ang kahilingan ay para sa control web page na String webPageArray = loadStrings ("WEBB-ControlPage.html"); // Load the control webPage from / data / WEBB-ControlPage.html // (load as an array of lines) String webPage = ""; // Upang gawing mas madali ang pag-edit ang webpage ay naiwan sa // line break kaya ito para sa loop striops mga linya para sa (int i = 0; i portIndex) {// kung ang naipasa portIndex ay isang wastong index sa Serial.list () // (ie. hindi pagpipilian tatlo sa isang listahan ng dalawa) serialPortIndex = portIndex; // itakda ang serialPortIndex variable sa bagong serialport index // (ginagamit ito upang maipakita ang tuldok sa tabi ng aktibong port)} kung (serialPortIndex! = -1) {// suriin upang matiyak na napili ang isang port minsan pa kung (serialPort! = null) {serialPort.stop ();} // kung ginagamit na ang isang Serial port itigil ito bago mag-load ng bago sa isang serialPort = bagong Serial (ito, Serial.list () [serialPortIndex], 9600); // Lumikha ng isang bagong bagay na Serial upang makipag-ugnay sa Arduino 9600 Baud}} / * * Kumukuha ng isang string ng kahilingan (hal: "request? Command = F & param1 = 100") at aalisin ang utos * at param1 at ipasa ito sa arduino (pagdaragdag ng karagdagang mga parameter o hindi mga utos na hindi arduino ay magagawa dito) * / String interpretRequest (String requestString) {String returnValue = "OK"; // Naghahanda ng isang returnValue variable String command; // Susunod na tatlong linya ang kumukuha ng halaga pagkatapos ng "command =" // (ang labis na linya ay sakaling ang parameter ng utos ay nasa // pagtatapos ng kahilingan at hindi susundan ng isang & if (requestString.indexOf ("KOMANDI =")! = -1) {command = requestString.substring (requestString.indexOf ("COMMAND =") + "COMMAND =". Haba ());} iba pa {command = "Z";} kung (command.indexOf (" & ")! = -1) {command = command.substring (0, command.indexOf (" & "));} iba pa {command = command;} String param1String; // Susunod na tatlong linya ang kumuha ng halaga pagkatapos ng" param1 = "// (ang labis na linya ay kung sakaling ang parameter ng utos ay nasa // pagtatapos ng kahilingan at hindi sinusundan ng isang & if (requestString.indexOf (" PARAM1 = ")! = -1) {param1String = requestString.substring (requestString.indexOf ("PARAM1 =") + "PARAM1 =". haba ());} iba pa {param1String = "0";} kung (param1String.indexOf ("&")! = -1) {param1String = param1String.substring (0, param1String.indexOf ("&"));} iba pa {param1String = param1String;} int param1 = Integer.parseInt (param1String); // Ginagawa ang param1 String na isang integer sendRobotCommand (utos, param1); // Ipinadala ang utos sa gawain na nagpapadala nito sa Arduino returnValue = "command:" + command + "param1:" + param1; // sa sandaling ito lamang ang na-parse na utos ngunit ang pagpapadala ng // bilang html kaya ang pag-format ay maaaring isama ang returnValue;} / * * Kumukuha ng isang utos (kasalukuyang isang liham) at isang parameter (isang byte 0-255) at ipinapadala ito sa arduino * na kung saan ay nakikinig at reasts * Currrently Suportadong Mga Utos * F - * / void sendRobotCommand (String command, int param1) {println ("command:" + command + "time:" + param1); String checkString = "AAA"; kung (serialPort! = null) {serialPort.write (checkString + command); serialPort.write (byte (param1)); }} // Pagtatapos ng pag-set up / hindi gaanong tinatawag na mga gawain sa tuwid // ----------------------------------- ---- // Halimbawa ng pindutan at Rectbutton code mula sa pagproseso ng halimbawa ng.org na may ilang mga pagbabago // ginawang karamihan upang gawing simple at alisin ang roll over animation // https://processing.org/learning/topics/buttons.html (2008-09-23) pindutan ng klase {int x, y; int lapad, taas; Button (int ix, int iy, int iwidth, int iheight) {x = ix; y = iy; lapad = iwidth; taas = sandata; } pinindot ang boolean () {kung (overRect ()) {return true; } iba pa {return false;}} boolean overRect () {if (mouseX> = x && mouseX = y && mouseY <= y + taas) {return true; } iba pa {bumalik na hindi totoo; }}}
Hakbang 5: Software - (Webpage)
Kaya't halos tapos na tayo ang natitira ay ang pakikipag-usap sa iyong robot. Upang Makipag-usap: (sa isang lokal na network -sa mga windows-)
- Tuklasin ang lokal na ip address ng laptop computer. Upang magawa ito, pumunta sa "Start / Programs / Accesories / Command Prompt" at kapag binuksan ng window ng terminal ang uri ng "ipconfig". Isulat ang "IP Address" at magtungo sa isa pang computer sa iyong lokal na network.
- Magbukas ng isang web browser, i-type ang "https:// (robot computer ip): 12345 / ControlPage.html
- Dapat mag-load ang pahina ng control web, sa kahon na "IP Address" i-type ang ip ng mga computer ng robot.
- Simulang kontrolin ang iyong robot.
Upang Kumuha ng Pakikipag-usap: (sa internet) Ngayon na mayroon ka itong gumaganang lokal na pakikipag-usap sa internet ay ilang maikling hakbang lamang.
- (pinaka mahirap na hakbang) I-set up ang Pagpasa ng Port - Ang iyong computer ay kailangang makinig sa internet kaysa sa lokal na network lamang. Upang gawin ito kailangan mong sabihin sa iyong router na ipasa ang ilang mga kahilingan sa computer na pagkontrol sa robot. Ito ay medyo kumplikado at lumalagpas sa saklaw ng Instructable na ito. Gayunpaman kung bibisita ka sa PortForward.com bibigyan ka nila ng lahat ng kailangan mong malaman tungkol sa pag-configure ng iyong router (kailangan mong ipasa ang port 12345 sa iyong robot laptop)
- Susunod na tuklasin ang iyong internet IP (bisitahin ang WhatIsMyIP.com)
- Sa wakas ay sunugin ang pag-set up ng skype ng isang video call at makuha ang sinumang kausap mo upang bisitahin ang "https:// (internet IP): 12345 / ControlPage.html"
- I-type ang internet IP sa kahon na "IP Adress" sa control webpage at ang iyong Web Connected Robot ay hinihimok mula sa malayo.
Hakbang 6: Tapos na
Kaya ayun. Inaasahan kong nagkakaroon ka ng kasiya-siyang oras sa pagmamaneho ng iyong robot mula sa malayo. Kung mayroon kang anumang mga isyu sa software o hardware huwag mag-atubiling mag-iwan ng isang komento at susubukan ko at tulungan ka. Kung nais mong suriin ang mas maayos na mga proyekto subukang bisitahin ang: oomlout.com
Inirerekumendang:
DIY -- Paano Gumawa ng isang Spider Robot Aling Maaaring Kontrolin Gamit ang Smartphone Gamit ang Arduino Uno: 6 Mga Hakbang
DIY || Paano Gumawa ng isang Spider Robot Aling Maaaring Kontrolin Gamit ang Smartphone Gamit ang Arduino Uno: Habang gumagawa ng isang Spider robot, maaaring malaman ng maraming mga bagay tungkol sa robot. Tulad ng paggawa ng Robots ay Nakakaaliw pati na rin ang mapaghamong. Sa video na ito ipapakita namin sa iyo kung paano gumawa ng isang Spider robot, na maaari naming mapatakbo gamit ang aming smartphone (Androi
Paano Gumawa ng isang Drone Gamit ang Arduino UNO - Gumawa ng isang Quadcopter Gamit ang Microcontroller: 8 Hakbang (na may Mga Larawan)
Paano Gumawa ng isang Drone Gamit ang Arduino UNO | Gumawa ng isang Quadcopter Gamit ang Microcontroller: PanimulaBisitahin ang Aking Youtube Channel Ang isang Drone ay isang napakamahal na gadget (produkto) na bibilhin. Sa post na ito tatalakayin ko, kung paano ko ito magagawa sa murang ?? At Paano mo magagawa ang iyong sarili tulad nito sa murang presyo … Sa India ang lahat ng mga materyales (motor, ESC
Wireless Remote Gamit ang 2.4Ghz NRF24L01 Module Sa Arduino - Nrf24l01 4 Channel / 6 Channel Transmitter Receiver para sa Quadcopter - Rc Helicopter - Rc Plane Gamit ang Arduino: 5 Hakbang (na may Mga Larawan)
Wireless Remote Gamit ang 2.4Ghz NRF24L01 Module Sa Arduino | Nrf24l01 4 Channel / 6 Channel Transmitter Receiver para sa Quadcopter | Rc Helicopter | Rc Plane Gamit ang Arduino: Upang mapatakbo ang isang Rc car | Quadcopter | Drone | RC eroplano | RC boat, palagi kaming nangangailangan ng isang reciever at transmitter, kumbaga para sa RC QUADCOPTER kailangan namin ng isang 6 channel transmitter at receiver at ang uri ng TX at RX ay masyadong magastos, kaya gagawa kami ng isa sa aming
Paano Gumawa ng isang Device ng IoT upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: 5 Mga Hakbang
Paano Gumawa ng isang IoT Device upang Makontrol ang Mga Kagamitan at Subaybayan ang Panahon Gamit ang Esp8266: Ang Internet ng mga bagay (IoT) ay ang inter-networking ng mga pisikal na aparato (tinukoy din bilang " mga konektadong aparato " at " mga smart device "), mga gusali, at iba pang mga item - naka-embed sa electronics, software, sensor, actuators, at
Kontrolin ang Arduino Gamit ang Smartphone Sa pamamagitan ng USB Gamit ang Blynk App: 7 Mga Hakbang (na may Mga Larawan)
Kontrolin ang Arduino Gamit ang Smartphone Sa Pamamagitan ng USB Sa Blynk App: Sa tutorial na ito, matututunan namin kung paano gamitin ang Blynk app at Arduino upang makontrol ang lampara, ang kumbinasyon ay sa pamamagitan ng USB serial port. Ang layunin ng pagtuturo na ito ay upang ipakita ang pinakasimpleng solusyon sa malayo-pagkontrol ng iyong Arduino o c