設(shè)計(jì)一個(gè)便攜式TTL串行監(jiān)視器
掃描二維碼
隨時(shí)隨地手機(jī)看文章
可在現(xiàn)場和辦公桌上使用,具有特殊的特點(diǎn)。它的滾動(dòng)顯示可以暫停和清除,可選擇的速度。
當(dāng)我開始這個(gè)項(xiàng)目時(shí),對便攜式TTL串行監(jiān)視器的渴望已經(jīng)達(dá)到了很高的水平。很多時(shí)候,作為程序員,我們需要一個(gè)小而便攜的調(diào)試在現(xiàn)場的特殊條件下,我們不能有一個(gè)顯示器的電腦。
這里它是一個(gè)完整的串行監(jiān)視器,在不同的速度下工作,有一個(gè)清屏按鈕和一個(gè)暫停按鈕來停止?jié)L動(dòng)數(shù)據(jù);最后但并非最不重要的是,我添加了特殊功能,以便在調(diào)試時(shí)在特殊情況下引起注意:播放“嗶嗶”并將文本的“顏色”更改為黃色,綠色,紅色,青色或白色(原始顏色),只需在Serial.print()命令中添加簡單的控制代碼。
電路:
MCU為Arduino MiniPro 3.3V,顯示屏為ILI9341 2.4“240x320 RGB(藍(lán)色型號),帶有SPI接口,縱向顯示,由于修改了庫,具有滾動(dòng)功能。無源蜂鳴器將提供聲音,TP5400模塊提供給鋰離子1A/h 3.7V電池充電,并升壓到5V,為RAW引腳上的MCU供電,并使用其內(nèi)部3.3V穩(wěn)壓器。
Arduino內(nèi)部穩(wěn)壓器的電流限制是150mA,但實(shí)際上整個(gè)電路只需要65mA左右;充電讓連接micro-USB數(shù)據(jù)線;USB-A母線用于為具有5Vcc需求的非潛能附加設(shè)備供電,即用于監(jiān)控的電路;
電路工作在3.3V。輸入可以是0V到3-5V之間的TTL邏輯電平,如果確實(shí)需要,可以更多,因?yàn)镽2=4.7K, R3=10k和Q1=BC337將控制MCU輸入端口的信號。R4和R5作為分壓器用于測量電池電壓,當(dāng)需要充電時(shí),蜂鳴器會(huì)提醒您。按下暫停鍵時(shí)紅色LED亮起;在暫停模式下,數(shù)據(jù)停止?jié)L動(dòng),緩沖區(qū)被清空。另一個(gè)按鈕用于清除屏幕,最后一個(gè)按鈕用于改變所需的速度(300、1200、2400、4800、9600、19200和38400)。
像往常一樣,要將草圖傳輸?shù)紸rduino Mini Pro,您需要一個(gè)FTDI (USB到串行)模塊設(shè)置在3.3V。
組件列表:
?Arduino Mini Pro 3.3V
?顯示ILI9341 2.4" TFT-LCD 240x320 RGB(藍(lán)色型號),SPI接口
?TP5400充電升壓模塊(見圖片)
?鋰離子3.7V 1A/h可充電電池
?2個(gè)10k電阻器(可能為1%,并選擇與值相似)
?1 × 4.7K電阻
?1 × 10k電阻
?1個(gè)330電阻器
?2 × 100n電容
?1個(gè)100uF 16V電解電容
?1 x自復(fù)位保險(xiǎn)絲200mA
?1個(gè)迷你開關(guān)開/關(guān)
?1 × 3mm紅色LED
?3個(gè)迷你觸覺按鈕13毫米高+ 3個(gè)黑色蓋子
?1個(gè)被動(dòng)3.3V SMD蜂鳴器(12x12mm)
?1個(gè)BC337 NPN晶體管
?2個(gè)2mm母插頭(黑色和紅色)
?3D打印盒子+蓋子
?1 x PCB連接器8針,公母(顯示)
?8 × 3mm墊片
?8顆3mm螺釘
特殊特性:
在你的設(shè)備監(jiān)控,你可以添加一些控制字符在你的調(diào)試代碼消息,以豐富/簡化調(diào)試:這樣,你可以改變文本顏色的顯示和播放的聲音,當(dāng)你喜歡只是添加這些控制代碼之一,必要時(shí):
?CTRL-A, ASCII=01(起始黃色)
?CTRL-B, ASCII=02 (start GREEN)
?CTRL-C, ASCII=03 (start RED)
?CTRL-D, ASCII=04(開始青色)
?CTRL-E, ASCII=05(開始白色,恢復(fù)正常顏色)
?CTRL-G, ASCII=07(播放歌曲)
為例:
軟件說明:
默認(rèn)速度為9600,8位,無奇偶校驗(yàn),1停止(SERIAL_8N1),但使用速度按鈕,您可以更改為300,1200,2400,4800,9600,19200,38400波特;我測試了一個(gè)連續(xù)的RX工作到4800;較高的速度可以使緩沖區(qū)在連續(xù)接收期間滿,因?yàn)轱@示速度比接收數(shù)據(jù)慢;偶爾的RX數(shù)據(jù)按照通常的串行監(jiān)視器目的調(diào)試將工作得很好,即使在更高的速度;
為了避免在上傳草圖時(shí)受到干擾,我通過SoftwareSerial庫為串行RX/TX使用了2個(gè)新引腳,因此通信引腳為4和5;
只顯示32-126 ASCII范圍內(nèi)的可打印字符,因此不顯示控制碼和擴(kuò)展ASCII碼(全部忽略);
在暫停模式下,顯示器停止顯示更多數(shù)據(jù),因此接收數(shù)據(jù)被忽略(丟失);
看看TP5400模塊數(shù)據(jù)表,他們說它將在900mA電流下充電,因?yàn)榘惭b在芯片引腳3上的編程電阻是1.2k歐姆;我在這個(gè)項(xiàng)目中使用的鋰離子電池有1450mA/h,所以在1.5小時(shí)左右充滿電;我認(rèn)為這種情況下的充電電流是足夠的,即使我通常喜歡比電池容量小的充電電流;只是提醒您不要安裝容量較小的電池,或者您應(yīng)該將電阻更改為更大的值(10k -> 130mA, 5.1k -> 245mA, 2k 560mA, 1.5k -> 740mA, 1.1k -> 1000mA);例如,對于小型350mA/h電池,我建議將引腳3編程電阻更改為5.1k和10k歐姆之間的值。
軟件每隔30英寸檢查一次電池電壓:如果低于3.4v,它會(huì)發(fā)出聲音作為警告,以便盡快為電池充電;充滿電池應(yīng)該持續(xù)15小時(shí)左右。
SoftwareSerial庫緩沖區(qū)大小為64字節(jié);我修改了SoftwareSerial.h和SoftwareSerial.cpp為512字節(jié),所以現(xiàn)在更難以使緩沖區(qū)滿;為了更舒適地使用,您應(yīng)該根據(jù)說明和圖片修改庫;這個(gè)草圖使用了大約1450字節(jié)的內(nèi)存加上512字節(jié)的放大緩沖區(qū),它應(yīng)該保持在Arduino Mini-Pro的2kbytes限制以下。
自定義顯示庫:
你必須下載并安裝自定義的“_AS”庫,用于顯示允許滾動(dòng),由Alan Senior編寫,2015年2月15日:
硬件指出:
為了保持TP5400充電和升壓模塊的位置,您必須在USB-A連接器機(jī)箱上焊接三個(gè)牢固的引腳,并將它們與PCB上的三個(gè)點(diǎn)對齊。
注意保護(hù)顯示器上脆弱的扁平電纜,特別是在螺絲或墊片的4個(gè)孔附近。
本文編譯自hackster.io