การบันทึกข้อมูลด้วย VEX Brain/เซ็นเซอร์ (เวอร์ชัน Python)

การแนะนำ

ในบทความนี้ เราจะพูดถึงวิธีสร้างโปรเจ็กต์การบันทึกข้อมูลที่สั่งให้ VEX Robot รวบรวมข้อมูลด้วย VEX Brain และบันทึกเป็นไฟล์ CSV บนการ์ด SD เพื่อการวิเคราะห์ข้อมูล

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

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

ทักษะการเขียนโค้ดที่จำเป็นสำหรับการพัฒนาโครงการบันทึกข้อมูล

  • ใช้คำสั่งต่างๆ เพื่อรวบรวมข้อมูลด้วย VEX Brain/Sensors และเพิ่มลงในโครงสร้างข้อมูล
  • เขียนข้อมูลลงในไฟล์ Comma-Separated Values ​​(CSV) บนการ์ด SD

ฮาร์ดแวร์ที่จำเป็นสำหรับการบันทึกข้อมูล:

  • สมอง VEX (IQ, V5, EXP)
  • การ์ด SD
  • เซ็นเซอร์หนึ่งตัวหรือเซ็นเซอร์หลายตัว (อุปกรณ์เสริมตามข้อมูลที่ต้องการ)

รับข้อมูลจากเซ็นเซอร์

เราสามารถตั้งโปรแกรม VEX Robot (IQ, V5, EXP) เพื่อจับข้อมูลจากเซ็นเซอร์ต่อไปนี้:

  • เซ็นเซอร์เฉื่อย
  • เซ็นเซอร์วัดระยะ
  • ออปติคัลเซนเซอร์
  • วิชันเซนเซอร์
  • เซนเซอร์ตรวจจับการหมุน (V5, EXP)
  • เซ็นเซอร์ GPS (V5)

หมายเหตุ: สมอง VEX IQ (รุ่นที่ 2) และสมอง VEX EXP มีเซ็นเซอร์เฉื่อยในตัว เราสามารถรวบรวมข้อมูลเซนเซอร์เฉื่อยด้วย VEX Brians เหล่านี้ได้

ในบทความนี้ เราจะพัฒนาโครงการบันทึกข้อมูลที่รวบรวมข้อมูลความเร่งด้วย VEX IQ Brain (2nd) และจัดเก็บไว้ในการ์ด SD 

ก่อนอื่น เราต้องเขียนโปรแกรมสั้นๆ เพื่อรับค่าที่อ่านได้จาก Timer และ Inertial Sensor ที่สร้างใน VEX IQ Brain (ตัวที่ 2)

  • ในตอนเริ่มต้นของโปรแกรมนี้ เราจะต้องนำเข้าโมดูล Python เพื่อควบคุม VEX IQ Brain (2nd) และดึงข้อมูลจากโมดูลดังกล่าว ดังนั้น ให้เริ่มด้วยการเพิ่มคำแนะนำเหล่านี้ลงในโปรเจ็กต์
  • # ไลบรารีนำเข้า
    จากการนำเข้า vex *

    # Brain ควรถูกกำหนดโดยค่าเริ่มต้น
    brain = Brain()
    brain_inertial = Inertial()
  • ถัดไป เพิ่มโค้ดเพื่อประกาศตัวแปร numOfDataEntries เพื่อจัดเก็บจำนวนรายการข้อมูลสำหรับการบันทึก ประกาศตัวแปร polling_delay_msec เพื่อจัดเก็บค่าช่วงเวลาสำหรับการอ่านข้อมูล และสร้างตัวแปรสตริงว่าง data_buffer เพื่อจัดเก็บ ข้อมูลที่อ่านจากเซ็นเซอร์
  • numOfDataEntries = 100
    polling_delay_msec = 50
    data_buffer = ""
  • เนื่องจากเราจะใช้ค่าปัจจุบันของตัวจับเวลาเพื่อเพิ่มค่า Timestamp ให้กับข้อมูล เราจึงต้องรีเซ็ตค่าตัวจับเวลากลับเป็น 0 วินาทีก่อนที่จะเริ่มรวบรวมข้อมูล
  • # เพิ่มโค้ดเริ่มต้นตัวจับเวลา
    brain.timer.clear()
  • ก่อนที่จะใช้คำสั่งดึงข้อมูลจาก VEX IQ Brain (ตัวที่ 2) และบันทึกข้อมูลลงในบัฟเฟอร์ เราต้องทำความเข้าใจก่อน
    คำสั่งต่อไปนี้จะเพิ่มค่าตัวจับเวลาปัจจุบันต่อท้ายตัวแปร data_buffer ในรูปแบบเฉพาะ

    มีการเน้นโค้ด Python หนึ่งบรรทัดเป็นส่วนๆ เพื่ออธิบายรายละเอียด บรรทัดโค้ดอ่าน data_buffer += 1.3f % brain.timer.value() + comma ขั้นแรก ตัวดำเนินการ += จะถูกเน้นและติดป้ายกำกับว่า ผนวกข้อมูลเข้ากับสตริง data_buffer ถัดไป สตริง 1.3f จะถูกเน้นและติดป้ายกำกับเป็นสตริงรูปแบบ ถัดไป เครื่องหมายเปอร์เซ็นต์จะถูกเน้นและติดป้ายเป็นตัวดำเนินการโมดูโลของสตริง จากนั้นคำสั่ง brain.timer.value() จะถูกเน้นและติดป้ายกำกับว่าค่าปัจจุบันของตัวจับเวลา สุดท้าย การเพิ่มสตริงเครื่องหมายจุลภาคที่ส่วนท้ายจะถูกเน้นและอ่านว่า เพิ่มเครื่องหมายจุลภาคที่ส่วนท้ายเพื่อแยกข้อมูล

    มาแจกแจงสตริงรูปแบบ “%1.3f”

    • “%”: แนะนำตัวระบุการแปลง
    • “1”: ระบุจำนวนหลักขั้นต่ำที่จะปรากฏในสตริง
    • “.3”: ระบุจำนวนตำแหน่งทศนิยมที่จะรวมไว้ในตัวเลขที่จัดรูปแบบ
    • “f”: ระบุว่าค่าที่จะจัดรูปแบบเป็นตัวเลขทศนิยม

    ดังนั้นเราจึงสามารถใช้สตริงรูปแบบ “%1.3f” เพื่อจัดรูปแบบตัวเลขทศนิยมที่มีความกว้างขั้นต่ำ 1 หลักและมีทศนิยม 3 ตำแหน่ง

  • ตอนนี้เราสามารถอ่าน Timer และค่าความเร่งของ Inertial Sensor ที่สร้างขึ้นใน VEX IQ Brain (ตัวที่ 2) แล้วจึงผนวกข้อมูลเข้ากับตัวแปร data_buffer ในรูปแบบที่ระบุ
  • # คำสั่งในการเขียนข้อมูลลงบัฟเฟอร์
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

    โค้ดก่อนหน้านี้จะอธิบายโดยละเอียด บรรทัด data_buffer แรกที่ใช้ brain.timer.value() มีป้ายกำกับว่า Add Timestamp to buffer สามบรรทัดถัดไปมีป้ายชื่อว่า เพิ่มค่าความเร่งตามแกน X, Y และ Z ไปยังบัฟเฟอร์

  • หมายเหตุ: “\n” คืออักขระขึ้นบรรทัดใหม่ เป็นการระบุว่าบรรทัดสิ้นสุดที่นี่และถือเป็นจุดเริ่มต้นของบรรทัดใหม่
  • จากนั้น เพื่อบันทึกรายการข้อมูลจำนวนหนึ่งลงในตัวแปร data_buffer เราสามารถใช้ สำหรับลูป เพื่อดำเนินการคำสั่งซ้ำๆ เพื่อดึงข้อมูลและผนวกข้อมูลเข้ากับตัวแปร data_buffer สำหรับการวนซ้ำจำนวนหนึ่ง กลยุทธ์ของเราคือการใช้ค่าของตัวแปร numOfDataEntries เพื่อกำหนดจำนวนการวนซ้ำ
  • # การสร้างข้อมูล
    สำหรับ i ในช่วง (0, numOfDataEntries):

    # คำสั่งในการเขียนข้อมูลลงในบัฟเฟอร์
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"
  • จนถึงขณะนี้ โปรแกรมของเราจะบันทึกข้อมูลโดยเร็วที่สุด อย่างไรก็ตาม เราต้องการบันทึกข้อมูลในช่วงเวลาที่กำหนด ดังนั้นเราจึงสามารถใช้ฟังก์ชัน wait() ใน สำหรับลูป เพื่อหยุดโปรแกรมชั่วคราวเพื่อเพิ่มช่วงเวลาเฉพาะระหว่างการอ่านสองครั้ง เราใช้ค่าของตัวแปร polling_delay_msec เพื่อกำหนดค่าของช่วงเวลา
  • # การสร้างข้อมูล
    สำหรับ i ในช่วง (0, numOfDataEntries):

    # คำสั่งในการเขียนข้อมูลลงในบัฟเฟอร์
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

    wait(polling_delay_msec, MSEC)

ยินดีด้วย! เราได้เสร็จสิ้นโปรแกรมเพื่อรับการอ่าน (ข้อมูลความเร่ง) จากเซ็นเซอร์เฉื่อยที่สร้างขึ้นในสมอง VEX ต่อไป เราจะมาดูวิธีเขียนข้อมูลลงในไฟล์ CSV บนการ์ด SD

# ไลบรารีนำเข้า
จาก vex import *

# Brain ควรถูกกำหนดโดยค่าเริ่มต้น
brain = Brain()
brain_inertial = Inertial()

numOfDataEntries = 100
polling_delay_msec = 50
data_buffer = ""

# เพิ่มรหัสการเริ่มต้นตัวจับเวลา
brain.timer.clear()

# การสร้างข้อมูล
สำหรับ i ในช่วง (0, numOfDataEntries):

# คำสั่งในการเขียนข้อมูลไปยังบัฟเฟอร์
data_buffer += "%1.3f" % brain.timer.value() + "\n"
data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

wait(polling_delay_msec, MSEC)

การแนบการ์ด SD เข้ากับสมอง VEX

ก่อนที่จะเขียนข้อมูลลงไฟล์ในการ์ด SD ให้ใส่การ์ด SD ลงในช่องเสียบการ์ด SD ของ VEX Brain ก่อน

IQ (รุ่นที่ 2) สมองถูกแสดงโดยมีช่องเสียบการ์ด SD ที่ถูกเน้นไว้ ช่องใส่การ์ด SD อยู่ที่ด้านข้างของ Brain ทางด้านขวาของพอร์ต USB-C

หมายเหตุ: ฟอร์แมตการ์ด SD เป็น FAT32 เพื่อการเขียนข้อมูล เราขอแนะนำให้ใช้การ์ด SD ที่มีขนาด 32GB หรือน้อยกว่า

เพื่อให้แน่ใจว่าการเขียนข้อมูลลงไฟล์ในการ์ด SD สามารถทำได้ภายใต้สภาวะที่เหมาะสม เราจะต้องเพิ่มโค้ดเพื่อตรวจสอบว่าใส่การ์ด SD ลงใน VEX IQ Brain อย่างถูกต้องหรือไม่ (อันดับที่ 2)

  • ใช้ฟังก์ชัน brain.sdcard.is_inserted() เพื่อตรวจสอบว่าเสียบการ์ด SD แล้วหรือไม่ หากไม่ได้ใส่การ์ด SD ให้แสดงข้อความที่เกี่ยวข้องบนหน้าจอ VEX IQ Brain และกดโปรแกรมค้างไว้
  • # หยุดโปรแกรมหากไม่ได้ใส่การ์ด SD
    หากไม่ได้ใส่ brain.sdcard.is_inserted():
    brain.screen.set_cursor(1,1)
    brain.screen.print("SD Card Missing")
    while(True):
    wait(5, MSEC)
  • หมายเหตุ: ฟังก์ชัน brain.sdcard.is_inserted() คืนค่า True ถ้าการ์ด SD ถูกเสียบเข้าไปใน Brain

การเขียนข้อมูลลงในไฟล์ CSV บนการ์ด SD

จนถึงตอนนี้โปรแกรมของเราสามารถรวบรวมข้อมูลด้วย VEX IQ Brain (ตัวที่ 2) ได้แล้ว เพื่อให้โครงการบันทึกข้อมูลเสร็จสมบูรณ์ เราจำเป็นต้องเขียนข้อมูลลงในไฟล์ Comma-Separated Values ​​(CSV) บนการ์ด SD เพื่อการตรวจสอบและวิเคราะห์ในอนาคต

  • เมื่อเขียนข้อมูลประเภทต่างๆ ลงในไฟล์ CSV เราต้องการทราบว่าแต่ละคอลัมน์มีข้อมูลประเภทใด ในการทำเช่นนี้ เราสามารถเพิ่มข้อความส่วนหัว CSV ต่อท้ายตัวแปร data_buffer ก่อนที่จะบันทึกข้อมูล
    ดังนั้นให้เพิ่มโค้ดเพื่อประกาศตัวแปร csvHeaderText เพื่อจัดเก็บข้อความส่วนหัว CSV เพื่อระบุชื่อคอลัมน์สำหรับไฟล์ CSV และประกาศตัวแปร sd_file_name เพื่อเก็บชื่อของไฟล์ CSV ที่จะเขียนลงใน การ์ด SD
  • csvHeaderText = "เวลา, x, y, z"
    sd_file_name = "myDataPY.csv"

หมายเหตุ: ตรวจสอบให้แน่ใจว่าส่วนหัวอยู่ในลำดับเดียวกันกับข้อมูลที่จัดเก็บไว้ในตัวแปร data_buffer

  • จากนั้น ให้เพิ่มข้อความส่วนหัว CSV ต่อท้ายสตริง data_buffer ก่อนสตริง สำหรับลูป สำหรับการรวบรวมข้อมูล
  • # สร้าง CSV Header
    data_buffer = csvHeaderText + "\n"

    # การสร้างข้อมูล CSV
    สำหรับ i ในช่วง (0, numOfDataEntries):

    # คำสั่งในการเขียนข้อมูลลงในบัฟเฟอร์
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

    wait(polling_delay_msec, MSEC)
  • ก่อนที่จะเขียนข้อมูลลงไฟล์ในการ์ด SD เรามาทำความเข้าใจเกี่ยวกับการใช้ฟังก์ชัน brain.sdcard.savefile() กันก่อน

    มีการเน้นโค้ด Python หนึ่งบรรทัดเป็นส่วนๆ เพื่ออธิบายรายละเอียด บรรทัดโค้ดอ่าน brain.sdcard.savefile(sd_file_name, bytearray(data_buffer, 'utf-8')) ขั้นแรก ส่วนที่ brain.sdcard.savefile จะถูกเน้นและติดป้ายกำกับว่า บันทึกอาร์เรย์ไบต์ลงในไฟล์ที่มีชื่อบนการ์ด SD ถัดไป ส่วน sd_file_name จะถูกเน้นและติดป้ายกำกับเป็น ชื่อไฟล์ สุดท้าย ไฮไลต์และติดป้ายกำกับ bytearray(data_buffer, 'utf-8') ที่ส่วนท้ายเป็น Buffer


    คำสั่งนี้เขียนข้อมูลที่จัดเก็บไว้ในตัวแปร data_buffer ลงในไฟล์ CSV ที่มีชื่อบนการ์ด SD
    มาทำลายมันกัน:
    • brain.sdcard.savefile(): ฟังก์ชั่นบันทึก bytearray ลงในไฟล์ที่มีชื่อบนการ์ด SD ฟังก์ชันส่งคืนจำนวนไบต์ที่เขียนลงในไฟล์

    • sd_file_name: พารามิเตอร์แรกของฟังก์ชัน ระบุชื่อไฟล์ที่จะเขียน ในโปรเจ็กต์นี้ ชื่อไฟล์จะถูกจัดเก็บไว้ในตัวแปร sd_file_name

    • bytearray(datat_buffer,'utf-8'): พารามิเตอร์ตัวที่สองของฟังก์ชัน แสดงถึง bytearray ที่จะเขียนลงในไฟล์

        • bytearray(): วิธีการสร้าง bytearray ที่ไม่แน่นอน ในคำสั่งนี้ เราใช้มันเพื่อแปลงสตริงเป็นไบต์เทียร์เรย์โดยระบุการเข้ารหัส
        • data_buffer: พารามิเตอร์แรกของวิธีการ บ่งชี้แหล่งที่มาที่จะแปลงเป็นไบต์เทียร์เรย์ ในโปรเจ็กต์นี้ แหล่งที่มาคือข้อมูลที่จัดเก็บไว้ในตัวแปร data_buffer 
        • 'utf-8': พารามิเตอร์ตัวที่สองของเมธอด ระบุการเข้ารหัสที่ระบุซึ่งใช้ในการเข้ารหัสสตริง การเข้ารหัสคือ 'utf-8' ในคำสั่งนี้ 
  • หลังจาก สำหรับลูป สำหรับการรวบรวมข้อมูล ให้ใช้ฟังก์ชัน brain.sdcard.savefile() เพื่อเขียนข้อมูลที่จัดเก็บไว้ในตัวแปร data_buffer ไปยังไฟล์ CSV บนการ์ด SD นอกจากนี้ เพิ่มโค้ดเพื่อตรวจสอบค่าส่งคืนจากฟังก์ชัน brain.sdcard.savefile() เพื่อตรวจยืนยันว่าข้อมูลถูกเขียนลงในไฟล์สำเร็จหรือไม่ และแสดงข้อความที่เกี่ยวข้องบน VEX IQ Brain Screen เพื่อรับผลตอบรับแบบเรียลไทม์ คำสั่ง if ที่ส่วนท้ายจะเพิ่มข้อความเพื่อแสดงสถานะของไฟล์ โดยพิมพ์ SD Write Error หรือ Data Written
  • # การสร้างข้อมูล CSV
    สำหรับ i ในช่วง (0, numOfDataEntries):

    # คำสั่งในการเขียนข้อมูลลงในบัฟเฟอร์
    data_buffer += "%1.3f" % brain.timer.value() + "\n"
    data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
    data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

    wait(polling_delay_msec, MSEC)

    # เขียนข้อมูลลงใน SD Card
    brain.screen.set_cursor(4,1)
    if brain.sdcard.savefile(sd_file_name, bytearray(data_buffer,'utf-8')) == 0:
    brain.screen.print("ข้อผิดพลาดการเขียน SD")
    else:
    brain.screen.print("ข้อมูลที่เขียน")
  • หมายเหตุ: ฟังก์ชัน brain.sdcard.savefile() จะส่งคืนจำนวนไบต์ที่เขียนลงในไฟล์ ในโปรเจ็กต์นี้ เราใช้มันเพื่อเขียนข้อมูลที่รวบรวมไปยังไฟล์ CSV ดังนั้นจำนวนไบต์ที่เขียนลงในไฟล์จะต้องมากกว่าศูนย์ กล่าวอีกนัยหนึ่ง หากฟังก์ชัน brain.sdcard.savefile() ส่งคืนค่า 0 เราสามารถสรุปได้ว่าข้อมูลไม่ได้ถูกเขียนลงในไฟล์สำเร็จ มิฉะนั้นข้อมูลจะถูกเขียนลงในไฟล์แล้ว

ยินดีด้วย! เราได้พัฒนาโครงการบันทึกข้อมูลที่รวบรวมข้อมูลความเร่งด้วย VEX IQ Brain (2nd) และจัดเก็บไว้ในไฟล์ CSV ในการ์ด SD ต่อไป เราจะมาดูวิธีเปิดไฟล์ CSV เพื่อการวิเคราะห์ข้อมูล 

# การนำเข้าไลบรารี
จากการนำเข้า vex *

# Brain ควรถูกกำหนดโดยค่าเริ่มต้น
brain = Brain()
brain_inertial = Inertial()

csvHeaderText = "time, x, y, z"
sd_file_name = "myDataPY.csv"
polling_delay_msec = 50
numOfDataEntries = 100
data_buffer = ""

# หยุดโปรแกรมหากไม่ได้ใส่การ์ด SD
หากไม่เป็นเช่นนั้น brain.sdcard.is_inserted():
brain.screen.set_cursor(1,1)
brain.screen.print("SD Card Missing")
while(True):
wait(5, MSEC)

# เพิ่มเซ็นเซอร์ใดๆ & รหัสการเริ่มต้นตัวจับเวลาที่นี่
brain.timer.clear()

# สร้าง CSV Header
data_buffer = csvHeaderText + "\n"

# การสร้างข้อมูล CSV
สำหรับ i ในช่วง (0, numOfDataEntries):

# คำสั่งในการเขียนข้อมูลลงในบัฟเฟอร์
data_buffer += "%1.3f" % brain.timer.value() + ","
data_buffer += "%1.3f" % brain_inertial.acceleration(XAXIS) + ","
data_buffer += "%1.3f" % brain_inertial.acceleration(YAXIS) + ","
data_buffer += "%1.3f" % brain_inertial.acceleration(ZAXIS) + "\n"

wait(polling_delay_msec, MSEC)

# เขียนข้อมูลลงใน SD Card
brain.screen.set_cursor(4,1)
ถ้า brain.sdcard.savefile(sd_file_name, bytearray(data_buffer,'utf-8')) == 0:
brain.screen.print("SD Write Error")
มิฉะนั้น:
brain.screen.print("Data Written")

การเปิดไฟล์ CSV เพื่อการวิเคราะห์ข้อมูล

เมื่อเขียนข้อมูลลงในไฟล์ CSV บนการ์ด SD แล้ว เราสามารถใช้แอปพลิเคชันสเปรดชีตเพื่อเปิดไฟล์สำหรับอ่านและวิเคราะห์ข้อมูลได้ 

หมายเหตุ: แอปพลิเคชันสเปรดชีตที่พบบ่อยที่สุด 2 รายการคือ Google ชีตและ Microsoft Excel ในบทความนี้ เราจะใช้ Google ชีต (แบบเว็บ) เพื่อเปิดไฟล์ CSV บนการ์ด SD ขั้นตอนการใช้งานแอพพลิเคชั่นอื่นก็คล้ายกัน

  • ถอดการ์ด SD ออกจากช่องเสียบการ์ด SD ของ VEX IQ Brain หากคอมพิวเตอร์มีช่องเสียบการ์ด Micro SD ในตัว เราสามารถใส่การ์ด SD ลงในช่องนั้นได้โดยตรง มิฉะนั้น ให้เสียบการ์ด SD ลงในอะแดปเตอร์การ์ด SD จากนั้นเชื่อมต่ออะแดปเตอร์เข้ากับคอมพิวเตอร์ 
  • ลงชื่อเข้าใช้บัญชี Google ของเราและเปิด Google ชีต สร้างสเปรดชีตใหม่
  • ในสเปรดชีต ให้เปิดเมนู “ไฟล์” เลือก “นำเข้า” -> “อัปโหลด” -> “เรียกดู” จากนั้นเลือกไฟล์ CSV บนคอมพิวเตอร์ หลังจากอัปโหลดไฟล์ CSV แล้ว ให้คลิกปุ่ม “นำเข้าข้อมูล” หลังจากนำเข้าข้อมูลแล้ว คลิก “เปิดทันที” เพื่อดูข้อมูลที่รวบรวมไว้ในไฟล์ CSV

    ข้อมูล CSV ของโครงการเปิดอยู่ในเอกสาร Google Sheets มี 4 คอลัมน์สำหรับแสดงเวลา X, Y และ Z นอกจากนี้ยังมีข้อมูลหลายแถวที่บันทึกความเร่งในแต่ละช่วงเวลา

  • (ไม่บังคับ) วิธีง่ายๆ วิธีหนึ่งในการวิเคราะห์ข้อมูลคือการวาดกราฟ จากนั้นมองหาแนวโน้มของข้อมูล ในสเปรดชีต ให้เปิดเมนู “แทรก” และเลือก “แผนภูมิ” เพื่อวาดกราฟโดยใช้ข้อมูลในไฟล์ CSV กราฟต่อไปนี้เป็นผลลัพธ์ของข้อมูลการเร่งความเร็วที่รวบรวมด้วย VEX IQ Brain (2nd)

    Chart of the data is opened in Google Sheets, showing the acceleration of the X, Y, and Z axes over time. The Z value stays near negative one, and the X and Y values stay near zero.


    หมายเหตุ: เราสามารถใช้ ตัวแก้ไขแผนภูมิ เพื่อเลือกประเภทแผนภูมิอื่นหรือแก้ไขแผนภูมิตามความต้องการของเรา

เมื่อถึงจุดนี้ เราได้เสร็จสิ้นโครงการบันทึกข้อมูลที่รวบรวมข้อมูลด้วย VEX IQ Brain (2nd) และบันทึกเป็นไฟล์ CSV บนการ์ด SD นอกจากนี้เรายังได้เรียนรู้วิธีอ่านไฟล์ CSV บนการ์ด SD โดยใช้ Google ชีต และยังได้สร้างกราฟสำหรับการวิเคราะห์เพิ่มเติมอีกด้วย อะไรต่อไป? เรามาลองวางแผนการทดลองที่น่าตื่นเต้นยิ่งขึ้นโดยใช้ VEX Robot สำหรับการบันทึกข้อมูล เพื่อสังเกตว่าปัจจัยด้านสิ่งแวดล้อมที่เปลี่ยนแปลงส่งผลต่อข้อมูลประเภทต่างๆ อย่างไร และทำความเข้าใจโลกรอบตัวเราให้ลึกซึ้งยิ่งขึ้น

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: