Jestem nowicjuszem w elektronice. Próbuję zbudować kalkulator od zera jako prosty projekt i hobby boczne, aby zająć się mną.
Moim celem jest zbudowanie prostego kalkulatora, a nie kalkulatora naukowego lub graficznego, chociaż nie mam nic przeciwko otrzymywaniu informacji o tym, jak to zrobić, tylko dla kopnięć.
Czy jest na to dobry tutorial? Jak mam zacząć?
calculator
Philoxopher
źródło
źródło
Odpowiedzi:
Oto przykład kalkulatora, który można zbudować bez zbyt dużej wiedzy na temat elektroniki. Jest w pełni funkcjonalny, chociaż dodawanie nie jest uwzględnione.
źródło
To nie jest trywialny projekt. Istnieje wiele podprojektów edukacyjnych, o które należy się martwić. Jednym z nich są przyciski i zaprzeczanie. Innym jest pisanie znaków na wyświetlaczu. Istnieje decyzja, jak chcesz to zaimplementować. Czy chcesz zrobić to z dużego pudełka bramek Nand, czy chcesz wziąć mikrokontroler lub inny procesor i napisać oprogramowanie? Czy jesteś zainteresowany używaniem FPGA i wykonywaniem matematyki w RTL? Musisz podzielić problem na te komponenty i pracować / uczyć się jednego komponentu na raz, a następnie połączyć je razem. Na przykład, jeśli głównym mechanizmem matematycznym jest oprogramowanie na mikrokontrolerze, jedno zadanie obejmowałoby napisanie na komputerze stacjonarnym niektórych funkcji C, które można podawać naciśnięciom klawiszy i wypisywać znaki, które ostatecznie trafią na ekran. Zadanie nietrywialne, jeśli nigdy wcześniej nie programowałeś.
Jako projekt edukacyjny chciałbym zdobyć kilka starterów msp430, każdy za 5 dolców lub odkrycie linii wartości STM32 (stm32 / arm oparte na jednym ramieniu, a nie drugie) za około 12 dolców każdy. Wielu ludzi poprowadzi cię w kierunku arduino, i to też jest świetna platforma, ma swoje zalety i wady, nie chciałbym iść z nią jako moim pierwszym mikrokontrolerem. Kup prosty dwuliniowy panel LCD, ziemia LCD była dobrym miejscem, być może po prostu idź do SparkFun. Weź jedną płytkę mikrokontrolera i podłącz ją do panelu LCD i naucz się umieszczać postacie na wyświetlaczu. Nauczyłbym się wtedy, jak korzystać z UART na mikrokontrolerze, który często zaczyna się od wysadzania bajtów, a następnie odbierania i echa. Użyj odbiornika Uart, aby odbierać rzeczy do wyświetlenia, a następnie użyj głupiego terminalu (kit, hyperterm, minicom) z komputera, a następnie upewnij się, że działa. Następnie weź inny mikrokontroler, wykorzystaj swoje doświadczenie w pracy i pracuj nad podstawowym silnikiem matematycznym, z komputera podaj 0 - 9, +, -, = najpierw dodaj następnie pomnóż i podziel, a następnie zmiennoprzecinkowy, jeśli jesteś wystarczająco odważny do tego (lub mieć bibliotekę, która pasuje). Dane wyjściowe z modułu matematycznego odbijają liczby wejściowe i wypisują wyniki, gdy wysyłane jest = itp. Następnie wymyśl, co zrobić z przyciskami, znajdź tablicę przycisków, podaj je jakoś do trzeciego mikrokontrolera, zapisz i przekształć w Wyjście z 0 - 9, +, -, = do mikrokontrolera matematycznego. NASTĘPNIE, zredukuj to wszystko do jednego mikrokontrolera bez uartów pośrodku. skorzystaj z doświadczenia uart i out i pracuj nad podstawowym silnikiem matematycznym, z komputera podaj 0 - 9, +, -, = najpierw dodaj mnożenie i dziel, a następnie zmiennoprzecinkowy, jeśli masz na to dość odwagi (lub masz biblioteka, która pasuje). Dane wyjściowe z modułu matematycznego odbijają liczby wejściowe i wypisują wyniki, gdy wysyłane jest = itp. Następnie wymyśl, co zrobić z przyciskami, znajdź tablicę przycisków, podaj je jakoś do trzeciego mikrokontrolera, zapisz i przekształć w Wyjście z 0 - 9, +, -, = do mikrokontrolera matematycznego. NASTĘPNIE, zredukuj to wszystko do jednego mikrokontrolera bez uartów pośrodku. skorzystaj z doświadczenia uart i out i pracuj nad podstawowym silnikiem matematycznym, z komputera podaj 0 - 9, +, -, = najpierw dodaj mnożenie i dziel, a następnie zmiennoprzecinkowy, jeśli masz na to dość odwagi (lub masz biblioteka, która pasuje). Dane wyjściowe z modułu matematycznego odbijają liczby wejściowe i wypisują wyniki, gdy wysyłane jest = itp. Następnie wymyśl, co zrobić z przyciskami, znajdź tablicę przycisków, podaj je jakoś do trzeciego mikrokontrolera, zapisz i przekształć w Wyjście z 0 - 9, +, -, = do mikrokontrolera matematycznego. NASTĘPNIE, zredukuj to wszystko do jednego mikrokontrolera bez uartów pośrodku. Dane wyjściowe z modułu matematycznego odbijają liczby wejściowe i wypisują wyniki, gdy wysyłane jest = itp. Następnie wymyśl, co zrobić z przyciskami, znajdź tablicę przycisków, podaj je jakoś do trzeciego mikrokontrolera, zapisz i przekształć w Wyjście z 0 - 9, +, -, = do mikrokontrolera matematycznego. NASTĘPNIE, zredukuj to wszystko do jednego mikrokontrolera bez uartów pośrodku. Dane wyjściowe z modułu matematycznego odbijają liczby wejściowe i wypisują wyniki, gdy wysyłane jest = itp. Następnie wymyśl, co zrobić z przyciskami, znajdź tablicę przycisków, podaj je jakoś do trzeciego mikrokontrolera, zapisz i przekształć w Wyjście z 0 - 9, +, -, = do mikrokontrolera matematycznego. NASTĘPNIE, zredukuj to wszystko do jednego mikrokontrolera bez uartów pośrodku.
Inną alternatywą jest zdobycie jednej z rp-232 fpga z knjn.com lub kratownicy brevia (czy to wystarczająco duże?) Lub wielu innych, a następnie praca na każdym z bloków funkcjonalnych przy użyciu języka RTL. jego części będą znacznie łatwiejsze niż równoważne oprogramowanie, niektóre będą nieco trudniejsze niż oprogramowanie.
Jeśli możesz podać więcej informacji na temat tego, co myślisz, pudełko bramek Nand lub rozwiązanie oparte na mikrokontrolerze, czy zastanawiasz się nad czymś innym?
źródło
Najprostszym kalkulatorem elektronicznym, jaki można zbudować, byłby czterofunkcyjny kalkulator binarny. Można go zbudować za pomocą przełączników do wprowadzania liczb binarnych, a podstawowe elementy logiczne rodziny 7400 mogłyby obsłużyć sumatory obsługujące dodawanie. Możesz użyć albo pojedynczych diod LED do przedstawienia każdej liczby binarnej na wyjściu, albo możesz użyć kilku siedmiosegmentowych wyświetlaczy do wyświetlenia liczby w systemie szesnastkowym. Zbudowanie kalkulatora binarnego pozwoliłoby uniknąć budowania konwertera dziesiętnego na binarny i pomógłby zapoznać się ze sposobem działania elektroniki cyfrowej. Jeśli planujesz zająć się elektroniką cyfrową jako hobby, możesz rozważyć zakup Logisim , darmowego programu, który pozwala symulować obwody przed ich zbudowaniem.
źródło
Oto jak to zrobiłem.
Wybierz komponenty:
Input Device
(Klawiatura 4x4 w moim przypadku. 10 klawiszy dla cyfr, 4 dla operatorów, jeden dla „=” i jeden dla „resetu / odświeżania”)Processor
(8-bitowy AVR)Output device
(16x2 LCD)Power supply
(Regulator LM7805 z baterią 9-woltową)BreadBoard
(wykonaj płytkę drukowaną po uruchomieniu)Wybrałem programować w asemblerze (uczyć się), kwestię osobistego wyboru. Użyłem AVR Studio 4 jako IDE i domowego programisty ISP opartego na lpt do flashowania hexa do AVR.
potem napisałem sterowniki do LCD i klawiatury. Gdy mogłem pobierać dane wejściowe i generować dane wyjściowe, zacząłem analizować liczby dziesiętne i operatory, następnie przeanalizowałem wyrażenia i przeczytałem o Infix, Postfix i Prefiksie . Pracowałem w asemblerze, więc nie było „wsparcia dla typu danych FLOAT” i ostatecznie wdrożyłem własny niestandardowy typ danych (typ danych oparty na BCD dla utrzymania 15-cyfrowej precyzji dziesiętnej był ogromnym marnotrawstwem pamięci RAM!).
Wszystko to gotowe i Voila .. mój kalkulator był gotowy (nazwałem go BUB!).
Mój działał przy 1 MHz i był w stanie pokonać casio_991MS (pod względem precyzji dziesiętnej oraz mnożenia i dzielenia).
Mam nadzieję, że to pomaga innym.
źródło
Możesz użyć zestawu programistycznego ze wszystkim, co już jest na płycie, abyś mógł skupić się na oprogramowaniu. Na przykład http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en024858&part=DM240001 ten zestaw ma PIC, LCD i kilka przycisków. Istnieje wiele nagłówków, aby dodać dodatkowe przyciski. Jedyną wadą jest to, że ekran LCD jest większy, niż początkowo możesz chcieć użyć, ale na pewno zaczniesz.
Jeśli będziesz szukać, możesz znaleźć mniejsze (i tańsze), od których możesz zacząć.
Użycie takiego zestawu ułatwi rozpoczęcie pisania kodu, ponieważ będą to przykłady, i usunie problem ze sprzętem, ponieważ wszystko jest skonfigurowane poprawnie. Kolejną wadą jest to, że ten zestaw wykorzystuje wysokiej klasy zdjęcia, które są przesadą dla projektu kalkulatora, ale daje ci przestrzeń do rozwoju i modyfikowania go w przyszłości do wykonywania innych zadań. Otrzymasz również schematy, które będą stanowić punkt wyjścia do tworzenia własnych plansz w przyszłości.
źródło
Na mojej półce mam „Electronic Calculators” H. Edwarda Robertsa, pod redakcją Forrest M. Mims III. 1974.
To dość pouczające o tym, jak ludzie używali do budowania kalkulatorów w 1974. Wiele zdjęć są kompletnego cyklu życia masowej produkcji kalkulatorze MITS - zdjęcia z prototypowania (wielki bałagan spaghetti przewodów), projektowanie płytek drukowanych (r rubinie na stół kreślarski), poszczególne części, linia montażowa, maszyna do lutowania falowego i rozwiązywanie problemów.
Ach, wiele rzeczy zmieniło się od tego czasu. Dzisiejsze książki zwykle unikają pokazywania dużego spaghetti bałaganu drutów. Dzisiejsze kalkulatory unikają przyłożenia napięcia sieciowego bezpośrednio do płytki drukowanej kalkulatora.
Wiele rzeczy jest wciąż takich samych. Ludzie wciąż robią duży spaghetti bałagan drutów podczas prototypowania.
źródło
Na początek powinieneś pomyśleć o głównych elementach, których będziesz potrzebować. Prawdopodobnie będziesz potrzebować mikrokontrolera, klawiatury i ekranu LCD. Po wybraniu tych składników powinno to być tak proste, jak opracowanie oprogramowania układowego.
źródło
Wierzę, że może to być dobry pierwszy projekt edukacyjny, ale nie jest trywialny i po drodze będziesz musiał nauczyć się sporo, a także uzbroić się w cierpliwość, ponieważ projekt obejmuje wiele podprojektów do rozwiązania sposób.
Pierwszą przeszkodą w projektowaniu, którą musisz podjąć, jest to, na jakim poziomie technologii chcesz to zrobić? Z mikrokontrolerem lub bez niego (w dużej mierze samowystarczalny mikroprocesor), dyskretna logika (np. AND, OR, bramki NOR i przerzutniki) z / bez jednostek arytmetycznych (ALU), logika programowalna (CPLD, FPGA), coś innego, czego nie mam nie wspomniane ani nie wzięte pod uwagę. Powinno to przede wszystkim dotyczyć technologii zastosowanej do obliczeń, kontrole wejścia / wyjścia są decyzjami drugorzędnymi (siedmiosegmentowe wyświetlacze LED, panel LCD), na które wpływ ma przede wszystkim estetyka lub koszt.
Jednym z potencjalnie użytecznych miejsc do nauki o obliczeniach cyfrowych jest bardzo dostępna książka How Computers Do Math (ISBN: 0471732788) autorstwa dziwnego Clive'a Maxfielda. Jest to napisane na „miękkim” - poziomie programowania lub logicznym, który musisz zrozumieć, aby móc wykonać obliczenia.
Ktoś inny jako przykład podał projekt uWatch (- mikro-zegarek ), aw Internecie istnieją odniesienia do inżynierów elektryków (lub studentów EE), którzy zbudowali własny kalkulator w latach 70. Istnieją również pewne szczegóły dotyczące budowy kalkulatora opartego na FPGA (programowalnym urządzeniu logicznym) .
Jeśli jesteś nowicjuszem w dziedzinie elektroniki (lub elektroniki cyfrowej), sugeruję użycie mikrokontrolera jako punktu wyjścia w twoim projekcie, zajrzyj na stronę wspomnianej książki, aby poczuć złożoność programowania (niewiele, jeśli masz jakieś doświadczenie programistyczne) do mikrokontrolera i stamtąd.
źródło
Projektant VisualTFT ma prosty kalkulator ekranu dotykowego jako jeden z jego przykładów. To oprogramowanie generuje kod dla kompilatorów Mikroelektronika Pascal, Basic i C dla mikrokontrolerów AVR, PIC, ARM i 8051.
źródło
Wymagania sprzętowe
w prawdziwym produktem kalkulatora, trzeba niestandardowego LCD do wyświetlania znaków specjalnych lubią
=
,-
iM
(dla MC , MR i MS operacji) znaki. Niestandardowa konstrukcja wyświetlacza LCD kosztuje do 3000 $, ale wtedy niestandardowo zaprojektowane wyświetlacze LCD stają się bardziej ekonomiczne niż inne uniwersalne. Ponieważ twój projekt jest tylko dla hobby, sugeruję, abyś użył wyświetlacza ogólnego przeznaczenia z kontrolerem KS0108.Potrzebujesz bardzo podstawowego kontrolera, ponieważ będziesz wykonywać bardzo proste zadania. Możesz użyć taniego mikrokontrolera PIC.
Etapy projektowania
Zarządzaj wyświetlaczem LCD. Napisz na nim kilka cyfr. Napisz do tego interfejs oprogramowania.
Wykonaj te same czynności, co w przypadku wyświetlacza LCD. Upewnij się, że masz kontrolę oprogramowania na klawiaturze.
Jeśli używasz mikrokontrolera, który może się zwielokrotniać i dzielić, nie musisz wykonywać tych operacji samodzielnie; ale musisz zapłacić więcej za mikrokontroler, z drugiej strony, uczysz się mniej i zyskujesz mniej doświadczenia podczas swojego projektu.
Jeśli chcesz dodać bardziej zaawansowane funkcje arytmetyczne (takie jak rootowanie kwadratowe, obliczanie sinus / cosinus itp.), Musisz zaimplementować odpowiednie algorytmy obliczeniowe przy użyciu metody Newtona lub rozszerzenia szeregów Taylora .
W przeciwnym razie ma to być prosty projekt. Twoim głównym wyzwaniem będzie prowadzenie ekranu LCD i klawiatury, jeśli nie masz z tym większego doświadczenia.
źródło
Najłatwiejszym sposobem wdrożenia kalkulatora byłoby prawdopodobnie użycie mikrokontrolera. Jeśli zdecydujesz się wybrać tę trasę, pierwszym krokiem byłoby znalezienie kodu do wykonania obliczeń. Potrzebujesz programu, który akceptuje operandy i operatory i wyrzuca wynik. Ten stosunkowo prosty moduł kalkulatora napisany w cpowinien dać ci wyobrażenie o tym, co jest konieczne. Może dodawać, odejmować, mnożyć i dzielić, a także niektóre operacje bitowe, a jeśli używasz odwrotnej notacji polskiej, jak w kalkulatorach naukowych, może rozwiązywać podwyrażenia w nawiasach. Aby przeczytać, które przyciski zostały wciśnięte, zbierz każdy „token” w buforze konwertując dowolne cyfry na rzeczywiste wartości liczbowe, a następnie, gdy pojawi się przycisk „=”, podajesz listę tokenów do tego kodu ewaluacyjnego, który redukuje i rozwiązuje wyrażenie skutkujące pojedynczą wartością.
źródło
Dla początkujących oto moja sugerowana LM dla twojego projektu:
HD44780
LCD oparty na 1x , podobnie jak wszechobecne 16x2Umożliwi to zbudowanie podstawowego kalkulatora.
Dla bardziej zaawansowanych celów oto mój sugerowany zestawienie komponentów:
ST7920
matrycowy wyświetlacz LCD z matrycą, który obsługuje zarówno znaki, jak i grafikęUmożliwi to zbudowanie skomplikowanego kalkulatora graficznego, takiego jak seria TI-83 Plus lub TI-nSpire.
źródło