สารบัญ:
- ขั้นตอนที่ 1: เครื่องมือหิน
- ขั้นตอนที่ 2: แนะนำโครงการ
- ขั้นตอนที่ 3: MPU-6050
- ขั้นตอนที่ 4: ไมโครคอนโทรลเลอร์ STM32
- ขั้นตอนที่ 5: ไดรเวอร์ MPU-6050
วีดีโอ: หิน LCD + เซ็นเซอร์วัดการหมุนวนความเร่ง: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:03
เอกสารนี้จะสอนวิธีใช้เซ็นเซอร์ไจโรสโคป STM32 MCU +MPU6050 เซ็นเซอร์วัดความเร่ง +STONE STVC070WT พอร์ตอนุกรมสำหรับสาธิต
STVC070WT เป็นจอแสดงผลแบบอนุกรมของบริษัทของเรา การพัฒนานั้นง่าย ใช้งานง่าย คุณสามารถไปที่เว็บไซต์ของบริษัทของเราเพื่อดูความแตกต่างในการแสดงผลทั้งหมด:
ขั้นตอนที่ 1: เครื่องมือหิน
เป็นที่น่าสังเกตว่าหน้าจอของเรารองรับการสื่อสารพอร์ตอนุกรม บางรุ่นรองรับ TTL/RS232/RS485 แต่บางรุ่นรองรับเฉพาะ RS232 หากพอร์ตอนุกรมของ MCU เป็นระดับตรรกะ TTL คุณต้องเพิ่ม MAX3232 สำหรับการแปลงระดับ หากคุณต้องการทราบว่าหน้าจอใดรองรับ TTL และหน้าจอใดรองรับทั้ง TTL และ RS232 คุณสามารถตรวจสอบได้จากเว็บไซต์ของเรา:
www.stoneitech.com/product/industrial-type
เราจะเห็นว่าหน้าจอ "ประเภทอุตสาหกรรม" และ "ประเภทขั้นสูง" โดยทั่วไปรองรับเฉพาะ RS232 หรือ RS485 และเฉพาะหน้าจอ "ประเภทพลเรือน" เท่านั้นที่สามารถรองรับ TTL/RS232/RS485 หากคุณเลือก "ประเภทขั้นสูง" หรือ "ประเภทอุตสาหกรรม" แต่ SCM ของคุณรองรับเฉพาะ TTL ดังนั้นคุณต้องทำการแปลงต่อไปนี้:
ข้อมูลที่เกี่ยวข้องอื่น ๆ สามารถดูหรือดาวน์โหลดบนเว็บไซต์ทางการ:https://www.stoneitech.com/support/download
สามขั้นตอนของการพัฒนาหน้าจอแสดงผลของ STONE:
ออกแบบตรรกะการแสดงผลและตรรกะของปุ่มด้วยซอฟต์แวร์ STONE TOOL และดาวน์โหลดไฟล์การออกแบบไปยังโมดูลการแสดงผล MCU จะสื่อสารกับโมดูลแสดงผลของ STONE ผ่านพอร์ตอนุกรม
ด้วยข้อมูลที่ได้รับในขั้นตอนที่ 2 MCU จะดำเนินการอื่นๆ
ขั้นตอนที่ 2: แนะนำโครงการ
แนะนำโครงการ
สิ่งที่ผมจะนำเสนอในวันนี้คือ การสาธิตแรงโน้มถ่วง ไจโรสโคป มุมออยเลอร์ ฟังก์ชันต่างๆ มีดังนี้
- กล่องข้อความสามกล่องแสดงค่าการเร่งความเร็ว
- กล่องข้อความสามกล่องแสดงค่าไจโรสโคป
- กล่องข้อความสามกล่องแสดงค่ามุมออยเลอร์
- กล่องข้อความแสดงเวลารีเฟรชปัจจุบัน
- สองปุ่มปรับเวลารีเฟรช
ขั้นแรก เราต้องใช้ Photoshop เพื่อออกแบบอินเทอร์เฟซ UI สองส่วน และผลการออกแบบมีดังนี้:
ภาพแรกเป็นภาพหน้าจอหลัก และภาพที่สองเป็นเอฟเฟ็กต์ปุ่ม จากนั้นเราเปิด "TOOL2019" และออกแบบเอฟเฟกต์ในเครื่องมือ:
ใช้สององค์ประกอบหลัก:
หน่วยแสดงผลตัวเลข
ปุ่มที่เพิ่มขึ้น
หลังจากการออกแบบ สามารถเห็นผลการดำเนินการจำลองในอินเทอร์เฟซการจำลอง:
ขั้นตอนที่ 3: MPU-6050
mpu-6050 เป็นชิปประมวลผลการเคลื่อนไหว 6 แกนตัวแรกของโลก เมื่อเปรียบเทียบกับโซลูชันที่มีหลายองค์ประกอบ มันช่วยขจัดปัญหาความแตกต่างระหว่างไจโรสโคปแบบรวมและแกนเวลาของตัวเร่งความเร็ว และลดพื้นที่บรรจุภัณฑ์ได้มาก เมื่อเชื่อมต่อกับไทม์มิ่งของเครื่องวัดความเข้มข้นของสนามแม่เหล็กแบบสามแกน mpu-6050 จะให้เอาต์พุตฟิวชั่นการเคลื่อนไหวแบบ 9 แกนที่สมบูรณ์ไปยังพอร์ต I2C หรือ SPI (SPI มีเฉพาะใน mpu-6000)
ช่วงการตรวจจับ
ช่วงการตรวจจับความเร็วเชิงมุมของ mpu-6050 คือ ±250, ±500, ±1000 และ ±2000°/ SEC (DPS) ซึ่งสามารถติดตามการกระทำที่รวดเร็วและช้าได้อย่างแม่นยำ นอกจากนี้ ผู้ใช้สามารถตั้งโปรแกรมและควบคุมช่วงการตรวจจับของคันเร่งเป็น ±2g, ±4g±8g และ ±16g ข้อมูลผลิตภัณฑ์สามารถส่งผ่าน IIC สูงสุด 400kHz หรือ SPI สูงสุด 20MHz (SPI มีเฉพาะใน mpu-6000) Mpu-6050 สามารถทำงานภายใต้แรงดันไฟฟ้าที่แตกต่างกัน แหล่งจ่ายแรงดันไฟฟ้าของ VDD คือ 2.5v ±5%, 3.0v ± 5% หรือ 3.3v ±5% และแหล่งจ่ายไฟของอินเทอร์เฟซตรรกะ VDDIO คือ 1.8v ±5% (VDD ใช้สำหรับ MPU6000 เท่านั้น) ขนาดบรรจุภัณฑ์ของ mpu-6050 ที่ 4x4x0.9mm(QFN) เป็นการปฏิวัติวงการอุตสาหกรรม คุณสมบัติอื่นๆ ได้แก่ เซ็นเซอร์อุณหภูมิในตัวและออสซิลเลเตอร์ซึ่งแปรผันเพียง ±1% ในสภาพแวดล้อมการทำงาน แอปพลิเคชัน
เกมตรวจจับมือถือที่เติมความเป็นจริง EIS: ระบบป้องกันภาพสั่นไหวอิเล็กทรอนิกส์ (OIS: Optical Image Stabilization) อินเทอร์เฟซผู้ใช้ของระบบนำทางสำหรับคนเดินเท้าด้วยท่าทางสัมผัส "zero-touch" สมาร์ทโฟน, อุปกรณ์แท็บเล็ต, ผลิตภัณฑ์เกมมือถือ, เกมคอนโซล, รีโมทคอนโทรล 3 มิติ, อุปกรณ์นำทางแบบพกพา, UAV, รถทรงตัว
ลักษณะเฉพาะ
เอาต์พุตดิจิตอลของเมทริกซ์การหมุนแบบ 6 - หรือ 9 แกน, ควอเทอร์เนียน, ข้อมูลแคลคูลัสฟิวชั่นแบบออยเลอร์ เซ็นเซอร์ความเร็วเชิงมุม 3 แกน (ไจโรสโคป) พร้อมความไว 131 LSBs/°/ SEC และช่วงการตรวจจับกริดแบบเต็มที่ ±250, ±500, ±1000 และ ±2000°/ วินาที สามารถควบคุมได้โดยโปรแกรม และช่วงการควบคุมโปรแกรมคือ ±2g, ±4g, ±8g และ ±16g ขจัดความไวระหว่างคันเร่งและแกนไจโรสโคป และลดอิทธิพลของการตั้งค่าและการเลื่อนของเซ็นเซอร์ เอ็นจิ้น DMP (Digital Motion Processing) ช่วยลดภาระของอัลกอริธึมฟิวชั่นที่ซับซ้อน การซิงโครไนซ์เซ็นเซอร์ การตรวจจับท่าทาง ฯลฯ ฐานข้อมูลการประมวลผลการเคลื่อนไหวรองรับการเบี่ยงเบนเวลาในการทำงานและอัลกอริธึมการแก้ไขเซ็นเซอร์แม่เหล็กในตัว Android, Linux และ Windows เซ็นเซอร์อุณหภูมิพร้อมเอาต์พุตดิจิตอลและอินพุตดิจิตอล พินซิงค์รองรับเทคโนโลยีการรักษาเสถียรภาพเฟสเงาอิเล็กทรอนิกส์และการควบคุมขัดจังหวะแบบตั้งโปรแกรมด้วย GPS รองรับการจดจำท่าทาง การสั่น ซูมเข้าและออกจากภาพ การเลื่อน การขัดจังหวะการสืบเชื้อสายอย่างรวดเร็ว การขัดจังหวะ g สูง การตรวจจับการเคลื่อนไหวเป็นศูนย์, การตรวจจับการสัมผัส, การตรวจจับการสั่น แรงดันไฟฟ้าของ VDD คือ 2.5v ± 5%, 3.0v ±5% และ 3.3v ±5% กระแสไฟในการทำงานของ VDDIO คือ 1.8v ± 5%: 5mA; กระแสไฟสแตนด์บายของไจโรสโคป: 5uA; กระแสไฟทำงานของตัวเร่งความเร็ว: 350uA กระแสไฟโหมดประหยัดพลังงานของตัวเร่ง: 20uA@10Hz I2C ในโหมดเร็วสูงสุด 400kHz หรืออินเทอร์เฟซโฮสต์แบบอนุกรม SPI สูงถึง 20MHz เครื่องกำเนิดความถี่ในตัวที่ช่วงอุณหภูมิเต็มเพียง ±1% ความแปรผันของความถี่ บรรจุภัณฑ์ที่เล็กที่สุดและบางที่สุด (4x4x0.9mm QFN) ซึ่งออกแบบมาสำหรับผลิตภัณฑ์พกพาได้รับการทดสอบเพื่อให้เป็นไปตาม RoHS และมาตรฐานด้านสิ่งแวดล้อม เกี่ยวกับ พิน
SCL และ SDA เชื่อมต่อกับอินเทอร์เฟซ IIC ของ MCU โดยที่ MCU ควบคุม MPU6050 นอกจากนี้ยังมีอินเทอร์เฟซ IIC, AXCL และ XDA ซึ่งสามารถใช้เพื่อเชื่อมต่ออุปกรณ์รองภายนอก เช่น เซ็นเซอร์แม่เหล็ก เพื่อสร้างเซ็นเซอร์เก้าแกน VLOGIC คือแรงดันไฟฟ้าของพอร์ต IO และพินต่ำสุดสามารถเข้าถึงได้ 1.8v. โดยทั่วไป เราสามารถใช้ VDD. AD0 ได้โดยตรงคือพินควบคุมที่อยู่จากอินเทอร์เฟซ IIC (เชื่อมต่อกับ MCU) ซึ่งควบคุมลำดับต่ำสุดของที่อยู่ IIC หากเชื่อมต่อ GND แล้ว ที่อยู่ IIC ของ MPU6050 จะเป็น 0X68 และ 0X69 หากเชื่อมต่อ VDD หมายเหตุ: ที่อยู่นี้ไม่มีลำดับการถ่ายโอนข้อมูลต่ำสุด (ลำดับต่ำสุดใช้สำหรับการอ่านและการเขียน) ด้านล่างเป็นโมดูล mpu-6050 ที่ฉันใช้:
ขั้นตอนที่ 4: ไมโครคอนโทรลเลอร์ STM32
STM32F103RCT6 MCU มีฟังก์ชันที่ทรงพลัง นี่คือพารามิเตอร์พื้นฐานของ MCU:
ซีรีส์: STM32F10X
เคอร์เนล: ARM - COTEX32
ความเร็ว: 72 MHZ
อินเทอร์เฟซการสื่อสาร: CAN, I2C, IrDA, LIN, SPI, UART/USART, USB
อุปกรณ์ต่อพ่วง: DMA, มอเตอร์ควบคุม PWM, PDR, POR, PVD, PWM, เซ็นเซอร์อุณหภูมิ, WDT
ความจุของโปรแกรม: 256KB
ประเภทหน่วยความจำโปรแกรม: FLASH
ความจุ RAM: 48K
แรงดันไฟ - แหล่งจ่ายไฟ (Vcc/Vdd): 2 V ~ 3.6 V
ออสซิลเลเตอร์: ภายใน
อุณหภูมิในการทำงาน: -40 °C ~ 85 °C
บรรจุภัณฑ์/ที่อยู่อาศัย: 64-lqfp
ในโครงการนี้ ฉันจะใช้ UART, GPIO, Watch Dog และ Timer ของ STM32F103RCT6 ต่อไปนี้เป็นบันทึกการพัฒนารหัสสำหรับโครงการ STM32 ใช้การพัฒนาซอฟต์แวร์ Keil MDK ซึ่งคุณต้องคุ้นเคย ดังนั้นฉันจะไม่แนะนำวิธีการติดตั้งของซอฟต์แวร์นี้ STM32 สามารถจำลองออนไลน์ผ่าน j-link หรือ st-link และเครื่องมือจำลองอื่นๆ ภาพต่อไปนี้คือบอร์ดพัฒนา STM32 ที่ฉันใช้:
เพิ่มไดรเวอร์อนุกรมSTM32F103RCT6 มีพอร์ตอนุกรมหลายพอร์ต ในโครงการนี้ ฉันใช้ช่องพอร์ตอนุกรม PA9/PA10 และตั้งค่าอัตรารับส่งข้อมูลของพอร์ตอนุกรมที่ 115200
โปรดติดต่อเราหากคุณต้องการรหัสที่สมบูรณ์:
www.stoneitech.com/contact เราจะตอบกลับคุณภายใน 12 ชั่วโมง
ขั้นตอนที่ 5: ไดรเวอร์ MPU-6050
รหัสนี้ใช้โหมดการสื่อสาร IIC เพื่ออ่านข้อมูลของ MPU6050 และการสื่อสาร IIC ใช้ซอฟต์แวร์จำลอง IIC มีรหัสที่เกี่ยวข้องมากมาย ดังนั้นฉันจะไม่วางที่นี่
โปรดติดต่อเราหากต้องการรหัสที่สมบูรณ์: https://www.stoneitech.com/contact เราจะตอบกลับคุณภายใน 12 ชั่วโมง
โปรดดูภาพต่อไปนี้สำหรับผลการดำเนินการ:
เรียนรู้เพิ่มเติมเกี่ยวกับโครงการคลิกที่นี่