Სარჩევი:

LED- ები და გრავიტაცია?: 4 ნაბიჯი
LED- ები და გრავიტაცია?: 4 ნაბიჯი

ვიდეო: LED- ები და გრავიტაცია?: 4 ნაბიჯი

ვიდეო: LED- ები და გრავიტაცია?: 4 ნაბიჯი
ვიდეო: ეკჰარტ ტოლე - "აწმყოს ძალა" - აუდიო წიგნი - Audible Read Along 2024, ნოემბერი
Anonim
LED- ები და გრავიტაცია?
LED- ები და გრავიტაცია?

ამ პროექტს პრაქტიკულად არანაირი გამოყენება არ აქვს, მაგრამ იგი წამოიწყო, როგორც ვარჯიში ფიზიკურ ფორმულებში, რომლებიც დაკავშირებულია გრავიტაციას C კოდში არდუინოზე. საგნების ხილვადობის მიზნით, ნეოპიქსელური LED- ზოლი 74 LED- ით იყო გამოყენებული. გრავიტაციული აჩქარების გავლენა ობიექტზე ვლინდება MPU-6050 ამაჩქარებლის და გიროსკოპის ჩიპის გამოყენებით. ეს ჩიპი ფიზიკურად არის მიმაგრებული LED- ზოლზე, ასე რომ, როდესაც LED- ზოლები იმართება გარკვეული კუთხით, ჩიპი ზომავს LED ზოლის კუთხეს და Arduino იყენებს ამ ინფორმაციას ვირტუალური ობიექტის პოზიციის გასაახლებლად თითქოს იყო ბურთი, რომელიც დაბალანსებულია სხივზე და ტრიალებს ერთი მხრიდან მეორეზე, თუ სხივი დახრილია კუთხეში. ვირტუალური ობიექტის პოზიცია მითითებულია LED ზოლზე, როგორც ერთი LED, რომელიც განათებულია.

სიმძიმის გავლენის ქვეშ დედამიწაზე დაცემული ვირტუალური ობიექტის პოზიციის გასაახლებლად ჩვენ ვიყენებთ ფორმულას:

y = y0 + (V0 * t) + (0.5 * a * t^2)

თან:

y = გავლილი მანძილი მეტრებში y0 = დაწყების მანძილი მეტრებში v0 = დაწყების სიჩქარე მეტრებში/წამი a = აჩქარება (გრავიტაცია) მეტრებში/მეორე^2 t = დრო წამებში

ნაბიჯი 1: წრე

წრე
წრე

Arduino Pro Mini იკვებება +5V წყაროს მიწოდებით პირდაპირ +5V პინში, რაც არის ბორტ 5V რეგულატორის გამომავალი. ეს შეიძლება ცოტათი მართლმადიდებლად მოგეჩვენოთ, მაგრამ როდესაც ვინი ღია რჩება, ეს არ შექმნის პრობლემას მანამ, სანამ თქვენ არ გადაატრიალებთ პოლარობას, რადგან ეს ნამდვილად დაახალისებს თქვენს არდუინოს.

MPU6050 ამაჩქარებელი და გიროსკოპის ჩიპი იკვებება დაბალი სიმძლავრის 5V to 3V3 გადამყვანი მოდულის საშუალებით და ესაუბრება Arduino– ს I2C ინტერფეისის საშუალებით (SDA, SCL). Arduino Pro Mini– ით SDA უკავშირდება A4– ს და SCL უკავშირდება A5– ს, რომლებიც ორივე მდებარეობს Arduino Pro Mini PCB– ზე. Pro Mini ვერსიით, რომელსაც მე ვიყენებ, A4 და A5 განლაგებული იყო PCB– ში (2 ხვრელი) და არ იყო მისაწვდომი PCB– ის გვერდებზე მდებარე pin სათაურებით. MPU6050– ს ასევე აქვს შეწყვეტის გამომუშავება (INT), რომელიც გამოიყენება Arduino– სთვის ახალი მონაცემების არსებობისას. WS2812B ნეოპიქსელური LED ზოლები 74 LED- ით იკვებება უშუალოდ 5V წყაროსთან და აქვს 1 მონაცემთა ხაზი (DIN), რომელიც დაკავშირებულია Arduino– ს გამომავალთან.

ნაბიჯი 2: პროგრამული უზრუნველყოფა

ყველა დრაივერი, რომელსაც ესკიზი იყენებს (.ino) იმავე საქაღალდეში, როგორც ესკიზი ბიბლიოთეკების გამოყენების ნაცვლად. ამის მიზეზი ის არის, რომ მე არ მინდა მძღოლების განახლება, შეცდომების თავიდან აცილების მიზნით და იმის თავიდან ასაცილებლად, რომ მძღოლებში შეტანილი ცვლილებები განახლდება.

აქ არის პროექტის ფაილების სია:

  • Balancing_LED_using_MPU6050gyro.ino: ესკიზის ფაილი
  • MPU6050.cpp / MPU6050.h: MPU6050 ამაჩქარებელი და გიროსკოპის დრაივერი
  • MPU6050_6Axis_MotionApps20.h: MPU6050 DMP (ციფრული მოძრაობის პროცესორი) განმარტებები და ფუნქციები
  • helper_3dmath.h: კლასის განმარტებები მეოთხედი და მთელი ან მცურავი ვექტორებისთვის.
  • I2Cdev.cpp / I2Cdev.h: I2C დრაივერი Arduino მავთულის ბიბლიოთეკის გამოყენებით
  • LEDMotion.cpp / LEDMotion.h: სიმძიმის LED ბალანსის დანერგვა LED ზოლისა და კუთხის გამოყენებით, რომელიც იზომება MPU6050

ნაბიჯი 3: სურათები

გირჩევთ: