หน้าแรก ดูโปรเจกต์ทั้งหมด
Intermediate

โปรเจกต์ ESP8266 + L298N Motor Drive + Smartphone

ควบคุม Arduino robot ด้วย Smartphone โดยใช้ ESP8266 (อัปเดตล่าสุด: 08/06/2022)

โปรเจกต์ ESP8266 + L298N Motor Drive + Smartphone

วิดีโอสาธิต

Video

▶ กดเพื่อดูวิดีโอสาธิตโปรเจกต์

รายการอุปกรณ์และเครื่องมือ

1x Dual H-Bridge motor drivers L298
🛒 สั่งซื้อ
1x Jumper wires (generic)
🛒 สั่งซื้อ
2x DC motor (generic)
🛒 สั่งซื้อ
1x Breadboard (generic)
🛒 สั่งซื้อ

รายละเอียดและวิธีทำ

เอกสารนี้เกี่ยวกับความพยายามของฉันในการควบคุมหุ่นยนต์ Arduino ด้วย L298N motor drive และ AI-Thinker ESP8266 หุ่นยนต์ตัวนี้มีชื่อว่า UTFPRBot version 1.0

นี่คือวิดีโอ YouTube เพื่อสาธิตการทำงานของมัน:

โปรเจกต์นี้จะอธิบายวิธีการสร้างหุ่นยนต์ Arduino ตัวนี้ นอกจากนี้ ฉันยังได้อธิบายขั้นตอนส่วนตัวในการทำให้การ deployment โปรแกรมเพื่อควบคุมหุ่นยนต์ตัวนี้ทำได้ง่ายขึ้น

Components and Supplies

  • ESP8266 – Al Cloud Inside
  • Arduino UNO
  • Motor Drive L298N
  • Solderless breadboard shield
  • Jumpers (จำนวนมาก)
  • LED
  • 1K Resistor
  • 2 DC motors ขนาด 5V
  • ฐานหุ่นยนต์แบบ 2 ชั้น และล้อแบบ omnidirectional 1 ล้อ
  • Smartphone

About this project

โปรเจกต์นี้เป็นผลมาจากความพยายามอย่างมากในการสร้างหุ่นยนต์ง่ายๆ ที่ควบคุมด้วย ESP8266 ฉันไม่พบแหล่งข้อมูลที่ดีบนอินเทอร์เน็ตที่อธิบายวิธีสร้างหุ่นยนต์ด้วย ESP8266 แบบง่ายๆ นอกจากนี้ ฉันยังพบข้อมูลมากมายที่จากการทดลองจริงแล้วไม่มีความจำเป็นต้องทำเช่นนั้น แม้จะเป็นความเห็นในฟอรั่มต่างๆ ก็ตาม โปรเจกต์นี้จึงเสนอวิธีการทำให้กระบวนการที่ยุ่งยากนี้ง่ายขึ้น

Settings

นี่คือเป้าหมายของเรา:

Wiring

ฉันใส่ LED ไว้ในวงจรเพื่อให้รู้ว่า ESP8266 ได้รับไฟ 3.3V จริงๆ แต่คุณสามารถใช้ multimeter เพื่อตรวจสอบแรงดันไฟฟ้าได้ ฉันใช้ solderless breadboard เพราะมีการเชื่อมต่อหลายจุด ฉันพยายามใช้ Arduino breadboard shield เพื่อหลีกเลี่ยงการใช้ solderless breadboard แต่ Module นี้รองรับแค่การ deployment ซอฟต์แวร์โดยตรงกับ Arduino Board เท่านั้น

ESP8266 -- Arduino

  • VCC 🠚 3.3V
  • CH_PD 🠚 3.3V
  • GPIO2 🠚 3.3V
  • GND 🠚 GND
  • GPIO0 🠚 GND
  • TX 🠚 TX
  • RX 🠚 RX

Step 1) Update the ESP8266 firmware

ขั้นตอนนี้ทำเพียงครั้งเดียวเพื่อให้แน่ใจว่า firmware ได้รับการอัปเดตแล้ว

a) การ deployment ของ ESP8266 จะทำงานได้ก็ต่อเมื่อ ไม่มี ชิป ATMega เท่านั้น แต่คุณสามารถต่อสายไฟเส้นเดียวใน Pins RST และ GND บน Arduino ได้ ซึ่งจะทำให้มีการใช้งานเฉพาะตัว Board เท่านั้น โดยไม่ผ่านชิป ATMega

b) คุณต้องต่อ GPIO0 เพื่อทำการ deployment และต้องถอด GPIO0 ออกหลังจากทำการ deployment sketch เสร็จสิ้น

c) คุณต้องใช้ Pins RST ทุกครั้งก่อนการ deployment เพื่อ sync ตัว ESP ของคุณ ให้ต่อ RST กับ GND อย่างรวดเร็วแล้วสังเกตไฟกะพริบ หากไม่มีอะไรเกิดขึ้น ให้ลองใหม่จนกว่าจะเห็นไฟกะพริบสีน้ำเงิน หลังจากไฟสีน้ำเงินกะพริบแล้ว ให้ถอดสาย RST ออก

d) จ่ายไฟให้ ESP8266 เชื่อมต่อ VCC, CH_PD และ GPIO2 เข้ากับ 3.3V ฉันใช้ 1K Resistor เพื่อป้องกันไม่ให้กระแสไฟฟ้าสูงเกินไปสำหรับ LED ของฉัน

e) คุณต้องต่อ Rx🠚Rx และ Tx🠚Tx เพื่อ deployment firmware ใน ESP8266

f) หลังจากการ deployment ให้ถอดสายตามลำดับนี้: TX และ RX, GPIO0, VCC จากนั้นให้เสียบเฉพาะ VCC อีกครั้งเพื่อตรวจสอบว่า ESP8266 ยังคงเก็บข้อมูลที่ deployment ไว้หรือไม่

Software:

  • FLASH_DOWNLOAD_TOOLS_v2.4_150924

1) ต่อสาย Module ESP8266 ของคุณตามที่แสดงในรูปภาพ

2) เปิดไฟล์ FLASH_DOWNLOAD_TOOLS_v2.4_150924/ESP_DOWNLOAD_TOOL_V2.4.exe

3) เปิด “Device Manager” ใน Windows เพื่อตรวจสอบการเชื่อมต่อ COM port เมื่อคุณเสียบสาย USB Arduino ทดสอบ serial COM port ของคุณในโปรแกรม FlashDownloadTools โดยคลิกปุ่ม START แต่ก่อนอื่นให้ยกเลิกการเลือกช่อง config ของ download path ในส่วนของ DETECT INFO และ MAC Address พื้นที่ส่วนนี้ควรแสดงข้อมูลของ ESP8266

3) ตอนนี้ ทำเครื่องหมายในช่อง path และกรอกข้อมูลในฟิลด์ต่างๆ ตามที่แสดงในรูปภาพ:

esp_iot_sdk_v1.5.0_15_11_27\\esp_iot_sdk_v1.5.0\\bin\\esp_init_data_default.bin à0xfc000
esp_iot_sdk_v1.5.0\\bin\\blank.bin à 0xfe000
esp_iot_sdk_v1.5.0\\bin\\boot_v1.4(b1).bin à 0x00000
esp_iot_sdk_v1.5.0\\bin\\at\\512+512\\user1.1024.new.2.bin à 0x01000
ai-thinker-0.9.5.2.bin à 0x00000

4) คลิก START และรอจนกว่าจะ SYNC และทำการ flash ไฟล์ firmware ทั้งหมดจนเสร็จสมบูรณ์

5) หลังจากการ deployment ให้ถอดสายตามลำดับนี้: TX และ RX, GPIO0, VCC จากนั้นเสียบเฉพาะ VCC อีกครั้งเพื่อตรวจสอบว่า ESP8266 ยังคงเก็บโค้ดที่ deployment ไว้หรือไม่

Step 2) Use Arduino to upload new sketch

ในขั้นตอนนี้ คุณต้องนำ ITEADLIB_Arduino_WeeESP8266-master ไปไว้ใน C:\\Program Files (x86)\\Arduino\\libraries นอกจากนี้ คุณต้องเอา comment ออกในบรรทัดต่อไปนี้ใน ESP8266.h:

#define ESP8266_USE_SOFTWARE_SERIAL

ในขั้นตอนนี้ คุณต้องเปิดใช้งาน Module ESP8266 ใน Arduino IDE (ไปที่ File 🠚 Preferences: ใส่ URL: http://arduino.esp8266.com/package_esp8266com_index.json) หลังจากนั้นให้ upload Module ESP8266 (ฉันติดตั้งทั้งหมดที่ฉันเห็นว่ามีประโยชน์และมีการระบุถึง ESP8266)

ใน Arduino IDE ให้เลือก Generic ESP8266 Module โดยตั้งค่าต่างๆ ดังนี้:

จากนั้น upload sketch ใหม่: Web Server เพื่อรับการเชื่อมต่อ HTTP สำหรับเคลื่อนที่หุ่นยนต์ อย่าลืมการต่อสายเพื่อ deployment sketches ใน ESP8266:

  • VCC 🠚 3.3V
  • RST 🠚 GND
  • GPIO0 🠚 GND
  • GND 🠚 GND
  • TX 🠚 TX และ RX 🠚 RX

อย่าลืมถอดสายหลังจากการ deployment:

  • TX และ RX
  • GPIO0
  • RST
  • VCC

ตอนนี้ ให้เสียบ VCC อีกครั้งเพื่อให้แน่ใจว่า sketch ของคุณถูก deployment เรียบร้อยแล้ว ใช้ Code1 (ที่แนบมา) เพื่อ: สร้าง WiFi access point และให้บริการ web server บนนั้นเพื่อควบคุมการเคลื่อนที่ของหุ่นยนต์

Step 3) Deploy Arduino Sketch to read ESP8266 data from SoftwareSerial

ตอนนี้คุณต้อง deployment code ลงในชิป Arduino ATMega โปรดทราบว่าฉันใช้ solderless breadboard shield เพื่อหลีกเลี่ยงการถอด/ใส่ชิป ATMega บ่อยๆ ตอนนี้คุณเพียงแค่ต้องถอดสาย RST ออกจาก GND

สำคัญ: ในการอ่านข้อมูลจาก SoftwareSerial คุณต้องสลับการเชื่อมต่อของสาย RX/TX ที่ ESP8266 ใช้เชื่อมต่อกับ Arduino

Wiring

ใช้ Code 2 (ที่แนบมา) เพื่อ:

  • Parse ข้อมูล serial จาก ESP8266 และ
  • ควบคุมการเคลื่อนที่ของมอเตอร์ผ่าน L298N motor drive

Step 4) Wiring with L298N and Arduino:

Wiring

Step 5: Fine! Now it is time to test.

  • เชื่อมต่อ Smartphone ของคุณกับ ESP8266 wireless AP (ไม่จำเป็นต้องเปลี่ยน IP address ของ Smartphone หรืออุปกรณ์ใดๆ ที่เชื่อมต่อกับ ESP8266)
  • เพียงแค่เลือกตัวเลือกต่างๆ และขอให้สนุก!

Final remarks:

LLC (Logic Level Converter): ฉันสังเกตว่าหลายฟอรั่มแนะนำให้ใช้ LLC เพื่อเชื่อมต่อ ESP8266 กับ Arduino ฉันซื้อมาตัวหนึ่งและต้องประหลาดใจที่ฉันไม่สามารถใช้งานมันกับ ESP8266 และ Arduino ได้ (มันใช้งานไม่ได้ทั้งตอน deployment หรือการส่ง/รับข้อมูล serial) ดูเหมือนว่าการใช้งานมันจะไม่จำเป็นสำหรับการอัปเดต firmware หรือการ deployment โปรแกรมใหม่ๆ ลงใน ESP8266 ข้อสันนิษฐานบางประการ:

  • ESP8266 รองรับแรงดันได้ถึง +6V (ฉันเห็นในฟอรั่ม Arduino ระบุว่า ESP8266 มี internal capacitors เพื่อรองรับแรงดันได้ถึง +6V และข้อมูลนี้ก็มีอยู่ในคู่มือของ ESP8266) ฉันใช้ ESP8266 กับ Arduino ports เท่านั้น ดังนั้นฉันเชื่อว่ากระแส 50mA จาก Arduino จะไม่ทำให้ ESP8266 ไหม้ เพราะมันสามารถรองรับได้เกือบ 250mA
  • Arduino ports ให้กระแสได้ประมาณ 50mA
  • ESP8266 ports รองรับกระแสได้ประมาณ 250mA
  • ฉันจะเชื่อมต่อ ESP8266 กับ Arduino เท่านั้น
  • Power supply: ฉันไม่สามารถใช้ถ่าน 9V แบบชาร์จได้เพื่อจ่ายไฟให้ Arduino + ESP8266 + L298N เนื่องจากมันหมดเร็วมาก อย่างไรก็ตาม สำหรับจุดประสงค์ของฉัน ฉันสะดวกที่จะใช้สาย USB ที่ยาวขึ้นเพื่อจ่ายไฟให้ L298N motor drive
  • ฉันยังไม่รู้วิธีเปลี่ยน MAC address (อาจจะต้องคอมไพล์ไฟล์ใหม่) หรือวิธีเปลี่ยน IP address ของ ESP8266 (อาจจะใช้ AT commands หรือลองจัดการกับ AT commands (ขั้นตอนที่ 1) และเปลี่ยน IP)

ยินดีรับข้อสงสัย ข้อเสนอแนะ และความคิดเห็นต่างๆ

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: esp8266-l298n-motor-drive-smartphone-5947d0
2450 บาท
PromptPay QR Code

ประเมิน Project

อยากได้งานคล้ายโปรเจคนี้? กดไปหน้าประเมินราคา

เอาฟอร์มยาวออกจากท้ายหน้า Project แล้ว เหลือเป็นปุ่มให้กดไปกรอกหน้าเดียว ตัวใหญ่ เว้นบรรทัดเยอะ อ่านง่ายกว่า

รีวิวจากคนใช้งานจริง

รีวิวจากลูกค้าและคนที่เคยใช้งาน

ถ้าเคยสั่งงาน เคยอ่านหน้านี้แล้วได้ประโยชน์ หรือมีข้อเสนอแนะ ฝากรีวิวไว้ได้เลย

กำลังโหลดรีวิว...