สารบัญ:

CircuitPython ด้วย Itsybitsy M4 Express 1: การตั้งค่า: 9 ขั้นตอน
CircuitPython ด้วย Itsybitsy M4 Express 1: การตั้งค่า: 9 ขั้นตอน

วีดีโอ: CircuitPython ด้วย Itsybitsy M4 Express 1: การตั้งค่า: 9 ขั้นตอน

วีดีโอ: CircuitPython ด้วย Itsybitsy M4 Express 1: การตั้งค่า: 9 ขั้นตอน
วีดีโอ: Deep Dive w/Scott: Flash and Clocks oh my! #rp2040 #adafruit 2024, พฤศจิกายน
Anonim
CircuitPython ด้วย Itsybitsy M4 Express 1: การตั้งค่า
CircuitPython ด้วย Itsybitsy M4 Express 1: การตั้งค่า

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

ฉันสังเกตเห็นว่าไซต์นี้มีคำแนะนำมากมายเกี่ยวกับการเข้ารหัสด้วย Arduinos โดยใช้ Arduino IDE แต่มีน้อยมากเกี่ยวกับ Python ฉันสอนการเขียนโค้ดมาตั้งแต่ปี 1968 (ในสมัยก่อนเราเรียกว่าการเขียนโปรแกรมและใช้ FORTRAN IV กับการ์ด Hollerith เพื่อป้อนข้อมูล!) ตั้งแต่วันแรกๆ นั้น ฉันได้ใช้ภาษาต่างๆ มากมายกับนักเรียน (11 ปีถึงผู้ใหญ่) รวมถึง LISP, Pascal และอีกมาก เวอร์ชันต่างๆ ใน BASIC

ไม่นานมานี้ โรงเรียนหลายแห่งในสหราชอาณาจักรได้เริ่มใช้ Python ในบทเรียนของพวกเขา เนื่องจากนักเรียนเปลี่ยนจากการเข้ารหัส 'บล็อก' ด้วย Scratch หรือคล้ายกับข้อความ Python น่าจะเป็นขั้นตอนที่ง่ายกว่าการใช้ Arduino IDE สามารถเรียกใช้โค้ด CircuitPython ได้โดยการบันทึกโค้ดลงในบอร์ดพัฒนาราวกับว่าเป็นไดรฟ์ USB ฉันประสบความสำเร็จในการใช้ Python สำหรับ Physical Computing กับเด็กอายุ 8 ถึง 11 ปีใน Coding Club ของโรงเรียนประถมของหลานสาว

ฉันได้ตัดสินใจใช้ Itsybitsy M4 Express ของ Adafruit สำหรับคำแนะนำเหล่านี้ด้วยเหตุผลดังต่อไปนี้:

  • ราคาไม่แพง – ต่ำกว่า 15 ดอลลาร์ (15 ปอนด์)
  • ติดตั้งง่ายและตั้งโปรแกรมด้วย CircuitPython (เวอร์ชันของ Python ที่เหมาะสำหรับผู้ที่เพิ่งเริ่มเขียนโค้ด)
  • พินอินพุต/เอาต์พุตดิจิตอล - สนุกกับการเล่น Blinkies
  • หมุดอะนาล็อก – ADC และ DAC 12 บิต - ความแม่นยำสูง
  • ไฟ LED สีแดงและ RGB DotStar LED ในตัว
  • ขับเคลื่อน Neopixels โดยตรง
  • รองรับ I2C และ SPI สำหรับเซ็นเซอร์และจอแสดงผล
  • ไดรเวอร์หลากหลายในห้องสมุดที่กว้างขวาง
  • เร็วและทรงพลัง - โปรเซสเซอร์ ATSAMD51 Cortex M4 ที่เร็วเป็นพิเศษที่ทำงานที่ 120 MHz
  • หน่วยความจำมากมาย - หน่วยความจำแฟลช SPI ขนาด 2MB สำหรับโค้ด CircuitPython หรือไฟล์ข้อมูล
  • การสนับสนุนที่ยอดเยี่ยมจาก Adafruit พร้อมเอกสารคู่มือฉบับสมบูรณ์และฟอรัมความช่วยเหลือทางอินเทอร์เน็ต
  • ต้องการเพียงแล็ปท็อปหรือคอมพิวเตอร์เครื่องเก่า – ไม่มีจอภาพ คีย์บอร์ด พาวเวอร์ซัพพลาย หรือเมาส์เฉพาะ
  • ผู้ใช้สามารถแปลงเป็น Arduino IDE บนบอร์ดเดียวกันได้ เมื่อพวกเขามีประสบการณ์กับ Python แล้ว

คำแนะนำแรกนี้จะอธิบายวิธีตั้งค่าบอร์ดและเรียกใช้สคริปต์แรกของคุณ

ขั้นตอนที่ 1: สิ่งที่คุณต้องการเริ่มต้น

สิ่งที่คุณต้องการเพื่อเริ่มต้น
สิ่งที่คุณต้องการเพื่อเริ่มต้น

ฮาร์ดแวร์:

  • Itsybitsy M4 Express (adafruit.com, Pimoroni.com)
  • สาย microUSB
  • คอมพิวเตอร์ - แล็ปท็อปเครื่องเก่าจะทำ
  • หัวแร้ง
  • ประสาน
  • เขียงหั่นขนม
  • แถบส่วนหัวของตัวเมีย (อุปกรณ์เสริม)

ซอฟต์แวร์:

มู บรรณาธิการ

ดาวน์โหลดตัวแก้ไข Mu จาก

ติดตั้งบนคอมพิวเตอร์ของคุณ ง่ายมากด้วยคำแนะนำแบบเต็มบนเว็บไซต์

ขั้นตอนที่ 2: ตรวจสอบว่าติดตั้ง CircuitPython แล้ว

ตรวจสอบว่าติดตั้ง CircuitPython แล้ว
ตรวจสอบว่าติดตั้ง CircuitPython แล้ว

เปิด File Explorer บนคอมพิวเตอร์ของคุณ

เสียบปลายสาย USB ด้านเล็กๆ เข้ากับขั้วต่อบน Itsybitsy

เสียบปลายสายอีกด้านหนึ่งเข้ากับพอร์ต USB บนคอมพิวเตอร์ของคุณ

คุณควรเห็นไดรฟ์ใหม่ปรากฏขึ้นที่เรียกว่า CIRCUITPY (ถ้าไม่ใช่ ให้ไปที่หน้า UPDATE)

ดับเบิลคลิก boot_out แล้วคุณจะเห็นข้อความดังนี้:

Adafruit CircuitPython 3.1.1 ใน 2018-11-02; Adafruit ItsyBitsy M4 Express พร้อม samd51g19

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

ไปที่โฟลเดอร์เอกสารของคุณและสร้างโฟลเดอร์ใหม่ชื่อ Code-with-Mu ข้างในนั้น

เริ่มต้น Mu Editor

ขั้นตอนที่ 3: การใช้ Mu Editor สำหรับโปรแกรมแรกของคุณ

การใช้ Mu Editor สำหรับโปรแกรมแรกของคุณ
การใช้ Mu Editor สำหรับโปรแกรมแรกของคุณ

คลิกไอคอน Serial ที่ด้านบนของตัวแก้ไข นี่ควรเปิดหน้าต่าง REPL ที่ด้านล่างของหน้าจอ ที่มุมล่างซ้ายควรเขียนว่าอดาฟรุต Mu รับรู้แล้วว่าบอร์ด CircuitPython เชื่อมต่อกับคอมพิวเตอร์แล้ว

ตอนนี้เราสามารถเขียนโปรแกรมหรือสคริปต์แรกของเราได้แล้ว คลิกเมาส์ในหน้าต่างด้านบนแล้วพิมพ์:

พิมพ์ ("สวัสดีชาวโลก!")

คลิกที่ไอคอนบันทึก เลือกไดรฟ์ CIRCUITPY พิมพ์ main.py ในกล่องชื่อและคลิกที่ปุ่มบันทึก

นี้ไม่ได้มาก สคริปต์ของคุณถูกบันทึกไว้ใน Itsybitsy ด้วยชื่อ "main.py" ไฟล์ใดๆ ที่มีชื่อนี้จะถูกดำเนินการโดยบอร์ดทันที ผลลัพธ์จากคำสั่งพิมพ์จะปรากฏในหน้าต่าง REPL ด้านล่าง

แก้ไขบรรทัดโปรแกรมเป็น:

print("\nHello, coder!") และคลิกที่ไอคอนบันทึก

ลองเพิ่มคำสั่งการพิมพ์ที่คล้ายกันสองสามคำแล้วรันโค้ดใหม่ของคุณ

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

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

แก้ไขข้อผิดพลาดและเรียกใช้สคริปต์อีกครั้ง

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

ดับเบิลคลิกที่แท็บด้านบนสคริปต์ของคุณ ไปที่โฟลเดอร์ Code-with-Mu ของเอกสารและบันทึกสคริปต์ของคุณที่นั่นด้วยชื่อไฟล์ที่มีประโยชน์ เช่น FirstProg.py สังเกตว่าชื่อไฟล์และพาธจะกะพริบที่ด้านล่างของตัวแก้ไข

ขั้นตอนที่ 4: สคริปต์ที่สองของคุณ - กะพริบตา

สคริปต์ที่สองของคุณ - Blink
สคริปต์ที่สองของคุณ - Blink

พิมพ์สคริปต์ บันทึกลงใน CIRCUITPY เป็น main.py แล้วคลิก ใช่ เพื่อแทนที่ main.py ก่อนหน้า

(ใช้ชื่อไฟล์ main.py สำหรับสคริปต์ของคุณเสมอเมื่อบันทึกลงใน ItsyBitsy จากนั้น CircuitPython จะเรียกใช้สคริปต์ใหม่ทันที)

สคริปต์ทำอะไร:

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

สคริปต์มีความคิดเห็นมากมายเพื่ออธิบายสิ่งที่เกิดขึ้น ความคิดเห็นเริ่มต้นด้วยอักขระ '#' มีไว้เพื่อการใช้งานของมนุษย์เพื่อช่วยเตือนความคิดของคุณในขณะนั้น สคริปต์ที่ดีมีความคิดเห็นมากมาย

  1. ลองเปลี่ยนค่าในคำสั่ง sleep()
  2. เปิดไฟ LED ไว้เป็นสองเท่าตราบเท่าที่ดับ
  3. จะเกิดอะไรขึ้นหากความล่าช้าสั้นมาก (0.001 วินาที)

ดับเบิลคลิกที่แท็บด้านบนสคริปต์ของคุณและบันทึกด้วยชื่อ Blink.py ลงในโฟลเดอร์ Code-with-Mu ของคุณ

ขั้นตอนที่ 5: การอัพเดตเวอร์ชันของ CircuitPython

กำลังอัปเดตเวอร์ชันของ CircuitPython
กำลังอัปเดตเวอร์ชันของ CircuitPython

ไปที่ https://circuitpython.org/downloads บนอินเทอร์เน็ต คลิกที่รูปภาพของ Itsybitsy M4 Express (ไม่ใช่รุ่น M0)

คลิกที่ปุ่มสีม่วงเพื่อดาวน์โหลดไฟล์. UF2

เริ่ม File Explorer และค้นหาไฟล์. UF2

เชื่อมต่อ Itsybitsy M4 Express ของคุณเข้ากับพอร์ต USB และค้นหาตำแหน่งของไดรฟ์ - CIRCUITPY

ดับเบิลคลิกที่ปุ่มรีเซ็ตเล็ก ๆ และชื่อไฟล์ควรเปลี่ยนเป็น ITSYM4BOOT จาก CIRCUITPY คุณต้องดับเบิลคลิกอย่างรวดเร็ว

ลากไฟล์ UF2 และวางบนไดรฟ์ ITSYM4BOOT ไฟล์ UF2 จะถูกคัดลอกไปยังบอร์ด IBM4 และชื่อไดรฟ์จะกลับสู่ CIRCUITPY

เลือกไดรฟ์ CIRCUITPY และดับเบิลคลิกที่ไฟล์ boot_out

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

สร้างโฟลเดอร์ใหม่บนไดรฟ์ CIRCUITPY ชื่อ lib เราจะต้องใช้สิ่งนี้ใน Instructables ในภายหลังเพื่อเก็บไดรเวอร์สำหรับเซ็นเซอร์และจอแสดงผล

รีสตาร์ทตัวแก้ไข Mu โหลดไฟล์ main.py ของคุณจาก IBM4 และบันทึกกลับไปที่ IBM4 ไฟ LED สีแดงควรเริ่มกะพริบ

หากคุณคลิกปุ่มรีเซ็ตเพียงครั้งเดียว ระบบจะรีสตาร์ทสคริปต์ main.py ที่โหลดไว้

ขั้นตอนที่ 6: REPL

REPL
REPL

หน้าต่างที่ด้านล่างของตัวแก้ไข เปิดและปิดด้วยไอคอนซีเรียล เป็นมากกว่าหน้าต่างการพิมพ์

"การอ่าน-eval-print loop (REPL) หรือที่เรียกว่าเชลล์ระดับบนสุดแบบโต้ตอบคือสภาพแวดล้อมการเขียนโปรแกรมคอมพิวเตอร์เชิงโต้ตอบที่เรียบง่ายซึ่งรับอินพุตของผู้ใช้คนเดียว (เช่นนิพจน์เดี่ยว) ประเมินผลและส่งคืนผลลัพธ์ สำหรับผู้ใช้ โปรแกรมที่เขียนในสภาพแวดล้อม REPL จะดำเนินการทีละส่วน" (Google)

โดยทั่วไป ถ้าคุณเขียนคำสั่ง python คำสั่งเดียวลงใน REPL มันจะดำเนินการในครั้งเดียว มาลองดูกัน

คลิกเมาส์ของคุณในหน้าต่าง REPL

ขณะเรียกใช้สคริปต์ ให้กดปุ่มค้างไว้แล้วแตะ (CTRL-C) สิ่งนี้จะหยุดสคริปต์ของคุณ

แตะปุ่มใดก็ได้เพื่อเข้าสู่ REPL และข้อความแจ้ง '>>>' จะปรากฏขึ้น

พิมพ์ในการพิมพ์ (4 + 100)

กลับมาทันคำตอบ 104

ดูภาพและลองบางส่วนของคุณเป็นเจ้าของ (ลอง +, -, *, /, // และ %)

ลองสิ่งนี้:

>>นำเข้าบอร์ด

>> ผบ.(บอร์ด)

['_class_', 'A0', 'A1', 'A2', 'A3', 'A4', 'A5', 'APA102_MOSI', 'APA102_SCK', 'D0', 'D1', 'D10', ' D11', 'D12', 'D13', 'D2', 'D3', 'D4', 'D5', 'D7', 'D9', 'I2C', 'MISO', 'MOSI', 'RX', 'SCK', 'SCL', 'SDA', 'SPI', 'TX', 'UART']

>>

นี่คือรายชื่อพินที่มีอยู่ในบอร์ด IBM4

หากต้องการกลับสู่สภาวะปกติด้วยการรีสตาร์ทแบบนุ่มนวล เพียงพิมพ์ CTRL-D และรีสตาร์ท main.py

ยกเลิกการเชื่อมต่อบอร์ดของคุณ

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

ขั้นตอนที่ 7: วางขา

ใส่ขา
ใส่ขา
ใส่ขา
ใส่ขา

ส่วนหัวของตัวผู้ยาวเกินไปสำหรับกระดาน ดังนั้นให้ตัดหรือตัด 2 อันให้ได้ความยาวที่ถูกต้อง

ดันเข้าไปในเขียงหั่นขนม วาง IBM4 ไว้ด้านบนแล้วประสานเข้าด้วยกัน ตรวจสอบให้แน่ใจว่ากระดานอยู่ในทางที่ถูกต้อง! (ชิปอยู่ด้านบน)

อย่าใส่ส่วนหัวของผู้ชายข้ามด้านบน ฉันใช้แถบส่วนหัวเพศหญิง 5 อันที่ด้านบนเพื่อที่ฉันจะได้ใช้หมุดทั้งหมด ใช้คีมจับแถบส่วนหัวให้แน่นใกล้กับจุดตัด ใช้เลื่อยวงเดือนที่คมตัดตรงกลางรู - ขั้วต่อทองเหลืองจะหลุดออกมาในขณะที่คุณตัด ตะไบขอบตัดให้เรียบร้อย-ไม่มีร่อง..

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

เพื่อช่วยป้องกันไม่ให้บอร์ดร้อนเกินไป ขอแนะนำว่าอย่าบัดกรีด้านหนึ่งแล้วขึ้นอีกด้านหนึ่ง เว้นช่องว่างไว้และกรอกข้อมูลในภายหลัง เช่นหมุด 10, RX, 2, A3, RS, BAT, 9, MI ……ฯลฯ

ขั้นตอนที่ 8: ไฟสถานะ CircuitPython RGB - เพื่อช่วยคุณค้นหาข้อผิดพลาด

ไฟสถานะ RGBPython RGB - เพื่อช่วยคุณค้นหาข้อผิดพลาด
ไฟสถานะ RGBPython RGB - เพื่อช่วยคุณค้นหาข้อผิดพลาด

ItsyBitsy M4 Express และบอร์ด M0 และ M4 อื่นๆ ทั้งหมดมี NeoPixel หรือ DotStar RGB LED เดียวบนบอร์ดซึ่งระบุสถานะของ CircuitPython นี่อยู่ระหว่าง (C) และพิน A0

นี่คือความหมายของสีและการกะพริบ:

  • สีเขียวคงที่: code.py (หรือ code.txt, main.py หรือ main.txt) กำลังทำงานอยู่
  • กะพริบเป็นสีเขียว: code.py (ฯลฯ) เสร็จสิ้นหรือไม่มีอยู่จริง
  • สีเหลืองคงที่เมื่อเริ่มต้น: (4.0.0-alpha.5 และใหม่กว่า) CircuitPython กำลังรอการรีเซ็ตเพื่อระบุว่าควรเริ่มต้นในเซฟโหมด
  • กะพริบเป็นสีเหลือง: Circuit Python อยู่ในเซฟโหมด: ขัดข้องและรีสตาร์ท
  • สีขาวคงที่: REPL กำลังทำงาน
  • BLUE คงที่: boot.py กำลังทำงาน

สีที่มีการกะพริบหลายครั้งตามหลังแสดงถึงข้อยกเว้นของ Python จากนั้นระบุหมายเลขบรรทัดของข้อผิดพลาด สีของแฟลชแรกระบุประเภทของข้อผิดพลาด:

  • สีเขียว: IndentationError
  • สีฟ้า: SyntaxError
  • สีขาว: NameError
  • สีส้ม: OSError
  • สีม่วง: ValueError
  • สีเหลือง: ข้อผิดพลาดอื่น ๆ

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

สิ่งเหล่านี้นับค่อนข้างยาก เปิดหน้าต่าง REPL ไว้เสมอเมื่อพัฒนาสคริปต์ และข้อความแสดงข้อผิดพลาดที่เป็นภาษาอังกฤษจะปรากฏขึ้นที่นั่น

ขั้นตอนที่ 9: มองไปข้างหน้า - ไปหาคุณ

มองไปข้างหน้า - ไปหาคุณ
มองไปข้างหน้า - ไปหาคุณ

เมื่อฉันเริ่ม Instructable นี้ ฉันคาดหวังว่ามันจะเป็นชุดแรกในซีรีส์ที่สำรวจ CircuitPython และ Physical Computing แผนของฉันสำหรับขั้นตอนต่อไปคือการครอบคลุมอินพุตและเอาต์พุตพื้นฐานด้วยเลขคณิต, LED, สวิตช์, โพเทนชิโอมิเตอร์และคำสั่งอินพุต นอกจากนี้ยังครอบคลุมวิธีการวนรอบและรายการ (อาร์เรย์)

ก่อนที่ฉันจะเขียนมัน ฉันขอความคิดเห็นบางอย่าง เพื่อที่ฉันจะได้ปรับแต่งให้เหมาะกับผู้ฟัง

เรื่องที่อยากทราบมีดังนี้

  • จังหวะโอเคไหม?
  • รายละเอียดมากเกินไป น้อยเกินไปหรือประมาณใช่ไหม?
  • คุณต้องการแบบฝึกหัดฝึกหัดบ้างไหม?

ไปยังคุณ.

แนะนำ: