Სარჩევი:
- ნაბიჯი 1: Vivado აპარატურის დაყენება
- ნაბიჯი 2: ბლოკის დიზაინის დაყენება
- ნაბიჯი 3: შექმენით პერსონალური PWM IP ბლოკი
- ნაბიჯი 4: დაამატეთ PWM IP ბლოკი დიზაინს
- ნაბიჯი 5: HDL Wrapper- ის კონფიგურაცია და შეზღუდვების ფაილის დაყენება
- ნაბიჯი 6: შექმენით Bitstream
- ნაბიჯი 7: შექმენით პროექტი SDK– ში
- ნაბიჯი 8: FreeRTOS კოდის ცვლილებები
- ნაბიჯი 9: 3D ბეჭდვა სტაბილიზატორისთვის
- ნაბიჯი 10: ნაწილების შეკრება
- ნაბიჯი 11: Zybo– ს დაკავშირება სტაბილიზატორთან
- ნაბიჯი 12: ჭეშმარიტი ჩრდილოეთ შესწორება
- ნაბიჯი 13: პროგრამის გაშვება
ვიდეო: ხელის კამერის სტაბილიზატორი: 13 ნაბიჯი (სურათებით)
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:20
შესავალი
ეს არის სახელმძღვანელო GoPro– სთვის 3 ღერძიანი ხელის კამერის სტაბილიზაციის აპარატის შესაქმნელად Digilent Zybo Zynq-7000 განვითარების დაფის გამოყენებით. ეს პროექტი შემუშავებულია CPE რეალურ დროში ოპერაციული სისტემების კლასისთვის (CPE 439). სტაბილიზატორი იყენებს სამ სერვისს და IMU– ს, რათა შეცვალოს მომხმარებლის მოძრაობა კამერის დონის შესანარჩუნებლად.
პროექტისათვის საჭირო ნაწილები
- Digilent Zybo Zynq-7000 განვითარების დაფა
- Sparkfun IMU Breakout - MPU 9250
- 2 HiTec HS-5485HB Servos (შეიძინეთ 180 გრადუსიანი მოძრაობა ან პროგრამა 90-დან 180 გრადუსამდე)
- 1 HiTec HS-5685MH Servo (შეიძინეთ 180 გრადუსიანი მოძრაობა ან პროგრამა 90-დან 180 გრადუსამდე)
- 2 სტანდარტული სერვო ფრჩხილი
- 1 პურის დაფა
- 15 კაცი-მამაკაცი მხტუნავი მავთული
- 4 მამაკაცი-მდე ქალი მხტუნავი მავთული
- ცხელი წებო
- სახელური ან სახელური
- 5 მმ დიამეტრის ხის დუელი
- GoPro ან სხვა კამერა და სამონტაჟო ტექნიკა
- დენის წყაროს შეუძლია 5 ვ.
- 3D პრინტერზე წვდომა
ნაბიჯი 1: Vivado აპარატურის დაყენება
დავიწყოთ პროექტის ძირითადი ბლოკის დიზაინის შექმნა.
- გახსენით Vivado 2016.2, დააწკაპუნეთ "ახალი პროექტის შექმნა" ხატულაზე და დააჭირეთ "შემდეგი>".
- დაასახელეთ თქვენი პროექტი და დააჭირეთ "შემდეგი>".
- აირჩიეთ RTL პროექტი და დააჭირეთ "შემდეგი>".
- ჩაწერეთ საძიებო ზოლში xc7z010clg400-1 და შემდეგ შეარჩიეთ ნაწილი და დააჭირეთ "შემდეგი>" და "დასრულება".
ნაბიჯი 2: ბლოკის დიზაინის დაყენება
ახლა ჩვენ დავიწყებთ ბლოკის დიზაინის გენერირებას Zynq IP ბლოკის დამატებით და დაყენებით.
- მარცხენა პანელზე, IP ინტეგრატორის ქვეშ, დააწკაპუნეთ "ბლოკის დიზაინის შექმნა" და შემდეგ "OK".
- დააწკაპუნეთ მარჯვენა ღილაკით "დიაგრამა" ჩანართზე და აირჩიეთ "IP დამატება …".
- ჩაწერეთ "ZYNQ7 დამუშავების სისტემა" და დააწკაპუნეთ შერჩევაზე.
- ორჯერ დააწკაპუნეთ Zynq ბლოკზე, რომელიც გამოჩნდება.
- დააწკაპუნეთ "XPS პარამეტრების იმპორტი" და შემოიტანეთ მოწოდებული "ZYBO_zynq_def.xml" ფაილი.
- გადადით "MIO კონფიგურაციაზე" და შეარჩიეთ "განაცხადის პროცესორის განყოფილება" და ჩართეთ ტაიმერი 0 და Watchdog ქრონომეტრები.
- იმავე ჩანართში, "I/O Peripherals", აირჩიეთ ENET 0 (და შეცვალეთ ჩამოსაშლელი მენიუ "MIO 16.. 27", USB 0, SD 0, UART 1, I2C 0.
- "GPIO" - ში შეამოწმეთ GPIO MIO, ENET Reset, USB Reset და I2C Reset.
- ახლა გადადით "საათის კონფიგურაციაზე". აირჩიეთ FCLK_CLK0 PL ქსოვილის საათების ქვეშ. შემდეგ, დააჭირეთ "OK".
ნაბიჯი 3: შექმენით პერსონალური PWM IP ბლოკი
ეს IP ბლოკი საშუალებას აძლევს დაფას გააგზავნოს PWM სიგნალი სერვისების მოძრაობის გასაკონტროლებლად. ნამუშევარი დიდად იყო დაფუძნებული დიგიტრონიქს ნეპალის სახელმძღვანელოზე, რომელიც ნაპოვნია აქ. ლოგიკა დაემატა საათის შენელებას ისე, რომ პულსი გამოდიოდა სწორი სიჩქარით. ბლოკი იღებს რიცხვს 0-დან 180-მდე და გარდაქმნის მას პულსად 750-2150 უსპ.
- ახლა, ინსტრუმენტების ჩანართში, მარცხენა ზედა კუთხეში, დააწკაპუნეთ "შექმენით და შეფუთეთ IP …" და დააჭირეთ შემდეგი.
- შემდეგ აირჩიეთ "შექმენით ახალი AXI4 პერიფერიული" და დააჭირეთ შემდეგი.
- დაასახელეთ თქვენი PWM IP ბლოკი (ჩვენ მას pwm_core დავარქვით) და დააწკაპუნეთ შემდეგი და შემდეგ დააჭირეთ შემდეგს ასევე მომდევნო გვერდზე.
- ახლა დააჭირეთ ღილაკს "IP რედაქტირება" და დააჭირეთ დასრულებას. ეს გახსნის ახალ ფანჯარას pwm ბლოკის რედაქტირებისთვის.
- "წყაროების" ჩანართში და "დიზაინის წყაროების" განყოფილებაში გააფართოვეთ "pwm_core_v1_0" (შეცვალეთ pwm_core თქვენი სახელით) და გახსენით ფაილი, რომელიც ხილული გახდება.
- დააკოპირეთ და ჩასვით კოდი "pwm_core_v1_0_S00_AXI.v" ქვევით, zip ფაილში, პროექტის ბოლოში. Ctrl + Shift + R და შეცვალეთ 'pwm_core' თქვენი სახელით IP ბლოკისთვის.
- შემდეგ გახსენით 'name _v1_0' და დააკოპირეთ მოწოდებულ კოდში ფაილში 'pwm_core_v1_0.v'. Ctrl + Shift + R და შეცვალეთ 'pwm_core' სახელით.
- ახლა გადადით ჩანართზე "პაკეტის IP - სახელი" და აირჩიეთ "პერსონალიზაციის პარამეტრები".
- ამ ჩანართში იქნება ყვითელი ზოლი, რომელიც შეიცავს ტექსტს. აირჩიეთ ეს და ყუთში გამოჩნდება "დამალული პარამეტრები".
- ახლა გადადით "პერსონალიზაციის GUI" და მარჯვენა ღილაკით Pwm Counter Max აირჩიეთ "პარამეტრების რედაქტირება …".
- შეამოწმეთ ყუთები "Visible in Customization GUI" და "Specify Range".
- შეცვალეთ "ტიპი:" ჩამოსაშლელი მენიუ მთელი რიცხვის დიაპაზონში და დააყენეთ მინიმალური 0 და მაქსიმუმი 65535 და მონიშნეთ ყუთი "დიაპაზონის ჩვენება". ახლა დააწკაპუნეთ OK.
- გადაიტანეთ Pwm Counter Max "გვერდის 0" ხის ქვეშ. ახლა გადადით "მიმოხილვა და პაკეტი" და დააჭირეთ ღილაკს "ხელახლა შეფუთვა IP".
ნაბიჯი 4: დაამატეთ PWM IP ბლოკი დიზაინს
ჩვენ დავამატებთ IP ბლოკს ბლოკის დიზაინში, რათა მომხმარებელს მივაწოდოთ PWM IP ბლოკი პროცესორის საშუალებით.
- დააწკაპუნეთ მარჯვენა ღილაკით დიაგრამის ჩანართზე და დააჭირეთ ღილაკს "IP პარამეტრები …". გადადით "საცავის მენეჯერის" ჩანართზე.
- დააწკაპუნეთ მწვანე პლიუს ღილაკზე და შეარჩიეთ იგი. ახლა იპოვეთ ip_repo ფაილ მენეჯერში და დაამატეთ ის პროექტს. შემდეგ დააჭირეთ ღილაკს მიმართვა და შემდეგ OK.
- დააწკაპუნეთ მარჯვენა ღილაკით დიაგრამის ჩანართზე და დააჭირეთ ღილაკს "IP- ის დამატება …". ჩაწერეთ თქვენი PWM IP ბლოკის სახელი და შეარჩიეთ იგი.
- ეკრანის ზედა ნაწილში უნდა იყოს მწვანე ზოლი, პირველი აირჩიეთ "Run Connection Automation" და დააწკაპუნეთ OK. შემდეგ დააჭირეთ ღილაკს "გაუშვით დაბლოკვის ავტომატიზაცია" და დააწკაპუნეთ OK.
- ორჯერ დააწკაპუნეთ PWM ბლოკზე და შეცვალეთ Pwm Counter Max 1024 -დან 128 -დან.
- გადაიტანეთ თქვენი მაუსის მაჩვენებელი PWM0– ზე PWM ბლოკზე. უნდა იყოს პატარა ფანქარი, რომელიც გამოჩნდება როცა აკეთებ. დააწკაპუნეთ მარჯვენა ღილაკით და აირჩიეთ "პორტის შექმნა …" და ფანჯრის გახსნისას დააწკაპუნეთ OK. ეს ქმნის გარე პორტს სიგნალის გადასაცემად.
- გაიმეორეთ ნაბიჯი 6 PWM1 და PWM2 ასევე.
- იპოვეთ პატარა წრიული ორმაგი ისრის ხატი გვერდითა ზოლზე და დააწკაპუნეთ მასზე. ის განაახლებს განლაგებას და თქვენი ბლოკის დიზაინი უნდა გამოიყურებოდეს ზემოთ მოცემულ სურათზე.
ნაბიჯი 5: HDL Wrapper- ის კონფიგურაცია და შეზღუდვების ფაილის დაყენება
ჩვენ ვაპირებთ გენერირებას მაღალი დონის დიზაინზე ჩვენი ბლოკის დიზაინისთვის და შემდეგ დავდებთ PWM0, PWM1 და PWM2 Pmod ქინძისთავებს Zybo დაფაზე.
- გადადით "წყაროების" ჩანართზე. დააწკაპუნეთ მარჯვენა ღილაკით თქვენი ბლოკის დიზაინის ფაილზე "დიზაინის წყაროები" და დააწკაპუნეთ "შექმნა HDL Wrapper …". აირჩიეთ "დააკოპირეთ გენერირებული შესაფუთი მომხმარებლის რედაქტირების დასაშვებად" და დააწკაპუნეთ OK. ეს ქმნის მაღალი დონის დიზაინს ჩვენს მიერ შექმნილი ბლოკის დიზაინისთვის.
- Pmod, სადაც ჩვენ გამოვდივართ არის JE.
- ფაილში აირჩიეთ "დაამატეთ წყაროები …" და აირჩიეთ "დაამატეთ ან შექმენით შეზღუდვები" და დააჭირეთ შემდეგს.
- დააწკაპუნეთ ფაილების დამატებაზე და შეარჩიეთ ჩართული ფაილი "ZYBO_Master.xdc". თუ ამ ფაილს გადახედავთ, შეამჩნევთ, რომ ყველაფერი არ არის კომენტირებული, გარდა ექვსი "set_property" სტრიქონისა "## Pmod Header JE". თქვენ შეამჩნევთ, რომ PWM0, PWM1 და PWM2 არის ამ ხაზების არგუმენტები. ისინი ასახავს JE Pmod– ის Pin 1, Pin 2 და Pin 3 – ს.
ნაბიჯი 6: შექმენით Bitstream
ჩვენ უნდა შევქმნათ ბიტ -სტრიმი ტექნიკის დიზაინის SDK– ზე ექსპორტისთვის, სანამ ჩვენ გადავალთ.
- "პროგრამის და გამართვის" გვერდითა ზოლში, აირჩიეთ "გენერირება Bitstream". ეს აწარმოებს სინთეზს, შემდეგ განხორციელებას და შემდეგ გამოიმუშავებს ბიტ -სტრიმს დიზაინისთვის.
- შეასწორეთ ნებისმიერი შეცდომა, რომელიც გამოჩნდება, მაგრამ გაფრთხილებები შეიძლება იგნორირებული იყოს.
- გადადით ფაილზე-> გაუშვით SDK და დააწკაპუნეთ OK. ეს გახსნის Xilinx SDK- ს.
ნაბიჯი 7: შექმენით პროექტი SDK– ში
ეს ნაწილი შეიძლება ცოტა იმედგაცრუებული იყოს. ეჭვის შემთხვევაში, გააკეთეთ ახალი BSP და შეცვალეთ ძველი. ამან დაგვიზოგა რამოდენიმე გამართვის დრო.
- დაიწყეთ FreeRTOS– ის უახლესი ვერსიის გადმოტვირთვით აქ.
- გადმოწერეთ ყველაფერი გადმოწერიდან და შემოიტანეთ FreeRTOS SDK– ში ფაილზე-> იმპორტზე დაწკაპუნებით, ხოლო "ზოგადი" განყოფილებაში დააწკაპუნეთ "არსებული პროექტები სამუშაო სივრცეში" და შემდეგ დააჭირეთ შემდეგს.
- გადადით "FreeRTOS/Demo/CORTEX_A9_Zynq_ZC702" - ში FreeRTOS საქაღალდეში. ამ ადგილიდან შემოიტანეთ მხოლოდ "RTOSDemo".
- ახლა შექმენით დაფის მხარდაჭერის პაკეტი (BSP) დაჭერით ფაილი-> ახალი დაფის მხარდაჭერის პაკეტი.
- აირჩიეთ "ps7_cortexa9_0" და შეამოწმეთ "lwip141" და დააწკაპუნეთ OK.
- მარჯვენა ღილაკით დააწკაპუნეთ RTOSDemo ლურჯ საქაღალდეზე და აირჩიეთ "პროექტის ცნობები".
- მოხსენით მონიშვნა "RTOSDemo_bsp" და შეამოწმეთ ახალი BSP, რომელიც ჩვენ შევქმენით.
ნაბიჯი 8: FreeRTOS კოდის ცვლილებები
ჩვენ მიერ მოწოდებული კოდი შეიძლება დაიყოს 7 სხვადასხვა ფაილში. main.c, iic_main_thread.c, xil_printfloat.c, xil_printfloat.h, IIC_funcs.c, IIC_funcs.h და iic_imu.h. კოდი iic_main_thread.c ადაპტირებულია კრის ვინერის ბიბლიოთეკიდან, რომელიც შეგიძლიათ იხილოთ აქ. ჩვენ ძირითადად შევცვალეთ მისი კოდი ამოცანების შესაცვლელად და შევქმენით ის ზიბოს დაფაზე. ჩვენ ასევე დავამატეთ ფუნქციები კამერის ორიენტაციის კორექციის გამოსათვლელად. ჩვენ დავტოვეთ რამდენიმე ნაბეჭდი განცხადება, რომლებიც გამოსაყენებლად სასარგებლოა. მათი უმრავლესობა კომენტარებულია, მაგრამ თუ საჭიროდ ჩათვლით, შეგიძლიათ მათთან კომენტარი გააკეთოთ.
- Main.c ფაილის შეცვლის უმარტივესი გზაა კოდის შეცვლა კოპირებული კოდით ჩვენი ძირითადი.c ფაილიდან.
- ახალი ფაილის შესაქმნელად, დააწკაპუნეთ src საქაღალდეზე RTOSDemo– ში და აირჩიეთ C წყარო ფაილი. დაასახელეთ ეს ფაილი "iic_main_thread.c".
- დააკოპირეთ კოდი ჩართული "iic_main_thread.c" - დან და ჩასვით თქვენს ახლად შექმნილ ფაილში.
- გაიმეორეთ ნაბიჯები 2 და 3 დარჩენილი ფაილებით.
- მოითხოვს gcc– ში დაკავშირების ინსტრუქციას. მშენებლობის გზაზე რომ დაამატოთ, მარჯვენა ღილაკით დააჭირეთ RTOSDemo- ს და აირჩიეთ "C/C ++ Build Settings".
- გაიხსნება ახალი ფანჯარა. გადადით ARM v7 gcc linker-> ბიბლიოთეკები. აირჩიეთ პატარა დამატების ფაილი ზედა მარჯვენა კუთხეში და ჩაწერეთ "m". ეს მოიცავს მათემატიკის ბიბლიოთეკას პროექტში.
- შექმენით პროექტი Ctrl + B– ით, რომ ყველაფერი მუშაობს. შეამოწმეთ გაფრთხილებები, რომლებიც წარმოიქმნება, მაგრამ შესაძლოა მათი იგნორირება შეძლოთ.
- არის რამოდენიმე ადგილი, რომელთა შეცვლაა საჭირო, ძირითადად თქვენი ამჟამინდელი მდებარეობის მაგნიტური დაქვეითება. ჩვენ ავუხსნით, თუ როგორ უნდა შეიცვალოს ეს გაკვეთილის კალიბრაციის ნაწილში.
ნაბიჯი 9: 3D ბეჭდვა სტაბილიზატორისთვის
თქვენ გჭირდებათ 3D ბეჭდვა რამდენიმე ნაწილისთვის ამ პროექტისთვის. ალბათ შეგიძლიათ შეიძინოთ ნაწილები, რომლებიც მსგავსი ზომის და ზომისაა ჩვენი ნაბეჭდი ნაწილებისთვის.
- გამოიყენეთ მოწოდებული ფაილები ამობეჭდოთ მკლავი და სამაგრი GoPro– სთვის.
- თქვენ უნდა დაამატოთ ხარაჩო.stl ფაილში.
- მოჭრილი/გაწმენდილი ჭარბი ხარაჩოს ნაწილები ერთხელ დაბეჭდილი.
- სურვილისამებრ შეგიძლიათ შეცვალოთ ხის ბუდე 3D ბეჭდვით.
ნაბიჯი 10: ნაწილების შეკრება
სტაბილიზატორის შეკრების რამდენიმე ნაწილია. შეძენილ ფრჩხილებში მოყვება 4 ხრახნიანი ხრახნი და 4 ჭანჭიკი თხილით. იქიდან გამომდინარე, რომ არის 3 სერვო, ერთ სერვო რქას წინასწარ უნდა დააჭიროთ, რათა 2 ჭანჭიკი მოთავსდეს.
- შეაერთეთ 8 ქინძისთავი IMU გარღვევაზე, 4 თითოეულ მხარეს.
- IMU მიმაგრებულია 3D ბეჭდვით სამაგრი ფრჩხილზე GoPro– სთვის ფრჩხილის ცენტრში.
- ორიენტაციის ფრჩხილი ისე, რომ servo სამონტაჟო ხვრელები თქვენს მარცხენა მხარეს. მოათავსეთ IMU თქვენთან უახლოეს ზღვარზე, ქინძისთავები კიდით ჩამოკიდებული. შემდეგ, მოათავსეთ GoPro მთა IMU– ს თავზე, დააწებეთ IMU და დაამონტაჟეთ ფრჩხილზე.
- მიამაგრეთ HS-5485HB სერვო ფრჩხილზე, რომელიც ინტეგრირებულია 3D ბეჭდვით მკლავში.
- მიამაგრეთ GoPro ფრჩხილი მკლავზე მიმაგრებულ სერვოში, დარწმუნდით, რომ სერვო არის დაყენებული ისე, რომ ის იყოს მისი მოძრაობის დიაპაზონის შუაში.
- შემდეგი, მიამაგრეთ HS-5685MH servo servo bracket- ზე. შემდეგ შეეხეთ სერვო რქას ერთი ხრახნით. ახლა მიამაგრეთ servo ბოლო servo bracket- ის ბოლოში.
- ახლა მიამაგრეთ ბოლო სერვო ფრჩხილზე, რომელშიც HS-5685MH servo არის ხრახნიანი. შემდეგ გაახურეთ ხელი ამ სერვოში, დარწმუნდით, რომ მკლავი არის ხრახნიანი, ასე რომ მას შეუძლია 90 გრადუსით გადაადგილება ყოველმხრივ.
- გიმბალის მშენებლობის დასასრულებლად დაამატეთ ხის დუელის პატარა ნაჭერი, რათა დააკავშიროთ GoPro ფრჩხილსა და 3D ბეჭდვით მკლავს შორის. თქვენ ახლა ააწყვეთ სტაბილიზატორი.
- დაბოლოს, თქვენ შეგიძლიათ დაამატოთ სახელური, რომელიც დაკავშირებულია ქვედა სერვო ფრჩხილთან.
ნაბიჯი 11: Zybo– ს დაკავშირება სტაბილიზატორთან
არსებობს რამოდენიმე რამ, რასაც უნდა გავუფრთხილდეთ ამის გაკეთებისას. თქვენ გინდათ დარწმუნდეთ, რომ 5V დენის წყაროსგან არასოდეს შევა Zybo დაფაზე, რადგან ეს გამოიწვევს დაფის პრობლემებს. დარწმუნდით, რომ ორმაგად შეამოწმეთ მხტუნავები, რომ დაადასტუროთ, რომ მავთულები არ არის გადართული.
- Zybo სტაბილიზატორზე დასამაგრებლად დაგჭირდებათ 15 მამაკაცი მამაკაცი მხტუნავები და 4 მამაკაცი ქალი მხტუნავები.
- პირველი, შეაერთეთ ორი მხტუნავი თქვენს 5V დენის წყაროს პურის დაფის + და - რელსების გასწვრივ. ეს ენერგიას მიაწვდის სერვოებს.
- შემდეგ, დააკავშირეთ 3 წყვილი მხტუნავები პურის დაფის + და - რელსებთან. ეს იქნება ძალა თითოეული სერვისისთვის.
- შეაერთეთ + და - მხტუნავების მეორე ბოლო თითოეულ სერვოში.
- შეაერთეთ მხტუნავი პურის დაფის სარკინიგზო ხაზსა და ერთ -ერთ GND ქინძისთავს შორის Zybo JE Pmod (იხილეთ ნაბიჯი 5 სურათი). ეს შექმნის საერთო საფუძველს ზიბოს დაფასა და კვების ბლოკს შორის.
- შემდეგ დააკავშირეთ სიგნალის მავთული JE Pmod– ის 1, პინ 2 და პინ 3 – თან. მიამაგრეთ 1 რუქა ქვედა სერვოზე, მიამაგრეთ 2 რუქა სერვოზე მკლავის ბოლოს და დაადეთ 3 რუქა შუა სერვოზე.
- შეაერთეთ 4 ქალი მავთული IMU გარღვევის GND, VDD, SDA და SCL ქინძისთავებში. GND და VDD შეაერთეთ GND და 3V3 JF ქინძისთავებზე. შეაერთეთ SDA პინი პინ 8 – ში და SCL პინ 7 JF– ში (იხ. ნაბიჯი 5 სურათი).
- დაბოლოს, შეაერთეთ კომპიუტერი დაფაზე მიკრო USB კაბელის გამოყენებით. ეს საშუალებას მისცემს uart კომუნიკაციას და საშუალებას მოგცემთ დაპროგრამოთ Zybo დაფა.
ნაბიჯი 12: ჭეშმარიტი ჩრდილოეთ შესწორება
IMU– ში მაგნიტომეტრის კალიბრაცია მნიშვნელოვანია მოწყობილობის სწორი მუშაობისთვის. მაგნიტური დეკლარაცია, რომელიც ასწორებს მაგნიტურ ჩრდილოეთს ჭეშმარიტ ჩრდილოეთში.
- მაგნიტური და ჭეშმარიტი ჩრდილოეთისგან განსხვავების გამოსასწორებლად, თქვენ უნდა გამოიყენოთ ორი სერვისის კომბინაცია, Google Maps და NOAA მაგნიტური ველის გამომთვლელი.
- გამოიყენეთ Google Maps თქვენი ამჟამინდელი მდებარეობის გრძედის და გრძედის საპოვნელად.
- აიღეთ თქვენი ამჟამინდელი გრძედი და გრძედი და შეაერთეთ იგი მაგნიტური ველის კალკულატორში.
- ის, რაც ბრუნდება არის მაგნიტური დაქვეითება. შეაერთეთ ეს გაანგარიშება კოდი "iic_main_thread.c" 378 -ე ხაზზე. თუ თქვენი დახრილობა აღმოსავლეთისაა, მაშინ გამოაკელით yaw მნიშვნელობას, თუ დასავლეთი შემდეგ დაამატეთ yaw მნიშვნელობას.
*ფოტო გადაღებულია სპარკფუნის MPU 9250 კავშირის სახელმძღვანელოდან, ნაპოვნია აქ.
ნაბიჯი 13: პროგრამის გაშვება
მომენტი, რომელსაც ელოდებოდი! პროექტის საუკეთესო ნაწილია მისი მუშაობის დანახვა. ერთი პრობლემა, რაც ჩვენ შევამჩნიეთ არის ის, რომ არსებობს გადაადგილება IMU– დან მოხსენებული მნიშვნელობებიდან. დაბალგამტარი ფილტრი შეიძლება დაგეხმაროს ამ დრიფტის გამოსწორებაში, ხოლო მაგნეტომეტრით, აჩქარებითა და გირო კალიბრებით ასევე ამ დრიფტის გამოსწორებაში.
- პირველი, შექმენით ყველაფერი SDK– ში, ეს შეიძლება გაკეთდეს Ctrl + B დაჭერით.
- დარწმუნდით, რომ კვების ბლოკი ჩართულია და დაყენებულია 5V. ორჯერ შეამოწმეთ, რომ ყველა მავთული მიდის თავის სწორ ადგილას.
- შემდეგ, პროგრამის გასაშვებად, დააჭირეთ მწვანე სამკუთხედს დავალების პანელის ზედა ცენტრში.
- პროგრამის გაშვებისას, სერვო სერვისები ყველა დაუბრუნდება მათ 0 პოზიციას, ასე რომ მზად იყავით მოწყობილობის გადაადგილებისთვის. პროგრამის ინიციალიზაციის შემდეგ, სერვოები დაბრუნდებიან თავიანთ 90 გრადუსიან პოზიციებზე.
- მაგნიტომეტრის დაკალიბრების ფუნქცია გააქტიურდება და მიმართულებები იბეჭდება UART ტერმინალში, რომელსაც შეგიძლიათ დაუკავშიროთ ისეთი სერიული მონიტორის საშუალებით, როგორიცაა "putty" ან SDK- ში მოწოდებული სერიული მონიტორი.
- დაკალიბრებისას თქვენ გადაგიყვანთ მოწყობილობას ფიგურაში 8 დაახლოებით 10 წამის განმავლობაში. თქვენ შეგიძლიათ წაშალოთ ეს ნაბიჯი "iic_main_thread.c" - ის 273 სტრიქონის კომენტარით. თუ გამოაქვეყნებთ კომენტარს, თქვენ უნდა დატოვოთ კომენტარი 323 - 325 სტრიქონი "iic_main_thread.c". ეს მნიშვნელობები თავდაპირველად შეგროვდა ზემოთ მაგნიტომეტრის კალიბრაციიდან და შემდეგ შეაერთეს როგორც მნიშვნელობები.
- დაკალიბრების შემდეგ სტაბილიზაციის კოდი ინიციალიზდება და მოწყობილობა შეინარჩუნებს კამერას სტაბილურს.
გირჩევთ:
პროტოტიპის კამერის სტაბილიზატორი (2DOF): 6 ნაბიჯი
პროტოტიპის კამერის სტაბილიზატორი (2DOF): ავტორები: რობერტ დე მელო ე სოუზა, იაკობ პაქსტონი, მოისეს ფარიასი მადლიერება: უღრმესი მადლობა კალიფორნიის სახელმწიფო უნივერსიტეტის საზღვაო აკადემიას, მის საინჟინრო ტექნოლოგიურ პროგრამას და დოქტორ ჩანგ-სიუს, რომ დაგვეხმარნენ წარმატების მიღწევაში პროექტი ასეთ
Arduino კამერის სტაბილიზატორი წვრილმანი: 4 ნაბიჯი (სურათებით)
Arduino კამერის სტაბილიზატორი წვრილმანი: მე გავაკეთე კამერის სტაბილიზატორი arduino– ს გამოყენებით სასკოლო პროექტისთვის. დაგჭირდებათ: 1x Arduino Uno3x Servo motor1x Gyroscope MP60502x Button1x Potentiometer1x Breadboard (1x გარე კვების ბლოკი)
ARDUINO CAMERA სტაბილიზატორი: 4 ნაბიჯი (სურათებით)
ARDUINO CAMERA სტაბილიზატორი: პროექტის აღწერა: ეს პროექტი შემუშავებულია ნილ კარილოსა და რობერტ კაბას მიერ, ელისავაზე, პროდუქტის დიზაინის ინჟინერიის მე –3 კურსის ორი სტუდენტი. ვიდეო გადაღება დიდად არის განპირობებული ოპერატორის პულსი, ვინაიდან მას აქვს პირდაპირი შეფერხება
კამერის სტაბილიზატორი ENV2 ან სხვა კამერის ტელეფონებისთვის: 6 ნაბიჯი
კამერის სტაბილიზატორი ENV2 ან სხვა კამერის ტელეფონებისთვის: ოდესმე გსურდათ ვიდეოს გადაღება, მაგრამ თქვენ მხოლოდ კამერის ტელეფონი გაქვთ? ოდესმე გადაგიღია ვიდეო კამერის ტელეფონით, მაგრამ ვერ გაჩერდები? უფრო მეტიც, ეს არის თქვენთვის სასწავლო
დაამატეთ კომპიუტერის სინქრონიზაციის ჯეკი Nikon Sc-28 Ttl კაბელში (გამოიყენეთ ავტომატური პარამეტრები კამერის ფლეშისთვის და ჩართეთ კამერის ციმციმები !!): 4 ნაბიჯი
დაამატეთ კომპიუტერის სინქრონიზაციის ჯეკი Nikon Sc-28 Ttl კაბელში (გამოიყენეთ ავტომატური პარამეტრები კამერის Flash- ზე და ჩართეთ კამერის ციმციმები !!): ამ სასწავლო ინსტრუქციაში მე გაჩვენებთ თუ როგორ უნდა ამოიღოთ ერთ-ერთი შემაძრწუნებელი საკუთრების 3pin TTL კონექტორი Nikon SC-28 კამერის TTL კაბელის გვერდით და შეცვალეთ იგი სტანდარტული კომპიუტერის სინქრონიზაციის კონექტორით. ეს საშუალებას მოგცემთ გამოიყენოთ გამოყოფილი Flash, s