โลโก้ SparkFun

SparkFun DEV-13712 อนุภาคโฟตอนพร้อมรูสำหรับการบัดกรี

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับผลิตภัณฑ์บัดกรี

ข้อมูลจำเพาะ

  • ชื่อผลิตภัณฑ์: OpenLog Data Logger
  • รุ่น : DEV-13712
  • กำลังไฟเข้า: 3.3V-12V (แนะนำ 3.3V-5V)
  • อินพุต RXItagอี: 2.0V-3.8V
  • ปริมาณเอาท์พุต TXOtagอี: 3.3V
  • กระแสไฟขณะไม่ได้ใช้งาน: ~2mA-5mA (ไม่มีการ์ด microSD), ~5mA-6mA (มีการ์ด microSD)
  • กระแสไฟที่ใช้เขียนแบบ Active: ~20-23mA (พร้อมการ์ด microSD)

คำแนะนำการใช้ผลิตภัณฑ์

วัสดุที่ต้องใช้:

  • Arduino โปรมินิ 328 – 3.3V/8MHz
  • การแยกสัญญาณพื้นฐาน SparkFun FTDI – 3.3V
  • สาย USB SparkFun Cerberus – 6 ฟุต
  • การ์ด microSD พร้อมอะแดปเตอร์ – 16GB (คลาส 10)
  • เครื่องอ่านการ์ด MicroSD USB
  • ส่วนหัวของผู้หญิง
  • สายจั๊มเปอร์ พรีเมี่ยม 6 M/M แพ็คละ 10 เส้น
  • แยกส่วนหัวชายออก – มุมขวา

หนังสือแนะนำ:

ฮาร์ดแวร์โอเวอร์view:
OpenLog ทำงานตามการตั้งค่าต่อไปนี้:

อินพุต VCC อินพุต RXI เอาท์พุต TXO การดึงกระแสไฟฟ้าขณะว่าง การเขียนเชิงรุก การวาดกระแส
3.3V-12V (แนะนำ 3.3V-5V) 2.0V-3.8V 3.3โวลต์ ~2mA-5mA (ไม่รวมการ์ด microSD), ~5mA-6mA (พร้อมการ์ด microSD) ~20- 23mA (พร้อมการ์ด microSD)

การแนะนำ

โปรดทราบ! บทช่วยสอนนี้มีไว้สำหรับ Open Log สำหรับ UART แบบอนุกรม [ DEV-13712 ] หากคุณใช้ Qwiic OpenLog สำหรับ IC [ DEV-15164 ] โปรดดูคู่มือการเชื่อมต่อ Qwiic OpenLog

OpenLog Data Logger เป็นโซลูชันโอเพ่นซอร์สที่ใช้งานง่ายสำหรับการบันทึกข้อมูลแบบอนุกรมจากโครงการของคุณ OpenLog นำเสนออินเทอร์เฟซแบบอนุกรมที่เรียบง่ายสำหรับการบันทึกข้อมูลจากโครงการไปยังการ์ด microSD

สปาร์คฟัน โอเพ่นล็อก
เดฟ-13712

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(1)

SparkFun OpenLog พร้อมส่วนหัว
เดฟ-13955

ไม่พบสินค้า

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

คู่มือการเชื่อมต่อ OpenLog

รายการความปรารถนาของ SparkFun

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(2)SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(3)

หนังสือแนะนำ
หากคุณไม่คุ้นเคยหรือไม่สบายใจกับแนวคิดต่อไปนี้ เราขอแนะนำให้อ่านแนวคิดเหล่านี้ก่อนดำเนินการต่อด้วย OpenLog Hookup Guide

  • วิธีการบัดกรี: การบัดกรีแบบรูทะลุ บทช่วยสอนนี้ครอบคลุมทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับการบัดกรีแบบรูทะลุ
  • การสื่อสารแบบอนุกรม แนวคิดการสื่อสารแบบอนุกรมแบบอะซิงโครนัส: แพ็คเก็ต ระดับสัญญาณ อัตราบอด UART และอื่นๆ อีกมากมาย!
  • อินเทอร์เฟซอุปกรณ์ต่อพ่วงแบบอนุกรม (SPI) SPI มักใช้ในการเชื่อมต่อไมโครคอนโทรลเลอร์กับอุปกรณ์ต่อพ่วง เช่น เซ็นเซอร์ ชิฟต์รีจิสเตอร์ และการ์ด SD
  • พื้นฐานเกี่ยวกับเทอร์มินัลซีเรียล บทช่วยสอนนี้จะแสดงวิธีการสื่อสารกับอุปกรณ์ซีเรียลของคุณโดยใช้แอปพลิเคชันจำลองเทอร์มินัลที่หลากหลาย

ฮาร์ดแวร์โอเวอร์view

พลัง
OpenLog ทำงานตามการตั้งค่าต่อไปนี้:

ระดับพลังงานของ OpenLog

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(4)

กระแสไฟที่ OpenLog ใช้คือประมาณ 20mA ถึง 23mA เมื่อเขียนลงใน microSD กระแสไฟที่ใช้งานได้จริงอาจแตกต่างกันไปเมื่อ OpenLog เขียนลงในการ์ดหน่วยความจำ ขึ้นอยู่กับขนาดของการ์ด microSD และผู้ผลิต การเพิ่มบอดเรทจะดึงกระแสไฟได้มากขึ้นด้วย

ไมโครคอนโทรลเลอร์
OpenLog ทำงานโดยใช้ ATmega328 บนบอร์ดที่ทำงานที่ความถี่ 16MHz ด้วยคริสตัลบนบอร์ด ATmega328 มี Optiboot bootloader โหลดไว้ ซึ่งทำให้ OpenLog สามารถทำงานร่วมกับ ATmegaXNUMX ได้
การตั้งค่าบอร์ด “Arduino Uno” ใน Arduino IDE

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(5)

อินเทอร์เฟซ

ซีเรียล UART
อินเทอร์เฟซหลักกับ OpenLog คือส่วนหัว FTDI บนขอบบอร์ด ส่วนหัวนี้ได้รับการออกแบบให้เสียบเข้ากับ Arduino Pro หรือ Pro Mini โดยตรง ซึ่งช่วยให้ไมโครคอนโทรลเลอร์ส่งข้อมูลผ่านการเชื่อมต่อแบบอนุกรมไปยัง OpenLog ได้

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(6)

คำเตือน! เนื่องจากการจัดลำดับพินที่ทำให้เข้ากันได้กับ Arduino จึงไม่สามารถเสียบเข้ากับบอร์ดเบรกเอาต์ FTDI โดยตรงได้

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(7)

สำหรับข้อมูลเพิ่มเติม โปรดดูส่วนถัดไปเกี่ยวกับการเชื่อมต่อฮาร์ดแวร์

เอสพีไอ

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

  • SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(8)OpenLog รุ่นล่าสุด (DEV-13712) แยกพินเหล่านี้ออกเป็นรูชุบขนาดเล็ก หากคุณจำเป็นต้องใช้ ISP เพื่อตั้งโปรแกรมใหม่หรืออัปโหลดบูตโหลดเดอร์ใหม่ไปยัง OpenLog คุณสามารถใช้พิน pogo เพื่อเชื่อมต่อกับจุดทดสอบเหล่านี้ได้
  • อินเทอร์เฟซสุดท้ายสำหรับการสื่อสารกับ OpenLog คือการ์ด microSD เอง ในการสื่อสาร การ์ด microSD ต้องใช้พิน SPI ไม่เพียงเท่านี้ OpenLog ยังจัดเก็บข้อมูลไว้ที่นี่ด้วย คุณยังสามารถอัปเดตการกำหนดค่าของ OpenLog ได้ผ่าน config.txt file บนการ์ด microSD
    แบบ microSD Card

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

  • 64MB ถึง 32GB
  • FAT16 หรือ FAT32

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(9)

มีไฟ LED สถานะสองดวงบน OpenLog เพื่อช่วยคุณแก้ไขปัญหา

  • STAT1 – ไฟ LED แสดงสถานะสีน้ำเงินนี้ติดอยู่กับ Arduino D5 (ATmega328 PD5) และสลับเปิด/ปิดเมื่อได้รับอักขระใหม่ ไฟ LED นี้จะกะพริบเมื่อการสื่อสารแบบอนุกรมทำงานอยู่
  • STAT2 – ไฟ LED สีเขียวนี้เชื่อมต่อกับ Arduino D13 (SPI Serial Clock Line/ ATmega328 PB5) ไฟ LED นี้จะกะพริบเฉพาะเมื่ออินเทอร์เฟซ SPI ทำงานอยู่เท่านั้น คุณจะเห็นไฟกะพริบเมื่อ OpenLog บันทึกข้อมูล 512 ไบต์ลงในการ์ด microSD

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(10)

การเชื่อมต่อฮาร์ดแวร์

มีสองวิธีหลักในการเชื่อมต่อ OpenLog ของคุณเข้ากับวงจร คุณจะต้องใช้เฮดเดอร์หรือสายไฟเพื่อเชื่อมต่อ ตรวจสอบให้แน่ใจว่าคุณบัดกรีเข้ากับบอร์ดเพื่อให้เชื่อมต่อได้อย่างปลอดภัย

การเชื่อมต่อแบบอนุกรมพื้นฐาน

เคล็ดลับ:หากคุณมีส่วนหัวแบบเมียบน OpenLog และส่วนหัวแบบเมียบน FTDI คุณจะต้องใช้สายจัมเปอร์ M/F เพื่อเชื่อมต่อ

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(11)

การเชื่อมต่อฮาร์ดแวร์นี้ได้รับการออกแบบมาเพื่อเชื่อมต่อกับ OpenLog หากคุณต้องการตั้งโปรแกรมบอร์ดใหม่หรือบันทึกข้อมูลผ่านการเชื่อมต่อแบบอนุกรมพื้นฐาน

ทำการเชื่อมต่อต่อไปนี้:
OpenLog → การแยกย่อย FTDI ขั้นพื้นฐาน 3.3V

  • ก.ด. → ก.ด.
  • ก.ด. → ก.ด.
  • VCC → 3.3 โวลต์
  • TXO → RXI
  • ริซิ → TXO
  • ดีทีอาร์ → ดีทีอาร์

โปรดทราบว่าไม่ใช่การเชื่อมต่อโดยตรงระหว่าง FTDI และ OpenLog – คุณต้องสลับการเชื่อมต่อพิน TXO และ RXI

การเชื่อมต่อของคุณควรมีลักษณะเหมือนต่อไปนี้:

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(12)

เมื่อคุณเชื่อมต่อ OpenLog กับ FTDI Basic เรียบร้อยแล้ว ให้เสียบบอร์ด FTDI เข้ากับสาย USB และคอมพิวเตอร์ของคุณ เปิดเทอร์มินัลซีเรียล เชื่อมต่อกับพอร์ต COM ของ FTDI Basic ของคุณ แล้วเริ่มใช้งานได้เลย!

การเชื่อมต่อฮาร์ดแวร์โครงการ

เคล็ดลับ: หากคุณบัดกรีส่วนหัวแบบตัวเมียไว้บน OpenLog คุณก็สามารถบัดกรีส่วนหัวแบบตัวผู้เข้ากับ Arduino Pro Mini เพื่อเสียบบอร์ดเข้าด้วยกันได้โดยไม่ต้องใช้สายไฟ

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(13)

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

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

บันทึก: หากคุณไม่แน่ใจว่าจะตั้งโปรแกรม Pro Mini ของคุณอย่างไร โปรดดูบทช่วยสอนของเราที่นี่

การใช้ Arduino Pro Mini 3.3V

  • บทช่วยสอนนี้เป็นคู่มือสำหรับทุกอย่างเกี่ยวกับ Arduino Pro Mini โดยจะอธิบายว่า Arduino Pro Mini คืออะไร ไม่ใช่ และวิธีเริ่มต้นใช้งาน
  • เมื่อคุณตั้งโปรแกรม Pro Mini เสร็จแล้ว คุณสามารถถอดบอร์ด FTDI ออกแล้วใส่ OpenLog เข้าไปแทนได้ ตรวจสอบให้แน่ใจว่าได้เชื่อมต่อพินที่ติดป้าย BLK ไว้บนทั้ง Pro Mini และ OpenLog (พินที่ติดป้าย GRN ไว้บนทั้งสองบอร์ดจะตรงกันหากทำอย่างถูกต้อง)
  • หากคุณไม่สามารถเสียบ OpenLog เข้ากับ Pro Mini โดยตรงได้ (เนื่องจากขั้วต่อไม่ตรงกันหรือมีบอร์ดอื่นกีดขวาง) ให้ใช้สายจัมเปอร์และทำการเชื่อมต่อดังต่อไปนี้

OpenLog → Arduino Pro/Arduino Pro Mini

  • ก.ด. → ก.ด.
  • ก.ด. → ก.ด.
  • วีซีซี → วีซีซี
  • TXO → RXI
  • ริซิ → TXO
  • ดีทีอาร์ → ดีทีอาร์

เมื่อเสร็จสิ้น การเชื่อมต่อของคุณควรมีลักษณะดังต่อไปนี้โดยใช้ Arduino Pro Mini และ Arduino Pro ไดอะแกรม Fritzing แสดง OpenLogs พร้อมส่วนหัวที่มิเรอร์ หากคุณพลิกซ็อกเก็ต microSD เทียบกับด้านบนของ Arduino viewควรตรงกับส่วนหัวการเขียนโปรแกรมเช่นเดียวกับ FTDI

SparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(14)

โปรดทราบว่าการเชื่อมต่อจะเป็นแบบตรงโดยให้ OpenLog คว่ำลง (โดยให้ microSD หันขึ้นด้านบน)

บันทึก: เนื่องจาก Vcc และ GND ระหว่าง OpenLog และ Arduino ถูกครอบครองโดยเฮดเดอร์ คุณจึงต้องเชื่อมต่อแหล่งจ่ายไฟกับพินอื่นๆ ที่มีใน Arduino มิฉะนั้น คุณสามารถบัดกรีสายไฟเข้ากับพินไฟที่เปิดอยู่บนบอร์ดใดบอร์ดหนึ่งได้

เพิ่มพลังให้ระบบของคุณ และคุณก็พร้อมที่จะเริ่มต้นการบันทึกแล้ว!

สเก็ตช์ Arduino

มีหกตัวอย่างที่แตกต่างกันampมีแบบร่างรวมอยู่ด้วยซึ่งคุณสามารถใช้งานบน Arduino ได้เมื่อเชื่อมต่อกับ OpenLog

  • OpenLog_Benchmarking — ตัวอย่างนี้ample ใช้เพื่อทดสอบ OpenLog ซึ่งจะส่งข้อมูลจำนวนมากที่ความเร็ว 115200bps ผ่านหลาย ๆ files.
  • OpenLog_CommandTest — แบบนี้ample แสดงวิธีการสร้างและผนวก file ผ่านการควบคุมผ่านบรรทัดคำสั่งผ่าน Arduino
  • OpenLog_อ่านเอ็กซ์ample — อดีตนี้ampแสดงวิธีการควบคุม OpenLog ผ่านทางบรรทัดคำสั่ง
  • OpenLog_อ่านเอ็กซ์ample_ใหญ่File - อดีตampวิธีเปิดตู้เก็บของขนาดใหญ่ file บน OpenLog และรายงานผ่านการเชื่อมต่อบลูทูธในพื้นที่
  • OpenLog_Test_Sketch — ใช้เพื่อทดสอบ OpenLog ด้วยข้อมูลอนุกรมจำนวนมาก
  • OpenLog_Test_Sketch_Binary — ใช้เพื่อทดสอบ OpenLog ด้วยข้อมูลไบนารีและอักขระหลบหนี

เฟิร์มแวร์

OpenLog มีซอฟต์แวร์หลักสองชิ้นบนบอร์ด: บูตโหลดเดอร์และเฟิร์มแวร์

บูทโหลดเดอร์ Arduino

บันทึก: หากคุณใช้ OpenLog ที่ซื้อก่อนเดือนมีนาคม 2012 บูตโหลดเดอร์บนบอร์ดจะเข้ากันได้กับการตั้งค่า “Arduino Pro หรือ Pro Mini 5V/16MHz w/ ATmega328” ใน Arduino IDE

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

การคอมไพล์และการโหลดเฟิร์มแวร์ลงใน OpenLog

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

  • หากด้วยเหตุผลใดก็ตามคุณจำเป็นต้องอัปเดตหรือติดตั้งเฟิร์มแวร์ใหม่บน OpenLog ของคุณ กระบวนการต่อไปนี้จะทำให้บอร์ดของคุณทำงานได้
  • ก่อนอื่น โปรดดาวน์โหลด Arduino IDE v1.6.5 IDE เวอร์ชันอื่นอาจใช้ในการคอมไพล์เฟิร์มแวร์ OpenLog ได้ แต่เราได้ตรวจสอบแล้วว่าเป็นเวอร์ชันที่ใช้งานได้
  • ขั้นตอนต่อไป ดาวน์โหลดเฟิร์มแวร์ OpenLog และชุดไลบรารีที่จำเป็น

ดาวน์โหลดชุดเฟิร์มแวร์ OPENLOG (ZIP)

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

บันทึก:

  • เรากำลังใช้ไลบรารี SdFat และ SerialPort เวอร์ชันที่แก้ไขแล้วเพื่อประกาศขนาดบัฟเฟอร์ TX และ RX ที่ต้องการโดยพลการ OpenLog กำหนดให้บัฟเฟอร์ TX ต้องมีขนาดเล็กมาก (0) และบัฟเฟอร์ RX ต้องมีขนาดใหญ่ที่สุดเท่าที่จะเป็นไปได้
  • การใช้ไลบรารีที่ปรับเปลี่ยนทั้งสองนี้ร่วมกันช่วยให้ประสิทธิภาพของ OpenLog เพิ่มขึ้น

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

  • GitHub: OpenLog > เฟิร์มแวร์ > OpenLog_Firmware
  • ห้องสมุด Arduino ของ Bill Greiman
    • SdFatLib เบต้า
    • พอร์ตซีเรียล
  • ต่อไปจะทำการ advantage ของไลบรารีที่แก้ไขแล้ว ให้แก้ไข SerialPort.hh file พบในไดเร็กทอรี \Arduino\Libraries\SerialPort เปลี่ยน BUFFERED_TX เป็น 0 และ ENABLE_RX_ERROR_CHECKING เป็น 0 บันทึก fileและเปิด Arduino IDE ขึ้นมา
  • หากคุณยังไม่ได้เชื่อมต่อ OpenLog ของคุณกับคอมพิวเตอร์ผ่านบอร์ด FTDI โปรดตรวจสอบอีกครั้งampวงจรหากคุณไม่แน่ใจว่าจะทำอย่างไรให้ถูกต้อง
  • เปิดสเก็ตช์ OpenLog ที่คุณต้องการอัปโหลดภายใต้เมนูเครื่องมือ>บอร์ด เลือก “Arduino/Genuino Uno” และเลือกพอร์ต COM ที่เหมาะสมสำหรับบอร์ด FTDI ของคุณภายใต้เครื่องมือ>พอร์ต
  • อัพโหลดรหัส
  • เท่านี้ OpenLog ของคุณก็ได้รับการตั้งโปรแกรมด้วยเฟิร์มแวร์ใหม่แล้ว ตอนนี้คุณสามารถเปิดมอนิเตอร์แบบอนุกรมและโต้ตอบกับ OpenLog ได้ เมื่อเปิดเครื่อง คุณจะเห็น 12> หรือ 12< โดย 1 ระบุว่าการเชื่อมต่อแบบอนุกรมได้รับการสร้างขึ้นแล้ว 2 ระบุว่าการ์ด SD ได้เริ่มต้นการทำงานเรียบร้อยแล้ว < ระบุว่า OpenLog พร้อมที่จะบันทึกข้อมูลอนุกรมที่ได้รับ และ > ระบุว่า OpenLog พร้อมที่จะรับคำสั่งแล้ว

โครงร่างเฟิร์มแวร์ OpenLog
มีแบบร่างสามแบบที่รวมอยู่ที่คุณสามารถใช้กับ OpenLog ได้ ขึ้นอยู่กับแอปพลิเคชันเฉพาะของคุณ

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

ชุดคำสั่ง

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

ขณะที่ OpenLog อยู่ในโหมดคำสั่ง STAT1 จะเปิด/ปิดสำหรับทุกอักขระที่ได้รับ ไฟ LED จะยังคงสว่างอยู่จนกว่าจะได้รับอักขระถัดไป

  • ใหม่ File – สร้างสิ่งใหม่ file ชื่อ File ในไดเรกทอรีปัจจุบัน มาตรฐาน 8.3 fileชื่อได้รับการสนับสนุน เช่นamp“87654321.123” เป็นที่ยอมรับได้ ในขณะที่ “987654321.123” เป็นที่ยอมรับไม่ได้
    • Exampเล: ใหม่ file1.txt
  • ผนวก File – ผนวกข้อความลงท้ายข้อความ Fileจากนั้นข้อมูลอนุกรมจะถูกอ่านจาก UART ในสตรีมและเพิ่มลงใน file. มันจะไม่สะท้อนไปที่ขั้วต่อซีเรียล หาก File ไม่มีอยู่เมื่อเรียกใช้ฟังก์ชันนี้ file จะถูกสร้างขึ้นมา
    • Example: ผนวกใหม่file.csv
  • เขียน File OFFSET – เขียนข้อความลงใน File จากตำแหน่ง OFFSET ภายใน fileข้อความจะถูกอ่านจาก UART ทีละบรรทัดและสะท้อนกลับมา หากต้องการออกจากสถานะนี้ ให้ส่งบรรทัดว่าง
    • Example: เขียน logs.txt 516
  • rm File – ลบ File จากไดเร็กทอรีปัจจุบัน รองรับไวด์การ์ด
    • Exampไฟล์: rm README.txt
  • ขนาด File – ขนาดเอาท์พุตของ File ในหน่วยไบต์
    • Example: ขนาด Log112.csv
    • เอาท์พุต: 11
  • อ่าน File + START+ LENGTH TYPE – แสดงเนื้อหาของ File เริ่มจาก START และไปจนถึง LENGTH หากละเว้น START ออกไป file จะมีการแจ้งข้อมูล หากละเว้น LENGTH ระบบจะรายงานเนื้อหาทั้งหมดตั้งแต่จุดเริ่มต้น หากละเว้น TYPE OpenLog จะรายงานข้อมูลในรูปแบบ ASCII ตามค่าเริ่มต้น มี TYPE เอาต์พุตสามประเภท:
    • แอสกี = 1
    • HEX = 2
    • ดิบ = 3
  • คุณอาจละเว้นข้อโต้แย้งที่ตามมาบางส่วน ตรวจสอบตัวอย่างต่อไปนี้ampเลส.
  • การอ่านพื้นฐาน + การละเว้นแฟล็ก:
    • Example: อ่าน LOG00004.txt
    • เอาต์พุต: เครื่องวัดความเร่ง X=12 Y=215 Z=317
  • อ่านจากจุดเริ่มต้น 0 ด้วยความยาว 5:
    • Example: อ่าน LOG00004.txt 0 5
    • เอาท์พุต: เร่ง
  • อ่านจากตำแหน่ง 1 ด้วยความยาว 5 ใน HEX:
    • Example: อ่าน LOG00004.txt 1 5 2
    • เอาท์พุต: 63 63 65 6C
  • อ่านจากตำแหน่ง 0 ด้วยความยาว 50 ใน RAW:
    • Example: อ่าน LOG00137.txt 0 50 3
    • ผลลัพธ์: การทดสอบตัวละครขยาย André– -þ
  • แมว File – เขียนเนื้อหาของก file ในเลขฐานสิบหกไปยังมอนิเตอร์แบบอนุกรมสำหรับ viewบางครั้งสิ่งนี้อาจเป็นประโยชน์หากเห็นว่า file ก็บันทึกได้อย่างถูกต้องโดยไม่ต้องดึงการ์ด SD ออกมา view เดอะ file บนคอมพิวเตอร์
    • Examp: แมว LOG00004.txt
    • เอาท์พุต : 00000000: 41 63 65 6c 3a 20 31

การจัดการไดเรกทอรี

  • ls – แสดงเนื้อหาทั้งหมดในไดเร็กทอรีปัจจุบัน รองรับไวลด์การ์ด
    • Exampเล:ลเอส
    • เอาท์พุต: \src
  • ไดเร็กทอรีย่อย md – สร้างไดเร็กทอรีย่อยในไดเร็กทอรีปัจจุบัน
    • Example: md เอ็กซ์ample_สเก็ตช์
  • cd Subdirectory – เปลี่ยนเป็นไดเร็กทอรีย่อย
    • Example: ซีดี Hello_World
  • cd .. – เปลี่ยนเป็นไดเร็กทอรีที่ต่ำกว่าในทรี โปรดสังเกตว่ามีช่องว่างระหว่าง 'cd' และ '..' ซึ่งจะทำให้ตัววิเคราะห์สตริงมองเห็นคำสั่ง CD ได้
    • Exampเล: ซีดี ..
  • rm Subdirectory – ลบไดเร็กทอรีย่อย ไดเร็กทอรีจะต้องว่างเปล่าเพื่อให้คำสั่งนี้ทำงานได้
    • Example: rm temps
  • rm -rf Directory – ลบไดเรกทอรีและสิ่งใดๆ fileมีอยู่ภายในนั้น
    • Example: rm -rf ไลบรารี

คำสั่งฟังก์ชั่นระดับต่ำ

  • ? – คำสั่งนี้จะดึงรายการคำสั่งที่มีอยู่บน OpenLog
  • ดิสก์ – แสดงรหัสผู้ผลิตการ์ด หมายเลขซีเรียล วันที่ผลิต และขนาดการ์ด เช่นampผลลัพธ์ที่ได้คือ:
    • ประเภทการ์ด: SD2 ID ผู้ผลิต: 3
    • รหัส OEM: SD
    • สินค้า : SU01G
    • เวอร์ชัน : 8.0
    • หมายเลขซีเรียล : 39723042 วันที่ผลิต : 1/2010 ขนาดการ์ด : 965120 KB
  • init – เริ่มต้นระบบใหม่และเปิดการ์ด SD อีกครั้ง วิธีนี้มีประโยชน์ในกรณีที่การ์ด SD ไม่ตอบสนอง
  • Sync – ซิงโครไนซ์เนื้อหาปัจจุบันของบัฟเฟอร์ไปยังการ์ด SD คำสั่งนี้มีประโยชน์หากคุณมีอักขระในบัฟเฟอร์น้อยกว่า 512 ตัวและต้องการบันทึกลงในการ์ด SD
  • รีเซ็ต – กระโดด OpenLog ไปที่ตำแหน่งศูนย์ รันโปรแกรมโหลดบูตอีกครั้ง จากนั้นจึงรันโค้ดเริ่มต้น คำสั่งนี้มีประโยชน์หากคุณต้องการแก้ไขการกำหนดค่า fileรีเซ็ต OpenLog และเริ่มใช้การกำหนดค่าใหม่ การปิดและเปิดเครื่องใหม่ยังคงเป็นวิธีการที่ต้องการในการรีเซ็ตบอร์ด แต่มีตัวเลือกนี้ให้เลือกใช้

การตั้งค่าระบบ

การตั้งค่าเหล่านี้สามารถอัปเดตหรือแก้ไขด้วยตนเองได้ใน config.txt file.

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

บันทึก: ในระหว่างการบันทึกปกติ เสียงสะท้อนจะถูกปิด ความต้องการทรัพยากรระบบสำหรับการสะท้อนข้อมูลที่ได้รับนั้นสูงเกินไปในระหว่างการบันทึก

  • สถานะแบบละเอียด - เปลี่ยนสถานะของการรายงานข้อผิดพลาดแบบละเอียด สถานะสามารถเปิดหรือปิดได้ คำสั่งนี้จะถูกเก็บไว้ในหน่วยความจำ การปิดข้อผิดพลาดแบบละเอียด OpenLog จะตอบสนองด้วยเครื่องหมาย ! เท่านั้น หากมีข้อผิดพลาด แทนที่จะเป็นคำสั่งที่ไม่รู้จัก: C OMMAND.D..T ลักษณะดังกล่าวทำให้ระบบฝังตัวสามารถแยกวิเคราะห์ได้ง่ายกว่าข้อผิดพลาดทั้งหมด หากคุณใช้เทอร์มินัล การเปิดสถานะแบบละเอียดไว้จะทำให้คุณเห็นข้อความแสดงข้อผิดพลาดทั้งหมดได้
  • baud – คำสั่งนี้จะเปิดเมนูระบบขึ้นมาเพื่อให้ผู้ใช้ป้อนอัตราบอดได้ โดยรองรับอัตราบอดใดๆ ระหว่าง 300bps ถึง 1Mbps การเลือกอัตราบอดนั้นทำได้ทันที และ OpenLog จะต้องปิดและเปิดเครื่องใหม่เพื่อให้การตั้งค่ามีผล อัตราบอดจะถูกเก็บไว้ใน EEPROM และจะถูกโหลดทุกครั้งที่ OpenLog เปิดเครื่อง โดยค่าเริ่มต้นคือ 9600 8N1

จดจำ: หากบอร์ดของคุณติดอยู่ในบอดเรทที่ไม่รู้จัก คุณสามารถเชื่อมต่อ RX กับ GND และเปิด OpenLog ขึ้นมาได้ ไฟ LED จะกะพริบไปมาเป็นเวลา 2 วินาที จากนั้นจะกะพริบพร้อมกัน ปิด OpenLog และถอดจัมเปอร์ออก OpenLog จะถูกรีเซ็ตเป็น 9600bps โดยกดอักขระ escape ของ `CTRL-Z` สามครั้งติดต่อกัน คุณสมบัตินี้สามารถถูกแทนที่ได้โดยตั้งค่าบิตการแทนที่ฉุกเฉินเป็น 1 ดูข้อมูลเพิ่มเติมใน config.txt

  • ตั้งค่า – คำสั่งนี้จะเปิดเมนูระบบเพื่อเลือกโหมดการบูต การตั้งค่าเหล่านี้จะเกิดขึ้นเมื่อเปิดเครื่องในครั้งถัดไปและจะถูกเก็บไว้ใน EEPROM ที่ไม่ลบเลือน
    • ใหม่ File การบันทึก – โหมดนี้จะสร้างใหม่ file ทุกครั้งที่ OpenLog เปิดเครื่อง OpenLog จะส่ง 1 (UART กำลังทำงาน) 2 (การ์ด SD ถูกกำหนดค่าเริ่มต้น) จากนั้น < (OpenLog พร้อมที่จะรับข้อมูล) ข้อมูลทั้งหมดจะถูกบันทึกลงใน LOG#####.txt ตัวเลข ##### จะเพิ่มขึ้นทุกครั้งที่ OpenLog เปิดเครื่อง (สูงสุดคือ 65533 บันทึก) ตัวเลขจะถูกเก็บไว้ใน EEPROM และสามารถรีเซ็ตได้จากเมนูตั้งค่า ไม่ใช่ว่าอักขระที่รับทั้งหมดจะถูกสะท้อนกลับ คุณสามารถออกจากโหมดนี้และเข้าสู่โหมดคำสั่งได้โดยการส่ง CTRL+z (ASCII 26) ข้อมูลที่บัฟเฟอร์ทั้งหมดจะถูกเก็บไว้
  • บันทึก: หากสร้างบันทึกมากเกินไป OpenLog จะแสดงข้อผิดพลาด **บันทึกมากเกินไป** ออกจากโหมดนี้และไปที่ Command Prompt ผลลัพธ์แบบอนุกรมจะมีลักษณะดังนี้ `12! บันทึกมากเกินไป!
    • ผนวก File การบันทึกข้อมูล – หรือเรียกอีกอย่างว่าโหมดต่อเนื่อง โหมดนี้จะสร้าง file เรียก SEQLOG.txt หากยังไม่มีอยู่ และผนวกข้อมูลที่ได้รับใดๆ ลงใน fileOpenLog จะส่ง 12< เมื่อถึงเวลาที่ OpenLog พร้อมที่จะรับข้อมูล อักขระจะไม่ถูกสะท้อน คุณสามารถออกจากโหมดนี้และเข้าสู่โหมดคำสั่งได้โดยส่ง CTRL+z (ASCII 26) ข้อมูลที่บัฟเฟอร์ทั้งหมดจะถูกเก็บไว้
    • พรอมต์คำสั่ง – OpenLog จะส่งเวลา 12> เมื่อระบบพร้อมที่จะรับคำสั่ง โปรดทราบว่าเครื่องหมาย > ระบุว่า OpenLog พร้อมที่จะรับคำสั่ง ไม่ใช่ข้อมูล คุณสามารถสร้าง fileและผนวกข้อมูลเข้า fileแต่สิ่งนี้ต้องการการวิเคราะห์แบบอนุกรม (เพื่อตรวจสอบข้อผิดพลาด) ดังนั้นเราจึงไม่ได้ตั้งค่าโหมดนี้ตามค่าเริ่มต้น
    • รีเซ็ตใหม่ File หมายเลข – โหมดนี้จะรีเซ็ตบันทึก file หมายเลขไปที่ LOG000.txt ซึ่งจะเป็นประโยชน์หากคุณเพิ่งล้างการ์ด microSD ออกและต้องการบันทึก file ตัวเลขที่จะเริ่มต้นใหม่อีกครั้ง
    • อักขระ Escape ใหม่ – ตัวเลือกนี้ช่วยให้ผู้ใช้สามารถป้อนอักขระ เช่น CTRL+z หรือ $ และตั้งค่าเป็นอักขระ Escape ใหม่ได้ การตั้งค่านี้จะรีเซ็ตเป็น CTRL+z ในระหว่างการรีเซ็ตฉุกเฉิน
    • จำนวนอักขระ Escape – ตัวเลือกนี้ช่วยให้ผู้ใช้สามารถป้อนอักขระ (เช่น 1, 3 หรือ 17) โดยอัปเดตจำนวนอักขระ Escape ใหม่ที่จำเป็นในการออกจากโหมดคำสั่ง ตัวอย่างเช่นampหากป้อนเลข 8 ผู้ใช้จะต้องกด CTRL+z แปดครั้งเพื่อเข้าสู่โหมดคำสั่ง การตั้งค่านี้จะรีเซ็ตเป็น 3 ในระหว่างการรีเซ็ตฉุกเฉิน
  • คำอธิบายอักขระหลบหนี: เหตุผลที่ OpenLog ต้องกด `CTRL+z` 3 ครั้งเพื่อเข้าสู่โหมดคำสั่งคือเพื่อป้องกันไม่ให้บอร์ดถูกรีเซ็ตโดยไม่ได้ตั้งใจระหว่างการอัปโหลดโค้ดใหม่จาก Arduino IDE มีโอกาสที่บอร์ดจะเห็นอักขระ `CTRL+z` ปรากฏขึ้นระหว่างการบูตโหลด (ปัญหาที่เราพบในเฟิร์มแวร์ OpenLog เวอร์ชันแรกๆ) ดังนั้นจึงมีจุดประสงค์เพื่อป้องกันไม่ให้เกิดขึ้น หากคุณสงสัยว่าบอร์ดของคุณเสียหายเนื่องจากสาเหตุนี้ คุณสามารถรีเซ็ตฉุกเฉินได้เสมอโดยยึดพิน RX ไว้ที่กราวด์ระหว่างการเปิดเครื่อง

การกำหนดค่า File

หากคุณไม่ต้องการใช้เทอร์มินัลอนุกรมในการแก้ไขการตั้งค่าบน OpenLog คุณยังสามารถอัปเดตการตั้งค่าได้โดยการแก้ไขไฟล์ CONFIG.TXT file.

บันทึก: ฟีเจอร์นี้จะใช้งานได้เฉพาะเฟิร์มแวร์เวอร์ชัน 1.6 หรือใหม่กว่าเท่านั้น หากคุณซื้อ OpenLog หลังจากปี 2012 คุณจะใช้เฟิร์มแวร์เวอร์ชัน 1.6 ขึ้นไป

  • ในการดำเนินการนี้ คุณจะต้องมีเครื่องอ่านการ์ด microSD และโปรแกรมแก้ไขข้อความ เปิดไฟล์ config.txt file (การใช้ตัวพิมพ์ใหญ่ของ file ชื่อไม่สำคัญ) และกำหนดค่าได้เลย! หากคุณไม่เคยเปิดใช้งาน OpenLog ด้วยการ์ด SD มาก่อน คุณสามารถสร้างด้วยตนเองได้ fileหากคุณได้เปิดใช้งาน OpenLog โดยใส่การ์ด microSD ไว้ก่อนหน้านี้ คุณควรเห็นสิ่งที่คล้ายกับต่อไปนี้เมื่อคุณอ่านการ์ด microSDSparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(15)OpenLog สร้างไฟล์ config.txt และ LOG0000.txt file เมื่อเปิดเครื่องครั้งแรก
  • การกำหนดค่าเริ่มต้น file มีบรรทัดการตั้งค่าหนึ่งบรรทัดและบรรทัดคำจำกัดความหนึ่งบรรทัดSparkFun-DEV-13712-อนุภาคโฟตอนที่มีรูสำหรับบัดกรี-รูปที่-(16)การกำหนดค่าเริ่มต้น file ถูกเขียนโดย OpenLog
  • โปรดทราบว่าสิ่งเหล่านี้เป็นอักขระที่มองเห็นได้ปกติ (ไม่มีค่าที่ไม่สามารถมองเห็นได้หรือค่าไบนารี) และแต่ละค่าจะคั่นด้วยเครื่องหมายจุลภาค

การตั้งค่าถูกกำหนดดังนี้:

  • บอดเรท: อัตราบอดการสื่อสาร ค่าเริ่มต้นคือ 9600 bps ค่าที่ยอมรับได้ซึ่งเข้ากันได้กับ Arduino IDE คือ 2400, 4800, 9600, 19200, 38400, 57600 และ 115200 คุณสามารถใช้บอดเรทอื่นได้ แต่คุณจะไม่สามารถสื่อสารกับ OpenLog ผ่านมอนิเตอร์แบบอนุกรม Arduino IDE ได้
  • Escap:e ค่า ASCII (ในรูปแบบทศนิยม) ของอักขระ escape 26 คือ CTRL+z และเป็นค่าเริ่มต้น 36 คือ $ และเป็นอักขระ escape ที่ใช้กันทั่วไป
  • หมายเลข Esc: จำนวนอักขระ escape ที่จำเป็น โดยค่าเริ่มต้นคือ 0 ตัว ดังนั้นคุณต้องกดอักขระ escape สามครั้งเพื่อจะเข้าสู่โหมดคำสั่ง ค่าที่ยอมรับได้คือ 254 ถึง 0 การตั้งค่านี้เป็น XNUMX จะปิดการตรวจสอบอักขระ escape อย่างสมบูรณ์
  • โหมดระบบ OpenLog เริ่มต้นในโหมด New Log (0) ตามค่าเริ่มต้น ค่าที่ยอมรับได้คือ 0 = New Log, 1 = Sequential Log, 2 = Command Mode
  • กริยา: โหมดละเอียด ข้อความแสดงข้อผิดพลาดแบบละเอียดจะถูกเปิดใช้งานตามค่าเริ่มต้น การตั้งค่าเป็น 1 จะเปิดข้อความแสดงข้อผิดพลาดแบบละเอียด (เช่น คำสั่งที่ไม่รู้จัก: ลบ ! ) การตั้งค่าเป็น 0 จะปิดข้อผิดพลาดแบบละเอียด แต่จะตอบกลับด้วย ! หากมีข้อผิดพลาด การปิดโหมดละเอียดจะมีประโยชน์หากคุณกำลังพยายามจัดการข้อผิดพลาดจากระบบฝังตัว
  • Echo: โหมด Echo ขณะอยู่ในโหมดคำสั่ง อักขระจะถูกสะท้อนกลับตามค่าเริ่มต้น การตั้งค่านี้เป็น 0 จะปิดการสะท้อนกลับของอักขระ การปิดโหมดนี้จะมีประโยชน์เมื่อต้องจัดการกับข้อผิดพลาด และคุณไม่ต้องการให้คำสั่งที่ส่งถูกสะท้อนกลับไปยัง OpenLog.II
  • iignoreRXEmergency Override โดยปกติ OpenLog จะรีเซ็ตฉุกเฉินเมื่อพิน RX ถูกดึงลงต่ำระหว่างเปิดเครื่อง การตั้งค่านี้เป็น 1 จะปิดการใช้งานการตรวจสอบพิน RX ระหว่างเปิดเครื่อง ซึ่งอาจมีประโยชน์สำหรับระบบที่กดสาย RX ลงต่ำด้วยเหตุผลหลายประการ หากปิดการใช้งาน Emergency Override คุณจะไม่สามารถบังคับให้อุปกรณ์กลับสู่ 9600bps ได้ และการกำหนดค่า file จะเป็นวิธีเดียวที่จะปรับเปลี่ยนอัตราบอดเรทได้

OpenLog ปรับเปลี่ยนการกำหนดค่าอย่างไร File
มีห้าสถานการณ์ที่แตกต่างกันสำหรับ OpenLog ในการปรับเปลี่ยน config.txt file.

  • การกำหนดค่า file พบ: ในระหว่างเปิดเครื่อง OpenLog จะค้นหา config.txt file. หากมีการ file เมื่อพบว่า OpenLog จะใช้การตั้งค่าที่มีอยู่และเขียนทับการตั้งค่าระบบที่จัดเก็บไว้ก่อนหน้านี้
  • ไม่มีการกำหนดค่า file พบ: หาก OpenLog ไม่พบ config.txt file จากนั้น OpenLog จะสร้างไฟล์ config.txt และบันทึกการตั้งค่าระบบที่จัดเก็บไว้ในปัจจุบันลงในไฟล์นี้ ซึ่งหมายความว่าหากคุณใส่การ์ด microSD ที่ฟอร์แมตใหม่ ระบบของคุณจะยังคงรักษาการตั้งค่าปัจจุบันเอาไว้
  • การกำหนดค่าเสียหาย file พบ: OpenLog จะลบไฟล์ config.txt ที่เสียหาย fileและจะเขียนใหม่ทั้งการตั้งค่า EEPROM ภายในและการตั้งค่า config.txt file ไปสู่สถานะที่รู้ว่าดีของ 9600,26,3,0,1,1,0
  • ค่าผิดกฎหมายใน config file:หาก OpenLog ตรวจพบการตั้งค่าใดๆ ที่มีค่าที่ไม่ถูกต้อง OpenLog จะเขียนทับค่าที่เสียหายใน config.txt file โดยใช้การตั้งค่าระบบ EEPROM ที่จัดเก็บไว้ในปัจจุบัน
  • การเปลี่ยนแปลงผ่านพรอมต์คำสั่ง: หากมีการเปลี่ยนแปลงการตั้งค่าระบบผ่านพรอมต์คำสั่ง (ไม่ว่าจะผ่านการเชื่อมต่อแบบอนุกรมหรือผ่านคำสั่งอนุกรมของไมโครคอนโทรลเลอร์) การเปลี่ยนแปลงเหล่านั้นจะถูกบันทึกทั้งไปยัง EEPROM ของระบบและใน config.txt file.
  • การรีเซ็ตฉุกเฉิน: หากปิดและเปิด OpenLog โดยใช้จัมเปอร์ระหว่าง RX และ GND และตั้งค่าบิตการแทนที่ฉุกเฉินเป็น 0 (อนุญาตให้รีเซ็ตฉุกเฉิน) OpenLog จะเขียนค่าการตั้งค่า EEPROM ภายในและค่าการตั้งค่า config.txt ใหม่ file ไปสู่สถานะที่รู้ว่าดีของ 9600,26,3,0,1,1,0

การแก้ไขปัญหา

มีตัวเลือกต่าง ๆ มากมายในการตรวจสอบว่าคุณประสบปัญหาในการเชื่อมต่อผ่านมอนิเตอร์แบบอนุกรม มีปัญหาเกี่ยวกับอักขระที่หายไปในบันทึก หรือต่อสู้กับ OpenLog ที่เสียหาย

ตรวจสอบพฤติกรรมของ LED STAT1
LED STAT1 แสดงพฤติกรรมที่แตกต่างกันสำหรับข้อผิดพลาดทั่วไปสองประการที่แตกต่างกัน

  • ไฟกะพริบ 3 ดวง: การ์ด microSD ไม่สามารถเริ่มต้นการทำงานได้ คุณอาจต้องฟอร์แมตการ์ดด้วย FAT/FAT16 บนคอมพิวเตอร์
  • 5 การกะพริบ: OpenLog ได้เปลี่ยนเป็นอัตราบอดเรทใหม่และจำเป็นต้องปิดและเปิดเครื่องใหม่

ตรวจสอบโครงสร้างไดเรกทอรีย่อยอีกครั้ง

  • หากคุณใช้ OpenLog.ino แบบเริ่มต้นampOpenLog จะรองรับไดเร็กทอรีย่อยเพียง 2 รายการเท่านั้น คุณจะต้องเปลี่ยน FOLDER_TRACK_DEPTH จาก XNUMX เป็นจำนวนไดเร็กทอรีย่อยที่คุณต้องการรองรับ เมื่อคุณทำเสร็จแล้ว ให้คอมไพล์โค้ดใหม่ และอัปโหลดเฟิร์มแวร์ที่แก้ไขแล้ว
  • ตรวจสอบจำนวน Files ในไดเร็กทอรีรูท
  • OpenLog จะรองรับบันทึกได้สูงสุด 65,534 รายการ files ในไดเร็กทอรีรูท เราขอแนะนำให้ฟอร์แมตการ์ด microSD ของคุณใหม่เพื่อปรับปรุงความเร็วในการบันทึกข้อมูล
  • ตรวจสอบขนาดของเฟิร์มแวร์ที่คุณแก้ไข
  • หากคุณกำลังเขียนสเก็ตช์แบบกำหนดเองสำหรับ OpenLog โปรดตรวจสอบว่าสเก็ตช์ของคุณมีขนาดไม่เกิน 32,256 หากเป็นเช่นนั้น สเก็ตช์จะถูกตัดเข้าไปในหน่วยความจำแฟลชขนาด 500 ไบต์บน ซึ่งใช้โดยบูตโหลดเดอร์แบบอนุกรม Optiboot
  • ตรวจสอบสองครั้ง File ชื่อ
  • ทั้งหมด file ชื่อควรเป็นตัวอักษรและตัวเลข MyLOG1.txt ใช้ได้ แต่ Hi !e _ .txtt อาจใช้ไม่ได้
  • ใช้บอด 9600
  • OpenLog ทำงานบน ATmega328 และมี RAM จำนวนจำกัด (2048 ไบต์) เมื่อคุณส่งอักขระแบบอนุกรมไปยัง OpenLog อักขระเหล่านี้จะถูกบัฟเฟอร์ ข้อกำหนดแบบง่ายของกลุ่ม SD อนุญาตให้การ์ด SD ใช้เวลาในการบันทึกบล็อกข้อมูลลงในหน่วยความจำแฟลชสูงสุด 250 มิลลิวินาที (ส่วน 4.6.2.2 การเขียน)
  • ที่ 9600bps นั่นคือ 960 ไบต์ (10 บิตต่อไบต์) ต่อวินาที นั่นคือ 1.04 มิลลิวินาทีต่อไบต์ ปัจจุบัน OpenLog ใช้บัฟเฟอร์รับข้อมูลขนาด 512 ไบต์ จึงสามารถบัฟเฟอร์อักขระได้ประมาณ 50 มิลลิวินาที ซึ่งช่วยให้ OpenLog สามารถรับอักขระทั้งหมดที่ส่งมาที่ 9600bps ได้สำเร็จ เมื่อคุณเพิ่มบอดเรท บัฟเฟอร์จะมีอายุการใช้งานน้อยลง

เวลาโอเวอร์รันบัฟเฟอร์ OpenLog

อัตราบอดเรท เวลาต่อไบต์ เวลาจนกว่าบัฟเฟอร์จะหมด
9600bps 1.04มิลลิวินาที 532มิลลิวินาที
57600bps 0.174มิลลิวินาที 88มิลลิวินาที
115200bps 0.087มิลลิวินาที 44มิลลิวินาที

การ์ด SD หลายตัวมีเวลาบันทึกข้อมูลเร็วกว่า 250 มิลลิวินาที ซึ่งอาจได้รับผลกระทบจาก "คลาส" ของการ์ดและปริมาณข้อมูลที่จัดเก็บอยู่ในการ์ดอยู่แล้ว วิธีแก้ปัญหาคือใช้บอดเรทที่ต่ำกว่าหรือเพิ่มระยะเวลาระหว่างอักขระที่ส่งด้วยบอดเรทที่สูงกว่า

ฟอร์แมตการ์ด MicroSD ของคุณ
อย่าลืมใช้การ์ดที่มีจำนวนน้อยหรือไม่มีเลย fileมีการ์ด microSD ที่มีความจุ 3.1GB ในรูปแบบ ZIP fileหรือ MP3 มีเวลาตอบสนองช้ากว่าการ์ดเปล่า หากคุณไม่ได้ฟอร์แมตการ์ด microSD ของคุณในระบบปฏิบัติการ Windows ให้ฟอร์แมตการ์ด microSD อีกครั้งและสร้าง DOS fileระบบบนการ์ด SD
สลับการ์ด MicroSD
มีผู้ผลิตการ์ดหลายประเภท การ์ดที่เปลี่ยนฉลาก ขนาดการ์ด และคลาสของการ์ด และอาจไม่ทำงานอย่างถูกต้องทั้งหมด โดยทั่วไป เราใช้การ์ด microSD คลาส 8 ขนาด 4GB ซึ่งทำงานได้ดีที่ 9600bps หากคุณต้องการบอดเรทที่สูงขึ้นหรือพื้นที่เก็บข้อมูลที่ใหญ่กว่า คุณอาจต้องการลองใช้การ์ดคลาส 6 ขึ้นไป
เพิ่มความล่าช้าระหว่างการเขียนตัวละคร
หากเพิ่มการหน่วงเวลาเล็กน้อยระหว่างคำสั่ง Serial.print() จะทำให้ OpenLog มีโอกาสบันทึกบัฟเฟอร์ปัจจุบันได้
เช่นampเลอ:
  • Serial.begin(115200);
    สำหรับ (int i = 1; i < 10; i++) { Serial.print(i, DEC); Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”); }

อาจไม่สามารถบันทึกได้อย่างถูกต้อง เนื่องจากมีอักขระจำนวนมากที่ถูกส่งไปพร้อมๆ กัน การใส่เวลาหน่วงเล็กน้อย 15 มิลลิวินาทีระหว่างการเขียนอักขระจำนวนมากจะช่วยให้ OpenLog บันทึกได้โดยไม่ต้องลบอักขระออก

  • Serial.begin(115200);
    สำหรับ (int i = 1; i < 10; i++) { Serial.print(i, DEC); Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”); ล่าช้า (15); }

เพิ่มความเข้ากันได้ของจอภาพอนุกรม Arduino

หากคุณพยายามใช้ OpenLog กับไลบรารีซีเรียลในตัวหรือไลบรารี SoftwareSerial คุณอาจสังเกตเห็นปัญหากับโหมดคำสั่ง Serial.println() จะส่งทั้งคำสั่งขึ้นบรรทัดใหม่และคำสั่งส่งกลับค่ารถ มีคำสั่งทางเลือกสองคำสั่งเพื่อแก้ไขปัญหานี้

วิธีแรกคือใช้คำสั่ง \r (การส่งคืนรถแบบ ASCII):
Serial.print(“TEXT\r”);

อีกวิธีหนึ่ง คุณสามารถส่งค่า 13 (ส่งกลับค่าทศนิยม):

  • Serial.print(“TEXT”);
  • Serial.write(13);

การรีเซ็ตฉุกเฉิน

โปรดจำไว้ว่า หากคุณจำเป็นต้องรีเซ็ต OpenLog กลับไปเป็นสถานะเริ่มต้น คุณสามารถรีเซ็ตบอร์ดได้โดยการต่อพิน RX เข้ากับ GND จากนั้นเปิดเครื่อง OpenLog รอจนกว่าไฟ LED จะเริ่มกะพริบพร้อมกัน จากนั้นจึงปิดเครื่อง OpenLog และถอดจัมเปอร์ออก
หากคุณเปลี่ยนบิตการแทนที่ฉุกเฉินเป็น 1 คุณจะต้องปรับเปลี่ยนการกำหนดค่า fileเนื่องจากการรีเซ็ตฉุกเฉินจะไม่ทำงาน

ตรวจสอบกับชุมชน

หากคุณยังมีปัญหาเกี่ยวกับ OpenLog โปรดตรวจสอบปัญหาปัจจุบันและปัญหาที่ได้รับการแก้ไขแล้วในคลังข้อมูล GitHub ของเราที่นี่ มีชุมชนขนาดใหญ่ที่ทำงานร่วมกับ OpenLog ดังนั้น มีโอกาสสูงที่ใครบางคนจะพบวิธีแก้ไขปัญหาดังกล่าว

ทรัพยากรและการก้าวต่อไป

ตอนนี้คุณได้บันทึกข้อมูลด้วย OpenLog เรียบร้อยแล้ว คุณสามารถตั้งค่าโครงการระยะไกลและตรวจสอบข้อมูลทั้งหมดที่เข้ามาได้ ลองสร้างโครงการ Citizen Science ของคุณเอง หรือแม้แต่เครื่องมือติดตามสัตว์เลี้ยงเพื่อดูว่า Fluffy ทำอะไรเมื่ออยู่นอกบ้าน!
ลองดูแหล่งข้อมูลเพิ่มเติมเหล่านี้สำหรับการแก้ไขปัญหา ความช่วยเหลือ หรือแรงบันดาลใจสำหรับโครงการถัดไปของคุณ

  • การเปิด GitHub
  • โครงการอิลลูมิทูน
  • การเชื่อมต่อเซ็นเซอร์แสง LilyPad
  • BadgerHack: แอดออนเซ็นเซอร์ดิน
  • เริ่มต้นใช้งาน OBD-II
  • เวอร์เนียร์โฟโตเกต

ต้องการแรงบันดาลใจเพิ่มเติมหรือไม่? ลองดูบทช่วยสอนที่เกี่ยวข้องเหล่านี้:

  • เซ็นเซอร์วัดระดับน้ำแบบรีโมทโฟตอน
    เรียนรู้วิธีการสร้างเซ็นเซอร์ระดับน้ำระยะไกลสำหรับถังเก็บน้ำ และวิธีการควบคุมปั๊มให้ทำงานอัตโนมัติจากค่าที่อ่านได้
  • คู่มือโครงการ Blynk Board
    โครงการ Blynk ชุดหนึ่งที่คุณสามารถตั้งค่าบน Blynk Board ได้โดยไม่ต้องเขียนโปรแกรมใหม่เลย
  • การบันทึกข้อมูลลงใน Google Sheets ด้วย Tessel 2
    โครงการนี้ครอบคลุมถึงวิธีการบันทึกข้อมูลลงใน Google Sheets สองวิธี: การใช้ IFTTT ด้วย web การเชื่อมต่อหรือแฟลชไดรฟ์ USB และ “Sneakernet” โดยไม่ต้อง
  • ข้อมูลเซนเซอร์กราฟด้วย Python และ Matplotlib
    ใช้ matplotlib เพื่อสร้างกราฟข้อมูลอุณหภูมิแบบเรียลไทม์ที่รวบรวมจากเซนเซอร์ TMP102 ที่เชื่อมต่อกับ Raspberry Pi

หากคุณมีข้อเสนอแนะเกี่ยวกับบทช่วยสอน โปรดไปที่ความคิดเห็นหรือติดต่อทีมสนับสนุนด้านเทคนิคของเราได้ที่ ฝ่ายสนับสนุนด้านเทคนิค@sparkfun.com.

คำถามที่พบบ่อย

กำลังไฟที่แนะนำสำหรับ OpenLog คือเท่าไร

กำลังไฟเข้าที่แนะนำสำหรับ OpenLog อยู่ระหว่าง 3.3V ถึง 5V

OpenLog ดึงกระแสไฟฟ้าเท่าไรเมื่อไม่ได้ใช้งาน?

OpenLog จะกินไฟประมาณ 2mA ถึง 5mA เมื่อไม่ได้ใช้งานและไม่มีการ์ด microSD และประมาณ 5mA ถึง 6mA เมื่อใส่การ์ด microSD

วัตถุประสงค์ของการเชื่อมต่อ microSD USB กับ OpenLog คืออะไร

เครื่องอ่าน USB microSD ช่วยให้ถ่ายโอนข้อมูลจากการ์ด microSD ที่ใช้กับ OpenLog ไปยังคอมพิวเตอร์ได้อย่างง่ายดาย

เอกสาร / แหล่งข้อมูล

SparkFun DEV-13712 อนุภาคโฟตอนพร้อมรูสำหรับการบัดกรี [พีดีเอฟ] คู่มือการใช้งาน
DEV-13712, DEV-13955, DEV-13712 อนุภาคโฟตอนที่มีรูสำหรับบัดกรี, DEV-13712, อนุภาคโฟตอนที่มีรูสำหรับบัดกรี, รูสำหรับบัดกรี, สำหรับบัดกรี, บัดกรี

อ้างอิง

ฝากความคิดเห็น

ที่อยู่อีเมลของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องกรอกข้อมูลมีเครื่องหมาย *