Talaan ng mga Nilalaman:

Kinokontrol ng ESP8266 WIFI AP na Quadruped Robot: 15 Mga Hakbang (na may Mga Larawan)
Kinokontrol ng ESP8266 WIFI AP na Quadruped Robot: 15 Mga Hakbang (na may Mga Larawan)

Video: Kinokontrol ng ESP8266 WIFI AP na Quadruped Robot: 15 Mga Hakbang (na may Mga Larawan)

Video: Kinokontrol ng ESP8266 WIFI AP na Quadruped Robot: 15 Mga Hakbang (na may Mga Larawan)
Video: ESP8266 ESP01 WIFI Mobile Phone Control | LDmicro-Roboremo Programming 2024, Hulyo
Anonim
Image
Image

Ito ang tutorial upang makagawa ng isang 12 DOF o apat na leg (quadruped) na robot na gumagamit ng SG90 servo na may servo driver at makokontrol ito gamit ang WIFI Web server sa pamamagitan ng smartphone browser

Ang kabuuang halaga para sa proyektong ito ay humigit-kumulang na US $ 55 (Para sa elektronikong bahagi at Plastic Robot Frame)

Hakbang 1: Ihanda ang Frame

Mga Elektronikong Bahagi (Wemos D1 Mini)
Mga Elektronikong Bahagi (Wemos D1 Mini)

Ang lahat ng 3D object ay libre upang i-download @ www.myminifactory.com o www.thingiverse.com

I-print ito gamit ang materyal na suporta para sa ilang bahagi tulad ng Foot, Hips at Thighs

Listahan ng nakalimbag na bahagi:

1x base body

1x Cover

1x May hawak ng baterya

4x Hips (i-type ang A & B)

4x Thight (uri ng A & B)

4x Paa (uri ng A & B)

4x Shield

12x Bushing + 12x 2mm na tornilyo

Hakbang 2: Assembly ang Robot Frame

sundin ang sunud-sunod na video sa itaas upang tipunin ang frame, ang tornilyo ay para sa butas ng laki ng 2mm

Hakbang 3: Mga Elektronikong Bahagi (Wemos D1 Mini)

Image
Image

Mayroong maraming variant ng NodeMCU sa merkado at karaniwang may parehong pag-andar, para sa proyektong ito pipiliin ko ang Wemos D1 Mini.

Ang bahaging ito ay magsisilbing isang Web Servers para sa aming quadruped bilang isang Access Point.

Ang kailangan mo ay kumonekta lamang sa Quadruped AP at kontrolin ang lahat ng paggalaw ng iyong robot, at marahil para sa hinaharap na proyekto ipapakita nito ang lahat ng dashboard ng mga sensor na kailangan mo …

Ang D1 mini na ito, ay isang mini WIFI board batay sa ESP-8266EX. at mayroon itong 11 digital input / output pin, lahat ng mga pin ay nakagambala / pwm / I2C / isang-wire na suportado (maliban sa D0) 1 analog input (3.3V max input) isang koneksyon sa Micro USB

Paano makapagsimula sa:

  1. I-install para sa Arduino 1.6.7 mula sa para sa Arduino website.
  2. Magsimula para sa Arduino at buksan ang window ng Mga Kagustuhan.
  3. sa patlang ng Mga Karagdagang Boards Manager URL. Maaari kang magdagdag ng maraming mga URL, paghiwalayin ang mga ito sa mga kuwit.
  4. Buksan ang Mga Tool → Lupon: xxx → Mga Tagapamahala ng Lupon at i-install ang esp8266 ng Komunidad ng ESP8266 (at huwag kalimutang piliin ang iyong lupon ng ESP8266 mula sa Mga Tool> Board menu pagkatapos ng pag-install).

Para sa karagdagang detalye maaari mong suriin ang video sa itaas

Mag-click dito upang maghanap sa Aliexpress

Para sa proyektong ito ang kailangan mo lang ay ikonekta ang Pin na ito:

  1. Ang NodeMCU RX pin ay kumonekta sa Arduino Nano TX pin
  2. Ang pin ng NodeMCU TX ay kumonekta sa Arduino Nano RX pin
  3. Ang NodeMCU G pin ay kumonekta sa DC-DC mini 5v Stepdown (-) Output pin out
  4. Ang NodeMCU5V pin ay kumonekta sa DC-DC mini 5v Stepdown (+) Output pin out

PS: Para sa Programing sa board na ito dapat mong idiskonekta ang lahat ng pin na nakakabit sa arduino at DC-DC na bumaba, kung hindi man ay makakakuha ka ng isang error…

Hakbang 4: Mga Elektronikong Bahagi (Arduino Nano)

Mga Elektronikong Bahagi (Arduino Nano)
Mga Elektronikong Bahagi (Arduino Nano)

Parehas sa NodeMCU, para sa arduino board maaari kang gumamit ng anumang board na angkop para sa iyo tulad ng Arduino Pro Mini, Arduino Nano o iba pa.

Ngunit Para sa proyektong ito pipiliin ko ang Arduino Nano, dahil hindi kailangan ng pin na ginamit ko, maliit ito at hindi kailangan ng FTDI upang mai-program ito.

mag-click Dito upang maghanap sa Aliexpress

Para sa proyektong ito ginagamit ko lang:

  1. Ang Arduino nano RX pin ay kumonekta sa pin ng NodeMCU TX
  2. Ang Arduino nano TX pin ay kumonekta sa NodeMCU RX pin
  3. Ang Ardiono nano A4 pin ay kumonekta sa PCA9685 SDA pin
  4. Ang Arduino nano A5 pin ay kumonekta sa PCA9685 SCL pin
  5. Ang Arduino nano GND pin ay kumonekta sa DC-DC mini 5v Stepdown (-) Output pin out
  6. Ang Arduino nano 5V pin ay kumonekta sa DC-DC mini 5v Stepdown (+) Output pin out

tingnan ang iskema sa itaas para sa karagdagang detalye

PS: Para sa Programing sa board na ito dapat mong idiskonekta ang lahat ng mga pin na nakakabit sa NodeMCU at DC-DC na bumaba, kung hindi man ay makakakuha ka ng isang error…

Hakbang 5: Mga Elektronikong Bahagi (Tower Pro 9g Micro Servo)

Mga Elektronikong Bahagi (Tower Pro 9g Micro Servo)
Mga Elektronikong Bahagi (Tower Pro 9g Micro Servo)

Ito ang pinakatanyag na mini servo. Tumitimbang lamang ng 9 gramo at bibigyan ka ng isang 1.5 kg / cm na metalikang kuwintas. Medyo malakas tungkol sa laki nito. Angkop para sa mga robot na uri ng sinag.

PS: Ang servo na ito ay maaari lamang paikutin ang anggulo ng 180 degree

Pangunahing tampok:

• translucent na katawan

• Magaan

• Mas kaunting ingay Mga pagtutukoy:

• Mga Dimensyon: 22.6 x 21.8 x 11.4 mm

• haba ng wire ng konektor: 150 mm

• Bilis ng pagpapatakbo (4.8 V walang pag-load): 0.12 sec / 60 degree

• Stall torque (4.8 V): 1.98 kg / cm

• Saklaw ng temperatura: 30 hanggang 60 ° C (-22 hanggang 140 ℉)

• Lapad ng patay na banda: 4 usec

• Boltahe ng operasyon: 3.5 - 8.4 Volts

Mag-click Dito upang maghanap ng SG90 servo sa Aliexpress

Hakbang 6: Mga Elektronikong Bahagi (16-Channel 12-bit PWM / Servo Driver - I2C Interface - PCA9685 para sa Arduino)

Mga Elektronikong Bahagi (16-Channel 12-bit PWM / Servo Driver - I2C Interface - PCA9685 para sa Arduino)
Mga Elektronikong Bahagi (16-Channel 12-bit PWM / Servo Driver - I2C Interface - PCA9685 para sa Arduino)

Nais bang gumawa ng robot walker? ngunit ang paggamit lamang ng microcontroller ay may isang limitadong bilang ng mga output ng PWM, at nahanap mo ang iyong sarili na nauubusan! Hindi kasama ang Adafruit 16-Channel 12-bit PWM / Servo Driver - I2C interface. Gamit ang pwm at servo driver breakout na ito, makokontrol mo ang 16 na nagpapatakbo ng libreng PWM na output sa pamamagitan lamang ng dalawang mga pin! Kailangang magpatakbo ng higit sa 16 mga output ng PWM? Walang problema. Magkadena ng hanggang sa 62 sa mga kagandahang ito hanggang sa isang natitirang 992 PWM output.

Ang board / chip na ito ay gumagamit ng I2C 7-bit address sa pagitan ng 0x60-0x80, mapipili ng mga jumper Terminal block para sa pag-input ng kuryente (o maaari mong gamitin ang 0.1 "na mga breakout sa gilid) Baligtarin ang proteksyon ng polarity sa terminal block input Green power-good LED 3 mga konektor ng pin sa mga pangkat ng 4 upang maaari mong mai-plug sa 16 na servo nang sabay-sabay (Ang mga Servo plug ay bahagyang mas malawak kaysa sa 0.1 "upang maaari mo lamang i-stack ang 4 sa tabi ng bawat isa sa 0.1" header na "Chain-may" na disenyo na Isang lugar upang mailagay ang isang malaking capacitor sa linya ng V + (kung sakaling kailangan mo ito) 220 ohm series resistors sa lahat ng mga linya ng output upang maprotektahan ang mga ito, at upang makagawa ng pagmamaneho ng mga walang kabuluhang solder jumper para sa 6 na address select pin na i2c-kinokontrol na driver ng PWM na may built in na orasan. Hindi tulad ng pamilya TLC5940, hindi mo kailangang patuloy na ipadala ito signal na tinali ang iyong microcontroller, ganap na libreng pagpapatakbo nito! Sumusunod ito sa 5V, na nangangahulugang makontrol mo ito mula sa isang 3.3V microcontroller at ligtas pa ring magmaneho ng hanggang sa 6V output (ito ay mabuti para sa kung nais mong kontrolin ang puti o asul na L Mga ED na may 3.4+ pasulong na mga voltages) 6 na piniling pin na address upang maaari kang mag-wire ng hanggang sa 62 sa mga ito sa isang solong i2c bus, isang kabuuang 992 na output - iyon ay maraming mga servo o LEDs Madaling iakma ang dalas PWM hanggang sa halos 1.6 KHz 12-bit resolusyon para sa bawat output - para sa mga servos, nangangahulugan iyon tungkol sa 4us resolusyon sa 60Hz rate ng pag-update Na-configure ang push-pull o open-drain output Output paganahin ang pin upang mabilis na huwag paganahin ang lahat ng mga output.

mag-click Dito upang maghanap sa Aliexpress

Sa proyektong ito kailangan lang namin ng 12 CH para sa lahat ng mga binti (3CH bawat binti), ikonekta ang PCA9685 pin na ito sa Arduino Nano:

  1. PCA9685 VCC sa DC-DC mini 5v Stepdown (+) Output pin out
  2. PCA9685 GND sa DC-DC mini 5v Stepdown (-) Output pin out
  3. Ang PCA9685 Servo (PWM) power V + sa UBEC (+) Output pin out
  4. Ang PCA9685 Servo (PWM) power GND sa UBEC (-) Output pin out
  5. Ang PCA9685 SDA ay pinto ang arduino nano A4 pin
  6. Ang PCA9685 SCL ay pin sa arduino nano A5 pin
  7. Ang PCA9685 CH0 sa Harap na Tamang Thight, mangyaring itugma ang kulay ng cable sa kulay ng socket ng PCA9685 (Dilaw, Pula, Kayumanggi / Itim)
  8. Ang PCA9685 CH1 sa Paunang Paa Paa, mangyaring itugma ang kulay ng cable sa kulay ng socket ng PCA9685 (Dilaw, Pula, Kayumanggi / Itim)
  9. PCA9685 CH2 sa Harap na Kanang Hip, mangyaring itugma ang kulay ng cable sa kulay ng socket ng PCA9685 (Dilaw, Pula, Kayumanggi / Itim)
  10. Ang PCA9685 CH4 sa Back Right Thight, mangyaring itugma ang kulay ng cable sa kulay ng socket ng PCA9685 (Dilaw, Pula, Kayumanggi / Itim)
  11. Ang PCA9685 CH5 sa Back Right Foot, mangyaring itugma ang kulay ng cable sa kulay ng socket ng PCA9685 (Dilaw, Pula, Kayumanggi / Itim)
  12. Ang PCA9685 CH6 sa Back Right Hip, mangyaring itugma ang kulay ng cable sa kulay ng socket ng PCA9685 (Dilaw, Pula, Kayumanggi / Itim)
  13. Ang PCA9685 CH8 sa Front Left Thight, mangyaring itugma ang kulay ng cable sa kulay ng socket ng PCA9685 (Dilaw, Pula, Kayumanggi / Itim)
  14. Ang PCA9685 CH9 sa Front Left Foot, mangyaring itugma ang kulay ng cable sa kulay ng socket ng PCA9685 (Dilaw, Pula, Kayumanggi / Itim)
  15. Ang PCA9685 CH10 sa Front Left Hip, mangyaring itugma ang kulay ng cable sa kulay ng PCA9685 socket (Dilaw, Pula, Kayumanggi / Itim)
  16. PCA9685 CH12 sa Back Left Thight, mangyaring itugma ang kulay ng cable sa kulay ng socket ng PCA9685 (Dilaw, Pula, Kayumanggi / Itim)
  17. Ang PCA9685 CH13 sa Back Left Foot, mangyaring itugma ang kulay ng cable sa kulay ng socket ng PCA9685 (Dilaw, Pula, Kayumanggi / Itim)
  18. PCA9685 CH14 sa Back Left Hip, mangyaring itugma ang kulay ng cable sa kulay ng PCA9685 socket (Dilaw, Pula, Kayumanggi / Itim)

PS: Ang ilang PCA9685 ay walang socket ng color code, kaya siguraduhin na ang Yellow cable mula sa SG90 servo ay papunta sa PWM data pin, ang Red cable ay papunta sa V + pin, at ang Black / Brown ay papunta sa GND pin

Hakbang 7: Ang Koneksyon ng PWM sa Servo Pin

PWM sa Servo Pin Connection
PWM sa Servo Pin Connection
PWM sa Servo Pin Connection
PWM sa Servo Pin Connection

Mag-click at mag-zoom larawan sa itaas upang makita ang pag-map ng mapa sa pagitan ng PCA9685 at ng mga servos

PS: Gumagamit ka lamang ng 12CH mula sa 16 CH para sa proyektong ito, kaya mayroon ka pa ring natitirang 4CH para sa pagpapalawak tulad ng paglalagay ng radar servo o paglagay ng sandata ng nerf blaster dito … Maglagay lamang ng isang karagdagang code sa arduino at NodeMCU

Hakbang 8: Mga Elektronikong Bahagi (UBEC)

Mga Elektronikong Bahagi (UBEC)
Mga Elektronikong Bahagi (UBEC)

Ang 3A-UBEC ay isang switch-mode DC-DC regulator na ibinibigay na may 2-6 cells lithium battery pack (o 5-18 cells NiMh / NiCd na baterya) at naglalabas ito ng pare-parehong ligtas na boltahe para sa iyong tatanggap, gyro at servos. Ito ay napaka-angkop para sa RC helicopter. Kung ikukumpara sa linear mode UBEC, ang pangkalahatang kahusayan ng switch-mode UBEC ay mas mataas.

Sa proyektong ito ginagamit namin ito upang mapagana ang lahat ng mga servo, mayroon itong pagsala upang mabawasan ang ingay na maaaring maapektuhan ang motor glitch at mayroon itong mataas na Amp na sapat upang maiangat ang pagkarga ng robot.

mag-click Dito upang maghanap sa Aliexpress

Koneksyon sa pin:

  1. Ang UBEC (+) RED Output ay naka-pin sa PCA9685 Servo (PWM) power V +
  2. UBEC (-) BLACK Output na naka-pin sa PCA9685 Servo (PWM) power GND
  3. UBEC (+) RED Input sa baterya (+) na pin
  4. UBEC (-) BLACK input sa switch pin

Hakbang 9: Mga Elektronikong Bahagi (DC-DC Mini Stepdown)

Mga Elektronikong Bahagi (DC-DC Mini Stepdown)
Mga Elektronikong Bahagi (DC-DC Mini Stepdown)
Mga Elektronikong Bahagi (DC-DC Mini Stepdown)
Mga Elektronikong Bahagi (DC-DC Mini Stepdown)

Ito ay halos may parehong pag-andar sa UBEC, ngunit ang isang ito ay simpleng DC-DC step down module lamang. Mayroon itong meter ng potensio na maaari naming ayusin ang output ng V (+) mula sa 1V hanggang 17V at walang pagsala.

mag-click Dito upang hanapin ito sa Aliexpress

PS: kaya tandaan, bago mo ito gamitin mangyaring ayusin ang V (+) out sa 5V output gamit ang DC Volt meter

Koneksyon sa pin:

  1. Mini stepdown (+) IN sa (+) Baterya
  2. Mini stepdown (-) IN sa switch pin
  3. Mini stepdown (+) OUT kahanay sa NodeMCU (5V), Arduino nano (5V) at PCA9685 (VCC) pin
  4. Mini stepdown (-) OUT kahanay sa NodeMCU (G), Arduino nano (GND) at PCA9685 (GND) pin

Hakbang 10: Iba Pang Elektronikong Bahagi

Iba Pang Elektronikong Bahagi
Iba Pang Elektronikong Bahagi
Iba Pang Elektronikong Bahagi
Iba Pang Elektronikong Bahagi
Iba Pang Elektronikong Bahagi
Iba Pang Elektronikong Bahagi

Ang kailangan mo ay nasa paligid (20 cable o mas mababa) babae hanggang babae na jumper wire (Aliexpress Jumper wire search)

Self lock push switch o maaari kang gumamit ng ibang uri ng switch (Aliexpress Self search locking switch)

at isang pares ng konektor ng JST mula sa baterya upang lumipat at pag-stepdown ng UBEC / DC-DC (paghahanap sa Aliexpress JST Connector)

Hakbang 11: Pinagmulan ng Kuryente

Pinagkukunan ng lakas
Pinagkukunan ng lakas
Pinagkukunan ng lakas
Pinagkukunan ng lakas

Mayroong maraming mapagkukunan ng kuryente na maaari mong gamitin, para sa akin mas gusto ko ang paggamit ng rechargeable lipo 3S na baterya. Mayroon itong 11, 1 Volt Kasalukuyan at 500mAh o higit pang kapasidad (hindi masyadong ganon mas magaan ito).

Ngunit ang paggamit ng 3S lipo kailangan ng isang charger at ito ay hindi mura, kaya … maaari kang gumamit ng iba pang mapagkukunan ng kuryente tulad ng baterya ng AAA, maaari kang serial 6 baterya ng AAA upang makagawa ito ng paligid ng 9V na mapagkukunan ng kuryente at sa palagay ko sapat na ang lakas para sa robot na ito.

Mag-click Dito upang maghanap ng baterya ng Lipo 3S sa Aliexpress

Mag-click Dito upang maghanap ng Lipo Charger

Mag-click Dito upang maghanap ng may hawak ng Baterya ng 6xAAA sa Aliexpress

Hakbang 12: Diagram ng Wire

Diagram ng Wire
Diagram ng Wire

Mag-click at mag-zoom larawan sa itaas upang makita ang lahat ng wire diagram para sa proyektong ito

PS: kailangan mo ng ilang paghihinang sa ilang bahagi at maglagay ng isang ulong goma upang mai-seal ito para sa koneksyon sa pagitan ng power switch, UBEC at DC-DC na bumaba.

Hakbang 13: Pag-coding at Paunang Pose

Coding at Paunang Pose
Coding at Paunang Pose

Ikonekta ang arduino nano gamit ang mini USB sa USB port cable (ngunit huwag kalimutang idiskonekta ang lahat ng pin sa wemos D1 mini at DC-DC stepdown) at Buksan ang "spider_driver_open_v3_ESP8266_Rev280918.ino" at i-flash ito sa Arduino nano, ngunit huwag ' t kalimutang piliin ang arduino board sa Arduino nano at piliin ang tamang port.

Susunod ay ikonekta ang Wemos D1 mini sa computer gamit ang micro USB sa USB (huwag mo ring kalimutang idiskonekta ang lahat ng pin sa stepdown ng DC-DC at Arduino nano). Kaysa sa buksan ang "QuadrupetV2_310319_fix_connection_issue.ino" at i-flash ito sa board, ngunit bago ito ibenta ang tamang board sa kagustuhan at piliin ang tamang port (mas maraming detalye mangyaring bumalik sa hakbang 3)

Matapos ang lahat tapusin maaari mong muling magkabit ang lahat ng mga pin sa pagitan ng arduino nano, wemos D1 mini at DC-DC stepdown at paganahin ang robot upang ayusin ang tamang paunang pose.

INITIAL Pose (Tingnan ang larawan sa itaas) ayusin ang lahat ng mga binti nang mas malapit hangga't maaari sa larawan sa itaas.

Pagkatapos mong paganahin ang robot, kung ang posisyon ng binti ay hindi pareho sa larawan sa itaas kaysa sa kailangan mo lang ay:

  1. alisan ng takbo ang Servo Horn at tanggalin ang servo sungay mula sa servo.
  2. i-on ang binti hanggang sa sapat na malapit sa paunang pose
  3. muling ikabit ang sungay ng servo at muling gawin ito
  4. gawin ito para sa lahat ng miss match leg

PS:

  1. Ang QuadrupetV2_310419_fix_connection_issue.ino ay naayos na ang ilang isyu tulad ng mahirap kumonekta (wifi) at nabigo ang pag-render ng web page, para sa kung sino ang nag-flash ng mas matandang programa bago ang 31-3-2019 mangyaring i-download itong muli sa itaas
  2. mayroong ilang karagdagang kinakailangang pag-install ng library (kopyahin ito sa folder ng library)

    • github.com/wimleers/flexitimer2
    • github.com/adafruit/Adafruit-PWM-Servo-Dri…
    • github.com/kroimon/Arduino-SerialCommand

Hakbang 14: Pagkontrol sa Robot

Pagkontrol sa Robot
Pagkontrol sa Robot

Dahil ang robot na ito ay naging WIFI Access Point kaya't ang kailangan mo ay:

  1. Pagpapatakbo ng robot
  2. Buksan ang setting ng wifi sa iyong smartphone
  3. Kumonekta sa SpiderRobo Access Point na may password ay "12345678"
  4. Buksan ang web browser sa iyong smartphone at i-type ang

Handa na ang iyong Robot na kunin ang iyong utos …

Hakbang 15: Para Kanino May problema sa Pagbubukas ng Web Page o Pagkonekta sa AP

NAayos ko ang isyu na ito Paki-download ulit ito mula sa hakbang 13 sa itaas (ayusin ang @ 31-4-2019)

ang ilan sa Wemos D1 mini clone ay mayroong masama o depekto sa ESP, at sanhi ito: - Mahirap kumonekta sa AP

- Nabigong buksan ang pahina

- Hindi matapos ang paglo-load

Para sa karagdagang detalye suriin ang aking video sa itaas…

Inirerekumendang: