เราทำงานร่วมกับ Lego Mindstorms EV3 จาก .NET การเชื่อมต่อ EV3 Bricks สองตัวขึ้นไป การเชื่อมต่อผ่าน Wi-Fi

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

LEGO Mindstorms 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 หรือ Bluetooth ทำงานอยู่

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

เมื่อเลือกโหมดนี้ สำหรับมอเตอร์ใดๆ เราสามารถเลือกบล็อก 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 คุณสามารถเปิดมุมมองทิ้งไว้ในขณะที่เลือกค่าอินพุตสำหรับบล็อก

พิกัดหน้าจอ

โหมดบล็อกหน้าจอหลายโหมดใช้พิกัด X และ Y เพื่อกำหนดตำแหน่งขององค์ประกอบ พิกัดจะกำหนดตำแหน่งของพิกเซลบนหน้าจอ EV3 Brick ตำแหน่ง (0, 0) อยู่ที่มุมซ้ายบนของหน้าจอตามที่แสดงในภาพด้านล่าง

ขนาดหน้าจอ: กว้าง 178 พิกเซลและสูง 128 พิกเซล ช่วงของค่าพิกัด X คือจาก 0 บนหน้าจอด้านซ้ายถึง 177 ทางด้านขวา ช่วงของค่าพิกัด Y คือตั้งแต่ 0 ที่ด้านบนถึง 127 ที่ด้านล่าง

เคล็ดลับและเทคนิค

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

ข้อความ - พิกเซล

ข้อความ - โหมดพิกเซลช่วยให้คุณแสดงข้อความได้ทุกที่บนหน้าจอ EV3 Brick

รีเซ็ตหน้าต่าง

โหมดรีเซ็ตหน้าต่างจะทำให้หน้าจอ EV3 Brick กลับไปเป็นหน้าจอข้อมูลมาตรฐานที่แสดงในขณะที่โปรแกรมกำลังทำงาน หน้าจอนี้แสดงชื่อโปรแกรมและข้อมูลคำติชมอื่นๆ เมื่อคุณรันโปรแกรมบน EV3 Brick หน้าจอนี้จะปรากฏขึ้นก่อนที่บล็อกหน้าจอแรกของโปรแกรมจะทำงาน

รับประกันการมองเห็นองค์ประกอบที่แสดง

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

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

แสดงรายการหลายรายการ

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

การแสดงตัวเลข

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

แนวคิดในการเปลี่ยนไมโครคอมพิวเตอร์ในตัวออกแบบด้วย Beaglebone หรืออย่างอื่นไม่ใช่เรื่องใหม่ แต่ด้วยการเปิดตัว EV3 ไม่เพียงแต่จะได้รับอะนาล็อก 100% เท่านั้น แต่ยังเพิ่มประสิทธิภาพของ legorobot ของคุณด้วย

การนำเสนอวิดีโอของโครงการ:

E VB รองรับระบบ Lego Mindstorms Ev3 อย่างเต็มที่ทั้งในระดับฮาร์ดแวร์และซอฟต์แวร์ เข้ากันได้กับเซ็นเซอร์และมอเตอร์ Lego ทั้งหมด 100% บล็อกทำงานเหมือนกับบล็อก Lego Mindstorms EV3:

บีเกิ้ลโบน แบล็ค— คอมพิวเตอร์ Linux บอร์ดเดี่ยวมันเป็นคู่แข่งของ Raspberry Pi มีโปรเซสเซอร์อันทรงพลัง AM335x 720MHz ARM® โปรเซสเซอร์ขนาดใหญ่ จำนวนอินพุต/เอาท์พุต ความสามารถสามารถขยายได้ด้วยบอร์ดเพิ่มเติม

Lego Mindstorms EV3 มีโปรเซสเซอร์ ARM9 (TI Sitara AM180x) 300MHz ดังนั้นย้ายไปใช้โปรเซสเซอร์ ARM Cortex-A8 (TI Sitara AM335x) 1GHz BeagleBone Black เพิ่มผลผลิตแถมยังสามารถเชื่อมต่อการ์ดเอ็กซ์แพนชันเพิ่มเติมได้อีกด้วย!

สิ่งที่สำคัญที่สุดคือ Lego Mindstorms EV3 มีคำอธิบายแบบเปิดเกี่ยวกับซอฟต์แวร์และฮาร์ดแวร์ทั้งหมด!

ตัวอย่างเช่น มีการประกอบและสาธิตหุ่นยนต์แก้ลูกบาศก์รูบิกอันโด่งดัง แทนที่จะเป็น EV3 เท่านั้นที่พวกเขาติดตั้ง EVB ที่พัฒนาแล้ว เราขอเชิญคุณชมวิดีโอ:

ผู้เขียนโครงการกำลังผลิตและจำหน่าย EVB อยู่แล้ว พวกเขาวางแผนที่จะขยายการผลิตอย่างมีนัยสำคัญภายในสิ้นเดือนเมษายน 2558 นอกจากนี้ พวกเขายังได้พัฒนาและผลิตเซ็นเซอร์ที่ใช้งานร่วมกันได้หลายตัว

ตามเนื้อผ้า หุ่นยนต์ที่สร้างขึ้นบนแพลตฟอร์ม เลโก้มายด์สตอร์ม EV3ได้รับการตั้งโปรแกรมโดยใช้สภาพแวดล้อมแบบกราฟิก LabVIEW ในกรณีนี้ โปรแกรมทำงานบนตัวควบคุม EV3 และหุ่นยนต์ทำงานโดยอัตโนมัติ ที่นี่ฉันจะพูดถึงอีกทางเลือกหนึ่งในการควบคุมหุ่นยนต์ - โดยใช้แพลตฟอร์ม .NET ที่ทำงานบนคอมพิวเตอร์

แต่ก่อนที่เราจะเข้าสู่การเขียนโปรแกรม เรามาดูบางกรณีที่สิ่งนี้อาจมีประโยชน์ก่อน:

  • ต้องใช้การควบคุมระยะไกลของหุ่นยนต์จากแล็ปท็อป (เช่น โดยการกดปุ่ม)
  • จำเป็นต้องรวบรวมข้อมูลจากตัวควบคุม EV3 และประมวลผลบนระบบภายนอก (เช่น สำหรับระบบ IoT)
  • สถานการณ์อื่นๆ เมื่อคุณต้องการเขียนอัลกอริธึมควบคุมใน .NET และเรียกใช้จากคอมพิวเตอร์ที่เชื่อมต่อกับคอนโทรลเลอร์ EV3

LEGO MINDSTORMS EV3 API สำหรับ .NET

ตัวควบคุม EV3 ถูกควบคุมจากระบบภายนอกโดยการส่งคำสั่งไปยังพอร์ตอนุกรม รูปแบบคำสั่งนั้นอธิบายไว้ในชุดนักพัฒนาการสื่อสาร

แต่การใช้โปรโตคอลนี้ด้วยตนเองนั้นน่าเบื่อ ดังนั้นคุณสามารถใช้ wrapper .NET สำเร็จรูปซึ่ง Brian Peek เขียนอย่างระมัดระวัง ซอร์สโค้ดสำหรับไลบรารีนี้โฮสต์อยู่บน Github และสามารถดูแพ็คเกจที่พร้อมใช้งานบน Nuget

การเชื่อมต่อกับคอนโทรลเลอร์ EV3

คลาส Brick ใช้เพื่อสื่อสารกับคอนโทรลเลอร์ EV3 เมื่อสร้างอ็อบเจ็กต์นี้ คุณจะต้องส่งผ่านการใช้งานอินเทอร์เฟซ ICommunication ไปยังคอนสตรัคเตอร์ ซึ่งเป็นอ็อบเจ็กต์ที่อธิบายวิธีเชื่อมต่อกับคอนโทรลเลอร์ EV3 มีการใช้งานการสื่อสารผ่าน USB, การสื่อสาร Bluetooth และการสื่อสารเครือข่าย (การเชื่อมต่อ WiFi)

วิธีการเชื่อมต่อที่ได้รับความนิยมมากที่สุดคือผ่านบลูทูธ มาดูวิธีการเชื่อมต่อนี้ให้ละเอียดยิ่งขึ้น

ก่อนที่เราจะสามารถเชื่อมต่อกับคอนโทรลเลอร์ผ่าน Bluetooth โดยทางโปรแกรมได้ คอนโทรลเลอร์จะต้องเชื่อมต่อกับคอมพิวเตอร์โดยใช้การตั้งค่าระบบปฏิบัติการ

หลังจากเชื่อมต่อคอนโทรลเลอร์แล้ว ให้ไปที่การตั้งค่า Bluetooth และเลือกแท็บพอร์ต COM เราพบตัวควบคุมของเราแล้วเราต้องการ ขาออกท่าเรือ. เราจะระบุเมื่อสร้างวัตถุ BluetoothCommunication

รหัสสำหรับเชื่อมต่อกับคอนโทรลเลอร์จะมีลักษณะดังนี้:

การเชื่อมต่องาน async สาธารณะ (การสื่อสาร ICommunication) ( var communication = new BluetoothCommunication("COM9"); var Brick = _brick = new Brick(communication); await _brick.ConnectAsync(); )

หรือคุณสามารถระบุการหมดเวลาการเชื่อมต่อกับคอนโทรลเลอร์ได้:

รอ _brick.ConnectAsync(TimeSpan.FromSeconds(5));

การเชื่อมต่อกับเครื่องผ่าน USB หรือ WiFi ดำเนินการในลักษณะเดียวกัน ยกเว้นว่าจะใช้ออบเจ็กต์ UsbCommunication และ NetworkCommunication

การดำเนินการเพิ่มเติมทั้งหมดที่ดำเนินการบนคอนโทรลเลอร์จะดำเนินการผ่านวัตถุ Brick

มาหมุนเครื่องยนต์กันเถอะ

ในการรันคำสั่งบนคอนโทรลเลอร์ EV3 เราเข้าถึงคุณสมบัติ DirectCommand ของวัตถุ Brick ก่อนอื่นเรามาลองสตาร์ทเครื่องยนต์กันก่อน

สมมติว่ามอเตอร์ของเราเชื่อมต่อกับพอร์ต A ของคอนโทรลเลอร์ จากนั้นการทำงานมอเตอร์นี้ที่กำลังไฟ 50% จะมีลักษณะดังนี้:

รอ _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.A, 50);

มีวิธีอื่นในการควบคุมมอเตอร์ ตัวอย่างเช่น คุณสามารถหมุนมอเตอร์ไปยังมุมที่ระบุได้โดยใช้วิธี StepMotorAtPowerAsync() และ StepMotorAtSpeedAsync() มีหลายวิธีให้เลือก ได้แก่ โหมดการเปิดมอเตอร์ที่แตกต่างกัน - ตามเวลา, ความเร็ว, กำลัง ฯลฯ

การบังคับให้หยุดดำเนินการโดยใช้วิธี StopMotorAsync():

รอ _brick.DirectCommand.StopMotorAsync (OutputPort.A, จริง);

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

การอ่านค่าจากเซนเซอร์

คอนโทรลเลอร์ EV3 มีพอร์ตสี่พอร์ตสำหรับเชื่อมต่อเซ็นเซอร์ นอกจากนี้ มอเตอร์ยังมีตัวเข้ารหัสในตัวซึ่งช่วยให้สามารถใช้เป็นเซ็นเซอร์ได้ เป็นผลให้เรามี 8 พอร์ตที่สามารถอ่านค่าได้

พอร์ตสำหรับการอ่านค่าสามารถเข้าถึงได้ผ่านคุณสมบัติ Ports ของออบเจ็กต์ Brick พอร์ตคือชุดของพอร์ตที่มีอยู่บนคอนโทรลเลอร์ ดังนั้นในการทำงานกับพอร์ตเฉพาะคุณต้องเลือกพอร์ตนั้น InputPort.One ... InputPort.Four คือพอร์ตเซ็นเซอร์ และ InputPort.A ... InputPort.D คือตัวเข้ารหัสมอเตอร์

Var port1 = _brick.พอร์ต;

เซ็นเซอร์ใน EV3 สามารถทำงานในโหมดต่างๆ ได้ ตัวอย่างเช่น สามารถใช้เซ็นเซอร์สี EV3 เพื่อวัดแสงโดยรอบ วัดแสงสะท้อน หรือตรวจจับสีได้ ดังนั้นเพื่อที่จะ “บอก” เซ็นเซอร์อย่างชัดเจนว่าเราต้องการใช้งานอย่างไร เราจำเป็นต้องตั้งค่าโหมดของมัน:

Brick.Ports.SetMode (โหมดสีสะท้อนแสง);

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

ลอย si = _brick.Ports.SIValue; int raw = _brick.Ports.RawValue; เปอร์เซ็นต์ไบต์ = _brick.Ports.PercentValue;

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

คุณสมบัติ RawValue ส่งกลับค่าดิบที่ได้รับจาก ADC บางครั้งการใช้เพื่อการประมวลผลและการใช้งานในภายหลังจะสะดวกกว่า อย่างไรก็ตามในสภาพแวดล้อมการพัฒนา EV3 ก็สามารถรับค่า "ดิบ" ได้ - สำหรับสิ่งนี้คุณต้องใช้บล็อกจากแผงสีน้ำเงิน

หากเซ็นเซอร์ที่คุณใช้คาดว่าจะได้รับค่าเป็นเปอร์เซ็นต์ คุณก็สามารถใช้คุณสมบัติ PercentValue ได้เช่นกัน

การดำเนินการคำสั่งเป็นชุด

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

รอ _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.A, 50); รอ _brick.DirectCommand.TurnMotorAtPowerAsync (OutputPort.B, -50);

ในตัวอย่างนี้เราส่งคำสั่งให้หมุนมอเตอร์ A ด้วยความเร็ว 50 หลังจากส่งคำสั่งนี้สำเร็จเราก็ทำซ้ำเหมือนเดิมกับมอเตอร์ที่เชื่อมต่อกับพอร์ต B ปัญหาคือการส่งคำสั่งไม่เกิดขึ้นทันทีดังนั้นมอเตอร์ อาจเริ่มหมุนเวลาต่างกัน - ขณะกำลังส่งคำสั่งพอร์ต B มอเตอร์ A เรียบร้อยแล้วจะเริ่มหมุน

หากเป็นสิ่งสำคัญสำหรับเราที่จะต้องทำให้มอเตอร์หมุนในเวลาเดียวกัน เราสามารถส่งคำสั่งไปยังคอนโทรลเลอร์เป็น "ชุด" ได้ ในกรณีนี้ คุณควรใช้คุณสมบัติ BatchCommand แทน DirectCommand:

Brick.BatchCommand.TurnMotorAtPower (OutputPort.A, 50); _brick.BatchCommand.TurnMotorAtPower (OutputPort.B, -50); รอ _brick.BatchCommand.SendCommandAsync();

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

คุณทำอะไรได้อีก

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

  • CleanUIAsync(), DrawTextAsync(), DrawLineAsync() ฯลฯ - การจัดการหน้าจอในตัวของคอนโทรลเลอร์ EV3
  • PlayToneAsync() และ PlaySoundAsync() - ใช้ลำโพงในตัวเพื่อเล่นเสียง
  • WriteFileAsync() , CopyFileAsync() , DeleteFileAsync() (จาก SystemCommand) - ทำงานกับไฟล์

บทสรุป

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

สามารถดาวน์โหลดและติดตั้งแอปพลิเคชันได้จากลิงค์นี้: