資料介紹
描述
這個想法
Rockwell AIM 65 是 70 年代早期基于 6502 的計算機之一。它有一個 20 個字符的顯示屏、一個小型熱敏打印機和一個相當(dāng)大的鍵盤。標(biāo)準(zhǔn)內(nèi)存是 1k 或 4k。更多細(xì)節(jié)可以在“舊電腦”頁面找到。ROM上有很多軟件可用。我從來沒有 AIM 65。實際上,它們比我早一點流行。但我一直喜歡它的準(zhǔn)系統(tǒng)外觀。
該設(shè)計非常適合使用我們今天擁有的標(biāo)準(zhǔn) Arduino 組件進(jìn)行重建。
準(zhǔn)備原型盾牌
將 PS2 鍵盤插座焊接在原型屏蔽罩的外側(cè)。然后連接電線。我的布局是使用 Arduino 的引腳 2 作為 PS2 時鐘和引腳 3 作為 PS2 數(shù)據(jù)線。我非常凌亂的實驗原型看起來像這樣

請確保您得到正確的引腳排列。PS2 鍵盤用錯極性很容易被炸。下載 PS2 庫。
Paul Stoffregen 的 PS2 庫通過 Arduino IDE 提供以供下載。最新版本是 2.4。這個庫在處理帶有 altgr 鍵盤映射(如德語)的鍵盤映射時存在錯誤。如果庫https://github.com/slviajero/PS2Keyboard ,我修復(fù)了我的 fork 中的錯誤。Paul 在他的源代碼中也包含了修復(fù)程序,但來自 Arduino IDE 的代碼仍然可能是舊代碼。
安裝和連接 LCD 顯示器
Stefan 的 BASIC 支持 I2C 和直接連接的 20x4 LCD 顯示器。對于我的第一個原型,我使用了一個帶有并行接口的顯示器,這導(dǎo)致了很多電纜和面包板。I2C 是更好的選擇。盡管如此,并行顯示代碼仍在解釋器中,因為它也用于 LCD 屏蔽。

將 I2C 和電壓線連接到 Arduino。我使用了一個小面包板,因為我想將 I2C 接口不僅用于顯示器,還用于其他傳感器。

上面的兩個連接器是接地和 5V。這將用于原型屏蔽和相應(yīng)的插座。SDA 和 SCL 連接到 Arduino MEGA 的 PIN 20 和 21。
將所有內(nèi)容放在一起并上傳軟件。
將原型板放在 Mega 上,插入 PS2 鍵盤和 USB 數(shù)據(jù)線。我將所有東西都安裝在膠合板上,將 MEGA 擰在板上的小塑料床上。
將 BASIC 解釋器加載到 ARDUINO IDE。您需要來自我的倉庫https://github.com/slviajero/tinybasic的草圖TinybasicArduino/TinybasicArduino.ino ,包括 hardware-arduino.h 和 basic.h。確保在 Arduino 庫管理器中加載 PS2 庫。我建議使用來自https://github.com/slviajero/PS2Keyboard 的補丁。它添加了 BASIC 解釋器的某些功能所需的 keyboard.peek() 方法。
在TinybasicArduino.ino代碼的開頭設(shè)置以下語言設(shè)置。控制包含哪些語言功能。
#define BASICFULL
#undef BASICINTEGER
#undef BASICSIMPLE
#undef BASICMINIMAL
#undef BASICTINYWITHFLOAT
MEGA 有足夠的閃存用于完整的 BASIC 語言集。
在 hardware-arduino.h 中有硬件設(shè)置。放
#undef USESPICOSERIAL
#define ARDUINOPS2
#define DISPLAYCANSCROLL
#define ARDUINOLCDI2C
#define ARDUINOEEPROM
#define STANDALONE
我們想要一個支持 EEPROM (ARDUINOEEPROM)、PS2 鍵盤支持 (ARDUINOPS2)、I2C 顯示器 (ARDUINOLCDI2C) 和顯示器完全滾動支持 (DISPLAYCANSCROLL) 的系統(tǒng)。最后一個設(shè)置 STANDALONE 使 BASIC 解釋器在啟動后使用顯示器和鍵盤作為默認(rèn)輸入和輸出設(shè)備。
接下來設(shè)置 PS2 引腳。這是在更遠(yuǎn)的地方完成的。根據(jù)硬件布局設(shè)置值。數(shù)據(jù)管腳可以是這里的任何管腳。IRQ 引腳需要是 MEGA 的 IRQ 就緒引腳。
#define PS2DATAPIN 3
#define PS2IRQPIN 2
如果您想使用不同的布局,請修改本節(jié)中的代碼。該代碼具有默認(rèn)硬連線的德語鍵盤。相應(yīng)地搜索并更改行keyboard.begin(PS2DataPin, PS2IRQpin, PS2Keymap_German)
。
上傳你的程序。

享受輸入您的第一個 BASIC 命令。使用這種語言集的 Arduino MEGA 256 可能有 6k 的 BASIC 內(nèi)存。對于一些有趣的項目來說已經(jīng)足夠了。請閱讀 wiki了解有關(guān)此 BASIC 方言的詳細(xì)信息,包括測試和演示程序。
另請查看本教程以獲取有關(guān) Arduino 上的 BASIC 的更多信息。
添加打印機
市場上有大量小型熱敏打印機,都與最初用于 AIM65 的熱敏打印機非常相似。這些打印機具有串行 TTL 和 RS232 接口。它們需要大量電力,不能連接到 Arduino 5V 線路。需要一個電流至少為 2A 的額外 9V 電源。這些打印機的規(guī)格通常如下所示https://github.com/slviajero/tinybasic/blob/main/misc/ThermalprinterSpecs.pdf 。確定正確的引腳排列可能有點麻煩。

將打印機串口的 TX 線連接到 Arduino 上 Serial1 的 RX。這是針腳 19。將打印機的 RX 連接到針腳 18。還將打印機的地線連接到 Arduino 上的地線。打印機的電源通過單獨的電源線連接到外部電源。
重新編譯 BASIC 解釋器添加設(shè)置
#define ARDUINOPRT
在代碼的硬件部分。這將激活 Arduino 的 Serial1 接口并為其分配 BASIC 設(shè)備編號 &4。標(biāo)準(zhǔn)波特率為 9600,這對于這些打印機來說很常見。
PRINT &4, "Hello World"
現(xiàn)在應(yīng)該可以工作了。可以使用 PUT 將單個字節(jié)發(fā)送到打印機
PUT &4, 10
I/O 通道雙向工作。
GET &4, A
從打印機收集一個字節(jié)。這會很有幫助,因為打印機具有雙向通信協(xié)議。
添加 SD 卡存儲
在 BASIC 解釋器中,SD 卡支持在編譯時激活
#define ARDUINOSD
連接小型SD卡接口

到 Arduino 的 SPI 端口。對于 ATMEGA 2560 MOSI 是引腳 51、MISO 引腳 50 和 CLK 引腳 52。我使用引腳 53(SPI 端口的默認(rèn)從屬選擇)來激活 SD 卡讀卡器。添加一個帶有 FAT12 文件系統(tǒng)的小型預(yù)格式化 SD 卡,您就可以開始使用了。
這是整個系統(tǒng)現(xiàn)在的樣子:

請注意,啟動后它只報告 4096 字節(jié)的可用 BASIC 內(nèi)存。SD 卡接口的緩沖區(qū)使用 900 字節(jié)。這并不奇怪,因為 SD 卡的塊大小為 512 字節(jié)。
插入預(yù)格式化的 SD 卡后,像CATALOG
, LOAD
,這樣的命令SAVE
現(xiàn)在應(yīng)該可以工作了。有關(guān)文件命令的詳細(xì)信息,請參見SD 卡命令。
添加實時時鐘
市場上有許多用于 Arduino 項目的時鐘模塊。我已將帶有 EEPROM 的 DS3231 庫集成到 BASIC 解釋器中。這些設(shè)備看起來像這樣

它們可以連接到也用于顯示器的 I2C 端口。我的原型將時鐘直接安裝在顯示器后面

我不使用 Adafruit 的標(biāo)準(zhǔn) RTC 庫,因為它們帶來了 BASIC 解釋器所具有的許多功能。代替 BASIC 使用 uRTCLib 和 uEEPROMLib。兩者都可以在 Arduino IDE 中下載,也可以直接從下面的 github repos 下載。
編譯 BASIC 解釋器
#define ARDUINORTC
并將其加載到 Arduino 中。
現(xiàn)在在 BASIC 中提供了一個特殊的數(shù)組 @T():@T(0) - 秒,@T(1) - 分鐘,@T(2) - 小時,@T(3) - 天,@T(4) - 月,@T(5) - 年,@T(6) - 工作日,@T(7) - 溫度。除了溫度,所有數(shù)組元素都是讀/寫的。
使用數(shù)組的小時鐘程序如下所示
10 CLS
20 PRINT @T(2);":";@T(1);":";@T(0)
30 PRINT @T(3);"/";@T(4);"/";@T(5)
40 PRINT "Temp:",@T(7)/100
50 DELAY 1000
60 GOTO 10
時鐘的 4k EEPROM 模塊作為內(nèi)置 EEPROM 的擴展出現(xiàn)。Arduino MEGA256 啟動后應(yīng)顯示 8k EEPROM 空間。第一個 4k 是微控制器的內(nèi)置 EEPROM,第二個塊是時鐘的 EEROM。時鐘 EEPROM 非常慢,因為所有訪問都需要通過有線接口。
更多的東西來
我集成了 RF2401 無線電,我正在為這個系統(tǒng)開發(fā)以太網(wǎng),使其成為物聯(lián)網(wǎng)的小型基站。
使用的庫
https://github.com/PaulStoffregen/PS2Keyboard
來自 Arduino IDE 的 uRTClib
費用
這個項目成本真的很低。最昂貴的組件是 35 歐元的 MEGA 256。包括 I2C 適配器的顯示器是 10 歐元。SD 卡、SD 接口和時鐘需要另外 10 歐元。一個 PS2 鍵盤可以在 Ebay 上以 10 歐元的價格購買。總共花費 75 歐元,您就擁有了一臺可以正常工作的計算機。
最后的話
為什么選擇基于 BASIC 的 Arduino 家用電腦?因為建造它很有趣。而口譯語言有很多優(yōu)點。人們可以用它測試電路和物聯(lián)網(wǎng),而無需為每次更改重新刷新 Arduino。
BASIC 的發(fā)展遠(yuǎn)遠(yuǎn)超出了本項目中描述的功能。與此同時,它擁有 Wire、許多不同的顯示器、網(wǎng)絡(luò),并且可以為更大的計算機供電。我還為它移植了大部分 Arduino 示例庫。
如果您對此感興趣,請點擊這些鏈接中的任何一個
Arduino 庫中的所有標(biāo)準(zhǔn)示例都在我的倉庫中。
?
- 65C02計算機開源
- STM32從零開始 - 前言:硬件準(zhǔn)備
- 圖文詳解:從零開始學(xué)電源資源下載 103次下載
- 從零開始Android游戲編程(第二版) 0次下載
- 從零開始android游戲編程 3次下載
- [Arduino編程從零開始].[英].Simon.Monk 12次下載
- 從零開始學(xué)習(xí)單片機 22次下載
- 從零開始搭建3D打印機 0次下載
- 計算機測控系統(tǒng)設(shè)計 0次下載
- 從零開始MQX開發(fā)之一編譯MQX庫 0次下載
- 從零開始走進(jìn)FPGA-例程代碼匯總 131次下載
- 電腦組裝從零開始
- 從零開始學(xué)電路基礎(chǔ) 0次下載
- 計算機導(dǎo)論教程
- 計算機應(yīng)用基礎(chǔ)教案 0次下載
- 工業(yè)中使用哪種計算機? 195次閱讀
- 計算機接口位于什么之間 494次閱讀
- 算力系列基礎(chǔ)篇——算力與計算機性能:解鎖超能力的神秘力量! 104次閱讀
- 什么是工業(yè)計算機(IPC)? 828次閱讀
- 計算機視覺的主要研究方向 1044次閱讀
- 工業(yè)計算機與普通計算機的區(qū)別 1529次閱讀
- 什么是計算機視覺?計算機視覺的三種方法 4688次閱讀
- 計算機輔助技術(shù)有哪些_計算機輔助技術(shù)的應(yīng)用 4w次閱讀
- 什么是量子計算機_量子計算機原理_量子計算的兩種有效方法 1.2w次閱讀
- 計算機編程語言的發(fā)展趨勢分析 5225次閱讀
- 人腦為什么如此高效與計算機相比究竟誰的問題解決能力比較強呢? 5399次閱讀
- 計算機視覺零基礎(chǔ)入門 9293次閱讀
- 計算機的存儲器主要作用_計算機的存儲器的分類介紹 1.1w次閱讀
- 電子管計算機是第幾代_電子管計算機如何存儲數(shù)據(jù) 4.3w次閱讀
- 計算機網(wǎng)絡(luò)有哪些作用_計算機網(wǎng)絡(luò)硬件有哪些 1.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發(fā)指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應(yīng)用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關(guān)電源設(shè)計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎(chǔ)pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅(qū)動電路設(shè)計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學(xué)會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論