나는 전자 공학의 초보자입니다. 나는 바쁜 프로젝트로 간단한 프로젝트와 측면 취미로 계산기를 처음부터 작성하려고합니다.
내 목표는 과학적 또는 그래프 계산기가 아닌 간단한 계산기를 만드는 것입니다.하지만 차기 방법에 대한 정보는 신경 쓰지 않습니다.
이것에 대한 좋은 자습서가 있습니까? 어떻게 시작해야합니까?
나는 전자 공학의 초보자입니다. 나는 바쁜 프로젝트로 간단한 프로젝트와 측면 취미로 계산기를 처음부터 작성하려고합니다.
내 목표는 과학적 또는 그래프 계산기가 아닌 간단한 계산기를 만드는 것입니다.하지만 차기 방법에 대한 정보는 신경 쓰지 않습니다.
이것에 대한 좋은 자습서가 있습니까? 어떻게 시작해야합니까?
답변:
너무 많은 전자 지식없이 만들 수있는 계산기의 예는 다음과 같습니다. 추가는 포함되어 있지 않지만 전체 기능입니다.
그것은 사소한 프로젝트가 아닙니다. 걱정해야 할 많은 교육용 하위 프로젝트가 있습니다. 하나는 버튼과 수신 거부입니다. 다른 하나는 디스플레이에 문자를 쓰는 것입니다. 이것을 어떻게 구현하고 싶은가에 대한 결정이 있습니다. 큰 낸드 게이트 박스에서 그것을 만들거나 마이크로 컨트롤러 또는 다른 프로세서를 사용하고 소프트웨어를 작성하고 싶습니까? fpga를 사용하고 RTL에서 모든 수학을 수행하는 데 관심이 있습니까? 문제를 해당 구성 요소로 나누고 한 번에 한 구성 요소를 작업 / 학습 한 다음 함께 결합해야합니다. 예를 들어 핵심 수학 엔진이 실제로 마이크로 컨트롤러의 소프트웨어 인 경우 하나의 작업에는 데스크톱 컴퓨터에 C 기능을 작성하여 키 스트로크 및 출력 문자를 표시하여 궁극적으로 디스플레이로 이동할 수 있습니다. 이전에 프로그래밍 한 적이없는 사소한 작업입니다.
교육 프로젝트로 각각 약 5 달러 이하의 몇 가지 msp430 런치 패드 또는 각각 12 달러 정도의 STM32 밸류 라인 디스커버리 (stm32 / arm 기반의 stm32 / arm 기반)가 있습니다. 많은 사람들이 당신을 arduino로 안내 할 것입니다. 그리고 그것은 훌륭한 플랫폼이기도합니다. 그것은 장단점이 있습니다. 나는 그것을 나의 첫 번째 마이크로 컨트롤러로 사용하지 않을 것입니다. 간단한 두 줄 LCD 패널을 구입하십시오. 어스 LCD는 좋은 장소 였을 것입니다. 아마도 sparkfun에 가십시오. 하나의 마이크로 컨트롤러 보드를 LCD 패널에 연결하고 디스플레이에 문자를 넣는 방법을 배우십시오. 그런 다음 블 래스팅 바이트를 시작한 다음 나중에 수신하고 에코하는 마이크로 컨트롤러에서 uart를 사용하는 방법을 배웁니다. uart 리시버를 사용하여 디스플레이에 넣은 물건을 수신 한 다음 바보 터미널 (퍼티, 하이퍼 터미널, 컴퓨터에서 물건을 가져와 작동하는지 확인하십시오. 다음으로 또 다른 마이크로 컨트롤러를 가져 와서 uart in / out 경험을 사용하고 핵심 수학 엔진에서 작업하십시오. 컴퓨터에서 0-9, +,-, =로 피드 한 다음 처음에는 곱셈을 추가하고 나누고 부동 소수점을 계산하십시오 그것을 위해 (또는 적합한 라이브러리를 가지고). 수학 모듈의 출력은 =가 전송 될 때 입력 번호를 출력하고 결과를 인쇄합니다. 그런 다음 버튼으로 수행 할 작업을 파악하고 버튼 배열을 찾은 다음 버튼을 세 번째 마이크로 컨트롤러에 공급하고 어떻게 debounce하고 수학 마이크로 컨트롤러에 0-9, +,-, = 중 uart. 그런 다음 중간에 UART를 사용하지 않고이 모든 것을 단일 마이크로 컨트롤러로 줄이십시오. 컴퓨터에서 uart 안팎의 경험을 사용하고 핵심 수학 엔진에서 작업하십시오. 컴퓨터에서 처음에 0-9, +,-, =를 먹이고 그에 용감한 경우 곱셈을 나누고 부동 소수점을 추가하십시오 (또는 맞는 라이브러리). 수학 모듈의 출력은 =가 전송 될 때 입력 번호를 출력하고 결과를 인쇄합니다. 그런 다음 버튼으로 수행 할 작업을 파악하고 버튼 배열을 찾은 다음 버튼을 세 번째 마이크로 컨트롤러에 공급하고 어떻게 debounce하고 수학 마이크로 컨트롤러에 0-9, +,-, = 중 uart. 그런 다음 중간에 UART를 사용하지 않고이 모든 것을 단일 마이크로 컨트롤러로 줄이십시오. 컴퓨터에서 uart 안팎의 경험을 사용하고 핵심 수학 엔진에서 작업하십시오. 컴퓨터에서 처음에 0-9, +,-, =를 먹이고 그에 용감한 경우 곱셈을 나누고 부동 소수점을 추가하십시오 (또는 맞는 라이브러리). 수학 모듈의 출력은 =가 전송 될 때 입력 번호를 출력하고 결과를 인쇄합니다. 그런 다음 버튼으로 수행 할 작업을 파악하고 버튼 배열을 찾은 다음 버튼을 세 번째 마이크로 컨트롤러에 공급하고 어떻게 debounce하고 수학 마이크로 컨트롤러에 0-9, +,-, = 중 uart. 그런 다음 중간에 UART를 사용하지 않고이 모든 것을 단일 마이크로 컨트롤러로 줄이십시오. 수학 모듈의 출력은 =가 전송 될 때 입력 번호를 출력하고 결과를 인쇄합니다. 그런 다음 버튼으로 수행 할 작업을 파악하고 버튼 배열을 찾은 다음 버튼을 세 번째 마이크로 컨트롤러에 공급하고 어떻게 debounce하고 수학 마이크로 컨트롤러에 0-9, +,-, = 중 uart. 그런 다음 중간에 UART를 사용하지 않고이 모든 것을 단일 마이크로 컨트롤러로 줄이십시오. 수학 모듈의 출력은 =가 전송 될 때 입력 번호를 출력하고 결과를 인쇄합니다. 그런 다음 버튼으로 수행 할 작업을 파악하고 버튼 배열을 찾은 다음 버튼을 세 번째 마이크로 컨트롤러에 공급하고 어떻게 debounce하고 수학 마이크로 컨트롤러에 0-9, +,-, = 중 uart. 그런 다음 중간에 UART를 사용하지 않고이 모든 것을 단일 마이크로 컨트롤러로 줄이십시오.
또 다른 대안은 knjn.com에서 rs-232 fpga 보드 중 하나 또는 격자 brevia (충분히 큰 것입니까?) 또는 기타 여러 가지를 얻은 다음 RTL 언어를 사용하여 각 기능 블록에서 작업하는 것입니다. 그것의 일부는 동등한 소프트웨어 솔루션보다 훨씬 쉬울 것이고, 일부는 소프트웨어 솔루션보다 약간 어려울 것입니다.
당신이 생각하는 것에 대해 더 많은 정보를 제공 할 수 있다면, nand 게이트 또는 마이크로 컨트롤러 기반 솔루션 상자 또는 다른 것에 대해 생각하고 있었습니까?
가장 간단한 전자 계산기는 4 기능 이진 계산기입니다. 스위치를 사용하여 이진수를 입력하여 빌드 할 수 있으며 7400 제품군 기본 논리 요소 는 더하기를 처리하는 가산기 를 처리 할 수 있습니다 . 개별 LED를 사용하여 출력의 각 이진수를 나타내거나 몇 개의 7 세그먼트 디스플레이를 사용하여 숫자를 16 진수로 표시 할 수 있습니다. 이진 계산기를 만들면 십진수를 이진 변환기로 만들지 않아도되며 디지털 전자 장치의 작동 방식을 익히는 데 도움이됩니다. 취미로 디지털 전자 제품을 구입할 계획이라면 Logisim 구입 을 고려할 수 있습니다. 계획이라면 회로를 구축하기 전에 회로를 시뮬레이션 할 수있는 무료 프로그램 인 .
내가 한 방법은 다음과 같습니다.
구성 요소를 선택하십시오.
Input Device
(필자의 경우 4x4 키패드. 숫자는 10 개, 연산자는 4 개, '='는 하나, '재설정 / 새로 고침'은 하나입니다.)
Processor
(8 비트 AVR)
Output device
(16x2 LCD)
Power supply
(9 볼트 배터리 포함 LM7805 레귤레이터)
BreadBoard
(작동을 시작한 후 PCB를 만듭니다)
개인적 선택의 문제로 집회 (학습)로 프로그램을 선택했습니다. 저는 AVR Studio 4를 IDE로 사용했고 16 진수를 AVR로 플래싱하기 위해 홈 베이킹 된 lpt 기반 'ISP'프로그래머를 사용했습니다.
그런 다음 LCD 및 키패드 용 드라이버를 작성했습니다. 입력하고 출력을 얻을 수있을 때 십진수와 연산자로 구문 분석을 시작한 다음 표현식을 구문 분석하고 Infix, Postfix 및 Prefix 메소드에 대해 읽었습니다 . 어셈블리에서 작업을 수행하여 'FLOAT 데이터 유형 지원'이 없었고 사용자 정의 데이터 유형 (15 자리 십진 정밀도를 유지하기위한 BCD 기반 데이터 유형은 RAM에 큰 낭비였습니다!)을 구현했습니다.
이 모든 작업과 Voila .. 내 계산기가 준비되었습니다 (BUB로 명명!).
광산은 1MHz에서 실행되었으며 casio_991MS (소수 정밀도 및 곱셈과 나눗셈)를 이길 수있었습니다.
나는 이것이 다른 사람들을 돕기를 바랍니다.
이미 개발 된 키트를 보드에있는 모든 것과 함께 사용하여 소프트웨어에 집중할 수 있습니다. 예를 들어 http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en024858&part=DM240001 이 키트에는 PIC, LCD 및 몇 개의 버튼이 있습니다. 추가 버튼을 추가 할 헤더가 많이 있습니다. 한 가지 단점은 LCD가 더 크다는 것입니다. 처음에 사용하고 싶을 수도 있지만 확실히 시작할 수 있습니다.
주변을 검색하면 처음에는 더 작고 저렴한 것을 찾을 수 있습니다.
이와 같은 키트를 사용하면 코드 작성이 더 쉬워지고 일부 예제가 될 수 있으므로 하드웨어 문제가 올바르게 설정되므로 문제가 해결됩니다. 또 다른 단점은이 키트는 계산기 프로젝트에 과도하게 사용되는 고급 사진을 사용하지만 나중에 다른 작업을 수행하기 위해 성장하고 수정할 공간을 제공한다는 것입니다. 또한 미래에 보드를 만드는 출발점으로 사용할 회로도도 제공합니다.
내 선반에는 H. Edward Roberts의 "전자 계산기"가 있으며 Forrest M. Mims III가 편집했습니다. 1974.
사람들 이 1974 년에 계산기를 만드는 데 사용한 방식에 대해 꽤 교육적 입니다. 많은 사진은 대량 생산 된 MITS 계산기의 전체 수명주기에 대한 것입니다. 제도 테이블), 개별 부품, 조립 라인, 웨이브 솔더링 머신 및 문제 해결.
아, 그 이후로 많은 것들이 바뀌 었습니다. 오늘날의 책은 일반적으로 전선의 큰 스파게티 혼란을 피합니다. 오늘날의 계산기는 주전원 전압을 계산기 PCB에 직접 적용하지 않습니다.
많은 것들이 여전히 동일합니다. 사람들은 여전히 프로토 타이핑을하는 동안 와이어의 큰 스파게티를 엉망으로 만듭니다.
우선 초보자에게 필요한 주요 구성 요소에 대해 생각해야합니다. 아마도 마이크로 컨트롤러, 키패드 및 LCD 화면이 필요할 것입니다. 이러한 구성 요소를 선택하면 펌웨어를 개발하는 것만 큼 간단해야합니다.
나는 이것이 좋은 첫 학습 프로젝트 일 수 있다고 생각하지만 사소한 것은 아니며 프로젝트를 진행하는 데 많은 하위 프로젝트가 포함되어 있기 때문에 인내심을 가져야합니다. 방법.
결정해야 할 첫 번째 디자인 장애물은 어떤 기술 수준을 원하십니까? 마이크로 컨트롤러 (대부분 자급 자족 마이크로 프로세서), 산술 장치 (ALU) 유무에 관계없이 이산 로직 (예 : AND, OR, NOR 게이트 및 플립 플롭), 프로그래머블 로직 (CPLD, FPGA) 등 유무에 관계없이 언급하거나 고려하지 않았습니다. 이것은 계산을 수행하는 데 사용되는 기술에 대해 먼저되어야하며, 입 / 출력 컨트롤은 미적 요소 나 비용의 영향을받는 2 차 결정 (LED 7 세그먼트 디스플레이, LCD 패널)입니다.
디지털 계산에 대해 배울 수있는 잠재적으로 유용한 출발점 중 하나 는 기발한 Clive Maxfield의 접근 방식이 뛰어난 컴퓨터 인 How Computers Do Math (ISBN : 0471732788)입니다. 이것은 "소프트"-프로그래밍 또는 논리 레벨로 작성되며, 실제로 계산을 수행하려면 이해해야합니다.
다른 사람이 uWatch를 언급했습니다 (- -Watch ) 프로젝트를 예로 , 인터넷 에는 1970 년대에 자체 계산기 를 만든 전기 엔지니어 (또는 EE 학생) 에 대한 참조가 있습니다. FPGA (프로그래머블 로직 디바이스) 기반 계산기 구축에 대한 세부 사항 도 있습니다 .
전자 장치 (또는 디지털 전자 장치)에 대한 완전한 초보자를 위해 micrcontroller를 디자인의 시작점으로 사용하는 것이 좋습니다. 프로그래밍의 복잡성을 느끼기 위해 언급 된 책의 웹 사이트를 살펴보십시오 (프로그래밍 경험이있는 경우별로 많지 않음) 마이크로 컨트롤러를위한 것입니다.
VisualTFT 디자이너는 간단한 터치 스크린 계산기 를 예로 들었 습니다. 이 소프트웨어는 AVR, PIC, ARM 및 8051 마이크로 컨트롤러 용 Mikroelektronika Pascal, Basic 및 C 컴파일러 용 코드를 생성합니다.
=
, -
및 M
( MC , MR 및 MS 의 경우) 와 같은 특수 문자를 표시하기위한 사용자 정의 LCD가 필요합니다. 작업의 경우) 기호 . 커스텀 LCD 디자인은 최대 3000 $이지만, 커스텀 디자인 된 LCD는 다른 범용 LCD보다 경제성이 높아집니다. 프로젝트는 취미 용이므로 KS0108 컨트롤러와 함께 범용 LCD를 사용하는 것이 좋습니다.제곱근, 사인 / 코사인 계산 등과 같은 고급 산술 기능을 추가하려면 Newton의 Method 또는 Taylor Series Expansion을 사용하여 관련 계산 알고리즘을 구현해야합니다 .
그렇지 않으면 간단한 프로젝트가됩니다. 이전에 경험이 많지 않은 경우 LCD와 키패드를 운전하는 것이 가장 큰 과제입니다.
계산기를 구현하는 가장 쉬운 방법은 마이크로 컨트롤러를 사용하는 것입니다. 해당 경로로 이동하기로 결정한 경우 첫 번째 단계는 실제로 계산을 수행 할 코드를 찾는 것입니다. 피연산자와 연산자를 허용하고 결과를 추출하는 프로그램이 필요합니다. 이것은 C로 작성된 비교적 간단한 계산기 모듈당신에게 무엇이 필요한지에 대한 아이디어를 줄 것입니다. 비트 연산뿐만 아니라 더하기, 빼기, 곱하기 및 나누기를 할 수 있으며 과학 계산기와 같이 역 폴란드 표기법을 사용하면 괄호 안의 하위 표현식을 해결할 수 있습니다. 따라서 어떤 버튼을 눌렀는지 확인하고, 숫자를 실제 숫자 값으로 변환하는 버퍼에서 각 "토큰"을 수집 한 다음 "="버튼을 받으면 토큰 목록을이 평가 코드에 공급하여 단일 값을 생성하는 식입니다.
초보자를 위해 다음은 프로젝트에 제안 된 BOM입니다.
HD44780
유비쿼터스 16x2와 같은 1x 기반 LCD기본 계산기를 만들 수 있습니다.
보다 고급 목적을 위해 제안 된 BOM은 다음과 같습니다.
ST7920
문자와 그래픽을 모두 지원하는 1x 기반 매트릭스 LCD이를 통해 TI-83 Plus 또는 TI-nSpire 시리즈와 같은 정교한 그래프 계산기를 작성할 수 있습니다.