Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
Panimula
maligayang pagdating sa aking unang itinuro!
Sinimulan ko ang proyektong ito upang mapalawak ang aking kaalaman sa programa. Kadalasan, pinagsasama mo lang ang iba't ibang mga source code upang likhain ang program na kailangan mo. Ang aking layunin ay upang isulat ang aking sariling code ng programa para sa pakikipag-ugnay sa isang tool. Gusto kong lumikha ng isang simpleng tool para sa pagkalkula. Ilang buwan na ang nakalilipas, suportado ko ang isang kaibigan upang malutas ang quadratic equation.
Bazinga! ito ang use case!
Gumamit ulit ako ng isang lumang metal box. Mas gusto ko ang minimalistic na hitsura at interface ng mga tool. iyon ang dahilan kung bakit nais kong gumamit ng 2 mga pindutan para sa pagbibigay ng input. Ang pagtatalo ay ipapakita ng isang simpleng LCD display.
Mga gamit
listahan ng materyal:
kahon
2 button na istilo ng Arcade
Arduino Nano, o katulad
LCD display 1602 na may I2C adapter
on / off switch
mga wire
2x 10k Ohm risistor
baterya 9v block
konektor para sa 9v na baterya
breadboard
sari-sari (piraso ng kahoy, anggulo ng metal, mga kurbatang kurbatang, tornilyo, washers)
mga tool:
nakita
panghinang
makina ng pagbabarena
computer para sa programa
Hakbang 1: Backlight ng Mathimatical
Mathimatical backround
Ipinapakita ng 2-button quadratic equation ang mga halaga kung saan tumatawid ang quadratic function sa X-axis. Ang isang quadratic function ay maaaring tumawid sa X-axis hindi kailanman, isang beses o dalawang beses.
Mayroong iba't ibang mga paraan upang makalkula ang mga halagang ito. Para sa aking tool, gumagamit ako ng PQ-formula (hindi ako sigurado, kung ang ekspresyong ito ay gagamitin sa buong mundo).
Ang isang quadratic equation ay may form:
ax² + bx + c = 0
Upang kalkulahin ang mga crossing point, hatiin ang form sa isang x² + px + q = 0 na may p = b / a; q = c / a
ang PQ Formula:
x1 = -p / 2 + sqrt ((p / 2) ²-q)
x2 = -p / 2 - sqrt ((p / 2) ²-q)
Ang resulta x ay maaaring makakuha ng 0, 1 o 2 halaga. Nakasalalay iyon sa halaga sa ilalim ng square root.
Ang halaga ba> 0, pagkatapos ang PQ-Formula ay may dalawang solusyon.
Ang halaga ba = 0, pagkatapos ang PQ-Formula ay may isang solusyon
ang halagang <0, kung gayon ang PQ Formula ay walang solusyon. Ang pag-andar ay hindi tumatawid sa X-Axis.
Hakbang 2: Software
Software
Para sa programa ginamit ko ang opisyal na Arduino IDE. Ang aking target ay upang lumikha ng aking sariling programa ng software. Ang aking interface ay dapat na may dalawang mga pindutan. Isang pindutan upang hakbang sa pagitan ng iba't ibang mga antas, ang pangalawang pindutan upang baguhin ang mga halaga sa iba't ibang mga antas.
Upang malutas ang PQ-Formula, nilikha ko ang istraktura sa itaas:
For sure, hindi ko naimbento ang gulong. Para sa paglikha ng code, ginamit ko ang module:
- pagtatalo
- ipakita
Ang mga sumusunod na puntos ay ang pinakamalaking hamon:
- Paano ko pipiliin ang pag-sign? Nalutas ko ang hamong ito sa pagpapaandar na modulo (link). Hinahati ng code ang pag-input sa pamamagitan ng 2. Ang isang input ba ay isang kakaibang numero, ang halaga ay nakakakuha ng negatibo, kung hindi man ang numero ay positibo.
- Matapos ang pagtakbo sa lahat ng mga antas, kailangan kong ideklara ang lahat ng mga halaga sa 0.
- Ang ipinakitang teksto ay binubura lamang ang nagpapadala ng mga character. Kung ang mga code ay nagpapadala ng isang salita na may 4 na mga character, ang 4 na mga character na ito ay muling mai-reload. Kung ang salitang dati ay mayroong higit pang mga character, mananatili ang mga character. Upang ayusin iyon, ang ipinakitang teksto ay mapupuno ng mga blangko. Ang lahat ng 16 na character sa isang hilera ay muling mai-reload.
Nakalakip ang pangwakas na code.
Hakbang 3: Hardware
Hardware
Ang mga bahagi ay nakalista sa itaas. Para sa proyektong ito, ang hardware ay simple. Kailangan ko lang ng Arduino microprocessor, 2 button at isang display. Okay, kung nais mong ilagay sa isang kahon, kailangan mo rin ng isang kahon at supply ng kuryente.
Gumagamit ulit ako ng isang lumang metal box. Nag-drill ako ng butas sa pindutan para sa plug sa switch para sa power supply. Ang takip ng kahon ay nakakuha ng 3 butas. Nag-drill ako ng dalawang butas para sa mga malalaking pindutan at pinutol ang isang window para sa display. Nagdidikit ako ng isang maliit na piraso ng kahoy sa likod ng takip upang magkaroon ng maraming bagay upang ayusin ang pagpapakita at mga pindutan. Upang mai-upgrade ang hitsura ang kahon ay may mga sticker.
Para sa supply ng kuryente, inirerekumenda ko ang mga rechargeable na 9V block na baterya. Ikonekta ko ang baterya sa pamamagitan ng paglipat ng kuryente sa Arduino. Ang baterya ay naayos sa kahon na may isang maliit na anggulo ng metal. Ang konektor para sa baterya ay naayos lamang ng mga kurbatang kurbatang.
Ang microprocessor ay isang clone ng isang Arduino nano. Para sa kasong paggamit na ito, sapat ang pagganap. Ang isang Attiny 85, halimbawa isang Digispark microprocessor, ay tinanggihan. Ang Arduino ay "sumakay sa tinapay" sa tabi ng display.
Ang display ay isang 1602 LCD display. maaari mong gamitin ang 16 na mga character sa dalawang mga hilera. Maaari mong makita ang display na ito sa maraming iba't ibang mga machine ng mga tool. Mayroong dalawang magkakaibang paraan upang magamit ang display na ito. Maaari mong ikonekta ang display nang direkta sa controller o maaari kang gumamit ng isang add-on para makipag-usap sa display sa pamamagitan ng I2C. Ang I2C ay isang karaniwang protocol. Ginamit ko ito, sapagkat mas madaling ikonekta ang display sa controller. Kailangan mo lamang ng 4 na mga kable sa halip na 16, VCC hanggang 5V, GND sa GND, SDA hanggang A4, SCL hanggang A5. Ang display ay naayos ng mga turnilyo sa takip ng kahon.
Napakalaki ng mga pindutan! mayroon silang karaniwang istilong arcade game. Gusto ko ito! Ang mga pindutan ay konektado sa digital pin 4 at 7. Mangyaring huwag kalimutan ang 10K Resistors!
Upang buksan ang takip, halimbawa upang palitan ang baterya, gumamit ako ng mas mahahabang mga kable na naka-plug sa breadboard.
Hakbang 4: Mga kable
Hakbang 5: Pagpapabuti sa Hinaharap
Pagpapabuti sa Hinaharap
Matapos matapos ang isang proyekto, palagi kang nakakahanap ng mga bug o tampok para sa pagpapabuti. Sa proyektong ito, masaya ako na makahanap lamang ng ilang mga puntos, pagbutihin ko para sa hinaharap.
Para sa susunod, pagbutihin ko ang pagsasamantala sa kahon. Inayos ko ang display, ang switch ng kuryente, at ang mga pindutan sa simula ng proyektong ito. Sa huli, nakakuha ako ng kaunting problema upang makahanap ng sapat na puwang para sa baterya at microprocessor sa kahon. Kapag inilagay ko ang pindutan at ang display nang higit sa labas, hindi ako magkakaroon ng anumang problema sa puwang para sa mga bahagi sa loob ng kahon.
Sa ngayon wala akong isang kaso ng paggamit para sa paglutas ng quadratic equation. Upang mapabuti ang tool, nais kong palawakin ang tool sa karagdagang mga bagay sa matematika, halimbawa ng pangunahing calculus o pormula tulad ng binominal formula o pangungusap ng Pythagoras.