Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Simulator Arduino Altair 8800

Komponen dan persediaan

Arduino Mega 2560
× 1
Arduino Due
Arduino Mega atau Due diperlukan, bukan keduanya!
× 1
LED (generik)
× 36
NPN Transistor Serbaguna
× 36
Resistor 10k ohm
× 36
Resistor 150 ohm
× 36
Sakelar sakelar mini SPDT Aktif
Untuk 16 sakelar alamat (SW15-0) plus sakelar daya
× 17
Beralih sesaat SPDT (Aktif)-Mati-(Aktif)
Untuk sakelar fungsi (RUN/STOP/EXAMIN...)
× 8
Lembar logam untuk alas panel depan
× 1
Modem Bluetooth SparkFun - BlueSMiRF Silver
Opsional. Menghubungkan ini ke pin Arduino TX/RX akan memungkinkan komputer atau telepon berkemampuan bluetooth untuk bertindak sebagai terminal serial untuk Altair yang diemulasi.
× 1
kartu microSD dengan adaptor kartu SD
Opsional. Diperlukan hanya untuk emulasi disk drive, yang tidak diperlukan agar simulator dapat bekerja.
× 1

Aplikasi dan layanan online

Arduino IDE
library Arduino DueFlashStorage
Arduino Due tidak memiliki EEPROM untuk penyimpanan permanen tetapi dengan perpustakaan ini data dapat disimpan ke -Memori flash chip. Semua yang disimpan akan dihapus saat mem-flash ulang Arduino!
Arduino Due soft_uart library
Sebuah implementasi UART perangkat lunak yang memungkinkan pin apa pun digunakan sebagai antarmuka serial (mirip dengan pustaka SoftwareSerial platform Arduino lainnya). File dari perpustakaan ini disertakan dalam sumber simulator karena saya perlu membuat beberapa modifikasi kecil untuk mengintegrasikannya ke dalam simulator.

Tentang proyek ini

Jika Anda ingin membangun ini tetapi tidak menyukai gagasan untuk memulai sepenuhnya dari awal, silakan lihat Perlengkapan Altair-Duino Chris Davis yang datang dengan semua komponen, PCB, kasing, dan Arduino Due yang telah diprogram sebelumnya!

Berikut adalah beberapa gambar dari orang lain yang telah membangun proyek ini dan membuatnya sendiri:

  • Alan Rendah menemukan kotak logam yang bagus untuk versinya dan menghubungkan Raspberry Pi untuk input/output dan sintesis ucapan.
  • Martin Zumr membuat kotak yang sangat bagus dari kayu.
  • Chris Davis ( kb0wwp) membuat PCB dan kasus yang indah.
  • Justin Davis membuat Perisai Altair untuk Arduino Due.

Jika ada orang lain yang ingin membagikan kreasi mereka, beri tahu saya dan saya akan mempostingnya di sini. Saya ingin melihat variasi versi yang dibuat orang!

Untuk waktu yang lama saya berpikir akan keren memiliki komputer Altair 8800 untuk bermain-main. Tetapi Altair vintage yang berfungsi jarang dan karenanya mahal, dengan mudah berharga $ 1500- $ 2500 jika tersedia sama sekali. Ada beberapa opsi lain, seperti altairclone.com tetapi itu masih berharga $600 yang bagi saya terlalu banyak untuk dihabiskan di komputer yang - meskipun sangat keren - akan digunakan secara terbatas. Untungnya Mike Douglas, pencipta Altair Clone, telah menyediakan kepada komunitas semua dokumen dan perangkat lunak lama yang dia buru dan gunakan saat membuat klon. Berkat kerja Mike, ada banyak informasi tentang cara kerja bagian dalam Altair dan periferal paling populer yang tersedia dengan mudah.

Pada titik tertentu saya melihat spesifikasi Arduino Mega 2560 dan mulai bertanya-tanya apakah itu akan memiliki cukup pin I/O untuk hanya menghubungkan LED dan sakelar dari panel depan Altair dan menulis perangkat lunak emulator saya sendiri. Ternyata Arduino Mega memiliki tepat jumlah pin I/O yang tepat. Jadi saya hanya perlu membuat klon Altair saya sendiri.

Menggunakan Arduino Mega untuk menggerakkan simulator bekerja dengan baik dan mudah diatur tetapi emulasi berjalan hanya sekitar 25% dari kecepatan Altair dan hanya dapat menyediakan 6KB RAM yang diemulasi (walaupun pada masa lalu itu akan menjadi banyak ). Kapasitas penyimpanan permanen (untuk menyimpan program/data yang dibuat di simulator) juga terbatas karena EEPROM Mega hanya menampung 4KB.

Arduino Due memiliki banyak memori untuk mendukung 64KB penuh dari emulasi RAM dan berjalan jauh lebih cepat daripada Mega. Selain itu, Due dapat menyimpan data ke memori flash saat dijalankan. Itu memungkinkan untuk menggunakan bagian mana pun dari flash 512K yang tidak digunakan oleh simulator itu sendiri untuk penyimpanan permanen.

Menggunakan Karena Saya sekarang memiliki simulator Altair 8800 yang berjalan pada kecepatan asli, menyediakan 64K RAM yang diemulasi, menyertakan banyak perangkat lunak Altair dan masih dapat menyediakan 32K penyimpanan semi-permanen untuk memuat dan menyimpan program dan data di emulator.

Tujuan saya untuk proyek ini adalah untuk sedekat mungkin dengan perasaan Altair 8800 "asli" saat bekerja dengan simulator. Itu termasuk membuat lampu panel depan mencerminkan perilaku nyata sebanyak mungkin. Salah satu kriteria untuk itu adalah kemungkinan memainkan game "Kill-the-Bit" panel depan - dan itu adalah:

Ternyata simulasinya cukup sesuai dengan aslinya sehingga bahkan demo musik Altair 8800 berfungsi. Perhatikan bahwa ini bergantung pada radio AM yang menangkap interferensi elektromagnetik yang dihasilkan oleh sirkuit Altair!

Kembali pada hari itu, Teknologi Prosesor merilis papan ekstensi kecil untuk Altair (hanya beberapa kapasitor dan resistor) dengan perangkat lunak yang menyertainya yang mengubah Altair menjadi sistem musik yang terhormat (untuk saat itu). Penambahan yang sama dapat dilakukan pada Simulator (lihat dokumentasi) yang memungkinkannya memainkan lagu yang dibuat untuk sistem musik saat itu. Ini contohnya:

Ekstensi lain yang penting secara historis untuk Altair adalah papan grafis Cromemco Dazzler. Menggunakan ekstensi perangkat lunak atau perangkat keras, Simulator juga dapat mengemulasi papan tersebut:

Namun ekstensi perangkat lunak/perangkat keras lain memungkinkan Simulator untuk meniru kartu grafis Teknologi Prosesor VDM-1:

Tentu saja pada akhirnya saya tidak memiliki Altair asli, jadi semua informasi tentang cara kerjanya harus berasal dari dokumen dan video (lihat pengakuan di bawah). Mungkin ada beberapa perbedaan kecil tetapi secara keseluruhan saya pikir itu mereproduksi perilaku aslinya dengan cukup baik. Satu perbedaan yang diketahui (dan disengaja) adalah lampu status HLDA:Pada aslinya, ini menandakan bahwa CPU telah mengakui dihentikan oleh perangkat eksternal. Fungsi ini tidak pernah digunakan dalam simulator, jadi ini menandakan bahwa file (serial/tape capture/replay) sedang dibuka.

Sorotan

  • Secara akurat mereproduksi perilaku elemen panel depan Altair.
  • Berjalan pada kecepatan yang hampir sama dengan Altair 8800 asli (saat menggunakan Arduino Due) atau 25% kecepatan asli saat menggunakan Arduino Mega.
  • Ukuran RAM yang diemulasi adalah 64KB (Due) atau 6K (Mega)
  • Sejumlah program Altair disertakan dan dapat dengan mudah dimuat ke dalam emulator, termasuk Pong, Altair 4K BASIC (produk Microsoft pertama), Altair extended BASIC, MITS Programming System II (Due only), Altair Time Sharing BASIC ( memungkinkan banyak pengguna untuk menggunakan BASIC secara bersamaan).
  • Program contoh BASIC dan Assembler disertakan dalam perangkat lunak emulator dan dapat dengan mudah dimuat ke BASIC/Assembler.
  • Mengemulasi satu papan 88-SIO, 88-2SIO dan 88-ACR (antarmuka perekam kaset audio). Setiap perangkat serial yang disimulasikan dapat dipetakan ke antarmuka serial Arduino. Secara default, dua yang paling umum (port 88-SIO dan 88-2SIO 1) dipetakan ke port serial utama Arduino pada 115200 baud 8n1, yang dapat diakses melalui kabel USB. Saya sarankan menghubungkan dongle serial-ke-Bluetooth ke pin serial RX/TX. Dengan begitu, semua perangkat berkemampuan bluetooth dapat berfungsi sebagai terminal untuk Altair.
  • Pada Arduino Due, antarmuka serial utama (USB) dan antarmuka Serial1 (pin 18/19) dapat digunakan secara bersamaan.
  • Data yang dikirim ke setiap perangkat serial (termasuk pita ACR) dapat ditangkap dan diputar ulang hingga 256 file yang disimpan di penyimpanan lokal Arduino (EEPROM atau FLASH).
  • Antarmuka kaset mendukung penggunaan perintah CSAVE/CLOAD dalam BASIC yang diperluas (dukungan bersifat otomatis tanpa memerlukan interaksi pengguna). Bagus untuk mengembangkan program BASIC Anda sendiri!
  • Mengemulasikan papan grafis Cromemco Dazzler (membutuhkan beberapa perangkat keras/lunak tambahan, lihat di sini)
  • Mengemulasikan papan terminal video VDM1 Teknologi Prosesor (membutuhkan beberapa perangkat keras/lunak tambahan, lihat di sini)
  • Mengemulasikan hingga 16 drive disk 88-DCDD (4 dalam konfigurasi default). Emulasi drive disk adalah opsional tetapi memerlukan pengait kartu SD ke header SPI Arduino. Hanya didukung saat menggunakan Arduino Due.
  • Mengemulasi pengontrol hard drive 88-HDSK dengan hingga 4 unit hard drive terpasang (1 dalam konfigurasi default) dan 4 platter per unit.
  • Mengemulasikan board 88-RTC-VI dengan jam waktu nyata dan penanganan interupsi vektor. Hal ini memungkinkan untuk menjalankan Altair Time Sharing Basic.
  • Memori halaman 256-byte dapat disimpan ke penyimpanan permanen dan dimuat kembali ke memori. Ini memberikan cara sederhana untuk menyimpan program yang dimasukkan melalui sakelar panel depan.
  • Banyak setelan dapat dengan mudah diubah melalui editor konfigurasi terintegrasi.

Saat menggunakan Due, ketahuilah bahwa semua yang diambil atau disimpan dalam simulator akan terhapus jika Anda mengunggah versi sketsa baru ke Due. Ini karena data yang disimpan disimpan dalam memori flash yang terhapus saat mengunggah sketsa baru (Dua tidak memiliki EEPROM untuk penyimpanan permanen). Jika kartu SD dihubungkan ke Due, data yang disimpan disimpan di kartu SD. Dalam hal ini, data tidak akan hilang saat mengunggah sketsa baru.

Dokumentasi

Karena simulator bekerja persis sama dengan Altair 8800, dokumentasi Altair asli (mudah ditemukan di Google), akan memberikan semua informasi yang diperlukan untuk mengoperasikan sakelar panel depan.

Namun, simulator memang menyertakan sejumlah fungsi tambahan dan perangkat lunak bawaan untuk Altair yang dapat diakses melalui sakelar AUX1/AUX2 di panel depan (yang disertakan tetapi tidak digunakan pada Altair asli). Fungsionalitas itu dijelaskan dalam dokumen terpisah yang saya tulis saat mengembangkan perangkat lunak untuk Simulator. Dokumen ini memiliki banyak halaman dan informasi yang terkandung di dalamnya akan memenuhi halaman ini, jadi silakan merujuk ke file Documentation.pdf di repositori sumber.

Instruksi pembuatan

Salah satu tujuannya adalah menggunakan sirkuit pendukung sesedikit mungkin. Baik Arduino Mega maupun Due memiliki cukup pin I/O untuk menghubungkan semua elemen panel depan secara langsung. Satu-satunya sirkuit tambahan yang diperlukan adalah transistor dan resistor untuk menggerakkan 36 LED (jika LED terhubung langsung ke pin output Aruino dan terlalu banyak dihidupkan pada saat yang sama, arus total akan melebihi batas Arduino).

Membuat skema lengkap untuk proyek ini akan membosankan, berulang (36 sirkuit driver LED identik, kabel untuk 32 sakelar) dan tidak terlalu membantu. Jadi dokumen skema malah berisi tabel terperinci tentang elemen mana yang terhubung ke pin Arduino mana dan skema untuk masing-masing sub-sirkuit (seperti driver LED). Saya juga menambahkan file Fritzing untuk menunjukkan tata letak komponen driver LED pada stripboard.

Untuk membuat panel depan, saya mulai dengan pindaian panel depan Altair berkualitas tinggi (ditemukan di sini di www.vintage-computer.com) dan mencetaknya di toko fotokopi ke kartu stok. Untuk bagian belakangnya (untuk benar-benar menahan sakelar dan LED di tempatnya) saya menggunakan lembaran logam ukuran 22, menggunakan bor listrik biasa untuk membuat lubang untuk LED dan sakelar. Sirkuit driver LED disolder pada potongan stripboard yang disolder langsung ke LED yang pada gilirannya ditahan oleh lembaran logam.

Panel depan dipegang di tempat dan tegak oleh kotak kayu sederhana. Kotaknya tidak sedalam Altair aslinya (karena hanya untuk menahan panel depan dan Arduino).

Untuk memasang sakelar On/Off panel depan, saya hanya menambahkan soket listrik (sama seperti pada Arduino itu sendiri) ke kotak, menyambungkannya ke sakelar panel depan dan dari sana ke steker listrik yang dihubungkan ke Arduino.

Saat menggunakan Arduino Due, emulasi hingga 16 88-DCDD disk drive dapat diaktifkan dengan menghubungkan kartu SD ke port SPI Due. Halaman terakhir dalam dokumen Skema menunjukkan pengkabelan yang diperlukan secara detail.

Sebelum mengunggah sketsa ke Arduino Due, pastikan untuk mengubah pengaturan pengoptimalan kompiler Arduino ke "kinerja". Secara default diatur ke "ukuran" (tidak yakin mengapa karena Due memiliki memori flash 512k). Untuk melakukannya, muat file

c:\Users\[user]\AppData\Local\Arduino15\packages\arduino\hardware\sam\1.6.9\platform.txt

ke editor teks dan ubah kemunculan "-Os" menjadi "-O3". Anda dapat melewati langkah ini tetapi simulator akan berjalan jauh lebih lambat.

Perangkat lunak simulator juga dapat berjalan di Arduino (Mega atau Due) tanpa kontrol panel depan yang terhubung. Ini memungkinkan untuk menjalankan beberapa program yang disertakan (yang sebagian besar menggunakan terminal serial dan bukan elemen panel depan). Untuk melakukannya, edit config.h file sumber dan atur #define STANDALONE 1 (bukan 0). Lihat bagian "Kemampuan debug" dalam dokumentasi untuk melihat cara mengoperasikan elemen panel depan virtual dalam pengaturan itu. Perlu diingat bahwa ini bukan tujuan penggunaan simulator. Saya sarankan menggunakan emulator semua perangkat lunak berbasis PC jika Anda tidak ingin membangun perangkat keras panel depan. config.h file sumber berisi sejumlah sakelar yang menyertakan/mengecualikan fungsionalitas simulator. Pengaturan default berfungsi dengan baik tetapi jika Anda ingin mengubah simulator, ini adalah tempat untuk memulai.

Ucapan Terima Kasih

Karena saya sendiri tidak memiliki Altair, saya harus mengandalkan untuk mendapatkan informasi dari internet. Video instruksional Altair 8800 yang diproduksi oleh Mike Douglas (deramp5113) dari altairclone.com sangat membantu dan sangat menarik untuk ditonton. Selain memproduksi video, Mike telah mengumpulkan banyak manual perangkat keras dan perangkat lunak terkait Altair dan menyediakannya di situsnya.

(Perhatikan bahwa video Mike sangat membantu untuk mendapatkan beberapa ide tentang apa yang harus dilakukan dengan simulator setelah Anda membuatnya)

Alat ADEXER Martin Eberhard sangat berharga untuk men-debug dukungan hard drive tingkat rendah. Dia juga menulis dua boot loader yang digunakan oleh simulator:combo disk boot loader (CDBL) untuk boot disk dan mini-disk serta hard disk boot loader (HDBL) yang lebih pendek dan lebih stabil dari aslinya.

Sementara saya menulis semua kode termasuk emulasi CPU sendiri, saya mengambil beberapa inspirasi dari proyek model inti i8080 ketika datang untuk mendapatkan perhitungan setengah-carry dan instruksi DAA diimplementasikan secara efisien.

Simulator ini menyertakan beberapa perangkat lunak asli untuk Altair 8800. Terima kasih banyak lainnya kepada Mike Douglas yang menghabiskan waktu berjam-jam untuk memburu, mengumpulkan, dan membuat perangkat lunak ini berfungsi dan kemudian membuat semuanya tersedia di situs web altairclone.com-nya:

  • Altair 4K BASIC (MITS 1975)
  • Altair Extended ROM Basic (MITS 1975)
  • Altair Time Sharing Basic (MITS 1977)
  • Permainan Kill-the-Bit (Dean McDaniel, 1975)
  • Permainan pong menggunakan panel depan (Mike Douglas)
  • Musik 'Daisy, Daisy...' (Steve Dompier, 1975)
  • Sistem Musik (Teknologi Prosesor 1977)
  • Sistem Pemrograman MITS II (MITS 1976)
  • Altair Turnkey Monitor (MITS 1977)
  • Diagnostik CPU i8080 (Microcosm Associates, 1980)
  • Olahraga CPU i8080 (Frank D. Cringle 1994, Ian Bartholomew 2009)

Gambar disk dan hard disk (termasuk dalam subdirektori "disk" dari arsip sumber) juga diambil dari altairclone.com serta deramp.com (situs web pribadi Mike Douglas). Ini termasuk CP/M, berbagai versi disk BASIC, Altair DOS (termasuk Fortran) dan banyak lagi. Sekali lagi, Mike telah melakukan pekerjaan luar biasa dengan menemukan semua perangkat lunak itu dan kemudian membuat gambar disk yang berfungsi yang dapat digunakan oleh komunitas Altair. Saya hanya menggunakan perangkat lunak pilihan sehingga Anda mungkin ingin mengunjungi altairclone.com atau deramp.com dan melihat lebih banyak lagi.

Forum Diskusi

Chris Davis dari Altairduino.com telah menyiapkan Grup Google untuk mendiskusikan pertanyaan terkait Altair-Duino:

https://groups.google.com/forum/#!forum/altair-duino

Jangan ragu untuk mengunjungi dan berkontribusi dalam diskusi!

Kode

Kode simulator Arduino Altair 8800
https://github.com/dhansel/Altair8800

Skema

Alih-alih memberikan skema lengkap (sangat berulang), dokumen ini menjelaskan pin mana yang akan dihubungkan ke elemen panel depan mana dan menyediakan skema untuk sub-sirkuit (seperti sirkuit driver LED)Upaya menunjukkan tata letak stripboard yang menghubungkan LED ke. Agak ramai tapi seharusnya cukup bagus untuk melihat bagaimana hal-hal terhubung bersama. Penting adalah bahwa komponen untuk setiap LED tidak lebih dari 5 ruang di stripboard. Dengan begitu, LED dapat cukup berdekatan sehingga panel depan memiliki ukuran aslinya. ledstrip_4OVCpRyKQS.fzz

Proses manufaktur

  1. Panel LCD dengan Arduino untuk Simulator Penerbangan
  2. Arduino Spybot
  3. FlickMote
  4. TV Buatan Sendiri B-Gone
  5. Jam Master
  6. Temukan Saya
  7. Arduino Power
  8. Tech-TicTacToe
  9. Arduino Quadruped
  10. Arduino Joystick