Mündəricat:

2 Düyməli Kvadrat Tənlik Çözücü: 5 addım
2 Düyməli Kvadrat Tənlik Çözücü: 5 addım

Video: 2 Düyməli Kvadrat Tənlik Çözücü: 5 addım

Video: 2 Düyməli Kvadrat Tənlik Çözücü: 5 addım
Video: The difference between Casio FX-991EX and Casio FX-991CW 2024, Noyabr
Anonim
Image
Image

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

Proqram təminatı
Proqram təminatı

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
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
Avadanlıq
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ə

Kablolama
Kablolama

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ə: