Saya seorang pemula di bidang elektronik. Saya mencoba membangun kalkulator dari awal sebagai proyek sederhana dan hobi sampingan untuk membuat saya sibuk.
Tujuan saya adalah membuat kalkulator sederhana, bukan kalkulator ilmiah atau grafik, walaupun saya juga tidak keberatan menerima informasi tentang cara melakukannya, hanya untuk iseng.
Apakah ada tutorial yang bagus untuk ini? Bagaimana saya memulai?
calculator
Filsuf
sumber
sumber
Jawaban:
Berikut adalah contoh kalkulator yang dapat Anda buat tanpa terlalu banyak pengetahuan elektronik. Ini fitur lengkap, meskipun tambahan tidak termasuk.
sumber
Itu bukan proyek sepele. Ada banyak sub proyek pendidikan yang perlu dikhawatirkan. Salah satunya adalah tombol dan debouncing. Lain adalah menulis karakter ke layar. Ada keputusan bagaimana Anda ingin mengimplementasikan ini, apakah Anda tertarik membuatnya dari kotak besar gerbang nand atau ingin mengambil mikrokontroler atau prosesor lain dan menulis perangkat lunak? Apakah Anda tertarik menggunakan FPGA dan melakukan semua matematika di RTL? Anda perlu memecah masalah menjadi komponen-komponen itu dan mengerjakan / mempelajari satu komponen pada satu waktu dan kemudian bergabung bersama-sama. Sebagai contoh jika mesin inti matematika sebenarnya perangkat lunak pada mikrokontroler, satu tugas akan mencakup menulis beberapa fungsi C pada komputer desktop Anda yang dapat Anda beri makan penekanan tombol dan karakter output yang pada akhirnya akan pergi ke layar. Tugas non-sepele jika Anda belum pernah diprogram sebelumnya.
Sebagai proyek pendidikan yang akan saya lakukan adalah mendapatkan beberapa launchapads msp430, masing-masing di bawah 5 dolar atau Penemuan garis nilai STM32 (yang berbasis stm32 / lengan bukan yang lain) masing-masing sekitar 12 dolar. Sejumlah orang akan mengarahkan Anda ke Arduino, dan itu adalah platform yang baik juga, ia memiliki pro dan kontra, saya tidak akan pergi dengan itu sebagai mikrokontroler pertama saya. Beli panel dua baris lcd sederhana, lcd bumi dulu tempat yang baik, mungkin hanya pergi ke sparkfun. Ambil satu papan mikrokontroler yang dihubungkan ke panel lcd dan pelajari cara meletakkan karakter di layar. Saya kemudian akan belajar bagaimana menggunakan uart pada mikrokontroler yang sering dimulai dengan blasting byte, kemudian menerima dan menggemakan. Gunakan penerima uart untuk menerima barang-barang untuk dipajang di layar kemudian menggunakan terminal bisu (dempul, hyperterm, minicom) dari feed komputer dan pastikan itu berfungsi. Selanjutnya, ambil mikrokontroler lain, gunakan pengalaman masuk dan keluar uart Anda dan kerjakan mesin core matematika, dari komputer Anda masukkan 0 - 9, +, -, = pada awalnya lalu tambahkan multiply dan bagi dan kemudian floating point jika Anda cukup berani untuk itu (atau punya perpustakaan yang cocok). Output dari modul matematika akan menggemakan angka input dan mencetak hasil ketika = dikirim, dll. Kemudian mencari tahu apa yang harus dilakukan dengan tombol, menemukan array tombol, memberi makan mereka ke dalam mikrokontroler ketiga entah bagaimana, melonggarkan, dan mengubahnya menjadi mulai dari 0 - 9, +, -, = ke mikrokontroler matematika. MAKA, kurangi semua ini menjadi satu mikrokontroler tanpa benda-benda uart di tengah. gunakan pengalaman masuk dan keluar uart Anda dan bekerja pada mesin matematika inti, dari komputer Anda berikan 0 - 9, +, -, = pada awalnya kemudian tambahkan multiply dan bagi dan kemudian floating point jika Anda cukup berani untuk itu (atau memiliki perpustakaan yang cocok). Output dari modul matematika akan menggemakan angka input dan mencetak hasil ketika = dikirim, dll. Kemudian mencari tahu apa yang harus dilakukan dengan tombol, menemukan array tombol, memberi makan mereka ke dalam mikrokontroler ketiga entah bagaimana, melonggarkan, dan mengubahnya menjadi mulai dari 0 - 9, +, -, = ke mikrokontroler matematika. MAKA, kurangi semua ini menjadi satu mikrokontroler tanpa benda-benda uart di tengah. gunakan pengalaman masuk dan keluar uart Anda dan bekerja pada mesin matematika inti, dari komputer Anda berikan 0 - 9, +, -, = pada awalnya kemudian tambahkan multiply dan bagi dan kemudian floating point jika Anda cukup berani untuk itu (atau memiliki perpustakaan yang cocok). Output dari modul matematika akan menggemakan angka input dan mencetak hasil ketika = dikirim, dll. Kemudian mencari tahu apa yang harus dilakukan dengan tombol, menemukan array tombol, memberi makan mereka ke dalam mikrokontroler ketiga entah bagaimana, melonggarkan, dan mengubahnya menjadi mulai dari 0 - 9, +, -, = ke mikrokontroler matematika. MAKA, kurangi semua ini menjadi satu mikrokontroler tanpa benda-benda uart di tengah. Output dari modul matematika akan menggemakan angka input dan mencetak hasil ketika = dikirim, dll. Kemudian mencari tahu apa yang harus dilakukan dengan tombol, menemukan array tombol, memberi makan mereka ke dalam mikrokontroler ketiga entah bagaimana, melonggarkan, dan mengubahnya menjadi mulai dari 0 - 9, +, -, = ke mikrokontroler matematika. MAKA, kurangi semua ini menjadi satu mikrokontroler tanpa benda-benda uart di tengah. Keluaran dari modul matematika akan menggemakan nomor input dan mencetak hasil ketika = dikirim, dll. Kemudian mencari tahu apa yang harus dilakukan dengan tombol, menemukan array tombol, memberi makan mereka ke dalam mikrokontroler ketiga entah bagaimana, melonggarkan, dan mengubahnya menjadi mulai dari 0 - 9, +, -, = ke mikrokontroler matematika. LALU, kurangi semua ini menjadi satu mikrokontroler tanpa benda-benda uart di tengah.
Alternatif lain adalah untuk mendapatkan salah satu papan fpga rs-232 dari knjn.com atau lattice brevia (apakah itu cukup besar?) Atau sejumlah lainnya, kemudian bekerja pada masing-masing blok fungsional menggunakan bahasa RTL. bagian dari itu akan jauh lebih mudah daripada solusi perangkat lunak yang setara, beberapa bagian akan sedikit lebih sulit daripada solusi perangkat lunak.
Jika Anda dapat memberikan informasi lebih lanjut tentang apa yang Anda pikirkan, sekotak gerbang nand atau solusi berbasis mikrokontroler atau apakah Anda memikirkan sesuatu yang lain?
sumber
Kalkulator elektronik paling sederhana yang bisa Anda buat adalah kalkulator biner empat fungsi. Anda bisa membangunnya menggunakan switch untuk memasukkan angka biner, dan 7400 elemen logika dasar keluarga dapat menangani adders yang akan menangani penambahan. Anda dapat menggunakan masing-masing LED untuk mewakili setiap nomor biner dalam output, atau Anda dapat menggunakan beberapa tampilan tujuh-segmen untuk menampilkan nomor dalam heksadesimal. Membangun kalkulator biner akan memungkinkan Anda menghindari membangun konverter desimal ke biner, dan akan membantu Anda membiasakan diri dengan cara kerja elektronik digital. Jika Anda berencana untuk masuk ke elektronik digital sebagai hobi, Anda mungkin ingin mempertimbangkan untuk mendapatkan Logisim , sebuah program gratis yang memungkinkan Anda untuk mensimulasikan sirkuit Anda sebelum membangunnya.
sumber
Inilah cara saya melakukannya.
Pilih komponen:
Input Device
(Keypad 4x4 dalam kasus saya. 10 tombol untuk angka, 4 untuk operator, satu untuk '=', dan satu untuk 'reset / refresh')Processor
(AVR 8-bit)Output device
(LCD 16x2)Power supply
(LM7805 regulator dengan baterai 9volt)BreadBoard
(buat PCB setelah mulai bekerja)Saya memilih untuk program dalam pertemuan (untuk belajar), masalah pilihan pribadi. Saya menggunakan AVR Studio 4 sebagai IDE dan programmer 'ISP' berbasis home-baked untuk mem-flash hex ke AVR.
kemudian saya menulis driver untuk LCD dan keypad. Ketika dapat mengambil input dan menghasilkan output, mulai parsing dalam angka dan operator desimal, kemudian saya mem-parsing ekspresi dan membaca tentang metode Infix, Postfix, dan Prefix . Saya melakukan pekerjaan saya dalam perakitan sehingga tidak ada 'dukungan datatype FLOAT' dan saya akhirnya menerapkan tipe data kustom saya (tipe data BCD untuk mempertahankan presisi desimal 15 digit itu adalah pemborosan besar pada RAM!).
Semua ini dilakukan dan Voila .. kalkulator saya sudah siap (saya beri nama BUB!).
Milik saya berlari @ 1MHz dan mampu mengalahkan casio_991MS (dalam hal presisi desimal dan perkalian dan pembagian).
Saya harap ini membantu orang lain.
sumber
Anda dapat menggunakan kit pengembangan dengan semua yang sudah ada di papan untuk memungkinkan Anda untuk fokus pada perangkat lunak. Misalnya http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en024858&part=DM240001 kit ini memiliki PIC, LCD, dan beberapa tombol. Ada banyak tajuk untuk menambahkan tombol tambahan. Satu kekurangannya adalah LCD lebih besar dari yang Anda mungkin ingin gunakan pada awalnya tetapi pasti akan membantu Anda memulai.
Jika Anda mencari di sekitar Anda mungkin dapat menemukan yang lebih kecil (dan lebih murah) yang dapat Anda mulai.
Menggunakan kit seperti ini akan membuatnya lebih mudah untuk mulai menulis kode Anda karena mereka akan menjadi beberapa contoh, dan menghilangkan masalah masalah perangkat keras karena semuanya diatur dengan benar. Kelemahan lain adalah kit ini menggunakan gambar high-end yang berlebihan untuk proyek kalkulator, tapi itu memberi Anda ruang untuk tumbuh dan memodifikasi di masa depan untuk melakukan tugas-tugas lain. Ini juga akan memberi Anda skema untuk digunakan sebagai titik awal untuk membuat papan Anda sendiri di masa depan.
sumber
Di rak saya, saya memiliki "Kalkulator Elektronik" oleh H. Edward Roberts, diedit oleh Forrest M. Mims III. 1974.
Ini cukup mendidik tentang bagaimana orang-orang menggunakannya untuk membangun kalkulator pada tahun 1974. Banyak foto dari siklus hidup lengkap kalkulator MITS yang diproduksi secara massal - foto-foto prototyping (kekacauan kabel spaghetti besar), desain PCB (meletakkan Rubylith di atas tabel penyusunan), bagian individual, jalur perakitan, mesin gelombang solder, dan pemecahan masalah.
Ah, banyak hal telah berubah sejak saat itu. Buku-buku hari ini biasanya menghindari menunjukkan kekacauan besar kabel spaghetti. Kalkulator hari ini menghindari menerapkan tegangan listrik langsung ke PCB kalkulator.
Banyak hal yang masih sama. Orang-orang biasanya masih membuat kabel spaghetti besar berantakan saat melakukan prototipe.
sumber
Sebagai permulaan, Anda harus memikirkan komponen utama yang akan Anda butuhkan. Anda mungkin perlu mikrokontroler, keypad, dan layar LCD. Setelah Anda memilih komponen-komponen itu, seharusnya semudah mengembangkan firmware.
sumber
Saya percaya ini bisa menjadi proyek pembelajaran pertama yang baik, tetapi ini tidak sepele, dan Anda harus belajar cukup banyak di sepanjang jalan, juga bersabar karena proyek ini mencakup sejumlah sub-proyek untuk menangani sepanjang cara.
Rintangan desain pertama yang perlu Anda putuskan adalah pada level teknologi apa Anda ingin melakukan ini? Dengan atau tanpa mikrokontroler (mikroprosesor yang sebagian besar swasembada), logika diskrit (mis. AND, ATAU, gerbang NOR dan sandal jepit) dengan / tanpa unit aritmatika (ALU), logika yang dapat diprogram (CPLD, FPGA), sesuatu yang lain yang saya singgahi tidak disebutkan atau dipertimbangkan. Ini harus menjadi yang pertama tentang teknologi yang digunakan untuk melakukan perhitungan, kontrol input / output adalah keputusan sekunder (tampilan tujuh segmen LED, panel LCD) yang sebagian besar dipengaruhi oleh estetika atau biaya.
Salah satu tempat awal yang berpotensi bermanfaat untuk belajar tentang komputasi digital adalah buku yang sangat mudah diakses, How Computers Do Math (ISBN: 0471732788) oleh Clive Maxfield yang unik. Ini ditulis di "lunak" - pemrograman atau tingkat logis, yang perlu Anda pahami untuk benar-benar melakukan perhitungan.
Orang lain menyebut proyek uWatch (- micro-Watch ) sebagai contoh, dan ada referensi di internet untuk insinyur listrik (atau siswa EE) yang membuat kalkulator sendiri di tahun 1970-an. Ada juga beberapa detail tentang cara membangun kalkulator berbasis FPGA (programmable logic) .
Untuk pemula total elektronik (atau elektronik digital) saya sarankan menggunakan mikrokontroler sebagai titik awal dalam desain Anda, lihat situs web buku yang disebutkan untuk merasakan kompleksitas dalam pemrograman (tidak banyak jika Anda memiliki pengalaman pemrograman) untuk mikrokontroler dan pergi dari sana.
sumber
Desainer VisualTFT memiliki kalkulator layar sentuh sederhana sebagai salah satu contohnya. Perangkat lunak tersebut menghasilkan kode untuk kompiler Mikroelektronika Pascal, Basic dan C untuk mikrokontroler AVR, PIC, ARM, dan 8.051.
sumber
Persyaratan Perangkat Keras
Dalam produk kalkulator nyata, Anda memerlukan LCD khusus untuk menampilkan karakter khusus seperti
=
,-
danM
(untuk operasi MC , MR dan MS ) tanda-tanda. Desain LCD khusus berharga hingga $ 3000, tetapi kemudian LCD yang dirancang khusus menjadi lebih ekonomis daripada yang untuk keperluan umum lainnya. Karena proyek Anda hanya untuk hobi, saya sarankan Anda menggunakan LCD tujuan umum, dengan pengontrol KS0108.Anda memerlukan pengontrol yang sangat mendasar karena Anda akan melakukan tugas yang sangat sederhana. Anda dapat menggunakan mikrokontroler PIC murah.
Langkah-langkah desain
Kelola mengemudi LCD Anda. Tuliskan beberapa digit di atasnya. Tulis antarmuka perangkat lunak untuknya.
Lakukan langkah yang sama dengan yang Anda lakukan dengan LCD. Pastikan Anda memiliki kontrol perangkat lunak pada bantalan tombol Anda.
Jika Anda menggunakan mikrokontroler yang dapat berkembang biak dan membelah, Anda tidak perlu melakukan operasi itu sendiri; tetapi Anda harus membayar lebih untuk mikrokontroler, di sisi lain, Anda belajar lebih sedikit dan mendapatkan lebih sedikit pengalaman selama proyek Anda.
Jika Anda ingin menambahkan fitur aritmatika yang lebih canggih, (seperti rooting kuadrat, penghitungan sinus / kosinus, dll.) Anda perlu mengimplementasikan algoritma penghitungan yang relevan menggunakan Metode Newton atau Taylor Series Expansion .
Kalau tidak, itu akan menjadi proyek sederhana. Tantangan utama Anda adalah dengan mengemudikan LCD dan keypad Anda, jika Anda tidak memiliki banyak pengalaman sebelumnya.
sumber
Cara termudah untuk mengimplementasikan kalkulator mungkin dengan menggunakan mikrokontroler. Jika Anda memutuskan untuk pergi rute itu, langkah pertama adalah menemukan beberapa kode untuk benar-benar melakukan perhitungan. Anda memerlukan program yang menerima operan dan operator dan mengeluarkan hasilnya. Ini modul kalkulator relatif sederhana ditulis dalam charus memberi Anda gambaran tentang apa yang perlu. Itu dapat menambah, mengurangi, mengalikan dan membagi serta beberapa operasi bitwise dan, jika Anda menggunakan Reverse Polish Notation seperti dalam kalkulator ilmiah, itu dapat menyelesaikan sub-ekspresi dalam tanda kurung. Jadi, Anda akan membaca tombol apa yang ditekan, kumpulkan setiap "token" dalam buffer yang mengkonversi angka apa pun menjadi nilai numerik aktual dan kemudian ketika Anda mendapatkan tombol "=", Anda memasukkan daftar token ke kode eval ini yang mengurangi dan memecahkan ekspresi menghasilkan nilai tunggal.
sumber
Untuk pemula, berikut ini saran BOM saya untuk proyek Anda:
HD44780
LCD berbasis , seperti LCD 16x2 yang ada di mana-manaIni akan memungkinkan kalkulator dasar dibangun.
Untuk tujuan lebih lanjut, berikut ini saran saya tentang BOM:
ST7920
LCD matriks berbasis , yang mendukung karakter dan grafikIni memungkinkan Anda membuat kalkulator grafik yang rumit seperti seri TI-83 Plus atau TI-nSpire.
sumber