Სარჩევი:
- ნაბიჯი 1: ქვის ინსტრუმენტი
- ნაბიჯი 2: პროექტის შესავალი
- ნაბიჯი 3: MPU-6050
- ნაბიჯი 4: STM32 მიკროკონტროლერი
- ნაბიჯი 5: დრაივერი MPU-6050
ვიდეო: Stone Lcd + დაჩქარების გიროსკოპის სენსორი: 5 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:15
ეს დოკუმენტი გასწავლით თუ როგორ გამოიყენოთ STM32 MCU +MPU6050 ამაჩქარებელი გიროსკოპის სენსორი +STONE STVC070WT სერიული პორტის ჩვენება DEMO– სთვის.
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- ს, მაშინ თქვენ უნდა გააკეთოთ შემდეგი კონვერტაცია:
სხვა შესაბამისი ინფორმაციის ნახვა ან გადმოწერა შესაძლებელია ოფიციალურ ვებგვერდზე:
STONE ჩვენების ეკრანის განვითარების სამი ნაბიჯი:
შეიმუშავეთ ჩვენების ლოგიკა და ღილაკის ლოგიკა STONE TOOL პროგრამული უზრუნველყოფით და გადმოწერეთ დიზაინის ფაილი ჩვენების მოდულში. MCU სერიული პორტის საშუალებით აკავშირებს STONE ჩვენების მოდულს.
მე –2 საფეხურზე მიღებული მონაცემებით, MCU აკეთებს სხვა ქმედებებს.
ნაბიჯი 2: პროექტის შესავალი
პროექტის გაცნობა
რასაც მე ვაჩვენებ დღეს არის სიმძიმის დემო, გიროსკოპი, ეილერის კუთხე, ფუნქციები შემდეგია:
- სამი ტექსტური ყუთი აჩვენებს აჩქარების მნიშვნელობებს
- სამი ტექსტური ყუთი აჩვენებს გიროსკოპის მნიშვნელობებს
- სამი ტექსტური ველი აჩვენებს ეილერის კუთხის მნიშვნელობებს
- ტექსტური ველი აჩვენებს განახლების მიმდინარე დროს
- ორი ღილაკი არეგულირებს განახლების დროს
პირველ რიგში, ჩვენ უნდა გამოვიყენოთ Photoshop ორი UI ინტერფეისის შესაქმნელად და დიზაინის შედეგები ასეთია:
პირველი სურათი არის მთავარი ეკრანის სურათი, ხოლო მეორე არის ღილაკის ეფექტი. შემდეგ ჩვენ ვხსნით "TOOL2019" - ს და ვქმნით ეფექტებს TOOL– ში:
გამოიყენება ორი ძირითადი კომპონენტი:
რიცხვითი ჩვენების ერთეული
დამატებითი ღილაკი
დიზაინის დასრულების შემდეგ, სიმულაციური მოქმედების ეფექტი ჩანს სიმულაციის ინტერფეისში:
ნაბიჯი 3: MPU-6050
Mpu-6050 არის მსოფლიოში პირველი ინტეგრირებული 6 ღერძიანი მოძრაობის დამუშავების ჩიპი. მრავალ კომპონენტურ გადაწყვეტასთან შედარებით, ის გამორიცხავს კომბინირებულ გიროსკოპსა და ამაჩქარებლის დროის ღერძს შორის სხვაობის პრობლემას და ამცირებს უამრავ შეფუთვის ადგილს. სამ ღერძიანი მაგნიტომეტრის დროთან შეერთებისას, mpu-6050 უზრუნველყოფს 9 ღერძიანი მოძრაობის სრულ შერწყმას I2C ან SPI პორტებზე (SPI ხელმისაწვდომია მხოლოდ mpu-6000– ზე).
შეგრძნების დიაპაზონი
Mpu-6050– ის კუთხის სიჩქარის მგრძნობიარე დიაპაზონი არის ± 250, ± 500, ± 1000 და ± 2000 °/ SEC (DPS), რომელსაც შეუძლია ზუსტად აკონტროლოს სწრაფი და ნელი მოქმედებები. უფრო მეტიც, მომხმარებლებს შეუძლიათ დააპროგრამონ და აკონტროლონ ამაჩქარებლების გამოვლენის დიაპაზონი ± 2 გ, ± 4 გ ± 8 გ და g 16 გ. პროდუქტის მონაცემები შეიძლება გადაეცეს IIC– მდე 400kHz– მდე ან SPI– მდე 20 MHz– მდე (SPI ხელმისაწვდომია მხოლოდ mpu-6000– ზე). Mpu-6050 შეუძლია იმუშაოს სხვადასხვა ძაბვის ქვეშ, VDD– ს ძაბვა არის 2.5v ± 5%, 3.0v 5% ან 3.3v ± 5%, ხოლო ლოგიკური ინტერფეისის VDDIO კვების წყაროა 1.8v ± 5% (მხოლოდ VDD გამოიყენება MPU6000). Mpu-6050 შეფუთვის ზომა 4x4x0.9 მმ (QFN) რევოლუციურია ინდუსტრიაში. სხვა მახასიათებლებია ჩაშენებული ტემპერატურის სენსორები და ოსცილატორები, რომლებიც განსხვავდება მხოლოდ ± 1% სამუშაო გარემოში. განაცხადი
მობილური შეგრძნებით თამაშებმა გაზარდა რეალობა, EIS: გამოსახულების ელექტრონული სტაბილიზაცია (OIS: გამოსახულების ოპტიკური სტაბილიზაცია) ქვეითთა ნავიგატორის მომხმარებლის ინტერფეისი "ნულოვანი შეხებით" ჟესტით. სმარტფონი, პლანშეტური მოწყობილობა, ხელის სათამაშო პროდუქტი, სათამაშო კონსოლი, 3D დისტანციური მართვა, პორტატული სანავიგაციო მოწყობილობა, უპილოტო საფრენი აპარატი, ბალანსის მანქანა.
მახასიათებლები
ციფრული გამომავალი 6-ან 9 ღერძიანი ბრუნვის მატრიცა, მეოთხედი, ეილერის კუთხის ფორმა შერწყმის გაანგარიშების მონაცემები. 3 ღერძიანი კუთხის სიჩქარის სენსორი (გიროსკოპი) 131 LSBs/ °/ SEC მგრძნობელობით და ქსელის სენსორული დიაპაზონი ± 250, ± 500, ± 1000 და ± 2000 °/ SEC. მისი კონტროლი შესაძლებელია პროგრამით და პროგრამის კონტროლის დიაპაზონი არის g 2 გ, ± 4 გ, ± 8 გ და g 16 გ. ამოიღეთ მგრძნობელობა ამაჩქარებელსა და გიროსკოპის ღერძს შორის და შეამცირეთ პარამეტრებისა და სენსორის დრიფტის გავლენა. DMP (ციფრული მოძრაობის დამუშავება) ძრავა ამცირებს რთული შერწყმის ალგორითმების დატვირთვას, სენსორების სინქრონიზაციას, პოსტურალურ შეგრძნებას და ა.შ. მოძრაობის დამუშავების მონაცემთა ბაზა მხარს უჭერს ოპერაციული დროის გადახრისა და მაგნიტური სენსორის შესწორების ალგორითმებს ჩაშენებული Android, Linux და Windows. ტემპერატურის სენსორი ციფრული გამომავალით და ციფრული შეყვანით, შეხების აღქმა, შერყევის შეგრძნება. VDD- ს მიწოდების ძაბვა არის 2.5v ± 5%, 3.0v ± 5%და 3.3v ± 5%. VDDIO- ს მოქმედი დენი არის 1.8v ± 5%: 5mA; გიროსკოპის ლოდინის დენი: 5uA; ამაჩქარებლის მოქმედი დენი: 350uA, ამაჩქარებლის ენერგიის დაზოგვის რეჟიმი მიმდინარე: 20uA@10Hz I2C სწრაფი რეჟიმში 400 კჰც-მდე, ან SPI სერიული მასპინძელი ინტერფეისი 20 მჰც-მდე ჩამონტაჟებული სიხშირის გენერატორი სრული ტემპერატურის დიაპაზონში მხოლოდ ± 1% სიხშირის ცვალებადობა. პორტატულ პროდუქტებზე მორგებული მინიმალური და ყველაზე თხელი შეფუთვა (4x4x0.9 მმ QFN) შემოწმებულია RoHS და გარემოსდაცვითი სტანდარტების დასაკმაყოფილებლად. პინის შესახებ
SCL და SDA უკავშირდება MCU– ს IIC ინტერფეისს, რომლის მეშვეობითაც MCU აკონტროლებს MPU6050. ასევე არსებობს IIC ინტერფეისი, AXCL და XDA, რომელიც შეიძლება გამოყენებულ იქნას გარე მონა მოწყობილობების დასაკავშირებლად, როგორიცაა მაგნიტური სენსორები, ცხრა ღერძიანი სენსორის შესაქმნელად. VLOGIC არის IO პორტის ძაბვა და ყველაზე დაბალ პინს შეუძლია მიაღწიოს 1.8 ვ. საერთოდ, ჩვენ შეგვიძლია პირდაპირ გამოვიყენოთ VDD. AD0 არის მისამართის კონტროლის პინი IIC ინტერფეისიდან (დაკავშირებულია MCU– სთან), რომელიც აკონტროლებს IIC მისამართის ყველაზე დაბალ რიგს. თუ GND არის დაკავშირებული, მაშინ MPU6050– ის IIC მისამართი არის 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
პროგრამის შენახვის მოცულობა: 256 კბ
პროგრამის მეხსიერების ტიპი: FLASH
ოპერატიული მეხსიერება: 48K
ძაბვა - კვების წყარო (Vcc/Vdd): 2 V ~ 3.6 V
ოსცილატორი: შიდა
სამუშაო ტემპერატურა: -40 ° C ~ 85 ° C
პაკეტი/კორპუსი: 64 lqfp
ამ პროექტში გამოვიყენებ UART, GPIO, Watch Dog და 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 საათის განმავლობაში.
გთხოვთ იხილოთ შემდეგი სურათი ოპერაციის ეფექტისთვის:
პროექტის შესახებ მეტი ინფორმაციის მისაღებად დააწკაპუნეთ აქ
გირჩევთ:
დაჩქარების გაზომვა ADXL345 და ჟოლოს Pi გამოყენებით: 4 ნაბიჯი
ADXL345 და Raspberry Pi გამოყენებით დაჩქარების გაზომვა: ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. ზომავს
დაჩქარების გაზომვა BMA250 და არდუინო ნანოს გამოყენებით: 4 ნაბიჯი
დაჩქარების გაზომვა BMA250 და Arduino Nano– ს გამოყენებით: BMA250 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები არის ფორმატირებული, როგორც 16 ბიტიანი ორეული და ხელმისაწვდომია I2C ციფრული ინტერფეისის საშუალებით. ზომავს სტატიკურ
დაჩქარების გაზომვა ADXL345 და Arduino Nano გამოყენებით: 4 ნაბიჯი
ADXL345 და Arduino Nano გამოყენებით დაჩქარების გაზომვა: ADXL345 არის პატარა, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები ფორმატირებულია, როგორც 16 ბიტიანი ორეული და არის ხელმისაწვდომი I2 C ციფრული ინტერფეისის საშუალებით. ზომავს
დაჩქარების გაზომვა BMA250 და ჟოლოს Pi გამოყენებით: 4 ნაბიჯი
დაჩქარების გაზომვა BMA250 და Raspberry Pi გამოყენებით: BMA250 არის პატარა, თხელი, ულტრაწონიანი, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13-ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები არის ფორმატირებული, როგორც 16 ბიტიანი ორეული და ხელმისაწვდომია I2C ციფრული ინტერფეისის საშუალებით. ზომავს სტატიკურ
დაჩქარების გაზომვა BMA250 და ნაწილაკების ფოტონის გამოყენებით: 4 ნაბიჯი
დაჩქარების გაზომვა BMA250 და ნაწილაკების ფოტონის გამოყენებით: BMA250 არის მცირე, თხელი, ულტრა დაბალი სიმძლავრის, 3 ღერძიანი ამაჩქარებელი მაღალი გარჩევადობის (13 ბიტიანი) გაზომვით ± 16 გ-მდე. ციფრული გამომავალი მონაცემები არის ფორმატირებული, როგორც 16 ბიტიანი ორეული და ხელმისაწვდომია I2C ციფრული ინტერფეისის საშუალებით. ზომავს სტატიკურ