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

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

將 I2C 和電壓線連接到 Arduino。我使用了一個(gè)小面包板,因?yàn)槲蚁雽?I2C 接口不僅用于顯示器,還用于其他傳感器。

上面的兩個(gè)連接器是接地和 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 的補(bǔ)丁。它添加了 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
		我們想要一個(gè)支持 EEPROM (ARDUINOEEPROM)、PS2 鍵盤支持 (ARDUINOPS2)、I2C 顯示器 (ARDUINOLCDI2C) 和顯示器完全滾動(dòng)支持 (DISPLAYCANSCROLL) 的系統(tǒng)。最后一個(gè)設(shè)置 STANDALONE 使 BASIC 解釋器在啟動(dòng)后使用顯示器和鍵盤作為默認(rèn)輸入和輸出設(shè)備。
接下來設(shè)置 PS2 引腳。這是在更遠(yuǎn)的地方完成的。根據(jù)硬件布局設(shè)置值。數(shù)據(jù)管腳可以是這里的任何管腳。IRQ 引腳需要是 MEGA 的 IRQ 就緒引腳。
#define PS2DATAPIN 3
#define PS2IRQPIN  2 
		
			如果您想使用不同的布局,請(qǐng)修改本節(jié)中的代碼。該代碼具有默認(rèn)硬連線的德語鍵盤。相應(yīng)地搜索并更改行keyboard.begin(PS2DataPin, PS2IRQpin, PS2Keymap_German)。
上傳你的程序。

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

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

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

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

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

我不使用 Adafruit 的標(biāo)準(zhǔn) RTC 庫,因?yàn)樗鼈儙砹?BASIC 解釋器所具有的許多功能。代替 BASIC 使用 uRTCLib 和 uEEPROMLib。兩者都可以在 Arduino IDE 中下載,也可以直接從下面的 github repos 下載。
編譯 BASIC 解釋器
#define ARDUINORTC
		并將其加載到 Arduino 中。
現(xiàn)在在 BASIC 中提供了一個(gè)特殊的數(shù)組 @T():@T(0) - 秒,@T(1) - 分鐘,@T(2) - 小時(shí),@T(3) - 天,@T(4) - 月,@T(5) - 年,@T(6) - 工作日,@T(7) - 溫度。除了溫度,所有數(shù)組元素都是讀/寫的。
使用數(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
		時(shí)鐘的 4k EEPROM 模塊作為內(nèi)置 EEPROM 的擴(kuò)展出現(xiàn)。Arduino MEGA256 啟動(dòng)后應(yīng)顯示 8k EEPROM 空間。第一個(gè) 4k 是微控制器的內(nèi)置 EEPROM,第二個(gè)塊是時(shí)鐘的 EEROM。時(shí)鐘 EEPROM 非常慢,因?yàn)樗性L問都需要通過有線接口。
更多的東西來
我集成了 RF2401 無線電,我正在為這個(gè)系統(tǒng)開發(fā)以太網(wǎng),使其成為物聯(lián)網(wǎng)的小型基站。
使用的庫
https://github.com/PaulStoffregen/PS2Keyboard
來自 Arduino IDE 的 uRTClib
費(fèi)用
這個(gè)項(xiàng)目成本真的很低。最昂貴的組件是 35 歐元的 MEGA 256。包括 I2C 適配器的顯示器是 10 歐元。SD 卡、SD 接口和時(shí)鐘需要另外 10 歐元。一個(gè) PS2 鍵盤可以在 Ebay 上以 10 歐元的價(jià)格購買。總共花費(fèi) 75 歐元,您就擁有了一臺(tái)可以正常工作的計(jì)算機(jī)。
最后的話
為什么選擇基于 BASIC 的 Arduino 家用電腦?因?yàn)榻ㄔ焖苡腥ぁ?/font>而口譯語言有很多優(yōu)點(diǎn)。人們可以用它測(cè)試電路和物聯(lián)網(wǎng),而無需為每次更改重新刷新 Arduino。
BASIC 的發(fā)展遠(yuǎn)遠(yuǎn)超出了本項(xiàng)目中描述的功能。與此同時(shí),它擁有 Wire、許多不同的顯示器、網(wǎng)絡(luò),并且可以為更大的計(jì)算機(jī)供電。我還為它移植了大部分 Arduino 示例庫。
如果您對(duì)此感興趣,請(qǐng)點(diǎn)擊這些鏈接中的任何一個(gè)
Arduino 庫中的所有標(biāo)準(zhǔn)示例都在我的倉庫中。
?
- 65C02計(jì)算機(jī)開源
- STM32從零開始 - 前言:硬件準(zhǔn)備
- 圖文詳解:從零開始學(xué)電源資源下載 103次下載
- 從零開始Android游戲編程(第二版) 0次下載
- 從零開始android游戲編程 3次下載
- [Arduino編程從零開始].[英].Simon.Monk 12次下載
- 從零開始學(xué)習(xí)單片機(jī) 22次下載
- 從零開始搭建3D打印機(jī) 0次下載
- 計(jì)算機(jī)測(cè)控系統(tǒng)設(shè)計(jì) 0次下載
- 從零開始MQX開發(fā)之一編譯MQX庫 0次下載
- 從零開始走進(jìn)FPGA-例程代碼匯總 131次下載
- 電腦組裝從零開始
- 從零開始學(xué)電路基礎(chǔ) 0次下載
- 計(jì)算機(jī)導(dǎo)論教程
- 計(jì)算機(jī)應(yīng)用基礎(chǔ)教案 0次下載
- 工業(yè)中使用哪種計(jì)算機(jī)? 195次閱讀
- 計(jì)算機(jī)接口位于什么之間 494次閱讀
- 算力系列基礎(chǔ)篇——算力與計(jì)算機(jī)性能:解鎖超能力的神秘力量! 104次閱讀
- 什么是工業(yè)計(jì)算機(jī)(IPC)? 828次閱讀
- 計(jì)算機(jī)視覺的主要研究方向 1044次閱讀
- 工業(yè)計(jì)算機(jī)與普通計(jì)算機(jī)的區(qū)別 1529次閱讀
- 什么是計(jì)算機(jī)視覺?計(jì)算機(jī)視覺的三種方法 4688次閱讀
- 計(jì)算機(jī)輔助技術(shù)有哪些_計(jì)算機(jī)輔助技術(shù)的應(yīng)用 4w次閱讀
- 什么是量子計(jì)算機(jī)_量子計(jì)算機(jī)原理_量子計(jì)算的兩種有效方法 1.2w次閱讀
- 計(jì)算機(jī)編程語言的發(fā)展趨勢(shì)分析 5225次閱讀
- 人腦為什么如此高效與計(jì)算機(jī)相比究竟誰的問題解決能力比較強(qiáng)呢? 5399次閱讀
- 計(jì)算機(jī)視覺零基礎(chǔ)入門 9293次閱讀
- 計(jì)算機(jī)的存儲(chǔ)器主要作用_計(jì)算機(jī)的存儲(chǔ)器的分類介紹 1.1w次閱讀
- 電子管計(jì)算機(jī)是第幾代_電子管計(jì)算機(jī)如何存儲(chǔ)數(shù)據(jù) 4.3w次閱讀
- 計(jì)算機(jī)網(wǎng)絡(luò)有哪些作用_計(jì)算機(jī)網(wǎng)絡(luò)硬件有哪些 1.1w次閱讀
下載排行
本周
- 1PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
- 1.83 MB | 12次下載 | 4 積分
- 2世平基于靈動(dòng)微 SPIN560C 的低壓無刷電機(jī)應(yīng)用方案
- 10.93 MB | 11次下載 | 免費(fèi)
- 3電源測(cè)試報(bào)告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
- 6.47 MB | 11次下載 | 免費(fèi)
- 4PWM控制器的控制方法
- 0.39 MB | 3次下載 | 4 積分
- 5電流檢測(cè)芯片F(xiàn)P135應(yīng)用說明
- 1.24 MB | 3次下載 | 免費(fèi)
- 6全面解讀被動(dòng)式與主動(dòng)式PFC電路
- 1.27 MB | 1次下載 | 4 積分
- 7HC88L051F4低功耗芯片規(guī)格書
- 4.76 MB | 1次下載 | 免費(fèi)
- 8CIU32D655x5數(shù)據(jù)手冊(cè)
- 2.14 MB | 1次下載 | 免費(fèi)
本月
- 1常用電子元器件使用手冊(cè)
- 2.40 MB | 52次下載 | 免費(fèi)
- 2高功率密度碳化硅MOSFET軟開關(guān)三相逆變器損耗分析
- 2.27 MB | 33次下載 | 10 積分
- 3PFC電路與BOOST電路設(shè)計(jì)實(shí)例分享
- 1.83 MB | 12次下載 | 4 積分
- 4世平基于靈動(dòng)微 SPIN560C 的低壓無刷電機(jī)應(yīng)用方案
- 10.93 MB | 11次下載 | 免費(fèi)
- 5電源測(cè)試報(bào)告-基于 國民技術(shù) N32L406 和杰華特 JW3376+3330 的 BMS 方案
- 6.47 MB | 11次下載 | 免費(fèi)
- 6USB拓展塢PCB圖資料
- 0.57 MB | 11次下載 | 免費(fèi)
- 7MS1826 HDMI 多功能視頻處理器數(shù)據(jù)手冊(cè)
- 4.51 MB | 9次下載 | 免費(fèi)
- 8HAL9303線性霍爾效應(yīng)傳感器技術(shù)手冊(cè)
- 0.70 MB | 9次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935134次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191424次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183352次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81600次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73818次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
 電子發(fā)燒友App
	                電子發(fā)燒友App
	             
	         
	         
           
        
 
        
 
	                    
 
                         
                         
                         
                         
                        



 創(chuàng)作
創(chuàng)作 發(fā)文章
發(fā)文章 發(fā)帖
發(fā)帖   提問
提問   發(fā)資料
發(fā)資料 發(fā)視頻
發(fā)視頻 上傳資料賺積分
上傳資料賺積分 
            
             
             
                 
             工商網(wǎng)監(jiān)
工商網(wǎng)監(jiān)
        
評(píng)論