LEGO Mindstorms Education EV3 - บทวิจารณ์ของนักออกแบบ อ่านข่าวล่าสุดจากโลกของ Lego – EduCube เลโก้มายด์สตอร์ม EV3 ของเล่นสกายเน็ต. หน้าแรก วิธีเพิ่มโมดูล lego ev3 เพิ่มเติม

หากคุณมีคำถามใดๆ ที่อยากรู้เกี่ยวกับนักออกแบบคนใหม่ (วิธีทำงานเฉพาะเจาะจง ทำการทดลองกับเซ็นเซอร์หรือมอเตอร์) - เขียนถึงเรา - เราจะลองทำตามคำแนะนำของคุณ ด้วยวิธีนี้ คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ EV3 ก่อนวางจำหน่ายด้วยซ้ำ

ตอนนี้ทุกอย่างเริ่มต้นด้วยการทบทวน ซอฟต์แวร์บล็อก EV3 (เฟิร์มแวร์ EV3)

คุณสมบัติอย่างหนึ่งของเครื่องใหม่คือการเปิดและปิดใช้เวลานาน ในแง่ของเวลา กระบวนการนี้เทียบได้กับการรวมเข้าด้วยกัน โทรศัพท์มือถือหรือเราเตอร์ที่บ้านเช่น 20-30 วินาที หลังจากเปิดเครื่อง เมนูต่อไปนี้จะปรากฏขึ้น:


อย่างที่คุณเห็นเมื่อเปรียบเทียบกับบล็อก NXT มีการเปลี่ยนแปลงมากมาย: คุณภาพของแบบอักษรได้รับการปรับปรุง องค์ประกอบกราฟิกถูกวาดขึ้น และอินเทอร์เฟซของหน้าต่างได้รับการปรับปรุง ก่อนอื่นนี่เป็นเพราะขนาดหน้าจอเพิ่มขึ้น - กลายเป็น 178 x 128 พิกเซลแทนที่จะเป็น 100 x 64 เช่นเดียวกับบล็อก NXT จากการมีอยู่ของอินเทอร์เฟซหน้าต่างพร้อมปุ่มสำคัญและแถบเลื่อนจึงสามารถสันนิษฐานได้ว่าอุปกรณ์เช่นอุปกรณ์ภายนอก ทัชแพดตอนนี้มันจะสมเหตุสมผลมากขึ้นด้วยซ้ำ


จากหน้าต่างแรก คุณสามารถเรียกโปรแกรมที่โหลดลงในบล็อกได้ เช่นเดียวกับโปรแกรมที่สร้างขึ้นโดยตรงบนบล็อก เหล่านั้น. ในการเริ่มโปรแกรม คุณจะต้องคลิกน้อยกว่าบล็อก NXT

การนำทางผ่านโปรแกรมที่โหลดรวมถึงหน้าจอที่สองและหน้าจอถัดไป (รายการเมนู) ดำเนินการโดยใช้ปุ่มควบคุมซึ่งขณะนี้มี 4 ปุ่ม


หน้าจอที่สอง - ให้คุณนำทางผ่านวัตถุระบบไฟล์บนบล็อก ระบบไฟล์ขณะนี้รองรับลำดับชั้นแบบดั้งเดิม: ไฟล์และไดเร็กทอรี


หน้าจอที่สามประกอบด้วยเมนูย่อย - แอปพลิเคชั่นที่ให้คุณดำเนินการต่าง ๆ กับบล็อก:


ใน รุ่นปัจจุบันแอปพลิเคชันดังกล่าวมีบล็อกซอฟต์แวร์สี่บล็อก:

  • ดูเซ็นเซอร์
  • การควบคุมมอเตอร์
  • รีโมท
  • การเขียนโปรแกรมบนบล็อก
หน้าจอที่สี่คือการกำหนดค่า นอกจาก การตั้งค่าพื้นฐาน: ระดับเสียง, ตัวจับเวลาที่ไม่มีการใช้งาน, การเปิด Bluetooth และ WiFi ช่วยให้คุณค้นหาข้อมูลเกี่ยวกับซอฟต์แวร์ของเครื่อง:



การเลือกรายการเมนู/แอปพลิเคชันเฉพาะเกิดขึ้นโดยใช้ปุ่มกลางบนแป้นพิมพ์ และหากต้องการออกจากรายการเมนูหรือแอปพลิเคชันใด ๆ คุณต้องกดปุ่ม "ออก" ซึ่งตอนนี้แยกจากปุ่มหลัก - ทางด้านซ้ายใต้หน้าจอ

ตอนนี้คุณควรกลับไปที่หน้าจอที่สามและเริ่มทำความคุ้นเคยกับแอปพลิเคชันต่างๆ ดังนั้นแอปพลิเคชั่น "ดูเซ็นเซอร์" (Port View)

ต่างจากโหมดที่คล้ายกันในบล็อก NXT ตอนนี้คุณสามารถดูข้อมูลเกี่ยวกับอุปกรณ์ทั้ง 8 เครื่องที่เชื่อมต่อกับบล็อกได้ในคราวเดียว นอกจากนี้ ฟังก์ชั่นการตรวจจับเซ็นเซอร์อัตโนมัติที่ประกาศไว้ยังช่วยให้คุณไม่ต้องระบุด้วยตนเองว่าเซ็นเซอร์ใดเชื่อมต่ออยู่ที่ใด

ข้อมูลจากตัวเข้ารหัสมอเตอร์จะแสดงที่ด้านบน ข้อมูลจากเซ็นเซอร์จะแสดงที่ด้านล่าง ที่กึ่งกลางของหน้าจอ - ข้อมูลเกี่ยวกับ อุปกรณ์เฉพาะ(วี พอร์ตเฉพาะ) ซึ่งสามารถเลือกได้โดยการกดปุ่มควบคุมบนคีย์บอร์ด ข้อมูลประกอบด้วยการแสดงภาพกราฟิกของเซ็นเซอร์ ชื่อ และการอ่านค่าปัจจุบัน:

เซ็นเซอร์สัมผัส:


เซ็นเซอร์ไจโร:


เซ็นเซอร์สีในโหมดแสงสะท้อน:


เซ็นเซอร์ระยะอัลตราโซนิก:

อย่างไรก็ตาม คุณจะเห็นว่าตอนนี้เซ็นเซอร์อ้างว่าสามารถวัดระยะทางได้ด้วยความแม่นยำระดับมิลลิเมตร และระยะทางที่วัดขั้นต่ำตอนนี้คือ 3 ซม.

ข้อมูลจากตัวเข้ารหัสมอเตอร์ด้านซ้าย


แอปพลิเคชั่นถัดไปคือการควบคุมมอเตอร์ โดยพื้นฐานแล้วมันช่วยให้คุณใช้ปุ่มเพื่อหมุนมอเตอร์ได้ ด้วยปุ่มกลางคุณจะต้องเลือกมอเตอร์ที่จะหมุน จากนั้นใช้ปุ่มคู่ขึ้นและลงหรือซ้ายและขวาเพื่อหมุนมอเตอร์เฉพาะ


เป็นไปไม่ได้ที่จะลองใช้แอปพลิเคชันที่สาม เนื่องจากชุด EV3 รุ่นเพื่อการศึกษาที่จัดส่งแบบมาตรฐานไม่มีเซ็นเซอร์วัดระยะอินฟราเรดและบีคอนอินฟราเรด แต่เห็นได้ชัดว่าบนหน้าจอนี้คุณสามารถกำหนดค่ามอเตอร์ที่จะควบคุมจากบีคอนอินฟราเรดได้


แน่นอนที่สุด แอปพลิเคชั่นที่น่าสนใจคือการเขียนโปรแกรมบนบล็อก ได้รับการออกแบบใหม่อย่างมีนัยสำคัญ: ขณะนี้โปรแกรมสามารถมีองค์ประกอบของโปรแกรมได้สูงสุด 16 รายการ (บล็อก) และสามารถบันทึกโปรแกรมที่สร้างขึ้นและแน่นอนเปิดใหม่เพื่อแก้ไขได้


เมื่อแอปพลิเคชันการเขียนโปรแกรมเปิดขึ้น ลูปการดำเนินการที่ว่างเปล่าจะปรากฏขึ้น (จะมีการดำเนินการวนซ้ำเพียงครั้งเดียว) และข้อเสนอให้แทรกบล็อกแรก คุณสามารถแทรกบล็อกได้โดยใช้ปุ่ม "ขึ้น"


ในหน้าต่างการเลือกบล็อกที่ปรากฏขึ้น มีบล็อกให้เลือก 17 บล็อก (6 บล็อกการดำเนินการและ 11 บล็อกรอ) รวมถึงการดำเนินการลบบล็อกปัจจุบัน



ลำดับการเลือกและลำดับของบล็อกถูกกำหนดโดยโปรแกรมเมอร์ ไม่ได้หมายความว่าหลังจากแต่ละ Action Block จะต้องมีบล็อกรอ เช่นเดียวกับกรณีก่อนหน้านี้ของบล็อก NXT

บล็อกที่เลือกในโปรแกรมมีลักษณะดังนี้:


สามารถระบุพฤติกรรมของบล็อกได้โดยการกดปุ่มกลาง สำหรับบล็อกนี้ คุณสามารถเปลี่ยนมุมและทิศทางของการหมุนของหุ่นยนต์หรือหยุดมอเตอร์ทั้งหมดได้ (ตัวอย่างเช่น หลังจากบล็อกรอก่อนหน้า)


ด้วยการเลื่อน "เคอร์เซอร์" ไปทางซ้ายหรือขวา คุณสามารถแทรกบล็อกอื่นได้:


ตัวอย่างเช่น บล็อกรอเหตุการณ์บนเซ็นเซอร์วัดระยะ:


และเปลี่ยนพฤติกรรม (เหตุการณ์จะเกิดขึ้นหากระยะห่างเกิน 60 ซม.) :


บล็อกสามารถแทรกระหว่างบล็อกที่มีอยู่หรือแม้กระทั่งที่จุดเริ่มต้นของโปรแกรม


นี่คือตัวอย่างเพิ่มเติมของการบล็อกการรอ:

บล็อกการรอเวลา (คุณสามารถกำหนดระยะเวลาในการรอได้อย่างชัดเจน):


หรือบล็อกรอเหตุการณ์จากเซ็นเซอร์ไจโรสโคปิก (คุณสามารถกำหนดมุมการหมุนของเซ็นเซอร์ได้)


ควรสังเกตอีกครั้งว่าฟังก์ชันการตรวจจับอัตโนมัติของเซ็นเซอร์ช่วยให้กระบวนการตั้งโปรแกรมบนตัวเครื่องง่ายขึ้น ไม่จำเป็นต้องปฏิบัติตามกฎที่ว่าเซ็นเซอร์บางตัวจะต้องเชื่อมต่อกับพอร์ตบางพอร์ตอีกต่อไป

หากต้องรันโปรแกรมหลายครั้ง จำนวนการวนซ้ำของลูปควบคุมสามารถเปลี่ยนแปลงได้:


โปรแกรมเปิดตัวโดยเลือกบล็อกแรก:


เมื่อคุณเริ่มโปรแกรม สิ่งต่อไปนี้จะปรากฏขึ้นบนหน้าจอ:


สามารถบันทึกโปรแกรมได้ และคุณสามารถระบุชื่อไฟล์สำหรับการค้นหาในภายหลังได้:



ตัวอักษรถูกเลือกโดยใช้แป้นพิมพ์ (สวัสดี ทัชแพด!)

หากคุณพยายามปิดโปรแกรมที่ยังไม่ได้บันทึก ข้อความต่อไปนี้จะแสดงไม่ชัดเจน และเสียงที่ไม่พึงประสงค์จะเกิดขึ้น:


คุณสามารถเปิดโปรแกรมที่สร้างขึ้นในภายหลังและทำการเปลี่ยนแปลงได้


โดยปกติแล้วจะเปิดเฉพาะโปรแกรมที่สร้างบนบล็อกเท่านั้น

โดยสรุป ฉันต้องการแสดงให้เห็นว่าการปิดบล็อกมีลักษณะอย่างไร:


การเชื่อมต่อยูเอสบี

เลโก้ มายด์สตอร์ม EV3 สามารถเชื่อมต่อกับพีซีหรือ EV3 อื่นผ่านการเชื่อมต่อ USB ความเร็วและความเสถียรในการเชื่อมต่อในกรณีนี้ดีกว่าวิธีอื่นรวมถึงบลูทูธด้วย

LEGO Mindstorms EV3 มีพอร์ต USB สองพอร์ต

การสื่อสารระหว่าง LEGO EV3 และบล็อก LEGO EV3 อื่นๆ ในโหมดเดซี่เชน

โหมดเดซี่เชนใช้เพื่อเชื่อมต่อบล็อก LEGO EV3 สองบล็อกขึ้นไป

โหมดนี้:

  • ออกแบบมาเพื่อเชื่อมต่อ LEGO Mindstorms EV3 มากกว่าหนึ่งตัว
  • ทำหน้าที่ในการเชื่อมต่อ มากกว่าเซ็นเซอร์ มอเตอร์ และอุปกรณ์อื่นๆ
  • อนุญาตการสื่อสารระหว่าง LEGO Mindstorms EV3 หลายตัว (สูงสุด 4) ซึ่งให้พอร์ตภายนอกสูงสุด 16 พอร์ตและพอร์ตภายในจำนวนเท่ากัน
  • ทำให้สามารถควบคุมห่วงโซ่ทั้งหมดจาก LEGO Mindstorms EV3 หลักได้
  • ไม่สามารถทำงานได้เมื่อใช้งานอยู่ การเชื่อมต่อ Wi-Fiหรือบลูทูธ

หากต้องการเปิดใช้งานโหมดการเชื่อมต่อแบบเดซี่เชน ให้ไปที่หน้าต่างการตั้งค่าโปรเจ็กต์แล้วทำเครื่องหมายที่ช่อง

เมื่อเลือกโหมดนี้ สำหรับมอเตอร์ใดๆ เราสามารถเลือกบล็อก EV3 ที่จะใช้และเซ็นเซอร์ที่จำเป็นได้

ตารางแสดงตัวเลือกสำหรับการใช้บล็อก EV3:

การกระทำ

มอเตอร์ขนาดกลาง

มอเตอร์ตัวใหญ่

พวงมาลัย

การจัดการที่เป็นอิสระ

ไจโรสโคปิก

อินฟราเรด

อัลตราโซนิก

การหมุนของมอเตอร์

อุณหภูมิ

เครื่องวัดพลังงาน

เสียง

การเชื่อมต่อผ่านบลูทูธ

บลูทูธช่วยให้ LEGO Mindstorms EV3 เชื่อมต่อกับพีซี, LEGO Mindstorms EV3 อื่นๆ, สมาร์ทโฟน และอุปกรณ์บลูทูธอื่นๆ ระยะการสื่อสารผ่าน Bluetooth สูงถึง 25 ม.

คุณสามารถเชื่อมต่อบล็อก LEGO Mindstorms EV3 ได้สูงสุด 7 บล็อก EV3 Master Brick ช่วยให้คุณสามารถส่งและรับข้อความไปยัง EV3 Slave แต่ละตัวได้ EV3 Slaves สามารถส่งข้อความไปยัง EV3 Master Brick เท่านั้น ไม่สามารถส่งข้อความถึงกันได้

ลำดับการเชื่อมต่อ EV3 ผ่าน Bluetooth

ในการเชื่อมต่อบล็อก EV3 สองบล็อกขึ้นไปเข้าด้วยกันผ่าน Bluetooth คุณต้องทำตามขั้นตอนต่อไปนี้:

1. เปิดแท็บ การตั้งค่า.

2. เลือก บลูทู ธและกดปุ่มตรงกลาง

3. เราใส่ ช่องทำเครื่องหมาย ทัศนวิสัยบลูทู ธ.

4. ตรวจสอบว่าสัญญาณ Bluetooth ("<") виден на верхней левой стороне.

5. ทำตามขั้นตอนข้างต้นสำหรับจำนวน EV3 Bricks ที่ต้องการ

6. ไปที่แท็บการเชื่อมต่อ:

7. คลิกที่ปุ่มค้นหา:

8. เลือก EV3 ที่คุณต้องการเชื่อมต่อ (หรือที่คุณต้องการเชื่อมต่อ) แล้วกดปุ่มกลาง

9. เราเชื่อมต่อบล็อกแรกและที่สองด้วยรหัสการเข้าถึง

หากคุณทำทุกอย่างถูกต้อง ไอคอน " จะปรากฏที่มุมซ้ายบน<>" ให้เชื่อมต่อบล็อก EV3 อื่นในลักษณะเดียวกันหากมีมากกว่าสองบล็อก

หากคุณปิด LEGO EV3 การเชื่อมต่อจะขาดหายไปและคุณจะต้องทำซ้ำขั้นตอนทั้งหมดอีกครั้ง

สำคัญ: แต่ละบล็อกจะต้องมีโปรแกรมของตัวเองเขียน

โปรแกรมตัวอย่าง:

บล็อกแรก: เมื่อกดเซ็นเซอร์สัมผัส EV3 บล็อกแรกจะส่งข้อความไปยังบล็อกที่สองโดยมีความล่าช้า 3 วินาที (บล็อกหลัก)

ตัวอย่างโปรแกรมสำหรับบล็อก 2:

บล็อกที่สองรอรับข้อความจากบล็อกแรก และเมื่อได้รับแล้ว จะแสดงคำ (ในตัวอย่างของเราคือคำว่า "Hello") เป็นเวลา 10 วินาที (บล็อกทาส)

เชื่อมต่อผ่าน Wi-Fi

การสื่อสารระยะไกลสามารถทำได้โดยการเชื่อมต่อ Wi-Fi Dongle เข้ากับพอร์ต USB บน EV3

หากต้องการใช้ Wi-Fi คุณต้องติดตั้งโมดูลพิเศษบนบล็อก EV3 โดยใช้ขั้วต่อ USB (อะแดปเตอร์ Wi-Fi (อะแดปเตอร์ไร้สาย Netgear N150 (WNA1100)) หรือคุณสามารถเชื่อมต่อ Wi-Fi Dongle ได้

หากคุณขาดความสามารถของเซ็นเซอร์ EV3 มาตรฐานเช่นเดียวกับเรา พอร์ต 4 พอร์ตสำหรับเซ็นเซอร์ในหุ่นยนต์ของคุณไม่เพียงพอ หรือคุณต้องการเชื่อมต่ออุปกรณ์ต่อพ่วงแปลกใหม่เข้ากับหุ่นยนต์ของคุณ - บทความนี้เหมาะสำหรับคุณ เชื่อฉันเถอะว่าเซ็นเซอร์แบบโฮมเมดสำหรับ EV3 นั้นง่ายกว่าที่คิด “ปุ่มปรับระดับเสียง” จากวิทยุเก่าๆ หรือตะปูสองสามตัวที่ติดอยู่กับพื้นในกระถางเนื่องจากเซ็นเซอร์ความชื้นในดินเหมาะสำหรับการทดลอง

น่าประหลาดใจที่พอร์ตเซ็นเซอร์ EV3 แต่ละพอร์ตซ่อนโปรโตคอลที่แตกต่างกันจำนวนหนึ่ง โดยส่วนใหญ่เพื่อความเข้ากันได้กับ NXT และเซ็นเซอร์ของบริษัทอื่น มาดูกันว่าสาย EV3 ทำงานอย่างไร


มันแปลก แต่สายสีแดงเป็นกราวด์ (GND) สายสีเขียวคือขั้วบวกของแหล่งจ่ายไฟ 4.3V สายสีน้ำเงินเป็นทั้ง SDA สำหรับบัส I2C และ TX สำหรับโปรโตคอล UART นอกจากนี้สายสีน้ำเงินยังเป็นอินพุตของตัวแปลงแอนะล็อกเป็นดิจิทัลสำหรับ EV3 สายสีเหลืองเป็นทั้ง SCL สำหรับบัส I2C และ RX สำหรับโปรโตคอล UART สายสีขาวคืออินพุตของตัวแปลงแอนะล็อกเป็นดิจิทัลสำหรับเซ็นเซอร์ NXT สีดำ - อินพุตดิจิตอลสำหรับเซ็นเซอร์ที่เข้ากันได้กับ NXT - จะทำซ้ำ GND ไม่ใช่เรื่องง่ายใช่ไหม? ไปตามลำดับกันเลย

อินพุตแบบอะนาล็อก EV3

พอร์ตเซ็นเซอร์แต่ละพอร์ตมีช่องตัวแปลงแอนะล็อกเป็นดิจิทัล ใช้สำหรับเซ็นเซอร์ต่างๆ เช่น เซ็นเซอร์สัมผัส (ปุ่ม), เซ็นเซอร์แสง NXT และเซ็นเซอร์สีในโหมดแสงสะท้อนและแสงโดยรอบ, เซ็นเซอร์เสียง NXT และเทอร์โมมิเตอร์ NXT

ความต้านทาน 910 โอห์มที่เชื่อมต่อตามแผนภาพ จะบอกคอนโทรลเลอร์ว่าต้องเปลี่ยนพอร์ตนี้เป็นโหมดอินพุตแบบอะนาล็อก ในโหมดนี้ คุณสามารถเชื่อมต่อเซ็นเซอร์แอนะล็อกกับ EV3 ได้ เช่น จาก Arduino อัตราแลกเปลี่ยนด้วยเซ็นเซอร์ดังกล่าวสามารถเข้าถึงหลายพันโพลต่อวินาที ซึ่งเป็นเซ็นเซอร์ประเภทที่เร็วที่สุด

เซ็นเซอร์วัดแสง

เทอร์โมมิเตอร์

เซ็นเซอร์ความชื้นในดิน

คุณยังสามารถเชื่อมต่อ: ไมโครโฟน ปุ่ม เครื่องวัดระยะ IR และเซ็นเซอร์ทั่วไปอื่นๆ อีกมากมาย หากพลังงาน 4.3V ไม่เพียงพอสำหรับเซ็นเซอร์ คุณสามารถจ่ายไฟด้วย 5V จากพอร์ต USB ที่อยู่ด้านข้างของคอนโทรลเลอร์ EV3

“ปุ่มปรับระดับเสียง” ที่กล่าวมาข้างต้น (หรือที่เรียกว่าตัวต้านทานแบบแปรผันหรือโพเทนชิออมิเตอร์) เป็นตัวอย่างที่ดีเยี่ยมของเซ็นเซอร์แบบอะนาล็อก โดยสามารถเชื่อมต่อได้ดังนี้:

หากต้องการอ่านค่าจากเซ็นเซอร์ดังกล่าวในสภาพแวดล้อมการเขียนโปรแกรม LEGO มาตรฐาน คุณต้องใช้บล็อก RAW สีน้ำเงิน

โปรโตคอล I2C

นี่เป็นโปรโตคอลดิจิทัล ตัวอย่างเช่น เซ็นเซอร์อัลตราโซนิก NXT และเซ็นเซอร์ไฮเทคนิคหลายตัว เช่น IR Seeker หรือเซ็นเซอร์สี V2 ก็ใช้งานได้ สำหรับแพลตฟอร์มอื่นๆ เช่น Arduino มีเซ็นเซอร์ i2c จำนวนมาก คุณสามารถเชื่อมต่อเซ็นเซอร์เหล่านั้นได้ด้วย โครงการมีดังนี้:

LEGO Group แนะนำให้ใช้ความต้านทาน 82 โอห์ม แต่แหล่งข้อมูลต่างๆ กล่าวถึง 43 โอห์มหรือน้อยกว่า ในความเป็นจริง เราพยายามที่จะละทิ้งการต่อต้านเหล่านี้โดยสิ้นเชิง และทุกอย่างได้ผล อย่างน้อยก็ "อยู่บนโต๊ะ" ในหุ่นยนต์จริงที่ทำงานในสภาวะที่มีการรบกวนประเภทต่างๆ สาย SCL และ SDA ควรยังคงเชื่อมต่อกับแหล่งจ่ายไฟผ่านความต้านทาน ดังที่ระบุไว้ในแผนภาพด้านบน ความเร็วการทำงานของ i2c ใน EV3 ค่อนข้างต่ำประมาณ 10,000 kbps ซึ่งเป็นสาเหตุที่ Hitechnic Color Sensor V2 ที่ทุกคนชื่นชอบจึงช้ามาก :)

น่าเสียดายที่สำหรับ EV3-G มาตรฐานจาก LEGO นั้นไม่มีบล็อกเต็มรูปแบบสำหรับการสื่อสารสองทางด้วยเซ็นเซอร์ i2c แต่การใช้สภาพแวดล้อมการเขียนโปรแกรมของบุคคลที่สาม เช่น RobotC, LeJOS หรือ EV3 Basic คุณสามารถโต้ตอบกับเซ็นเซอร์ i2c ได้เกือบทุกตัว .

ความสามารถของ EV3 ในการทำงานโดยใช้โปรโตคอล i2c เปิดความเป็นไปได้ที่น่าสนใจในการเชื่อมต่อเซ็นเซอร์หลายตัวเข้ากับพอร์ตเดียว โปรโตคอล I2C ช่วยให้คุณสามารถเชื่อมต่ออุปกรณ์ทาสได้ถึง 127 เครื่องในบัสเดียว คุณจินตนาการได้ไหม? เซ็นเซอร์ 127 ตัวสำหรับแต่ละพอร์ต EV3 :) ยิ่งไปกว่านั้น เซ็นเซอร์ i2c จำนวนมากรวมอยู่ในอุปกรณ์เครื่องเดียว เช่น ในภาพด้านล่างมีเซ็นเซอร์ 10 ใน 1 (ประกอบด้วยเข็มทิศ ไจโรสโคป มาตรความเร่ง บารอมิเตอร์ ฯลฯ)

ยูอาร์ที

เซ็นเซอร์ที่ไม่ใช่ EV3 มาตรฐานเกือบทั้งหมด ยกเว้น Touch Sensor ทำงานโดยใช้โปรโตคอล UART และนั่นคือสาเหตุที่ทำให้เซ็นเซอร์เหล่านี้เข้ากันไม่ได้กับคอนโทรลเลอร์ NXT ซึ่งถึงแม้จะมีตัวเชื่อมต่อเดียวกัน แต่ก็ไม่มี UART นำมาใช้กับเซ็นเซอร์ พอร์ต ดูแผนภาพ มันง่ายกว่าในกรณีก่อนหน้าเล็กน้อย:

เซ็นเซอร์ UART จะจับคู่ความเร็วการทำงานกับ EV3 โดยอัตโนมัติ โดยเริ่มแรกเชื่อมต่อด้วยความเร็ว 2,400 กิโลบิต/วินาที โดยตกลงในโหมดการทำงานและอัตราแลกเปลี่ยน จากนั้นจึงเพิ่มความเร็ว อัตราแลกเปลี่ยนทั่วไปสำหรับเซ็นเซอร์ต่างๆ คือ 38400 และ 115200 kbit/s
LEGO ได้ใช้โปรโตคอลที่ค่อนข้างซับซ้อนในเซ็นเซอร์ UART ดังนั้นจึงไม่มีเซ็นเซอร์ของบุคคลที่สามที่ไม่ได้มีไว้สำหรับแพลตฟอร์มนี้ แต่เดิม แต่เข้ากันได้ อย่างไรก็ตามโปรโตคอลนี้สะดวกมากสำหรับการเชื่อมต่อแบบ "โฮมเมด"
เซ็นเซอร์ที่ใช้ไมโครคอนโทรลเลอร์
มีห้องสมุดที่ยอดเยี่ยมสำหรับ Arduino ชื่อ EV3UARTEmulation ซึ่งเขียนโดย Lawrie Griffiths ผู้พัฒนา LeJOS ที่มีชื่อเสียง ซึ่งช่วยให้บอร์ดนี้แกล้งทำเป็นเซ็นเซอร์ที่เข้ากันได้กับ UART-LEGO บล็อก LeJOS News ของเขามีตัวอย่างมากมายในการเชื่อมต่อเซ็นเซอร์ก๊าซ เซ็นเซอร์ IMU และเข็มทิศดิจิทัลโดยใช้ห้องสมุดนี้

ด้านล่างในวิดีโอเป็นตัวอย่างการใช้เซ็นเซอร์แบบโฮมเมด เรามีเซ็นเซอร์วัดระยะ LEGO ดั้งเดิมไม่เพียงพอ ดังนั้นเราจึงใช้เซ็นเซอร์แบบโฮมเมดกับหุ่นยนต์:


หน้าที่ของหุ่นยนต์คือเริ่มจากเซลล์สีเขียว หาทางออกจากเขาวงกต (เซลล์สีแดง) และกลับไปยังจุดเริ่มต้นด้วยเส้นทางที่สั้นที่สุด โดยไม่ไปสู่ทางตัน

บทความนี้อธิบายถึงประสบการณ์การใช้ตัวสร้าง Lego Mindstorms EV3 เพื่อสร้างต้นแบบหุ่นยนต์ด้วยซอฟต์แวร์ที่ตามมาและการควบคุมด้วยตนเองโดยใช้ Robot Control Meta Language (RCML)

  • การประกอบหุ่นยนต์ต้นแบบโดยใช้ Lego Mindstorms EV3
  • การติดตั้งและกำหนดค่า RCML สำหรับ Windows อย่างรวดเร็ว
  • ซอฟต์แวร์ควบคุมหุ่นยนต์โดยใช้คอนโทรลเลอร์ EV3
  • การควบคุมอุปกรณ์ต่อพ่วงหุ่นยนต์ด้วยตนเองโดยใช้แป้นพิมพ์และเกมแพด
เมื่อมองไปข้างหน้าเล็กน้อย ฉันจะเพิ่มสิ่งนั้นเพื่อใช้การควบคุมหุ่นยนต์ Lego โดยใช้แป้นพิมพ์ คุณต้องสร้างโปรแกรมที่มีโค้ดโปรแกรมเพียง 3 บรรทัด รายละเอียดเพิ่มเติมเกี่ยวกับวิธีการทำเช่นนี้เขียนไว้ใต้ส่วนนี้

1. ขั้นแรก ต้นแบบหุ่นยนต์ถูกสร้างขึ้นจากตัวสร้าง Lego Mindstorms EV3 ซึ่งจะใช้สำหรับการเขียนโปรแกรมและการขับแบบแมนนวล

คำอธิบายของต้นแบบหุ่นยนต์

หุ่นยนต์มีการออกแบบคล้ายกับโครงรถ มอเตอร์สองตัวที่ติดตั้งอยู่บนเฟรมมีแกนหมุนร่วมหนึ่งแกน ซึ่งเชื่อมต่อกับล้อหลังผ่านกระปุกเกียร์ กระปุกเกียร์จะแปลงแรงบิดโดยการเพิ่มความเร็วเชิงมุมของเพลาล้อหลัง พวงมาลัยประกอบขึ้นโดยใช้เฟืองบายศรี



2. ขั้นตอนต่อไปคือการเตรียม RCML สำหรับการทำงานกับตัวสร้าง Lego Mindstorms EV3

คุณควรดาวน์โหลดไฟล์เก็บถาวรพร้อมไฟล์ปฏิบัติการและไฟล์ไลบรารีและ .

ไฟล์เก็บถาวรที่ดาวน์โหลดจะต้องแตกไปยังไดเร็กทอรีที่มีชื่อที่กำหนดเอง แต่คุณควรทำ หลีกเลี่ยงตัวอักษรรัสเซียในชื่อเรื่อง

เนื้อหาของไดเร็กทอรีหลังจากแตกไฟล์เก็บถาวรลงไปแล้ว



ถัดไป คุณต้องสร้างไฟล์การกำหนดค่า config.ini ซึ่งจะต้องอยู่ในไดเร็กทอรีเดียวกัน หากต้องการใช้ความสามารถในการควบคุมคอนโทรลเลอร์ EV3 โดยใช้แป้นพิมพ์และเกมแพด คุณต้องเชื่อมต่อโมดูล lego_ev3 คีย์บอร์ด และเกมแพด

รายการไฟล์การกำหนดค่า config.ini สำหรับ RCML

โมดูล = lego_ev3 โมดูล = โมดูลคีย์บอร์ด = gamepad


ถัดไป คุณต้องจับคู่คอนโทรลเลอร์ EV3 และอะแดปเตอร์

คำแนะนำในการจับคู่คอนโทรลเลอร์ EV3 และอะแดปเตอร์ Bluetooth

คำแนะนำประกอบด้วยตัวอย่างการจับคู่คอนโทรลเลอร์ Lego Ev3 กับพีซีที่ใช้ระบบปฏิบัติการ Windows 7

1. คุณต้องไปที่ส่วนการตั้งค่าของคอนโทรลเลอร์ Ev3 จากนั้นไปที่รายการเมนู "บลูทูธ"

2. ตรวจสอบให้แน่ใจว่าตั้งค่าพารามิเตอร์การกำหนดค่าอย่างถูกต้อง ควรทำเครื่องหมายในช่องถัดจากรายการ "การมองเห็น", "บลูทูธ"

3. คุณต้องไปที่ "แผงควบคุม" จากนั้นเลือก "อุปกรณ์และเครื่องพิมพ์" จากนั้นเลือก "อุปกรณ์ Bluetooth"

4. คุณต้องคลิกปุ่ม "เพิ่มอุปกรณ์" หน้าต่างจะเปิดขึ้นเพื่อเลือกอุปกรณ์ Bluetooth ที่พร้อมใช้งาน

5. เลือกอุปกรณ์ “EV3” และคลิกปุ่ม “ถัดไป”

6. ตัวควบคุม EV3 จะแสดงกล่องโต้ตอบ "เชื่อมต่อ?" คุณต้องเลือกตัวเลือกช่องทำเครื่องหมายและยืนยันการเลือกของคุณโดยกดปุ่มกลาง

7. ถัดไปกล่องโต้ตอบ "PASSKEY" จะปรากฏขึ้นโดยควรระบุตัวเลข "1234" ในบรรทัดอินพุตจากนั้นคุณควรยืนยันวลีสำคัญสำหรับการจับคู่อุปกรณ์โดยกดปุ่มกลางบนตำแหน่งที่มีเครื่องหมายถูก

8. ในตัวช่วยสร้างการจับคู่อุปกรณ์ แบบฟอร์มจะปรากฏขึ้นเพื่อป้อนคีย์สำหรับการจับคู่อุปกรณ์ คุณต้องป้อนรหัส “1234” แล้วกดปุ่ม “ถัดไป”

10. บนพีซี คุณต้องกลับไปที่ "แผงควบคุม" จากนั้นเลือก "อุปกรณ์และเครื่องพิมพ์" จากนั้น "อุปกรณ์ Bluetooth" รายการอุปกรณ์ที่ใช้ได้จะแสดงอุปกรณ์ที่จับคู่ด้วย

11. ดับเบิลคลิกเพื่อไปที่คุณสมบัติการเชื่อมต่อ “EV3”

14. ควรใช้ดัชนีพอร์ต COM ที่ระบุในคุณสมบัติในไฟล์การกำหนดค่า config.ini ของโมดูล lego_ev3 ตัวอย่างนี้แสดงคุณสมบัติการเชื่อมต่อบลูทูธของตัวควบคุม Lego EV3 โดยใช้พอร์ตอนุกรม COM14 มาตรฐาน


การกำหนดค่าเพิ่มเติมของโมดูลขึ้นอยู่กับความจริงที่ว่าจำเป็นต้องเขียนที่อยู่ของพอร์ต COM ที่ใช้ในการสื่อสารกับหุ่นยนต์ Lego ในไฟล์กำหนดค่าของโมดูล lego_ev3

รายการไฟล์การกำหนดค่า config.ini สำหรับโมดูล lego_ev3

การเชื่อมต่อ = COM14 dynamic_connection = 0


ตอนนี้คุณต้องกำหนดค่าโมดูลแป้นพิมพ์ โมดูลอยู่ในไดเร็กทอรี control_modules ตามด้วยคีย์บอร์ด คุณควรสร้างไฟล์การกำหนดค่า config.ini ถัดจากไฟล์ keyboard_module.dll ก่อนที่คุณจะสร้างไฟล์การกำหนดค่า คุณต้องพิจารณาว่าควรดำเนินการใดเมื่อกดปุ่ม

โมดูลแป้นพิมพ์ช่วยให้คุณใช้ปุ่มที่มีรหัสตัวเลขเฉพาะได้ คุณสามารถดูตารางรหัสคีย์เสมือนได้

ตามตัวอย่าง ฉันจะใช้การกดแป้นพิมพ์ต่อไปนี้:

  • ลูกศรขึ้น/ลงใช้สำหรับหมุนมอเตอร์ล้อหลังไปข้างหน้า/ถอยหลัง
  • ลูกศรซ้าย/ขวาหมุนล้อซ้าย/ขวา
ไฟล์การกำหนดค่าโมดูลแป้นพิมพ์อธิบายว่าแกนใดที่โปรแกรมเมอร์สามารถใช้ได้เพื่อโต้ตอบกับหุ่นยนต์ในโหมดควบคุมด้วยตนเอง ดังนั้นในตัวอย่างจึงมีกลุ่มควบคุมสองกลุ่ม - กลุ่มเหล่านี้คือแกนของแป้นพิมพ์ หากต้องการเพิ่มแกนใหม่ คุณต้องปฏิบัติตามกฎต่อไปนี้ในการอธิบายแกน

กฎสำหรับการอธิบายแกนสำหรับโมดูลคีย์บอร์ด

1. เมื่อเพิ่มแกนใหม่ จำเป็นในส่วน เพิ่มคุณสมบัติที่มีชื่อเป็นชื่อแกนและกำหนดค่าของปุ่มคีย์บอร์ด ฐานสิบหกและสร้างบันทึกที่คล้ายกันสำหรับแต่ละปุ่ม เช่น ชื่อแกนสามารถใช้ได้หลายครั้ง โดยทั่วไปการเขียนถึงส่วน จะมีลักษณะเช่นนี้:

Axis_name = keyboard_button_value_in_HEX_format
2. จำเป็นต้องตั้งค่าสูงสุดและต่ำสุดที่สามารถลงจุดตามแนวแกนนี้ได้ ในการดำเนินการนี้ คุณจะต้องเพิ่มส่วนในไฟล์การกำหนดค่าในบรรทัดใหม่ config.iniเหมือนกับชื่อแกนและตั้งค่าคุณสมบัติ บน_ค่าและ lower_valueซึ่งสอดคล้องกับค่าสูงสุดและต่ำสุดของแกนตามลำดับ โดยทั่วไปส่วนนี้จะมีลักษณะดังนี้:

[axis_name] upper_value = maximum_axis_value lower_value = maximum_axis_value
3. ถัดไปคุณต้องกำหนดว่าแกนจะมีค่าเท่าใดหากคุณกดปุ่มบนแป้นพิมพ์ที่ติดไว้ก่อนหน้านี้ ค่าจะถูกกำหนดโดยการสร้างส่วนชื่อซึ่งประกอบด้วยชื่อของแกนและค่าของปุ่มแป้นพิมพ์ใน ฐานสิบหกรูปแบบคั่นด้วยขีดล่าง หากต้องการตั้งค่าเริ่มต้น (ไม่กด) และสถานะกด ให้ใช้คุณสมบัติ unpressed_valueและ กด_ค่าตามลำดับซึ่งค่าต่างๆจะถูกถ่ายโอนไป มุมมองทั่วไปของส่วนในกรณีนี้มีลักษณะดังนี้:

[axis-name_keyboard-key-value] pressed_value = axis_value when_key_pressed unpressed_value = axis_value_when_key_pressed
ข้อความสปอยเลอร์จะถูกคัดลอกมาจากเอกสาร RCML เพื่อความสะดวกในการดู


เพื่อดำเนินการควบคุมต้นแบบหุ่นยนต์ ไฟล์การกำหนดค่าสำหรับโมดูลคีย์บอร์ดได้ถูกสร้างขึ้น ซึ่งรวมถึงแกนไปและหมุน แกน go ใช้เพื่อกำหนดทิศทางการเคลื่อนที่ของหุ่นยนต์ เมื่อคุณกดปุ่ม "ลูกศรขึ้น" แกนจะได้รับค่า 100 เมื่อคุณกดปุ่ม "ลูกศรลง" แกนจะได้รับค่า -50 แกนหมุนใช้สำหรับกำหนดมุมบังคับเลี้ยวของล้อหน้า เมื่อคุณกดปุ่มลูกศรซ้าย ค่าแกนจะเป็น -5 เมื่อคุณกดปุ่มลูกศรขวา ค่าแกนจะเป็น 5

รายการไฟล์การกำหนดค่า config.ini สำหรับโมดูลคีย์บอร์ด

;ส่วนที่ต้องการ ;axis_name = key_code (ในรูปแบบ HEX) ;แกน go รับค่าจาก up_arrow go = 0x26 ;แกน go รับค่าจาก go_down_arrow = 0x28 ;แกนหมุนรับค่าจาก left_arrow หมุน = 0x25 ;หมุนแกน รับค่าจาก right_arrow หมุน = 0x27 ; คำอธิบายของแกน go จะต้องมีทั้งสองคีย์เสมอ ; ขีดจำกัดบนของค่าแกน go upper_value = -100 ; ขีดจำกัดล่างของค่าแกน go lower_value = 100 ; คำอธิบายของ หมุนแกนต้องมีทั้งสองคีย์เสมอ ขีดจำกัดบนของค่าแกนหมุน upper_value = - 100 ;ขีดจำกัดล่างของค่าแกนหมุน lower_value = 100 ;คำอธิบายพฤติกรรมของแกน go สำหรับคีย์ *up_arrow* (0x26 ) ;เมื่อกดปุ่ม *up_arrow* ให้ตั้งค่าแกนเป็น 50 pressed_value = 100 ;เมื่อปล่อยปุ่ม *up_arrow* ให้ตั้งค่าแกนเป็น 0 unpressed_value = 0 ;คำอธิบายลักษณะการทำงานของแกน go สำหรับ *down_arrow * key (0x28) ;เมื่อกดปุ่ม *down_arrow* ให้ตั้งค่าแกนเป็น -50 pressed_value = -50 ;เมื่อปล่อยปุ่ม *down_arrow* ให้ตั้งค่าแกนเป็น 0 unpressed_value = 0 ;ลักษณะการทำงานของคำอธิบายของแกนหมุน สำหรับปุ่ม *left_arrow* (0x25) ;เมื่อกดปุ่ม *left_arrow* ให้ตั้งค่าแกนเป็น -5 pressed_value = -5 ;เมื่อปล่อยปุ่ม *left_arrow* ให้ตั้งค่าแกนเป็น 0 unpressed_value = 0 ;คำอธิบายของ พฤติกรรมของแกนหมุนสำหรับคีย์ *right_arrow* (0x27) ;เมื่อกดปุ่ม *right_arrow* ให้ตั้งค่าแกนเป็น 5 pressed_value = 5 ;เมื่อปล่อยปุ่ม *right_arrow* ให้ตั้งค่าแกนเป็น 0 unpressed_value = 0


ถัดไป หากต้องการใช้การควบคุมโดยใช้เกมแพด คุณจะต้องกำหนดค่าโมดูลเกมแพด การกำหนดค่าโมดูลเกี่ยวข้องกับการสร้างไฟล์การกำหนดค่า config.ini ถัดจาก gamepad_module.dll ซึ่งอยู่ในไดเร็กทอรี control_modules จากนั้น gamepad

ไฟล์การกำหนดค่าโมดูลสากลสำหรับการโต้ตอบกับแป้นเกม

; ส่วนที่จำเป็นซึ่งอธิบายแกนที่ใช้ ; แกนเพื่อสิ้นสุดโหมดการควบคุมด้วยตนเอง ออก = 9 ; 11 แกนไบนารีที่สอดคล้องกับปุ่มเกมแพด B1 = 1 B2 = 2 B3 = 3 B4 = 4 L1 = 7 L2 = 5 R1 = 8 R2 = 6 เริ่ม = 10 T1 = 11 T2 = 12 ; แกนแท่ง 4 อัน แท่งขวาเคลื่อนขึ้น/ลง RTUD = 13 แท่งขวาเคลื่อนซ้าย/ขวา RTLR = 16 แท่งซ้ายเคลื่อนขึ้น/ลง LTUD = 15 แท่งซ้ายเคลื่อนซ้าย/ขวา LTLR = 14 ; กากบาท 2 แกน;การเคลื่อนที่ของลูกศรขึ้น/ลงUD = 17 ;การเคลื่อนที่ของลูกศรกากบาทซ้าย/ขวาLR = 18 ;คำอธิบายลักษณะการทำงานของแกน B1;เมื่อกดปุ่ม B1 ให้ตั้งค่าแกนเป็น 1 upper_value = 1;เมื่อปล่อยปุ่ม B1 ให้ตั้งค่าแกนเป็น 0 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 upper_value = 1 lower_value = 0 ; คำอธิบายพฤติกรรมของแกนแท่งด้านขวาที่เคลื่อนที่ขึ้น/ลง ; ค่าแกนเมื่อเคลื่อนที่ไปสูงสุด ตำแหน่งบนที่เป็นไปได้ upper_value = 0 ;ค่าแกนเมื่อเคลื่อนที่ไปยังตำแหน่งสูงสุดที่เป็นไปได้ ตำแหน่งล่าง lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 upper_value = 0 lower_value = 65535 ;คำอธิบายพฤติกรรมของแกน D-pad ขึ้น /down movement ;ค่าแกนเมื่อกดลูกศรขึ้น upper_value = 1 ;ค่าแกนเมื่อกดลูกศรลง lower_value = -1 upper_value = 1 lower_value = -1


ข้อมูลเพิ่มเติมเกี่ยวกับข้อมูลเฉพาะของการตั้งค่าโมดูลเกมแพดจะแสดงอยู่ในคู่มืออ้างอิง RCML

3. ขั้นตอนต่อไปคือการเขียนโปรแกรมใน RCML

ในรูทของไดเร็กทอรีที่สร้างขึ้นคุณต้องสร้างไฟล์โปรแกรม ชื่อของไฟล์โปรแกรมและนามสกุลสามารถเป็นอะไรก็ได้ แต่คุณควรหลีกเลี่ยงตัวอักษรรัสเซียในชื่อ ชื่อไฟล์ที่ใช้ในตัวอย่างคือ hello.rcml

สำหรับโมดูล lego_ev3 รหัสการจองหุ่นยนต์จะมีรูปแบบดังนี้:

@tr = หุ่นยนต์_เลโก้_ev3;

หน้าการเชื่อมต่อโมดูล lego_ev3 อธิบายฟังก์ชันส่วนใหญ่ที่คอนโทรลเลอร์รองรับ เป็นตัวอย่างการทดสอบ โปรแกรมถูกสร้างขึ้นเพื่อให้หุ่นยนต์เข้าสู่การลื่นไถลโดยอัตโนมัติ

อัลกอริธึมของโปรแกรมมีดังนี้:

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

รายการโปรแกรมหุ่นยนต์ Lego ในภาษา RCML

ฟังก์ชั่น main() ( @tr = robot_lego_ev3; // สำรองหุ่นยนต์ @tr->setTrackVehicle("B", "C",0,0); // การตั้งค่าการซิงโครไนซ์มอเตอร์ @tr->motorMoveTo("D",100 , 0,0); system.sleep(500); @tr->trackVehicleForward(-100); system.sleep(1000); @tr->motorMoveTo("D",50,-50,0); system. นอนหลับ (4000); @tr->motorMoveTo("D",50,50,0); system.sleep(4000); @tr->trackVehicleOff(); system.sleep(1000); )


ในการคอมไพล์โปรแกรม คุณต้องใช้บรรทัดคำสั่งของหน้าต่าง ขั้นแรก คุณควรย้ายไปยังไดเร็กทอรีที่สร้างขึ้นพร้อมกับไฟล์ปฏิบัติการ rcml_compiler.exe และ rcml_intepreter.exe ถัดไปคุณต้องป้อนคำสั่งต่อไปนี้

คำสั่งในการคอมไพล์ไฟล์ hello.rcml:

Rcml_compiler.exe สวัสดี rcml สวัสดี rcml.pc
ผลจากการคอมไพล์ ไฟล์ใหม่ hello.rcml.pc จะปรากฏในไดเร็กทอรีที่สร้างขึ้น

ภาพหน้าจอของบรรทัดคำสั่งหลังจากการคอมไพล์สำเร็จ



ตอนนี้คุณต้องตรวจสอบให้แน่ใจว่าคอนโทรลเลอร์ EV3 เปิดอยู่และจับคู่กับอะแดปเตอร์ Bluetooth แล้ว เกมแพดต้องเชื่อมต่อกับพีซี หลังจากนี้คุณจะต้องรันคำสั่งเพื่อรันไฟล์โปรแกรม:

Rcml_intepreter.exe สวัสดี rcml

ลักษณะที่ปรากฏของบรรทัดคำสั่งระหว่างการทำงานของโปรแกรม



วิดีโอสาธิตโปรแกรมการเคลื่อนไหวของหุ่นยนต์อยู่ที่ด้านล่างของบทความ

4. ขั้นตอนต่อไปคือการควบคุมหุ่นยนต์ด้วยตนเองโดยใช้แป้นพิมพ์

คุณสามารถควบคุมมอเตอร์หุ่นยนต์ใดก็ได้โดยใช้คีย์บอร์ด ตัวอย่างใช้การควบคุมกลไกต่อไปนี้:

  • มุมบังคับเลี้ยวของล้อหน้า
  • ทิศทางการหมุนของล้อหลัง

รายการโปรแกรมสำหรับการโต้ตอบระหว่างคีย์บอร์ดและหุ่นยนต์ Lego ที่ใช้คอนโทรลเลอร์ EV3

function main() ( @tr = robot_lego_ev3; // สำรองหุ่นยนต์ @tr->setTrackVehicle("B", "C",0,0); // การตั้งค่าระบบซิงโครไนซ์มอเตอร์.hand_control(@tr,"keyboard", " ตรง", "ไป", "speedMotorD", "หมุน"); )


ถัดไปคุณต้องคอมไพล์โปรแกรมและรัน ผลลัพธ์ของการควบคุมหุ่นยนต์ Lego ด้วยตนเองโดยใช้แป้นพิมพ์จะแสดงในวิดีโอที่ด้านล่างของหน้า

5. นอกจากคีย์บอร์ดแล้ว ยังมีโมดูลเกมแพดที่ให้คุณควบคุมหุ่นยนต์โดยใช้เกมแพดได้ ในการใช้งานการควบคุมหุ่นยนต์โดยใช้เกมแพด จำเป็นต้องอธิบายในระดับโปรแกรมว่าแกนของหุ่นยนต์จะใช้ค่าของแกนเกมแพด

รายการโปรแกรมสำหรับการโต้ตอบระหว่างเกมแพดและหุ่นยนต์เลโก้

function main() ( @tr = robot_lego_ev3; //จองหุ่นยนต์ @tr->setTrackVehicle("B","C",0,0); //การตั้งค่าระบบซิงโครไนซ์เอ็นจิ้น.hand_control(@tr,"gamepad", " ตรง", "RTUD", "speedMotorD", "RTLR"); )


ถัดไป คุณควรทำซ้ำขั้นตอนการคอมไพล์โปรแกรมแล้วจึงดำเนินการ ต่อไปนี้จะแสดงผลลัพธ์ของการควบคุมหุ่นยนต์ Lego ด้วยตนเองโดยใช้เกมแพด และวิธีที่เชื่อมต่อก่อนหน้านี้ทั้งหมด:

บทความนี้จะสาธิตความสามารถบางอย่างของ RCML โดยย่อ คำอธิบายโดยละเอียดที่สุดสามารถพบได้ในคู่มืออ้างอิง

คำอธิบายการนำเสนอเป็นรายสไลด์:

1 สไลด์

คำอธิบายสไลด์:

2 สไลด์

คำอธิบายสไลด์:

อินเทอร์เฟซ EV3 Brick EV3 Brick คือศูนย์ควบคุมที่ขับเคลื่อนหุ่นยนต์ของคุณ ด้วยหน้าจอ ปุ่มควบคุม Brick และอินเทอร์เฟซ EV3 Brick ซึ่งมีหน้าต่างหลักสี่หน้าต่าง คุณสามารถเข้าถึงคุณสมบัติ EV3 Brick ที่เป็นเอกลักษณ์อันน่าทึ่งที่หลากหลาย สิ่งเหล่านี้อาจเป็นฟังก์ชันง่ายๆ เช่น การเริ่มต้นและการหยุดโปรแกรม หรือฟังก์ชันที่ซับซ้อน เช่น การเขียนโปรแกรมเอง

3 สไลด์

คำอธิบายสไลด์:

อินเทอร์เฟซ: เมนู EV3 มีเมนูที่ประกอบด้วย 4 ส่วน: โปรแกรมล่าสุด การนำทางไฟล์ แอปพลิเคชันอิฐ การตั้งค่าอิฐ

4 สไลด์

คำอธิบายสไลด์:

โปรแกรมล่าสุด เปิดโปรแกรมที่เพิ่งดาวน์โหลดจากเดสก์ท็อปพีซีของคุณ หน้าต่างนี้จะยังคงว่างเปล่าจนกว่าคุณจะเริ่มดาวน์โหลดและรันโปรแกรม หน้าต่างนี้จะแสดงโปรแกรมที่คุณเพิ่งเปิดตัว โปรแกรมที่ด้านบนของรายการซึ่งถูกเลือกไว้ตามค่าเริ่มต้นคือโปรแกรมที่เปิดตัวครั้งล่าสุด

5 สไลด์

คำอธิบายสไลด์:

ตัวจัดการไฟล์ เข้าถึงและจัดการไฟล์ทั้งหมดที่จัดเก็บไว้ในหน่วยความจำไมโครคอมพิวเตอร์ รวมถึงในการ์ดหน่วยความจำ จากหน้าต่างนี้ คุณจะเข้าถึงและจัดการไฟล์ทั้งหมดใน EV3 Brick ของคุณ รวมถึงไฟล์ที่จัดเก็บไว้ในการ์ด SD ไฟล์ต่างๆ จะถูกจัดระเบียบเป็นโฟลเดอร์โปรเจ็กต์ ซึ่งนอกเหนือจากไฟล์โปรแกรมจริงแล้ว ยังมีเสียงและรูปภาพที่ใช้ในแต่ละโปรเจ็กต์อีกด้วย ไฟล์สามารถย้ายหรือลบได้โดยใช้ตัวนำทางไฟล์ โปรแกรมที่สร้างขึ้นโดยใช้สภาพแวดล้อมการเขียนโปรแกรมโมดูลและแอปพลิเคชันการบันทึกข้อมูลโมดูลจะถูกจัดเก็บแยกต่างหากในโฟลเดอร์ BrkProg_SAVE และ BrkDL_SAVE

6 สไลด์

คำอธิบายสไลด์:

แอปพลิเคชันกล่องควบคุม EV3 มีแอปพลิเคชันที่ติดตั้งไว้ล่วงหน้า 4 รายการ: A. มุมมองพอร์ต ข. การควบคุมมอเตอร์ ข. การควบคุมอินฟราเรด D. สภาพแวดล้อมการเขียนโปรแกรมโมดูล

7 สไลด์

คำอธิบายสไลด์:

A. Port View ในหน้าต่างแรกของแอปพลิเคชัน Port View คุณสามารถดูได้อย่างรวดเร็วว่าพอร์ตใดมีเซ็นเซอร์หรือมอเตอร์เชื่อมต่ออยู่ ใช้ปุ่มควบคุม EV3 Brick เพื่อนำทางไปยังพอร์ตใดพอร์ตหนึ่งที่ถูกครอบครอง และคุณจะเห็นการอ่านค่าปัจจุบันจากเซ็นเซอร์หรือมอเตอร์ ติดตั้งเซ็นเซอร์และมอเตอร์หลายตัว และทดลองด้วยการตั้งค่าที่แตกต่างกัน หากต้องการดูหรือเปลี่ยนการตั้งค่าปัจจุบันสำหรับมอเตอร์และเซ็นเซอร์ที่ติดตั้ง ให้กดปุ่มกลาง หากต้องการกลับไปยังหน้าต่างแอปพลิเคชันหลักของโมดูล ให้คลิกปุ่ม "ย้อนกลับ"

8 สไลด์

คำอธิบายสไลด์:

B. การควบคุมมอเตอร์ ควบคุมการเคลื่อนที่ไปข้างหน้าหรือย้อนกลับของมอเตอร์ใดๆ ที่เชื่อมต่อกับพอร์ตเอาท์พุตพอร์ตใดพอร์ตหนึ่งจากสี่พอร์ต มีสองโหมดที่แตกต่างกัน ในโหมดหนึ่ง คุณจะสามารถควบคุมมอเตอร์ที่เชื่อมต่อกับพอร์ต A (โดยใช้ปุ่มขึ้นและลง) และพอร์ต D (โดยใช้ปุ่มซ้ายและขวา) ในโหมดอื่น คุณจะควบคุมมอเตอร์ที่เชื่อมต่อกับพอร์ต B (โดยใช้ปุ่มขึ้นและลง) และพอร์ต C (โดยใช้ปุ่มซ้ายและขวา) การสลับระหว่างสองโหมดนี้ทำได้โดยใช้ปุ่มกลาง หากต้องการกลับไปยังหน้าต่างแอปพลิเคชันหลักของโมดูล ให้คลิกปุ่ม "ย้อนกลับ"

สไลด์ 9

คำอธิบายสไลด์:

การควบคุม IR ควบคุมการเคลื่อนที่ไปข้างหน้าหรือย้อนกลับของมอเตอร์ที่เชื่อมต่อกับพอร์ตเอาต์พุตพอร์ตใดพอร์ตหนึ่งจากสี่พอร์ตโดยใช้บีคอนอินฟราเรดระยะไกลเป็นรีโมทคอนโทรลและเซ็นเซอร์อินฟราเรดเป็นตัวรับ (เซ็นเซอร์อินฟราเรดต้องเชื่อมต่อกับพอร์ต 4 บน EV3 Brick) . มีสองโหมดที่แตกต่างกัน ในโหมดเดียว คุณจะใช้ช่อง 1 และ 2 บนสัญญาณอินฟราเรดระยะไกล บนช่อง 1 คุณจะสามารถควบคุมมอเตอร์ที่เชื่อมต่อกับพอร์ต B (โดยใช้ปุ่ม 1 และ 2 บนบีคอน IR ระยะไกล) และพอร์ต C (โดยใช้ปุ่ม 3 และ 4 บนบีคอน IR ระยะไกล) บนช่อง 2 คุณจะสามารถควบคุมมอเตอร์ที่เชื่อมต่อกับพอร์ต A (โดยใช้ปุ่ม 1 และ 2) และกับพอร์ต D (โดยใช้ปุ่ม 3 และ 4) ในโหมดอื่นคุณสามารถควบคุมมอเตอร์ในลักษณะเดียวกันได้โดยใช้ช่อง 3 และ 4 บนสัญญาณอินฟราเรดระยะไกลแทน การสลับระหว่างสองโหมดนี้ทำได้โดยใช้ปุ่มกลาง หากต้องการกลับไปยังหน้าต่างแอปพลิเคชันหลักของโมดูล ให้คลิกปุ่ม "ย้อนกลับ"

10 สไลด์

คำอธิบายสไลด์:

สภาพแวดล้อมการเขียนโปรแกรม Brick EV3 Brick มาพร้อมกับซอฟต์แวร์ที่ติดตั้งอยู่ แอปพลิเคชันนี้คล้ายกับซอฟต์แวร์ที่ติดตั้งบนคอมพิวเตอร์ของคุณ คำแนะนำเหล่านี้ประกอบด้วยข้อมูลพื้นฐานที่คุณต้องใช้ในการเริ่มต้น

11 สไลด์

คำอธิบายสไลด์:

การตั้งค่าอิฐ EV3 หน้าต่างนี้ให้คุณดูและปรับการตั้งค่าทั่วไปต่างๆ ในอิฐ EV3

12 สไลด์

คำอธิบายสไลด์:

การปรับระดับเสียง คุณสามารถเพิ่มหรือลดระดับเสียงได้ในแท็บการตั้งค่าใน EV3

สไลด์ 13