제조공정
| × | 1 | ||||
| × | 1 | ||||
| × | 36 | ||||
| × | 36 | ||||
| × | 36 | ||||
| × | 36 | ||||
| × | 17 | ||||
| × | 8 | ||||
| × | 1 | ||||
| × | 1 | ||||
| × | 1 |
| ||||
| ||||
|
이 기능을 구축하고 싶지만 처음부터 완전히 시작하는 아이디어가 마음에 들지 않으면 을 확인하십시오. Chris Davis의 Altair-Duino 키트 온다 모든 구성 요소, PCB, 케이스 및 사전 프로그래밍된 Arduino Due!
다음은 이 프로젝트를 만들고 자신의 것으로 만든 다른 사람들의 사진입니다.
<울>자신의 창작물을 공유하고 싶은 사람이 있으면 알려주시면 여기에 게시하겠습니다. 사람들이 만들어내는 다양한 버전을 보고 싶어요!
오랫동안 저는 Altair 8800 컴퓨터를 가지고 놀면 멋질 것이라고 생각했습니다. 그러나 빈티지 Altairs를 작업하는 것은 드물고 따라서 비싸며 구할 수 있다면 쉽게 $1500-$2500입니다. altairclone.com과 같은 몇 가지 다른 옵션이 있지만 여전히 600달러의 비용이 듭니다. 컴퓨터에 쓰기에는 너무 많은 비용입니다. 이 컴퓨터는 매우 훌륭하지만 사용이 제한적입니다. 고맙게도 Altair Clone의 창시자인 Mike Douglas는 그가 찾아보고 복제물을 만들 때 사용한 모든 오래된 문서와 소프트웨어를 커뮤니티에 제공했습니다. Mike의 작업 덕분에 Altair의 내부 작동과 가장 인기 있는 주변 장치에 대한 풍부한 정보를 편리하게 사용할 수 있습니다.
어느 시점에서 나는 Arduino Mega 2560 사양을 보고 알테어 전면 패널에서 LED와 스위치를 연결하고 내 자신의 에뮬레이터 소프트웨어를 작성하기에 충분한 I/O 핀이 있는지 궁금해하기 시작했습니다. Arduino Mega가 정확히 올바른 수의 I/O 핀. 그래서 나는 나만의 Altair 클론을 만들어야 했습니다.
Arduino Mega를 사용하여 시뮬레이터를 구동하는 것은 잘 작동했고 설정이 간단했지만 에뮬레이션은 Altair 속도의 약 25%에서만 실행되며 6KB의 에뮬레이트된 RAM만 제공할 수 있습니다. ). Mega의 EEPROM은 4KB만 보유하기 때문에 영구 저장 용량(시뮬레이터에서 생성된 프로그램/데이터 저장용)도 제한됩니다.
Arduino Due는 64KB의 에뮬레이트된 RAM을 지원하기에 충분한 메모리를 가지고 있으며 Mega보다 훨씬 빠르게 실행됩니다. 또한 Due는 런타임에 데이터를 플래시 메모리에 저장할 수 있습니다. 따라서 시뮬레이터 자체에서 사용하지 않는 512K 플래시의 일부를 영구 저장용으로 사용할 수 있습니다.
Due를 사용하여 이제 Altair 8800 시뮬레이터가 원래 속도로 실행되고 64K의 에뮬레이트된 RAM을 제공하며 많은 Altair 소프트웨어를 포함하고 에뮬레이터에서 프로그램과 데이터를 로드하고 저장할 수 있는 32K의 반영구적 스토리지를 제공할 수 있습니다.
이 프로젝트의 목표는 시뮬레이터로 작업할 때 "실제" Altair 8800 느낌에 최대한 가깝게 만드는 것이었습니다. 여기에는 전면 패널 조명이 실제 동작을 최대한 반영하도록 하는 것이 포함됩니다. 이에 대한 한 가지 기준은 전면 패널에 있는 "Kill-the-Bit" 게임을 플레이할 수 있어야 한다는 것이었고, 이는 다음과 같습니다.
시뮬레이션은 Altair 8800 음악 데모도 작동할 만큼 원본과 동일하다는 것이 밝혀졌습니다. 이것은 Altair 회로에서 생성된 전자기 간섭을 수신하는 AM 라디오에 의존한다는 점에 유의하십시오!
예전에 Processor Technology는 Altair를 (당시에는) 존경할만한 음악 시스템으로 바꿔준 소프트웨어와 함께 Altair를 위한 작은 확장 보드(몇 개의 커패시터와 저항)를 출시했습니다. 시뮬레이터에 동일한 추가 사항을 적용할 수 있습니다(문서 참조). 이를 통해 당시 음악 시스템용으로 생성된 곡을 재생할 수 있습니다. 다음은 예입니다.
Altair의 또 다른 역사적으로 중요한 확장은 Cromemco Dazzler 그래픽 보드였습니다. 소프트웨어 또는 하드웨어 확장을 사용하여 시뮬레이터는 해당 보드를 에뮬레이트할 수도 있습니다.
그림>또 다른 소프트웨어/하드웨어 확장을 통해 시뮬레이터는 프로세서 기술 VDM-1 그래픽 카드를 에뮬레이트할 수 있습니다.
물론 결국 저는 원래 Altair를 소유하지 않았으므로 작동 방식에 대한 모든 정보는 문서와 비디오에서 가져와야 했습니다(아래 감사의 글 참조). 약간의 차이가 있을 수 있지만 전반적으로 원래 동작을 꽤 잘 재현한다고 생각합니다. 알려진(그리고 의도적인) 차이점 중 하나는 HLDA 상태 표시등입니다. 원본에서는 CPU가 외부 장치에 의해 중지되었음을 확인했음을 알립니다. 이 기능은 시뮬레이터에서 사용되지 않으므로 여기에서 파일(직렬/테이프 캡처/재생)이 현재 열려 있음을 나타냅니다.
하이라이트 <울>
Due를 사용할 때 Due에 스케치의 새 버전을 업로드하면 시뮬레이터 내에서 캡처되거나 저장된 모든 것이 지워집니다. 이는 저장된 데이터가 새 스케치를 업로드할 때 지워지는 플래시 메모리에 저장되기 때문입니다(Due에는 영구 저장을 위한 EEPROM이 없습니다). Due에 SD 카드를 연결하면 SD 카드에 저장된 데이터가 저장됩니다. 이 경우 새 스케치를 업로드할 때 데이터가 손실되지 않습니다.
문서
시뮬레이터는 Altair 8800과 정확히 동일하게 작동하므로 원본 Altair 설명서(Google에서 쉽게 찾을 수 있음)는 전면 패널 스위치를 작동하는 데 필요한 모든 정보를 제공합니다.
그러나 시뮬레이터에는 전면 패널의 AUX1/AUX2 스위치를 통해 액세스할 수 있는 Altair용 여러 추가 기능과 내장 소프트웨어가 포함되어 있습니다(이는 원래 Altair에 포함되었지만 사용되지 않음). 그 기능은 시뮬레이터용 소프트웨어를 개발하면서 작성한 별도의 문서에 설명되어 있습니다. 문서가 여러 페이지에 걸쳐 포함된 정보가 이 페이지를 압도할 수 있으므로 소스 저장소의 Documentation.pdf 파일을 참조하십시오.
빌드 지침
한 가지 목표는 가능한 적은 지원 회로를 사용하는 것이었습니다. Arduino Mega와 Due에는 모든 전면 패널 요소를 직접 연결하기에 충분한 I/O 핀이 있습니다. 필요한 유일한 추가 회로는 36개의 LED를 구동하기 위한 트랜지스터와 저항입니다(LED가 Aruino의 출력 핀에 직접 연결되고 동시에 너무 많은 핀이 켜지면 총 전류가 Arduino의 한계를 초과할 것입니다).
이 프로젝트의 전체 회로도를 만드는 것은 지루하고 반복적이며(36개의 동일한 LED 드라이버 회로, 32개의 스위치에 대한 배선) 그다지 도움이 되지 않습니다. 따라서 회로도 문서에는 어떤 요소가 어떤 Arduino 핀에 연결되는지에 대한 자세한 표와 개별 하위 회로(예:LED 드라이버)에 대한 회로도가 포함되어 있습니다. 스트립보드에 LED 드라이버 구성 요소의 레이아웃을 표시하기 위해 Fritzing 파일도 추가했습니다.
전면 패널을 만들기 위해 Altair 전면 패널의 고품질 스캔(www.vintage-computer.com에서 찾을 수 있음)으로 시작하여 복사점에서 카드 스톡에 인쇄했습니다. 뒷면(실제로 스위치와 LED를 제자리에 고정하기 위해)을 위해 일반 전동 드릴을 사용하여 22게이지 금속판을 사용하여 LED와 스위치용 구멍을 만들었습니다. LED 드라이버 회로는 스트립보드 조각에 납땜되어 있으며 LED에 직접 납땜되어 금속 시트에 의해 제자리에 고정됩니다.
전면 패널은 간단한 나무 상자로 제자리에 고정되어 있습니다. 상자는 원래 Altair만큼 깊지 않습니다(전면 패널과 Arduino만 잡아야 하기 때문에).
전면 패널 켜기/끄기 스위치를 연결하기 위해 상자에 전원 소켓(Arduino 자체와 동일)을 추가하고 전면 패널 스위치에 연결한 다음 거기에서 Arduino에 연결하는 전원 플러그에 연결했습니다.
Arduino Due를 사용할 때 Due의 SPI 포트에 SD 카드를 연결하여 최대 16개의 88-DCDD 디스크 드라이브를 에뮬레이션할 수 있습니다. 회로도 문서의 마지막 페이지에는 필요한 배선이 자세히 나와 있습니다.
스케치를 Arduino Due에 업로드하기 전에 Arduino 컴파일러의 최적화 설정을 "성능"으로 전환해야 합니다. 기본적으로 "크기"로 설정되어 있습니다(Due에 512k 플래시 메모리가 있기 때문에 이유는 확실하지 않음). 이렇게 하려면 파일을 로드하세요.
<코드>c:\Users\[사용자]\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\platform.txt
텍스트 편집기로 이동하고 "-Os"의 모든 항목을 "-O3"으로 변경합니다. 이 단계를 건너뛸 수 있지만 시뮬레이터가 상당히 느리게 실행됩니다.
시뮬레이터 소프트웨어는 전면 패널 컨트롤을 연결하지 않고도 베어본 Arduino(Mega 또는 Due)에서 실행할 수도 있습니다. 이렇게 하면 포함된 프로그램(전면 패널 요소가 아닌 대부분 직렬 터미널을 사용하는 프로그램)을 실행할 수 있습니다. 그렇게 하려면 config.h
를 편집하십시오. 소스 파일 및 설정 #define STANDALONE 1
(0 대신). 해당 설정에서 가상 전면 패널 요소를 작동하는 방법을 보려면 설명서의 "디버깅 기능" 섹션을 참조하십시오. 이것은 시뮬레이터의 의도된 용도가 아님을 명심하십시오. 전면 패널 하드웨어를 구축하고 싶지 않다면 PC 기반 전체 소프트웨어 에뮬레이터를 사용하는 것이 좋습니다. config.h
소스 파일에는 시뮬레이터 기능을 포함/제외하는 여러 스위치가 포함되어 있습니다. 기본 설정은 잘 작동하지만 시뮬레이터를 조정하려면 여기에서 시작해야 합니다.
감사의 말
저는 Altair를 소유하고 있지 않기 때문에 인터넷에서 정보를 얻는 데 의존해야 했습니다. altairclone.com의 Mike Douglas(deramp5113)가 제작한 Altair 8800 교육용 비디오는 큰 도움이 되었고 매우 흥미롭게 보았습니다. Mike는 비디오를 제작하는 것 외에도 풍부한 Altair 관련 하드웨어 및 소프트웨어 설명서를 수집하여 자신의 사이트에서 사용할 수 있도록 했습니다.
(Mike의 비디오는 시뮬레이터를 구축한 후 수행할 작업에 대한 아이디어를 얻는 데 매우 유용합니다.)
Martin Eberhard의 ADEXER 도구는 하드 드라이브 지원을 낮은 수준으로 디버깅하는 데 매우 유용했습니다. 그는 또한 시뮬레이터에서 사용하는 두 가지 부트 로더, 즉 디스크 및 미니 디스크를 부팅하기 위한 콤보 디스크 부트 로더(CDBL)와 원본보다 더 짧고 안정적인 HDBL(하드 디스크 부트 로더)을 작성했습니다.
CPU 에뮬레이션을 포함한 모든 코드를 직접 작성하는 동안 하프 캐리 계산 및 DAA 명령을 효율적으로 구현하는 것과 관련하여 i8080 코어 모델 프로젝트에서 약간의 영감을 얻었습니다.
시뮬레이터에는 Altair 8800용 원본 소프트웨어가 포함되어 있습니다. 이 소프트웨어를 검색하고 수집하고 작동하도록 수많은 시간을 보낸 Mike Douglas에게 또 다른 큰 감사를 드립니다. <울>
디스크 및 하드 디스크 이미지(소스 아카이브의 "디스크" 하위 디렉토리에 포함됨)도 altairclone.com과 deramp.com(Mike Douglas의 개인 웹 사이트)에서 가져왔습니다. 여기에는 CP/M, 다양한 버전의 디스크 BASIC, Altair DOS(Fortran 포함) 등이 포함됩니다. 다시 말하지만, Mike는 모든 소프트웨어를 찾은 다음 Altair 커뮤니티에서 사용할 수 있는 작동하는 디스크 이미지를 만드는 놀라운 일을 해냈습니다. 저는 일부 소프트웨어만 사용했으므로 altairclone.com 또는 deramp.com으로 이동하여 더 많은 것을 확인하는 것이 좋습니다.
토론 포럼
Altairduino.com의 Chris Davis는 Altair-Duino 관련 질문에 대한 토론을 위해 Google 그룹을 구성했습니다.
https://groups.google.com/forum/#!forum/altair-duino
자유롭게 방문하여 토론에 참여하십시오!
섹션> <섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">제조공정
구성품 및 소모품 Arduino MKR1000 × 1 MikroE 환경 클릭 × 1 필요한 도구 및 기계 Adafruit 암/암 점퍼 와이어 앱 및 온라인 서비스 Arduino IDE IoT 플랫폼 정보 이 프로젝트 정보 소개 우리는 편리한 환경 클릭 센서를 가지고 있었기 때문에 이를 Arduino MKR1000에 연결하고 WolkAbout IoT 플랫폼에서 시각화하기로 결정했습니다. 아
구성품 및 소모품 Arduino UNO 어떤 종류의 Uno도 가능합니다. 저는 Geekcreit Uno가 잘 작동합니다. × 1 브레드보드(일반) × 1 점퍼 와이어(일반) 남성/남성 필수 × 1 LED(일반) 빨간색, 녹색 및 파란색 조명이 필요합니다. × 3 Arduino USB 2.0 데이터 케이블 × 1 저항 100옴 브라운, 블랙, 브라운 × 1 앱 및 온라인 서비스 Arduino IDE