หน้าแรก ดูโปรเจกต์ทั้งหมด
Easy

โปรเจกต์ เริ่มต้นใช้งาน Nano RP2040 และ Python

เรียนรู้วิธีการติดตั้ง Arduino Nano RP2040 Connect เพื่อใช้งาน MicroPython

โปรเจกต์ เริ่มต้นใช้งาน Nano RP2040 และ Python
5,057 การดู
2 ถูกใจ

รายการอุปกรณ์และเครื่องมือ

1x Arduino Nano RP2040 Connect
-
1x USB to micro USB cable
🛒 สั่งซื้อ
}

แอปพลิเคชันและแพลตฟอร์ม

รายละเอียดและวิธีทำ

Overview

ในบทความนี้ ผมจะแสดงวิธีการตั้งค่าบอร์ด Arduino Nano RP2040 Connect เพื่อใช้งาน Python โดยคุณจะได้เรียนรู้วิธีการ...

  1. 1) ติดตั้ง OpenMV IDE สำหรับการพัฒนาด้วย Python
  2. 2) ตั้งค่าบอร์ดให้ทำงานร่วมกับ IDE
  3. 3) เชื่อมต่อบอร์ดเข้ากับ IDE
  4. 4) Upload Code ไปยังบอร์ด
  5. 5) Run Code บนบอร์ดโดยไม่ต้อง Upload
  6. 6) เรียนรู้พื้นฐาน Python syntax

Installing the OpenMV IDE

ไปที่ https://openmv.io/pages/download และดาวน์โหลดเวอร์ชันที่จำเป็นสำหรับคอมพิวเตอร์ของคุณ หลังจากนั้นให้รันตัวติดตั้งและทำตามคำแนะนำที่ระบุไว้ สุดท้ายให้เปิดแอป OpenMV IDE หากคุณเห็นหน้าต่างป๊อปอัปแบบนี้ ให้เลือกที่ Don't show this message again แล้วกด Ok

หลังจากนั้น หน้าต่างควรจะมีลักษณะดังนี้:

OpenMV IDE

Forcing the Board into Bootloader Mode

ในขณะที่ OpenMV กำลังทำงาน ให้เชื่อมต่อบอร์ดของคุณเข้ากับคอมพิวเตอร์และกดปุ่ม Reset สองครั้งติดกัน (double tap) มันควรจะเปิดหน้าต่าง File Explorer (หรือ Finder หรืออื่นๆ) พร้อมกับอุปกรณ์จัดเก็บข้อมูลแบบ mass storage device ที่ชื่อประมาณว่า RPI-RP2 ซึ่งคุณสามารถปิดหน้าต่างนี้ได้

Installing the Python Firmware

ตอนนี้ คุณต้องเชื่อมต่อบอร์ดเข้ากับ IDE โดยกดปุ่ม Connect ที่มุมซ้ายล่าง (หรือ Ctrl+E)

Connect Button

จะมีข้อความแจ้งเตือนว่าตรวจพบวอร์ดในโหมด DFU ให้เลือก Install the latest release firmware และ Erase internal file system จากนั้นกด Ok

ปุ่ม Play สีเทาที่มุมซ้ายล่างควรเปลี่ยนเป็นสีเขียว ซึ่งแสดงว่าคุณสามารถ Run Code Python บนบอร์ดได้แล้ว หากไม่เป็นเช่นนั้น ให้กดปุ่ม Connect อีกครั้ง

Running a Python Code

เลือกเมนูตามลำดับนี้ File->Examples->Arduino Boards->Nano RP2040->Board Control->blinky.py

ตอนนี้ให้ Run Code ด้วยสัญลักษณ์ Play สีเขียว (หรือ Ctrl+R) ไฟ LED สีส้มบนบอร์ดควรจะกะพริบ คุณสามารถดูวิดีโอสั้นๆ ของผลลัพธ์ที่ควรจะเป็นได้ที่ลิงก์นี้ https://drive.google.com/file/d/1RB3Gcf5G-14KwpS5FhAf1FNRGQKg55f6/view .

Understanding Basic Python

ในกรณีที่คุณยังไม่คุ้นเคยกับ Python syntax ผมจะอธิบายให้ที่นี่ นี่คือ Code จากตัวอย่าง Blinky:

# Blinky example

import time

from machine import Pin

# This is the only LED pin available on the Nano RP2040,

# other than the RGB LED connected to Nina WiFi module.

led = Pin(6, Pin.OUT)

while (True):

led.on()

time.sleep_ms(250)

led.off()

time.sleep_ms(250)

Python นั้นเข้าใจได้ง่ายพอสมควร ใน Arduino C ข้อความที่เป็น comment จะขึ้นต้นด้วย // แต่ใน Python ข้อความ comment จะขึ้นต้นด้วยสัญลักษณ์ # ดังนั้นบรรทัดบนสุดจึงถูกข้ามไปโดยสิ้นเชิง ต่อมาคือ ห้ามใช้ semicolon (;) โดยเด็ดขาด!!! คำสั่งใน Python (แต่ละบรรทัด) จะสิ้นสุดด้วยการขึ้นบรรทัดใหม่ ไม่ใช่ semicolon

อย่างที่สอง บางท่านอาจทราบว่า Arduino IDE จะเพิ่มบรรทัด #include <Arduino.h> ให้โดยอัตโนมัติที่ส่วนบนของทุกไฟล์ .ino แต่ใน OpenMV จะไม่มี Arduino.h และสิ่งที่มีค่าเทียบเท่ากันนั้นไม่ได้ถูกโหลดมาให้โดยอัตโนมัติ คำหลัก import จะคล้ายกับ Arduino #include และในตัวอย่างนี้ใช้เพื่อโหลด modules สองตัว ได้แก่ module time ที่ใช้สำหรับจัดการเรื่องเวลา ซึ่งมีฟังก์ชันที่ชื่อว่า sleep_ms() ที่ทำงานเหมือนกับฟังก์ชัน delay() ที่คุณคุ้นเคย ส่วนโมดูลที่สองจะถูกนำเข้ามาเพียงบางส่วนเท่านั้น คือ Pin จาก machine ซึ่งนี่คือ class คุณอาจเคยใช้ class ใน Arduino มาก่อน เช่น การเชื่อมต่อกับหน้าจอ LCD โดย class เป็นเหมือนพิมพ์เขียวสำหรับการสร้าง (instantiating) สิ่งอื่น ในกรณีนี้คือ Pin บรรทัด Code หลังจากคำสั่ง import led = Pin(6, Pin.OUT) จะเป็นการสร้าง Pin โดยใช้ class Pin ซึ่งบรรทัดนี้เกือบจะเหมือนกับ pinMode(6, OUTPUT) ใน Arduino หลังจากนั้นเราจะมี mainloop ซึ่งคือทุกอย่างที่อยู่ภายในบล็อก while ตอนนี้เป็นช่วงเวลาสำคัญที่จะกล่าวว่า Python ใช้ whitespace (การเคาะเว้นวรรค tab และการขึ้นบรรทัดใหม่) เพื่อแยกบล็อก แทนที่จะใช้เครื่องหมายปีกกา ({...}) บล็อกจะเริ่มต้นด้วยเครื่องหมาย colon (:) และทุกอย่างที่ย่อหน้าเข้าไปสี่ช่องหลังจากนั้นจะถือว่าอยู่ในบล็อกนั้น นี่คือการเปรียบเทียบระหว่าง Python และ Arduino:

# Python

while (True):

# Do stuff...

// Arduino

while (true) {

# Do stuff...

}

ดังนั้นใน mainloop เราจึงเรียกใช้ method ของ object ที่เราสร้างขึ้นนั่นคือ on() ซึ่ง method คือฟังก์ชันที่เป็นของ object นั้นๆ โดย method นี้คล้ายกับ digitalWrite(6, HIGH); จากนั้นคือ time.sleep_ms(250) ซึ่งหมายถึง delay(250); ในภาษา Arduino ต่อมาเราตั้งค่า LED เป็น off แล้วหน่วงเวลาอีก 250 มิลลิวินาที

ตอนนี้ คุณอาจสังเกตเห็นว่าไม่มี Code ส่วนใดที่อยู่ภายใน void setup() {...} และ void loop() {...} นั่นเป็นเพราะ Python Code สามารถทำงานภายนอกฟังก์ชันได้ สิ่งที่คุณควรใส่ใน setup ให้วางไว้หลังจากการ import และตัวแปรต่างๆ ที่คุณสร้างขึ้น ส่วน Code ที่ควรจะอยู่ในบล็อก loop ก็ให้ใส่ไว้ใน while loop แทน

นี่คือ Code ที่แสดงคุณสมบัติที่มีประโยชน์อื่นๆ ของ Python และสิ่งที่เทียบเท่าใน Arduino:

# การสร้างตัวแปร (variable)

variable_name = value

# การสร้างฟังก์ชัน (function)

def function_name(parameter1, parameter2):

# Do stuff...

# การเรียกใช้ฟังก์ชัน

function_name(argument1, argument2)

Uploading Code to the Board

หากคุณต้องการให้ Code ถูกบันทึกไว้ในบอร์ด ให้กด File->Save "blinky_1.py" as... (หรือ Ctrl+W) และบันทึกลงในบอร์ดโดยใช้ชื่อว่า "main.py" หากมีการถามเพื่อเขียนทับไฟล์เดิมที่มีอยู่ ให้กด Yes สุดท้ายให้กดปุ่ม Reset บนบอร์ดเพื่อให้ Code ทำงาน

Code

🔒 ปลดล็อก Code

สนับสนุนเพื่อรับ Source Code หรือแอปพลิเคชันสำหรับโปรเจกต์นี้

รหัสอ้างอิงโปรเจกต์: getting-started-with-nano-rp2040-and-python-d71bef
2450 บาท
PromptPay QR Code