資料介紹
描述
這個想法
Rockwell AIM 65 是 70 年代早期基于 6502 的計算機之一。它有一個 20 個字符的顯示屏、一個小型熱敏打印機和一個相當大的鍵盤。標準內存是 1k 或 4k。更多細節可以在“舊電腦”頁面找到。ROM上有很多軟件可用。我從來沒有 AIM 65。實際上,它們比我早一點流行。但我一直喜歡它的準系統外觀。
該設計非常適合使用我們今天擁有的標準 Arduino 組件進行重建。
準備原型盾牌
將 PS2 鍵盤插座焊接在原型屏蔽罩的外側。然后連接電線。我的布局是使用 Arduino 的引腳 2 作為 PS2 時鐘和引腳 3 作為 PS2 數據線。我非常凌亂的實驗原型看起來像這樣
請確保您得到正確的引腳排列。PS2 鍵盤用錯極性很容易被炸。下載 PS2 庫。
Paul Stoffregen 的 PS2 庫通過 Arduino IDE 提供以供下載。最新版本是 2.4。這個庫在處理帶有 altgr 鍵盤映射(如德語)的鍵盤映射時存在錯誤。如果庫https://github.com/slviajero/PS2Keyboard ,我修復了我的 fork 中的錯誤。Paul 在他的源代碼中也包含了修復程序,但來自 Arduino IDE 的代碼仍然可能是舊代碼。
安裝和連接 LCD 顯示器
Stefan 的 BASIC 支持 I2C 和直接連接的 20x4 LCD 顯示器。對于我的第一個原型,我使用了一個帶有并行接口的顯示器,這導致了很多電纜和面包板。I2C 是更好的選擇。盡管如此,并行顯示代碼仍在解釋器中,因為它也用于 LCD 屏蔽。
將 I2C 和電壓線連接到 Arduino。我使用了一個小面包板,因為我想將 I2C 接口不僅用于顯示器,還用于其他傳感器。
上面的兩個連接器是接地和 5V。這將用于原型屏蔽和相應的插座。SDA 和 SCL 連接到 Arduino MEGA 的 PIN 20 和 21。
將所有內容放在一起并上傳軟件。
將原型板放在 Mega 上,插入 PS2 鍵盤和 USB 數據線。我將所有東西都安裝在膠合板上,將 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代碼的開頭設置以下語言設置。控制包含哪些語言功能。
#define BASICFULL
#undef BASICINTEGER
#undef BASICSIMPLE
#undef BASICMINIMAL
#undef BASICTINYWITHFLOAT
MEGA 有足夠的閃存用于完整的 BASIC 語言集。
在 hardware-arduino.h 中有硬件設置。放
#undef USESPICOSERIAL
#define ARDUINOPS2
#define DISPLAYCANSCROLL
#define ARDUINOLCDI2C
#define ARDUINOEEPROM
#define STANDALONE
我們想要一個支持 EEPROM (ARDUINOEEPROM)、PS2 鍵盤支持 (ARDUINOPS2)、I2C 顯示器 (ARDUINOLCDI2C) 和顯示器完全滾動支持 (DISPLAYCANSCROLL) 的系統。最后一個設置 STANDALONE 使 BASIC 解釋器在啟動后使用顯示器和鍵盤作為默認輸入和輸出設備。
接下來設置 PS2 引腳。這是在更遠的地方完成的。根據硬件布局設置值。數據管腳可以是這里的任何管腳。IRQ 引腳需要是 MEGA 的 IRQ 就緒引腳。
#define PS2DATAPIN 3
#define PS2IRQPIN 2
如果您想使用不同的布局,請修改本節中的代碼。該代碼具有默認硬連線的德語鍵盤。相應地搜索并更改行keyboard.begin(PS2DataPin, PS2IRQpin, PS2Keymap_German)
。
上傳你的程序。
享受輸入您的第一個 BASIC 命令。使用這種語言集的 Arduino MEGA 256 可能有 6k 的 BASIC 內存。對于一些有趣的項目來說已經足夠了。請閱讀 wiki了解有關此 BASIC 方言的詳細信息,包括測試和演示程序。
另請查看本教程以獲取有關 Arduino 上的 BASIC 的更多信息。
添加打印機
市場上有大量小型熱敏打印機,都與最初用于 AIM65 的熱敏打印機非常相似。這些打印機具有串行 TTL 和 RS232 接口。它們需要大量電力,不能連接到 Arduino 5V 線路。需要一個電流至少為 2A 的額外 9V 電源。這些打印機的規格通常如下所示https://github.com/slviajero/tinybasic/blob/main/misc/ThermalprinterSpecs.pdf 。確定正確的引腳排列可能有點麻煩。
將打印機串口的 TX 線連接到 Arduino 上 Serial1 的 RX。這是針腳 19。將打印機的 RX 連接到針腳 18。還將打印機的地線連接到 Arduino 上的地線。打印機的電源通過單獨的電源線連接到外部電源。
重新編譯 BASIC 解釋器添加設置
#define ARDUINOPRT
在代碼的硬件部分。這將激活 Arduino 的 Serial1 接口并為其分配 BASIC 設備編號 &4。標準波特率為 9600,這對于這些打印機來說很常見。
PRINT &4, "Hello World"
現在應該可以工作了。可以使用 PUT 將單個字節發送到打印機
PUT &4, 10
I/O 通道雙向工作。
GET &4, A
從打印機收集一個字節。這會很有幫助,因為打印機具有雙向通信協議。
添加 SD 卡存儲
在 BASIC 解釋器中,SD 卡支持在編譯時激活
#define ARDUINOSD
連接小型SD卡接口
到 Arduino 的 SPI 端口。對于 ATMEGA 2560 MOSI 是引腳 51、MISO 引腳 50 和 CLK 引腳 52。我使用引腳 53(SPI 端口的默認從屬選擇)來激活 SD 卡讀卡器。添加一個帶有 FAT12 文件系統的小型預格式化 SD 卡,您就可以開始使用了。
這是整個系統現在的樣子:
請注意,啟動后它只報告 4096 字節的可用 BASIC 內存。SD 卡接口的緩沖區使用 900 字節。這并不奇怪,因為 SD 卡的塊大小為 512 字節。
插入預格式化的 SD 卡后,像CATALOG
, LOAD
,這樣的命令SAVE
現在應該可以工作了。有關文件命令的詳細信息,請參見SD 卡命令。
添加實時時鐘
市場上有許多用于 Arduino 項目的時鐘模塊。我已將帶有 EEPROM 的 DS3231 庫集成到 BASIC 解釋器中。這些設備看起來像這樣
它們可以連接到也用于顯示器的 I2C 端口。我的原型將時鐘直接安裝在顯示器后面
我不使用 Adafruit 的標準 RTC 庫,因為它們帶來了 BASIC 解釋器所具有的許多功能。代替 BASIC 使用 uRTCLib 和 uEEPROMLib。兩者都可以在 Arduino IDE 中下載,也可以直接從下面的 github repos 下載。
編譯 BASIC 解釋器
#define ARDUINORTC
并將其加載到 Arduino 中。
現在在 BASIC 中提供了一個特殊的數組 @T():@T(0) - 秒,@T(1) - 分鐘,@T(2) - 小時,@T(3) - 天,@T(4) - 月,@T(5) - 年,@T(6) - 工作日,@T(7) - 溫度。除了溫度,所有數組元素都是讀/寫的。
使用數組的小時鐘程序如下所示
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 模塊作為內置 EEPROM 的擴展出現。Arduino MEGA256 啟動后應顯示 8k EEPROM 空間。第一個 4k 是微控制器的內置 EEPROM,第二個塊是時鐘的 EEROM。時鐘 EEPROM 非常慢,因為所有訪問都需要通過有線接口。
更多的東西來
我集成了 RF2401 無線電,我正在為這個系統開發以太網,使其成為物聯網的小型基站。
使用的庫
https://github.com/PaulStoffregen/PS2Keyboard
來自 Arduino IDE 的 uRTClib
費用
這個項目成本真的很低。最昂貴的組件是 35 歐元的 MEGA 256。包括 I2C 適配器的顯示器是 10 歐元。SD 卡、SD 接口和時鐘需要另外 10 歐元。一個 PS2 鍵盤可以在 Ebay 上以 10 歐元的價格購買。總共花費 75 歐元,您就擁有了一臺可以正常工作的計算機。
最后的話
為什么選擇基于 BASIC 的 Arduino 家用電腦?因為建造它很有趣。而口譯語言有很多優點。人們可以用它測試電路和物聯網,而無需為每次更改重新刷新 Arduino。
BASIC 的發展遠遠超出了本項目中描述的功能。與此同時,它擁有 Wire、許多不同的顯示器、網絡,并且可以為更大的計算機供電。我還為它移植了大部分 Arduino 示例庫。
如果您對此感興趣,請點擊這些鏈接中的任何一個
Arduino 庫中的所有標準示例都在我的倉庫中。
?
- 65C02計算機開源
- STM32從零開始 - 前言:硬件準備
- 圖文詳解:從零開始學電源資源下載 87次下載
- 大話計算機教程之狂想計算機PDF電子書免費下載 0次下載
- 從零開始Android游戲編程(第二版) 0次下載
- 從零開始android游戲編程 3次下載
- [Arduino編程從零開始].[英].Simon.Monk 12次下載
- 從零開始學習單片機 22次下載
- 從零開始搭建3D打印機 0次下載
- 計算機測控系統設計 0次下載
- 從零開始MQX開發之一編譯MQX庫 0次下載
- 從零開始走進FPGA-例程代碼匯總 131次下載
- 電腦組裝從零開始
- 從零開始學電路基礎 0次下載
- 計算機應用基礎教案 0次下載
- 算力系列基礎篇——算力與計算機性能:解鎖超能力的神秘力量! 104次閱讀
- 什么是工業計算機(IPC)? 385次閱讀
- 計算機控制器的結構和功能 792次閱讀
- 機器視覺與計算機視覺的區別 795次閱讀
- 計算機視覺的主要研究方向 488次閱讀
- 工業計算機與普通計算機的區別 609次閱讀
- 什么是計算機視覺?計算機視覺的三種方法 4138次閱讀
- 計算機輔助技術有哪些_計算機輔助技術的應用 3.9w次閱讀
- 什么是量子計算機_量子計算機原理_量子計算的兩種有效方法 1.1w次閱讀
- 計算機編程語言的發展趨勢分析 5150次閱讀
- 人腦為什么如此高效與計算機相比究竟誰的問題解決能力比較強呢? 5248次閱讀
- 計算機視覺零基礎入門 9075次閱讀
- 計算機的存儲器主要作用_計算機的存儲器的分類介紹 1.1w次閱讀
- 電子管計算機是第幾代_電子管計算機如何存儲數據 4.3w次閱讀
- 計算機網絡有哪些作用_計算機網絡硬件有哪些 1.1w次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 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十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多