LEGO Mindstorms Education EV3 - บทวิจารณ์ของนักออกแบบ อ่านข่าวล่าสุดจากโลกของ Lego – EduCube เลโก้มายด์สตอร์ม EV3 ของเล่นสกายเน็ต. หน้าแรก วิธีเพิ่มโมดูล lego ev3 เพิ่มเติม
หากคุณมีคำถามใดๆ ที่อยากรู้เกี่ยวกับนักออกแบบคนใหม่ (วิธีทำงานเฉพาะเจาะจง ทำการทดลองกับเซ็นเซอร์หรือมอเตอร์) - เขียนถึงเรา - เราจะลองทำตามคำแนะนำของคุณ ด้วยวิธีนี้ คุณจะได้เรียนรู้เพิ่มเติมเกี่ยวกับ EV3 ก่อนวางจำหน่ายด้วยซ้ำ
ตอนนี้ทุกอย่างเริ่มต้นด้วยการทบทวน ซอฟต์แวร์บล็อก EV3 (เฟิร์มแวร์ EV3)
คุณสมบัติอย่างหนึ่งของเครื่องใหม่คือการเปิดและปิดใช้เวลานาน ในแง่ของเวลา กระบวนการนี้เทียบได้กับการรวมเข้าด้วยกัน โทรศัพท์มือถือหรือเราเตอร์ที่บ้านเช่น 20-30 วินาที หลังจากเปิดเครื่อง เมนูต่อไปนี้จะปรากฏขึ้น:
อย่างที่คุณเห็นเมื่อเปรียบเทียบกับบล็อก NXT มีการเปลี่ยนแปลงมากมาย: คุณภาพของแบบอักษรได้รับการปรับปรุง องค์ประกอบกราฟิกถูกวาดขึ้น และอินเทอร์เฟซของหน้าต่างได้รับการปรับปรุง ก่อนอื่นนี่เป็นเพราะขนาดหน้าจอเพิ่มขึ้น - กลายเป็น 178 x 128 พิกเซลแทนที่จะเป็น 100 x 64 เช่นเดียวกับบล็อก NXT จากการมีอยู่ของอินเทอร์เฟซหน้าต่างพร้อมปุ่มสำคัญและแถบเลื่อนจึงสามารถสันนิษฐานได้ว่าอุปกรณ์เช่นอุปกรณ์ภายนอก ทัชแพดตอนนี้มันจะสมเหตุสมผลมากขึ้นด้วยซ้ำ
จากหน้าต่างแรก คุณสามารถเรียกโปรแกรมที่โหลดลงในบล็อกได้ เช่นเดียวกับโปรแกรมที่สร้างขึ้นโดยตรงบนบล็อก เหล่านั้น. ในการเริ่มโปรแกรม คุณจะต้องคลิกน้อยกว่าบล็อก NXT
การนำทางผ่านโปรแกรมที่โหลดรวมถึงหน้าจอที่สองและหน้าจอถัดไป (รายการเมนู) ดำเนินการโดยใช้ปุ่มควบคุมซึ่งขณะนี้มี 4 ปุ่ม
หน้าจอที่สอง - ให้คุณนำทางผ่านวัตถุระบบไฟล์บนบล็อก ระบบไฟล์ขณะนี้รองรับลำดับชั้นแบบดั้งเดิม: ไฟล์และไดเร็กทอรี
หน้าจอที่สามประกอบด้วยเมนูย่อย - แอปพลิเคชั่นที่ให้คุณดำเนินการต่าง ๆ กับบล็อก:
ใน รุ่นปัจจุบันแอปพลิเคชันดังกล่าวมีบล็อกซอฟต์แวร์สี่บล็อก:
- ดูเซ็นเซอร์
- การควบคุมมอเตอร์
- รีโมท
- การเขียนโปรแกรมบนบล็อก
การเลือกรายการเมนู/แอปพลิเคชันเฉพาะเกิดขึ้นโดยใช้ปุ่มกลางบนแป้นพิมพ์ และหากต้องการออกจากรายการเมนูหรือแอปพลิเคชันใด ๆ คุณต้องกดปุ่ม "ออก" ซึ่งตอนนี้แยกจากปุ่มหลัก - ทางด้านซ้ายใต้หน้าจอ
ตอนนี้คุณควรกลับไปที่หน้าจอที่สามและเริ่มทำความคุ้นเคยกับแอปพลิเคชันต่างๆ ดังนั้นแอปพลิเคชั่น "ดูเซ็นเซอร์" (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
- การควบคุมอุปกรณ์ต่อพ่วงหุ่นยนต์ด้วยตนเองโดยใช้แป้นพิมพ์และเกมแพด
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