สารบัญ:

MicroPython บน SPIKE Prime: 12 ขั้นตอน
MicroPython บน SPIKE Prime: 12 ขั้นตอน

วีดีโอ: MicroPython บน SPIKE Prime: 12 ขั้นตอน

วีดีโอ: MicroPython บน SPIKE Prime: 12 ขั้นตอน
วีดีโอ: How to program SPIKE Prime with Python over Bluetooth - Swinging Monkey 2024, พฤศจิกายน
Anonim
MicroPython บน SPIKE Prime
MicroPython บน SPIKE Prime

คุณสามารถเขียนโค้ด SPIKE Prime โดยใช้ MicroPython ซึ่งเป็นชุดย่อยของ python สำหรับไมโครโปรเซสเซอร์ขนาดเล็ก

คุณสามารถใช้เทอร์มินัลอีมูเลเตอร์เพื่อเข้ารหัสฮับ SPIKE Prime

เสบียง

SPIKE Prime ฮับ

คอมพิวเตอร์พร้อมพอร์ต USB / Bluetooth

สาย USB เพื่อเชื่อมต่อฮับเข้ากับคอมพิวเตอร์

ขั้นตอนที่ 1: หยิบ Terminal Emulator

หยิบ Terminal Emulator ขึ้นมา
หยิบ Terminal Emulator ขึ้นมา
หยิบ Terminal Emulator ขึ้นมา
หยิบ Terminal Emulator ขึ้นมา

มีตัวเลือกมากมายให้เลือก

CoolTerm ใช้งานได้กับทุกแพลตฟอร์ม รวมถึง Pi

สีโป๊วทำงานบน windows

คำสั่งหน้าจอใน Terminal บนระบบปฏิบัติการยูนิกซ์

ขั้นตอนที่ 2: เชื่อมต่อ SPIKE Prime กับพอร์ต USB

เชื่อมต่อ SPIKE Prime กับพอร์ต USB
เชื่อมต่อ SPIKE Prime กับพอร์ต USB
เชื่อมต่อ SPIKE Prime กับพอร์ต USB
เชื่อมต่อ SPIKE Prime กับพอร์ต USB

ใช้สาย microUSB เพื่อเชื่อมต่อ SPIKE Prime กับคอมพิวเตอร์

ขั้นตอนที่ 3: ค้นหาพอร์ต

ค้นหาพอร์ต
ค้นหาพอร์ต
ค้นหาพอร์ต
ค้นหาพอร์ต

เราจำเป็นต้องรู้ว่าพอร์ตอนุกรมใดที่ฮับ SPIKE Prime เชื่อมต่ออยู่

บน mac ให้พิมพ์

ls /dev/tty.usbmodem*

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

บน pi มันจะเป็น ttyAMC0 - เช็คอิน /dev/folder. ของคุณ

ขั้นตอนที่ 4: เชื่อมต่อ

เชื่อมต่อ
เชื่อมต่อ
เชื่อมต่อ
เชื่อมต่อ

เชื่อมต่อกับพอร์ตด้านขวา (จากขั้นตอนก่อนหน้า) ที่ 115200 baud

ใน Terminal พิมพ์

หน้าจอผู้ใช้คอมพิวเตอร์$ /dev/ 115200

ใน IDE อื่น ๆ

กดเปิด/เชื่อมต่อ (หลังจากตั้งค่าพอร์ตและ Baudrates)

หมายเหตุ: ไม่มีความเท่าเทียมกัน, 8 บิตข้อมูล และ 1 บิตหยุด

ขั้นตอนที่ 5: การเริ่มต้น REPL

การเริ่มต้น REPL
การเริ่มต้น REPL
การเริ่มต้น REPL
การเริ่มต้น REPL
การเริ่มต้น REPL
การเริ่มต้น REPL

เมื่อคุณเชื่อมต่อกับ SPIKE Prime จากเทอร์มินัล/ PUTTY คุณจะเห็นกระแสของตัวเลขและตัวอักษร ข้อมูลเหล่านี้เป็นข้อมูลจากเซ็นเซอร์ภายในของฮับ SPIKE Prime ในการเริ่มกด control + c

มันจะขัดจังหวะพอร์ตอนุกรมและคุณควรเห็นสิ่งนี้

MicroPython v1.9.4-1146-gca9944357 บน 2019-09-25; LEGO Technic Large Hub พร้อม STM32F413xx Type "help()" สำหรับข้อมูลเพิ่มเติม

ตอนนี้คุณพร้อมที่จะรหัสแล้ว

ขั้นตอนที่ 6: รหัสแรกของคุณ

รหัสแรกของคุณ
รหัสแรกของคุณ

ศูนย์กลางการนำเข้า

hub.display.show('Tufts')

สังเกตคำสั่ง "นำเข้า" ซึ่งดึงไลบรารีหลามที่ให้คุณพูดคุยกับ SPIKE Prime คุณควรเห็น Tufts เขียนบนเมทริกซ์ LED บนฮับ

ขั้นตอนที่ 7: แสดงชื่อของคุณ

ตอนนี้ลองพิมพ์

hub.display.show(' ')

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

Traceback (การโทรล่าสุดล่าสุด): ไฟล์ "", บรรทัดที่ 1, inNameError: ไม่ได้กำหนดชื่อ 'hub'

ขั้นตอนที่ 8: การใช้ REPL

คุณลักษณะที่มีประสิทธิภาพอีกอย่างหนึ่งของ Python คือคุณสามารถทดสอบอะไรก็ได้ก่อนที่จะเขียนโค้ดใน REPL (read eval print loop)

มันจะรันคำสั่ง python ใด ๆ - ลองพิมพ์ 2 + 2 ด้านล่างและดูว่ามันพูดว่าอะไร:

2+2

ขั้นตอนที่ 9: สำรวจ MicroPython บน SPIKE Prime

ตอนนี้ได้เวลาสำรวจแล้ว

hub มีฟังก์ชันมากมาย - คุณสามารถค้นหาได้โดยพิมพ์ "hub" (อย่าลืมช่วงเวลาหลังฮับ) จากนั้นกดปุ่ม TAB ใน REPL ซึ่งจะแสดงให้คุณเห็นวิธีต่างๆ ที่คุณสามารถทำตามคำสั่งได้

ท้าทาย: ดูว่าคุณสามารถอ่านอัตราเร่งได้หรือไม่

ขั้นตอนที่ 10: การอ่านค่าเซ็นเซอร์…1

ข้อมูลการเร่งความเร็วกลับมาเป็นอาร์เรย์ของค่า ดังนั้นหากคุณต้องการแค่ค่า X คุณสามารถลอง

hub.motion.accelerometer()[0]

หรือวิธีที่ดีกว่าในโค้ดนี้คือการใช้ตัวแปรดังนี้:

ศูนย์กลางการนำเข้า

เร่ง = hub.motion.accelerometer () xAccel = เร่ง [0] hub.display.show (str (xAccel))

ขั้นตอนที่ 11: การอ่านค่าเซ็นเซอร์…2

การอ่านค่าเซ็นเซอร์…2
การอ่านค่าเซ็นเซอร์…2

คุณยังสามารถแสดงการเร่งความเร็วทั้งสามโดยใช้การวนซ้ำ

นอกจากนี้เรายังจะนำเข้า Utime ของห้องสมุดเพื่อให้เราสามารถหยุดชั่วคราวและให้เวลาคุณอ่านตัวเลขบนหน้าจอ

ลองใช้รหัสนี้:

นำเข้าฮับ utimeaccel = hub.motion.accelerometer() สำหรับ Acc ใน accel: hub.display.show(str(Acc)) utime.sleep(0.8)

ณ จุดนี้บางสิ่งกลายเป็นสิ่งสำคัญ:

ช่องว่าง - Python นั้นเกี่ยวกับการเยื้องทางขวา - คล้ายกับวงเล็บในภาษาอื่น การเยื้องจะบอกคุณว่ามีอะไรอยู่ใน for loop และอะไรที่ไม่ใช่

เมื่อใช้ REPL คุณจะสังเกตเห็นว่าเมื่อคุณเยื้อง จะไม่เรียกใช้งานบรรทัดอีกต่อไป แต่จะรอให้คุณจบบรรทัดสำหรับลูป for ก่อนดำเนินการ (และ >>> จะถูกแทนที่ด้วย …) ในการสิ้นสุด for loop ให้กด return สามครั้งและลูปจะถูกดำเนินการ

ขั้นตอนที่ 12: ความท้าทาย

ต่อไป ดูว่าคุณสามารถคิดออกว่าโค้ดด้านล่างทำอะไรได้บ้าง และลองดำเนินการเพื่อดูว่าคุณคิดถูกหรือไม่

ศูนย์กลางการนำเข้า Utime

ในขณะที่ True: accel = hub.motion.accelerometer() สำหรับ Acc ใน accel: hub.display.show(str(Acc)) utime.sleep(0.8) ถ้า hub.port. B.device.get(): แตก

คำแนะนำ -คุณต้องการเซ็นเซอร์ที่พอร์ต B

แนะนำ: