PID Top Balanslaşdırma Sistemi
Bu sistem bir topu lövhə üzərində balansda saxlayır. Bir vebkamera sistemi çəkir və bir payton proqramı topun yerini tapmaq üçün şəkilləri analiz edir. Python proqramı, topun düşməməsi üçün qabın əyilməsini hesablayır.
Topun hərəkətlərini kompensasiya etmək üçün nisbi-inteqral-törəmə ( proportional-integral-derivative – PID) tənzimləyicidən istifadə olunur. Topun mövqeyi və sürəti kamera tərəfindən ölçülür və bu ölçülər payton proqramında PID tənzimləyicisi tərəfindən istifadə olunur.
Tərcümə səhvləri üçün üzr istəyirəm, kiçik qrammatik səhvlər ola bilər.
Addım 1: PCB
Təsvir:
PCB istehsalı
PCB-ni eagle-da çəkdim, sonra PCBWay.com onu istehsal etdi.
2 qat PCB 33 x 48.3 mm FR-4, 1.6 mm, 1, HASL lead
https://www.pcbway.com/project/shareproject/Ball_Balancing_PID_System.html
PCB montajı:
Bütün smd komponentlərini pasta fluxu olmadan lehimlədim. Məni kimi lehimləməyi məsləhət görmürəm. Bunun əvəzinə smd komponentlərini lehimləmək üçün bu təlimatı izləyin: https://www.instructables.com/id/SMD-Hand-Soldering/
PCB 5-6v 2A enerji təchizatı ilə qidalanır.
PCB komponentləri:
- 1X Atmega32u4 https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- 1X 1uf kondensator https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- 1X 0.1uf kondensator https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- 1X 10uf kondensator https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- 2X 22pf kondensator https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- 1X led https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- 1X 10K rezistor https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- 1X 1K rezistor https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- 2X 22 rezistor https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- 1X 16mhz Quartz https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- usb konnector https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- power jack https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
- headers https://fr.aliexpress.com/item/ATMEGA32U4-AU-TQFP…
PCB-nin rolu
PCB kompüterlə davamlı əlaqə qurur. Bu PCB yalnız servo mühərrikləri idarə etməyə xidmət edir.
Əlavələr
https://github.com/ElectronXLab/Ball-Balancing-PID-System/blob/main/EagleFiles.zip
Addım 2: 3D Print
Təsvir:
Xəbərdarlıq: inferieur.stl, superieur.stl və plateau.stl faylları 3D yazdırıla bilməz. inferieur.stl və superieur.stl akrildən hazırlanır. Bu hissələri hazırlamaq üçün bir CNC istifadə edə bilərsiniz, həm də özünüz akril təbəqədə kəsdirə bilərsiniz, çünki bu hissələrin çox mürəkkəb bir dizaynı yoxdur. plateau.stl kartonda kəsilə bilər.
https://www.thingiverse.com/thing:3310602
Addım 3: Hissələr Yığılması
Təsvir:
Mexaniki hissələr:
- Futaba servo s3003
- Maqnitlər və toplar https://fr.aliexpress.com/item/2017-One-Set-Diago…
- 13X M4 * 10mm bolt https://www.amazon.fr/Boulon-hexagonal-acier-inox…
- 10X M4 nut https://www.amazon.fr/Boulon-hexagonal-acier-inox…
- 15X https://www.amazon.fr/Boulon-hexagonal-acier-inox…
- 3X M4 * 10mm bolt https://www.amazon.fr/Boulon-hexagonal-acier-inox…
- 3X M4 nut https://www.amazon.fr/Boulon-hexagonal-acier-inox…
- USB Webcam https://www.amazon.fr/Boulon-hexagonal-acier-inox…
- Alüminium boru : uzunluq 474mm, diametri 8mm
Əlavələr: 3D şəklində baxın
base v314.step və ya aşağıdakı keçiddən istifadə edərək yükləyə blərsiniz
https://github.com/ElectronXLab/Ball-Balancing-PID-System/blob/main/Ball%2BBalancing%2BPID%2BSystem%20(elaveler).zip
Addım 4: PCB Proqramlaşdırma
Təsvir:
PCB, arduino leonardo ilə eyni mikro kontrolleri ehtiva edir. Bu səbəbdən Arduino proqramı ilə proqramlaşdırıla bilər. Kodu buradan yükləyə bilərsiniz.
PCB-ni proqramlaşdırmadan əvvəl önyükləyicini(bootloader) yazmalısınız: Arduino ISP və Arduino Bootloader olaraq.
Bootloader-i yazmaq
1.Arduinoya ehtiyacınız var.
2.ArduinoISP eskizini (arduino software / Examples / ArduinoISP) Arduino lövhənizə yükləyin.
3.Bağlantıları şəkildə olduğu kimi edin.
4.Tools> Board menyusundan “Arduino Leonardo” seçin.
5.Tools> Programmer-dən “ISP olaraq Arduino” seçin.
6.Tools> Burn Bootloader-ı işə salın.
7.Proses bir neçə saniyə/dəqiqə çəkə bilər.
8.Bütün kabelləri ayırın.
Bu addımdan sonra pcb-ni USB kabeli ilə kompüterə bağlamalı və bu kodu yükləməlisiniz.
Adım 5: Payton Proqramı
Təsvir:
Ən vacib kod sistemi idarə edən kompüterdədir. Kodu burada tapa bilərsiniz.
Bu necə işləyir. İlk addım topun yerini tapmaqdır. Kamera kompüterə canlı video göndərir. Python proqramı videonu alır və onu emal etməlidir. Təsvir emalı üçün OpenCV kitabxanasından istifadə edirəm. Proqram topu rəngi sayəsində algılar. Burada top narıncı rəngdədir, daha sonra proqram topun yerini tapmaq üçün görüntünün bütün narıncı piksellərinin orta mövqeyini hesablayacaq. OpenCV ilə bütün bunlar olduqca sadədir. OpenCV ilə rəng tanınması üçün bu təlimatı tövsiyə edirəm: https://www.pyimagesearch.com/2015/09/14/ball-tracking-with-opencv/
Artıq top mövqeyinə sahib olduğumuzdan, lövhənin PID (proportional, integral, and derivative) nəzarət ilə meylini hesablaya bilərik. Tənzimləmə üç mərhələdə həyata keçirilir. İlk addım ən sadədir. Topu lövhənin mərkəzində sabitləşdirmək istədiyimizi düşünün. Top mərkəzdən nə qədər uzaqlaşsa, lövhəni o qədər əymək lazım olacaq. Sonra topun sürətini ölçməlisiniz: top mərkəzdən nə qədər sürətlə uzaqlaşsa, lövhəni o qədər əyməli olursunuz.
Addım 6: Nəticə
Oxuduğunuz üçün təşəkkür edirik! Hər hansı bir sualınız varsa, şərh yazmaqdan çəkinməyin.
Müəllif : Johan Link