Isi kandungan:

Penyelesai Persamaan Kuadratik 2-Butang: 5 Langkah
Penyelesai Persamaan Kuadratik 2-Butang: 5 Langkah

Video: Penyelesai Persamaan Kuadratik 2-Butang: 5 Langkah

Video: Penyelesai Persamaan Kuadratik 2-Butang: 5 Langkah
Video: X dari Persamaan Kuadrat 2x^2-5x-3=0 #Shorts 2024, Julai
Anonim
Image
Image

Pengenalan

selamat datang ke arahan pertama saya!

Saya memulakan projek ini untuk menambah pengetahuan pengaturcaraan saya. Selalunya, anda hanya menggabungkan kod sumber yang berbeza untuk membuat program yang anda perlukan. Tujuan saya adalah menulis kod program saya sendiri untuk berinteraksi dengan alat. Saya suka membuat alat mudah untuk mengira. Beberapa bulan yang lalu, saya menyokong rakan untuk menyelesaikan persamaan kuadratik.

Bazinga! ini adalah kes penggunaan!

Saya menggunakan semula kotak logam lama. Saya lebih suka penampilan dan antara muka alat yang minimalis. itulah sebabnya mengapa saya hanya mahu menggunakan 2 butang untuk memberi input. Pertandingan akan ditunjukkan dengan paparan LCD sederhana.

Bekalan

senarai bahan:

kotak

Gaya 2 butang Arcade

Arduino Nano, atau serupa

Paparan LCD 1602 dengan penyesuai I2C

suis hidup / mati

wayar

Perintang 2x 10k Ohm

sekatan bateri 9v

penyambung untuk bateri 9v

papan roti

lain-lain (sekeping kayu, sudut logam, ikatan kabel, skru, mesin basuh)

alat:

gergaji

besi pematerian

mesin gerudi

komputer untuk pengaturcaraan

Langkah 1: Latar Belakang Matematik

Perisian
Perisian

Latar belakang matematik

Persamaan kuadratik 2 butang menunjukkan nilai di mana fungsi kuadratik melintasi paksi-X. Fungsi kuadratik boleh melintasi paksi-X, sekali atau dua kali.

Terdapat pelbagai cara untuk mengira nilai-nilai ini. Untuk alat saya, saya menggunakan formula PQ (saya tidak pasti, adakah ungkapan ini akan digunakan di seluruh dunia).

Persamaan kuadratik mempunyai bentuk:

ax² + bx + c = 0

Untuk mengira titik persilangan, bahagikan borang dengan x² + px + q = 0 dengan p = b / a; q = c / a

Formula PQ:

x1 = -p / 2 + sqrt ((p / 2) ²-q)

x2 = -p / 2 - sqrt ((p / 2) ²-q)

Hasilnya x dapat nilai 0, 1 atau 2. Itu bergantung pada nilai di bawah punca kuasa dua.

Adakah nilai> 0, maka PQ-Formula mempunyai dua penyelesaian.

Adakah nilai = 0, maka PQ-Formula mempunyai satu penyelesaian

adalah nilai <0, maka Formula PQ tidak mempunyai penyelesaian. Fungsi tidak melepasi X-Axis.

Langkah 2: Perisian

Perisian

Untuk pengaturcaraan saya menggunakan Arduino IDE rasmi. Sasaran saya adalah membuat program perisian saya sendiri. Antara muka saya harus mempunyai dua butang. Satu butang untuk melangkah antara tahap yang berbeza, butang kedua untuk mengubah nilai dalam tahap yang berbeza.

Untuk menyelesaikan PQ-Formula, saya membuat struktur di atas:

Yang pasti, saya tidak mencipta semula roda. Untuk membuat kod, saya menggunakan modul:

- lantun

- paparan

Perkara berikut adalah cabaran terbesar:

- Bagaimana saya boleh memilih tanda? Saya menyelesaikan cabaran ini dengan fungsi modulo (pautan). Kod membahagi input dengan 2. Adakah input adalah nombor ganjil, nilainya menjadi negatif, jika tidak, bilangannya positif.

- Setelah melalui semua peringkat, saya harus menyatakan semua nilai ke 0.

- Teks yang dipaparkan hanya menghapus watak hantar. Sekiranya kod menghantar perkataan dengan 4 aksara, hanya 4 aksara ini akan dimuat semula. Sekiranya kata sebelumnya mempunyai lebih banyak watak, watak akan tetap ada. Untuk memperbaikinya, teks yang dipaparkan akan diisi dengan kosong. Semua 16 watak berturut-turut akan dimuat semula.

Kod akhir dilampirkan.

Langkah 3: Perkakasan

Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan
Perkakasan

Perkakasan

Bahagian tersebut disenaraikan di atas. Untuk projek ini, perkakasannya mudah. Saya hanya memerlukan mikropemproses Arduino, butang 2 dan paparan. Baiklah, jika anda mahu memasukkan ke dalam kotak, anda juga memerlukan kotak dan bekalan kuasa.

Saya menggunakan semula kotak logam lama. Saya menggerudi lubang ke dalam butang untuk memasang suis untuk bekalan kuasa. Penutup kotak mendapat 3 lubang. Saya menggerudi dua lubang untuk butang besar dan memotong tetingkap untuk paparan. Saya meletakkan sebatang kayu kecil di belakang penutup untuk mempunyai lebih banyak barang untuk memperbaiki paparan dan butang. Untuk meningkatkan paparan kotak itu terdapat pelekat.

Untuk bekalan kuasa, saya cadangkan bateri blok 9V yang boleh dicas semula. Saya menyambungkan bateri melalui suis kuasa ke Arduino. Bateri dipasang pada kotak dengan sudut logam kecil. Penyambung bateri hanya dipasang dengan ikatan kabel.

Mikroprosesor adalah klon dari Arduino nano. Untuk kes penggunaan ini, prestasinya mencukupi. Attiny 85, misalnya mikroprosesor Digispark, ditolak. Arduino adalah "roti naik" di sebelah paparan.

Paparannya adalah paparan LCD 1602. anda boleh menggunakan 16 aksara dalam dua baris. Anda boleh mendapatkan paparan ini di banyak mesin yang berbeza alat. Terdapat dua cara yang berbeza untuk menggunakan paparan ini. Anda boleh menyambungkan paparan terus ke pengawal atau anda boleh menggunakan alat tambah untuk berkomunikasi dengan paparan melalui I2C. I2C adalah protokol standard. Saya menggunakannya, kerana lebih mudah menyambungkan paparan ke pengawal. Anda hanya memerlukan 4 kabel dan bukannya 16, VCC hingga 5V, GND ke GND, SDA hingga A4, SCL hingga A5. Paparan dipasang dengan skru ke penutup kotak.

Butang besar! mereka mempunyai gaya permainan arked khas. Saya sukakannya! Butang disambungkan ke pin digital 4 dan 7. Jangan lupa Resistor 10K!

Untuk membuka penutup, misalnya untuk menukar bateri, saya menggunakan kabel yang lebih panjang yang dipasang ke papan roti.

Langkah 4: Pendawaian

Pendawaian
Pendawaian

Langkah 5: Penambahbaikan Masa Depan

Penambahbaikan Masa Depan

Setelah menyelesaikan projek, anda selalu menemui bug atau ciri untuk diperbaiki. Dalam projek ini, saya dengan senang hati hanya menemui beberapa poin, saya akan bertambah baik untuk masa depan.

Untuk lain kali, saya akan meningkatkan eksploitasi di dalam kotak. Saya membetulkan paparan, suis kuasa, dan butang pada awal projek ini. Pada akhirnya, saya mendapat sedikit masalah untuk mencari ruang yang cukup untuk bateri dan mikropemproses di dalam kotak. Apabila saya meletakkan butang dan paparan lebih di luar, saya tidak akan menghadapi masalah dengan ruang bahagian-bahagian di dalam kotak.

Buat masa ini saya tidak mempunyai kes penggunaan untuk menyelesaikan persamaan kuadratik. Untuk memperbaiki alat, saya ingin mengembangkan alat ini dengan perkara-perkara matematik yang lebih jauh, misalnya kalkulus asas atau formula seperti formula binominal atau ayat Pythagoras.

Disyorkan: