โลโก้ SparkFunคู่มือการเชื่อมต่อ OpenLog

การแนะนำ

โปรดทราบ! บทช่วยสอนนี้มีไว้สำหรับ Open Log สำหรับ UART แบบอนุกรม [ DEV-13712 ] หากคุณใช้ Qwiic OpenLog สำหรับ IC [ DEV-15164 ] โปรดดูคู่มือการเชื่อมต่อ Qwiic OpenLog
OpenLog Data Logger เป็นโซลูชันโอเพ่นซอร์สที่ใช้งานง่ายสำหรับการบันทึกข้อมูลแบบอนุกรมจากโครงการของคุณ OpenLog นำเสนออินเทอร์เฟซแบบอนุกรมที่เรียบง่ายสำหรับการบันทึกข้อมูลจากโครงการไปยังการ์ด microSDบอร์ดพัฒนา SparkFun รุ่น DEV-13712สปาร์คฟัน โอเพ่นล็อก
• DEV-13712บอร์ดพัฒนา SparkFun DEV-13712 - ชิ้นส่วนSparkFun OpenLog พร้อมส่วนหัว
• DEV-13955

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

บอร์ดพัฒนา SparkFun DEV-13712 - ส่วนที่ 1 Arduino โปรมินิ 328 – 3.3V/8MHz
เดฟ-11114
มันเป็นสีน้ำเงิน! มันบาง! มันคือ Arduino Pro Mini! แนวทางการออกแบบ Arduino แบบเรียบง่ายของ SparkFun นี่คือ Arduino 3.3V …
บอร์ดพัฒนา SparkFun DEV-13712 - ส่วนที่ 2 การแยกสัญญาณพื้นฐาน SparkFun FTDI – 3.3V
เดฟ-09873
นี่คือการแก้ไขใหม่ล่าสุดของ [FTDI Basic] ของเราhttp://www.sparkfun.com/commerce/product_info.php?products_id-
บอร์ดพัฒนา SparkFun DEV-13712 - ส่วนที่ 3 สาย USB SparkFun Cerberus – 6 ฟุต
แค็บ-12016
คุณใช้สาย USB ผิด ไม่สำคัญว่าคุณจะใช้สายแบบไหน เพราะมันผิด แต่จะเกิดอะไรขึ้นหากคุณมี…
บอร์ดพัฒนา SparkFun DEV-13712 - ส่วนที่ 4 สปาร์คฟัน โอเพ่นล็อก
เดฟ-13712
SparkFun OpenLog คือเครื่องบันทึกข้อมูลโอเพ่นซอร์สที่ทำงานผ่านการเชื่อมต่อแบบอนุกรมที่เรียบง่ายและรองรับ mi…
บอร์ดพัฒนา SparkFun DEV-13712 - ส่วนที่ 5 การ์ด microSD พร้อมอะแดปเตอร์ – 16GB (คลาส 10)
คอม-13833
นี่คือการ์ดหน่วยความจำ MicroSD คลาส 10 ความจุ 16GB เหมาะอย่างยิ่งสำหรับการรองรับระบบปฏิบัติการสำหรับคอมพิวเตอร์บอร์ดเดียว
บอร์ดพัฒนา SparkFun DEV-13712 - ส่วนที่ 6 เครื่องอ่านการ์ด MicroSD USB
คอม-13004
นี่คือเครื่องอ่านการ์ด microSD USB ขนาดเล็กที่น่าทึ่ง เพียงสอดการ์ด microSD ของคุณเข้าไปในช่องต่อ USB ...
บอร์ดพัฒนา SparkFun DEV-13712 - ส่วนที่ 7 ส่วนหัวของผู้หญิง
PRT-00115
รูเดี่ยว 40 รู หัวตัวเมีย สามารถตัดให้ได้ขนาดด้วยคีมตัดลวด ระยะห่างมาตรฐาน 1 นิ้ว เราใช้ …
บอร์ดพัฒนา SparkFun DEV-13712 - ส่วนที่ 8 สายจัมเปอร์ พรีเมี่ยม 6 นิ้ว M/M แพ็คละ 10 เส้น
PRT-08431
เป็นสินค้าพิเศษเฉพาะของ SparkFun! จัมเปอร์ยาว 155 มม. พร้อมขั้วต่อตัวผู้ทั้งสองด้าน ใช้จัมเปอร์เหล่านี้เพื่อจัมเปอร์...
บอร์ดพัฒนา SparkFun DEV-13712 - ส่วนที่ 9 แยกส่วนหัวชายออก – มุมขวา
PRT-00553
พินตัวผู้แบบมุมฉากแถวหนึ่ง ถอดแยกได้ 40 พินที่สามารถตัดเป็นขนาดใดก็ได้ ใช้กับ PCB แบบกำหนดเองหรือแบบทั่วไป

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

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

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

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

กระแสไฟที่ OpenLog ใช้คือประมาณ 20mA ถึง 23mA เมื่อเขียนลงใน microSD กระแสไฟที่ใช้งานได้จริงอาจแตกต่างกันไปเมื่อ OpenLog เขียนลงในการ์ดหน่วยความจำ ขึ้นอยู่กับขนาดของการ์ด microSD และผู้ผลิต การเพิ่มบอดเรทจะดึงกระแสไฟได้มากขึ้นด้วย
ไมโครคอนโทรลเลอร์
OpenLog ทำงานโดยใช้ ATmega328 บนบอร์ดที่ทำงานที่ความถี่ 16MHz ด้วยคริสตัลบนบอร์ด ATmega328 มี Optiboot bootloader โหลดไว้ ซึ่งทำให้ OpenLog สามารถทำงานร่วมกับการตั้งค่าบอร์ด "Arduino Uno" ใน Arduino IDE ได้บอร์ดพัฒนา SparkFun DEV-13712 - บูตโหลดเดอร์อินเทอร์เฟซ
ซีเรียล UART
อินเทอร์เฟซหลักกับ OpenLog คือส่วนหัว FTDI บนขอบบอร์ด ส่วนหัวนี้ได้รับการออกแบบให้เสียบเข้ากับ Arduino Pro หรือ Pro Mini โดยตรง ซึ่งช่วยให้ไมโครคอนโทรลเลอร์ส่งข้อมูลผ่านการเชื่อมต่อแบบอนุกรมไปยัง OpenLog ได้บอร์ดพัฒนา SparkFun DEV-13712 - ขอบบอร์ด

คำเตือน! เนื่องจากการจัดลำดับพินที่ทำให้เข้ากันได้กับ Arduino จึงไม่สามารถเสียบเข้ากับบอร์ดเบรกเอาต์ FTDI โดยตรงได้ DEV-13712 บอร์ดพัฒนา SparkFun - ขอบบอร์ด 1สำหรับข้อมูลเพิ่มเติม โปรดดูส่วนถัดไปเกี่ยวกับการเชื่อมต่อฮาร์ดแวร์
เอสพีไอ
นอกจากนี้ยังมีจุดทดสอบ SPI สี่จุดแยกอยู่ที่ปลายด้านตรงข้ามของบอร์ด คุณสามารถใช้จุดเหล่านี้เพื่อตั้งโปรแกรมบูตโหลดเดอร์ใหม่บน ATmega328DEV-13712 บอร์ดพัฒนา SparkFun - ขอบบอร์ด 2OpenLog รุ่นล่าสุด (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

DEV-13712 บอร์ดพัฒนา SparkFun - ขอบบอร์ด 3

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

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

DEV-13712 บอร์ดพัฒนา SparkFun - ขอบบอร์ด 4

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

มีสองวิธีหลักในการเชื่อมต่อ OpenLog ของคุณเข้ากับวงจร คุณจะต้องใช้เฮดเดอร์หรือสายไฟเพื่อเชื่อมต่อ ตรวจสอบให้แน่ใจว่าคุณบัดกรีเข้ากับบอร์ดเพื่อให้เชื่อมต่อได้อย่างปลอดภัย
การเชื่อมต่อแบบอนุกรมพื้นฐาน
เคล็ดลับ: หากคุณมีส่วนหัวแบบเมีย OpenLog และส่วนหัวแบบเมียบน FTDI คุณจะต้องใช้สายจัมเปอร์ M/F เพื่อเชื่อมต่อบอร์ดพัฒนา SparkFun DEV-13712 - การเชื่อมต่อแบบอนุกรมพื้นฐาน

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

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

โปรดทราบว่าไม่ใช่การเชื่อมต่อโดยตรงระหว่าง FTDI และ OpenLog – คุณต้องสลับการเชื่อมต่อพิน TXO และ RXI
การเชื่อมต่อของคุณควรมีลักษณะเหมือนต่อไปนี้: บอร์ดพัฒนา SparkFun DEV-13712 - การแยกย่อยพื้นฐานเมื่อคุณเชื่อมต่อ OpenLog กับ FTDI Basic เรียบร้อยแล้ว ให้เสียบบอร์ด FTDI เข้ากับสาย USB แล้วจึงเสียบเข้ากับคอมพิวเตอร์ของคุณ
เปิดเทอร์มินัลซีเรียล เชื่อมต่อกับพอร์ต COM ของ FTDI Basic ของคุณ และออกลุยได้เลย!

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

เคล็ดลับ: หากคุณบัดกรีส่วนหัวแบบตัวเมียไว้บน OpenLog คุณก็สามารถบัดกรีส่วนหัวแบบตัวผู้เข้ากับ Arduino Pro Mini เพื่อเสียบบอร์ดเข้าด้วยกันได้โดยไม่ต้องใช้สายไฟDEV-13712 บอร์ดพัฒนา SparkFun - การเชื่อมต่อฮาร์ดแวร์โครงการแม้ว่าการเชื่อมต่อกับ 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ควรตรงกับส่วนหัวการเขียนโปรแกรมเช่นเดียวกับ FTDIDEV-13712 บอร์ดพัฒนา SparkFun - การเชื่อมต่อฮาร์ดแวร์โครงการ 1

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

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

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

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

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

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

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

  • echo STATE – เปลี่ยนสถานะของระบบ echo และจะถูกเก็บไว้ในหน่วยความจำของระบบ โดยสถานะสามารถเป็นเปิดหรือปิดได้ ในขณะที่เปิด OpenLog จะสะท้อนข้อมูลอนุกรมที่ได้รับบนพรอมต์คำสั่ง ในขณะที่ปิด ระบบจะไม่อ่านอักขระที่ได้รับกลับมา
    บันทึก: ในระหว่างการบันทึกปกติ เสียงสะท้อนจะถูกปิด ความต้องการทรัพยากรระบบสำหรับการสะท้อนข้อมูลที่ได้รับนั้นสูงเกินไปในระหว่างการบันทึก
  • verbose STATE – เปลี่ยนสถานะของการรายงานข้อผิดพลาดแบบ verbose โดยที่ STATE สามารถเปิดหรือปิดได้ คำสั่งนี้จะถูกเก็บไว้ในหน่วยความจำ เมื่อปิดข้อผิดพลาดแบบ verbose OpenLog จะตอบสนองด้วยเครื่องหมาย ! เท่านั้น หากมีข้อผิดพลาด แทนที่จะเป็นคำสั่งที่ไม่รู้จัก: COMMAND อักขระ ! ช่วยให้ระบบฝังตัววิเคราะห์ได้ง่ายกว่าข้อผิดพลาดทั้งหมด หากคุณใช้เทอร์มินัล การเปิด verbose ไว้จะทำให้คุณเห็นข้อความแสดงข้อผิดพลาดทั้งหมดได้
  • 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 ไว้ก่อนหน้านี้ คุณควรเห็นสิ่งที่คล้ายกับต่อไปนี้เมื่อคุณอ่านการ์ด microSDDEV-13712 บอร์ดพัฒนา SparkFun - โปรแกรมแก้ไขข้อความOpenLog สร้างไฟล์ config.txt และ LOG0000.txt file เมื่อเปิดเครื่องครั้งแรก
การกำหนดค่าเริ่มต้น file มีบรรทัดการตั้งค่าหนึ่งบรรทัดและบรรทัดคำจำกัดความหนึ่งบรรทัดDEV-13712 บอร์ดพัฒนา SparkFun - โปรแกรมแก้ไขข้อความ 1การกำหนดค่าเริ่มต้น file เขียนโดย OpenLog
โปรดทราบว่าสิ่งเหล่านี้เป็นอักขระที่มองเห็นได้ปกติ (ไม่มีค่าที่ไม่สามารถมองเห็นได้หรือค่าไบนารี) และแต่ละค่าจะคั่นด้วยเครื่องหมายจุลภาค
การตั้งค่าถูกกำหนดดังนี้:

  • บอดเรท: บอดเรทการสื่อสาร 9600bps เป็นค่าเริ่มต้น ค่าที่ยอมรับได้ซึ่งเข้ากันได้กับ Arduino IDE คือ 2400, 4800, 9600, 19200, 38400, 57600 และ 115200 คุณสามารถใช้บอดเรทอื่นได้ แต่คุณจะไม่สามารถสื่อสารกับ OpenLog ผ่านมอนิเตอร์แบบอนุกรม Arduino IDE ได้
  • escape: ค่า ASCII (ในรูปแบบทศนิยม) ของอักขระ escape 26 คือ CTRL+z และเป็นค่าเริ่มต้น 36 คือ $ และเป็นอักขระ escape ที่ใช้กันทั่วไป
  • esc# : จำนวนอักขระ escape ที่จำเป็น โดยค่าเริ่มต้นคือสามตัว ดังนั้นคุณต้องกดอักขระ escape สามครั้งเพื่อจะเข้าสู่โหมดคำสั่ง ค่าที่ยอมรับได้คือ 0 ถึง 254 การตั้งค่าค่านี้เป็น 0 จะปิดการตรวจสอบอักขระ escape อย่างสมบูรณ์
  • โหมด: โหมดระบบ OpenLog เริ่มต้นในโหมด New Log (0) ตามค่าเริ่มต้น ค่าที่ยอมรับได้คือ 0 = New Log, 1 = Sequential Log, 2 = Command Mode
  • verb : โหมด verbose ข้อความแสดงข้อผิดพลาดแบบขยาย (verbose) จะถูกเปิดใช้งานตามค่าเริ่มต้น การตั้งค่านี้เป็น 1 จะเปิดข้อความแสดงข้อผิดพลาดแบบ verbose (เช่น คำสั่งที่ไม่รู้จัก: remove ! ) การตั้งค่านี้เป็น 0 จะปิดข้อผิดพลาดแบบ verbose แต่จะตอบกลับด้วย ! หากมีข้อผิดพลาด การปิดโหมด verbose มีประโยชน์หากคุณกำลังพยายามจัดการข้อผิดพลาดจากระบบฝังตัว
  • echo: โหมด Echo ขณะอยู่ในโหมดคำสั่ง อักขระจะถูกสะท้อนกลับตามค่าเริ่มต้น การตั้งค่านี้เป็น 0 จะปิดเสียงสะท้อนของอักขระ การปิดโหมดนี้จะมีประโยชน์เมื่อต้องจัดการกับข้อผิดพลาดและคุณไม่ต้องการให้คำสั่งที่ส่งถูกสะท้อนกลับไปยัง OpenLog
  • ignoreRX : การแทนที่ฉุกเฉิน โดยปกติ OpenLog จะรีเซ็ตฉุกเฉินเมื่อพิน RX ถูกดึงลงต่ำระหว่างเปิดเครื่อง การตั้งค่านี้เป็น 1 จะปิดใช้งานการตรวจสอบพิน RX ระหว่างเปิดเครื่อง ซึ่งอาจมีประโยชน์สำหรับระบบที่ยึดสาย RX ต่ำด้วยเหตุผลหลายประการ หากปิดใช้งานการแทนที่ฉุกเฉิน คุณจะไม่สามารถบังคับให้หน่วยกลับสู่ 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 _.txt อาจใช้ไม่ได้
ใช้บอด 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ไฟล์ s หรือ 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
  • เวอร์เนียร์โฟโตเกต

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

โลโก้ SparkFun

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

บอร์ดพัฒนา SparkFun DEV-13712 SparkFun [พีดีเอฟ] คู่มือการใช้งาน
DEV-13712, DEV-11114, DEV-09873, CAB-12016, COM-13833, COM-13004, PRT-00115, PRT-08431, DEV-13712 บอร์ดพัฒนา SparkFun, DEV-13712, บอร์ดพัฒนา SparkFun, บอร์ดพัฒนา, บอร์ด

อ้างอิง

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

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