Sa isang oras, ang mga calculator ng bulsa, kung saan inilunsad agad ang Pangunahing tagapagsalin, ay may isang tiyak na pamamahagi. Tulad ng sa bahay mga computer na sikat sa parehong oras, ngunit may impormasyon na ipinakita sa integrated na may mababang resolusyon na pagpapakita. Pinapayagan nito ang mga hindi programer na propesyonal na sumulat ng mga programa para sa medyo kumplikadong mga kalkulasyon nang hindi kumuha ng TV. Sa pamamagitan ng kalagitnaan ng siyamnapung taon, ang pagiging popular ng mga calculator na ito ay nahulog dahil sa lumalagong katanyagan ng higit pang mga unibersal na PDA, kung saan ang Basic ay isa lamang sa mga posibleng aplikasyon, kasama ang iba pa. Sa modernong mga smartphone sa parehong paraan: kailangan mo ng Batayan - na-download mo mula sa tindahan ng application. Ngayon, kapag maraming nag-apply sa gawang bahay mga microcontroller, hindi pangkaraniwan na mga calculator ng bakal na may BASIC na ginawa gawin mo mismo. Para sa mga natagpuan ang mga orihinal, ito ay nostalgia, para sa mga mas batang masters ay isang pagkakataon na madama kung ano sila. Narito ang isa sa maraming tulad na mga konstruksyon na isinagawa ng may-akda ng Mga Tagagamit sa ilalim ng palayaw na SANUKI UDON.
Ginamit ni Casio at Sharp ang 4-bit microprocessors sa naturang mga calculator, Kyocera - 8-bit, Angstrom at Integral - 16-bit. Nagpasya ang master na pumili ng isang gitnang lupa at inilapat ang modernong 8-bit ATmega328P microcontroller sa kanyang bersyon, dahil mayroon nang isang tagasalin para sa kanya ArduinoBASIC. Narito lamang ito na iniangkop sa isang mas mababang pagpapakita ng resolusyon at keyboard ng CardKB, na naglalaman ng kinakailangang microcontroller.
Upang mabuo ang calculator, bilang karagdagan sa CardKB, kakailanganin mo: isang 2xAA o 2xAAA baterya kompartimento, isang PMOLED na display sa SSD1306 chip, at kung nais mong i-save at basahin ang mga file - isang flash memory chip, halimbawa, 24LC256. Ang opsyonal na uri ng breadboard at mga jumper ng dupont ay opsyonal, mas mahusay na ikonekta ang lahat sa pamamagitan ng paghihinang. Ang ArduinoBASIC ay orihinal na dinisenyo para sa isang PMOLED na display na may isang interface ng SPI, ngunit ang wizard ay nai-redid ang firmware kung kaya't nagtrabaho ito sa isang display na may interface ng I2C. Ipinapakita ng KDPV ang pangalawang bersyon ng calculator, ang gdp display ay mas maliit, at ang baterya ay sa uri ng CR2025 o CR2032.
Sa gilid ng CardKB ay isang konektor kung saan ako naka-ruta sa bus2C, pinapakain din ang pagkain doon. Kung mayroong isang memory chip, sa adapter board o hindi, ito ay konektado kahanay sa pagpapakita ayon sa pinout mula sa datasheet.Hindi tinukoy ng wizard kung ang isang cable na may konektor ng pag-asawa ay nakakabit sa CardKB. Kung hindi ibinibigay, at wala kang tulad na cable, maaari mong ibenta ang mga conductor sa board sa likod na bahagi.
Ang pagkakaroon ng konektado sa lahat ng electrically, ang master ay nagpapatuloy na gawing muli ang ArduinoBASIC sa bakal na ginamit niya. Ang resulta ay inilatag dito. Kinakailangan din upang mapatay ang RGB LED sa board, na sa pamamagitan ng default ay kumikinang sa lahat ng tatlong mga kristal sa buong lakas. At hindi lamang pinapataas ang kasalukuyang pagkonsumo, ngunit din lumiwanag nang diretso sa mga mata ng gumagamit. Samakatuwid, dapat mo ring i-download ang karaniwang library ng NeoPixel mula dito, at sa pagsasama pumili ng ATmega328p (3.3V, 8Mhz). Pagkatapos ng compilation, piliin ang naipon na Export na Binary at makuha ang binary file.
Upang mag-upload ng file sa CardKB, kailangan mo ng isang USB-ISP programmer at isang makeshift adapter. Avrdude o avrdude-GUI (ito ay pareho, ngunit may isang GUI) ay angkop para sa pagkontrol sa programmer. Ang Fyuzy ay hindi maaaring isulat muli. Oo, medyo mas kumplikado kaysa sa Arduinokung saan ang USB cable at Arduino IDE built-in ay sapat na.
Appendix: kung paano itama ang file SSD1306ASCII_I2C.h bago ang pagsasama, depende sa resolusyon ng ipinapakita na PMOLED.
Para sa isang display na may resolusyon ng 128 × 32:
#define OLED_WIDTH 128
#define OLED_HEIGHT 32
#define OLED_COLMAX 21
#define OLED_ROWMAX 4
Para sa isang display na may resolusyon ng 128 × 64:
#define OLED_WIDTH 128
#define OLED_HEIGHT 64
#define OLED_COLMAX 21
#define OLED_ROWMAX 8
Ang Pangunahing syntax na ipinatupad dito ay halos kapareho sa ginamit sa computer ng ZX81 sa bahay, kaya kapag nagsusulat ng mga programa para sa calculator, maaari kang gabayan ng dokumentasyon para sa computer na ito.