Mündəricat:
- Addım 1: Mathimatical Background
- Addım 2: Proqram təminatı
- Addım 3: Avadanlıq
- Addım 4: Kabel çəkmə
- Addım 5: Gələcək Təkmilləşdirmə
Video: 2 Düyməli Kvadrat Tənlik Çözücü: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:45
Giriş
ilk təlimatçılığa xoş gəldiniz!
Proqramlaşdırma biliklərimi genişləndirmək üçün bu layihəyə başladım. Çox vaxt ehtiyac duyduğunuz proqramı yaratmaq üçün fərqli mənbə kodunu birləşdirirsiniz. Məqsədim bir vasitə ilə qarşılıqlı əlaqə qurmaq üçün öz proqram kodumu yazmaq idi. Hesablamaq üçün sadə bir vasitə yaratmağı xoşlayırdım. Bir ay əvvəl kvadrat tənliyi həll etmək üçün bir dostuma dəstək verdim.
Bazinga! bu istifadə vəziyyətidir!
Köhnə bir metal qutu yenidən istifadə etdim. Alətlərin minimalist görünüşünə və interfeysinə üstünlük verdim. Giriş vermək üçün 2 düymədən istifadə etmək istəməyimin səbəbi budur. Müsabiqə sadə bir LCD ekranla göstəriləcək.
Təchizat
material siyahısı:
Qutu
2 düyməli Arcade üslubu
Arduino Nano və ya bənzəri
I2C adapterli 1602 LCD displey
açma/söndürmə açarı
tellər
2x 10k Ohm müqavimət
batareya 9v blok
9v batareya üçün bağlayıcı
çörək taxtası
müxtəlif (ağac parçası, metal açı, kabel bağları, vida, yuyucular)
alətlər:
gördüm
lehimleme dəmir
qazma maşını
proqramlaşdırma üçün kompüter
Addım 1: Mathimatical Background
Riyazi arxa plan
2 düyməli kvadrat tənlik, kvadratik funksiyanın X oxunu keçdiyi dəyərləri göstərir. Kvadrat funksiya X oxunu heç vaxt, bir və ya iki dəfə keçə bilməz.
Bu dəyərləri hesablamağın müxtəlif yolları var. Alətim üçün PQ formulundan istifadə edirəm (bu ifadənin bütün dünyada istifadə ediləcəyinə əmin deyiləm).
Kvadrat tənlik aşağıdakı formaya malikdir:
ax²+bx+c = 0
Keçid nöqtələrini hesablamaq üçün formanı x =+px+q = 0 ilə p = b/a ilə bölün; q = c/a
PQ Formulu:
x1 = -p/2 + sqrt ((p/2) ² -q)
x2 = -p/2 -sqrt ((p/2) ² -q)
Nəticə x 0, 1 və ya 2 dəyər əldə edə bilər. Bu, kökün altındakı dəyərdən asılıdır.
Qiymət> 0 olarsa, PQ-Formulanın iki həlli var.
Dəyər = 0, onda PQ-Formulasının bir həlli var
<0 dəyəridir, onda PQ Formulasının həlli yoxdur. Funksiya X-Axisdən keçmir.
Addım 2: Proqram təminatı
Proqram təminatı
Proqramlaşdırma üçün rəsmi Arduino IDE -dən istifadə etdim. Hədəfim öz proqram proqramımı yaratmaq idi. Mənim interfeysimdə iki düymə olmalıdır. Fərqli səviyyələr arasında addım atmaq üçün bir düymə, fərqli səviyyələrdə dəyərləri dəyişdirmək üçün ikinci düymə.
PQ Formulunu həll etmək üçün yuxarıdakı quruluşu yaradıram:
Əminəm ki, təkəri yenidən kəşf etmirəm. Kod yaratmaq üçün moduldan istifadə etdim:
- çıxmaq
- ekran
Ən böyük çətinliklər aşağıdakı nöqtələr idi:
- Nişanı necə seçə bilərəm? Bu problemi modulo (link) funksiyası ilə həll etdim. Kod girişi 2 -yə bölür. Giriş tək ədəddir, dəyər mənfi olur, əks halda ədəd müsbətdir.
- Bütün səviyyələri keçdikdən sonra bütün dəyərləri 0 elan etməliyəm.
- Göstərilən mətn sadəcə göndərilən simvolları silir. Kodlar 4 simvoldan ibarət bir söz göndərərsə, yalnız bu 4 simvol yenidən yüklənəcək. Əvvəlki sözün daha çox simvolu olsaydı, personajlar qalacaq. Bunu düzəltmək üçün göstərilən mətn boşluqlarla doldurulacaq. Ardıcıl olaraq bütün 16 simvol yenidən yüklənəcək.
Son kod əlavə olunur.
Addım 3: Avadanlıq
Avadanlıq
Parçalar yuxarıda verilmişdir. Bu layihə üçün aparat sadədir. Sadəcə Arduino mikroprosessoruna, 2 düyməyə və ekrana ehtiyacım var. Yaxşı, bir qutuya qoymaq istəsəniz, bir qutuya və elektrik təchizatına da ehtiyacınız var.
Köhnə metal qutudan yenidən istifadə edirəm. Elektrik təchizatı açarını bağlamaq üçün düyməyə bir delik açdım. Qutunun qapağında 3 deşik var. Böyük düymələr üçün iki delik açdım və ekran üçün bir pəncərə kəsdim. Ekran və düymələri düzəltmək üçün daha çox şeyə sahib olmaq üçün qapağın arxasına kiçik bir ağac parçası yapışdırıram. Görünüşü yaxşılaşdırmaq üçün qutuda etiketlər var.
Enerji təchizatı üçün 9V bloklu təkrar doldurulan batareyaları məsləhət görürəm. Batareyanı güc açarı ilə Arduinoya bağlayıram. Batareya kiçik bir metal açı ilə qutuya sabitlənmişdir. Batareya üçün bağlayıcı yalnız kabel bağları ilə sabitlənir.
Mikroprosessor Arduino nanonun klonudur. Bu istifadə vəziyyətində performans kifayət qədər yüksəkdir. Bir Attiny 85, məsələn Digispark mikroprosessoru, rədd edildi. Arduino ekranın yanında "çörək taxılır".
Ekran 1602 LCD ekrandır. iki cərgədə 16 simvoldan istifadə edə bilərsiniz. Bu ekranı bir çox fərqli maşında bir alət tapa bilərsiniz. Bu ekrandan istifadə etməyin iki fərqli yolu var. Ekranı birbaşa idarəediciyə qoşa bilərsiniz və ya I2C vasitəsilə ekrana ünsiyyət qurmaq üçün əlavədən istifadə edə bilərsiniz. I2C standart bir protokoldur. İstifadə etdim, çünki ekranı idarəediciyə bağlamaq daha asandır. Sadəcə 16 kabel əvəzinə 4 kabel, VCC - 5V, GND - GND, SDA - A4, SCL - A5. Ekran vida ilə qutunun qapağına sabitlənmişdir.
Düymələr böyükdür! onlar tipik arcade oyun üslubuna malikdirlər. Mənim bundan xoşum gəlir! Düymələr rəqəmsal pin 4 və 7 -yə bağlıdır. Zəhmət olmasa 10K Rezistorları unutmayın!
Qapağı açmaq üçün, məsələn batareyanı dəyişdirmək üçün çörək taxtasına bağlı olan daha uzun kabellərdən istifadə etdim.
Addım 4: Kabel çəkmə
Addım 5: Gələcək Təkmilləşdirmə
Gələcək Təkmilləşdirmə
Bir layihəni bitirdikdən sonra hər zaman təkmilləşdirmək üçün səhvlər və ya xüsusiyyətlər tapırsınız. Bu layihədə yalnız bir neçə nöqtə tapdığım üçün xoşbəxtəm, gələcək üçün inkişaf etdirərdim.
Növbəti dəfə qutudakı istismarı yaxşılaşdırardım. Bu layihənin əvvəlində ekranı, güc açarını və düymələri düzəltdim. Sonda, qutuda batareya və mikroprosessor üçün kifayət qədər yer tapmaqda çətinlik çəkdim. Düyməni və ekranı daha çox kənarda qoyduğumda, qutunun içindəki hissələr üçün yer ilə heç bir problem yaşamazdım.
Hal -hazırda kvadrat tənliyin həlli üçün istifadə halım yoxdur. Aləti təkmilləşdirmək üçün aləti digər riyazi şeylərlə genişləndirmək istərdim, məsələn, əsas hesablamalar və ya binominal düstur və ya Pifaqor cümləsi kimi düsturlar.
Tövsiyə:
ON -OFF Düyməli DIY Fan - M5StickC ESP32: 8 Addım
ON -OFF Düyməli DIY Fan - M5StickC ESP32: Bu layihədə M5StickC ESP32 lövhəsini istifadə edərək FAN L9110 modulundan necə istifadə edəcəyimizi öyrənəcəyik
Raspberry Pi və OpenCV istifadə edərək real vaxtda Rubik Cube Gözləri Bağlı Çözücü: 4 addım
Raspberry Pi və OpenCV istifadə edərək real vaxtda Rubik Cube Gözləri Bağlı Çözücü: Bu, Rubikin gözləri bağlı halda həll etmək üçün hazırladığı kub alətinin 2-ci versiyasıdır. Birinci versiya javascript tərəfindən hazırlanmışdır, RubiksCubeBlindfolded1 layihəsini görə bilərsiniz, əvvəlki versiyadan fərqli olaraq, bu versiya rəngləri aşkar etmək üçün OpenCV kitabxanasından istifadə edir
Qara Kvadrat' Qapı Zəngi: 5 addım
Qara Kvadrat' Qapı Zəngi: Bu layihə, bir studiya və ya kiçik bir mənzil üçün kifayət qədər yüksək olan sadə, lakin təsirli bir qapı zənginin necə qurulacağını göstərir. (Cihazın görünüşü Maleviçin "Qara Meydanında" görünür). Bu zəngi hazırlamaq üçün sizə lazım olan budur:
ABS Layihə Qutularında Kvadrat/Üçbucaq Delikləri necə kəsmək olar: 3 addım
ABS Layihə Qutularında Kvadrat/Üçbucaq Deliklərini Necə Kəsmək olar: Hamıya Salam, bu, mini təlimatlıdır, çünki ABS-də kvadrat çuxurları olan yazı yazacağım digər göstərişlər üçün faydalı olacaq! Bunu necə edəcəyimi yazacağımı düşündüm - qənaətbəxş bir həll tapmağım çox uzun çəkdi. Mən hələ də
Excel -də Kvadrat Tənlik Makrosu: 3 addım
Excel-də Kvadratik Tənlik Makrosu: yalnız alətlər-makro ilə işləyən makroya keçərək bir kvadratik tənliyi asanlıqla həll edə bilərsiniz. Mən yeni bir üzvəm və verə biləcəyiniz hər cür rəyə ehtiyacım var. Bu tənlikləri həll edən heç bir kağız istifadə etmədən zövq alın