zr_screen_1602
跳線控制背光顯示
可變電阻調節字符清晰度
可用於ros機器人調試的數據、狀態的顯示。
video
https://www.bilibili.com/video/av95252286
硬件節點
rospy.Subscriber("screen_1602", screen_1602, callback)
rospy.Service('zr_hw_cmd', hw_cmd, fun1)
ros節點
pub = rospy.Publisher('screen_1602', screen_1602, queue_size=1)
srv_name='zr_hw_cmd'
rospy.wait_for_service(srv_name)
消息
screen_1602.msg
/*----------------------------------------------------------------------*/
string line1
string line2
分兩行顯示,每行16個字符
支持數字,英文,日文,一些特殊符號。
LCD1602內含有八個自定義的字符空間,
可通過service自定義符號到位置 1、2、3、4……7
可以發送“\x01\x02\x03\x04…”的字串來顯示
注意位置0的自定義符號不能被顯示,因爲“\0”在設備中是字符串結束標誌,而我們通訊的消息類型是字符串string。
通訊刷新頻率10hz
屏幕信息不改變可以不發送msg數據,或者發送空串。
““空字符串,保留本行不變化。如line1=””;line2=“xxx”;第一行不變化。
非空字符串,顯示完串的每個字符後,行末尾清空。
發送一個空格即可清除一行,不必發送16個空格。如line1=" ";line2=“xxx”;第一行清空
service 請求和顯示msg一般情況下不要同時發送。因爲硬件資源有限,容不下太多消息。
如果需要自定義字型,建議先用service完成自定義,再發送msg顯示。
爲了確保通訊實時性,硬件內部控制屏幕刷新,採用固定頻率按行分次刷新的方案。
所以當通訊刷新速度很快時,視覺上能感受到屏幕兩行刷新的時間差。(爲正常現象)
hw_cmd.srv
/*----------------------------------------------------------------------*/
string cmd
uint8[] input
---
uint8[] output
cmd命令支持的字符串有:“n”,“v”,“b”,“c”,"chr"
n代表name
v代表version
b代表brand
c代表copyright
chr代表自定義字形集,可以定義7個字形,需要參數數組input,input[9]就是字形數據。
每次可以執行chr可設置一個字形
input[0] 爲id
input[1-9]爲字形數據
自定義字形數據如下(這裏沒有id)
'''
//uint8_t bell[8] = {0x4, 0xe, 0xe, 0xe, 0x1f, 0x0, 0x4};
//uint8_t note[8] = {0x2, 0x3, 0x2, 0xe, 0x1e, 0xc, 0x0};
//uint8_t clock[8] = {0x0, 0xe, 0x15, 0x17, 0x11, 0xe, 0x0};
//uint8_t heart[8] = {0x0, 0xa, 0x1f, 0x1f, 0xe, 0x4, 0x0};
//uint8_t duck[8] = {0x0, 0xc, 0x1d, 0xf, 0xf, 0x6, 0x0};
//uint8_t check[8] = {0x0, 0x1, 0x3, 0x16, 0x1c, 0x8, 0x0};
//uint8_t cross[8] = {0x0, 0x1b, 0xe, 0x4, 0xe, 0x1b, 0x0};
//uint8_t retarrow[8] = { 0x1, 0x1, 0x5, 0x9, 0x1f, 0x8, 0x4};
'''
每個字形5*8個點,點陣數據8行,每行是數組的一個字節
bell字形如下
00100
01110
01110
01110
11111
00000
00100
00000
請您知曉:
執行chr 設置自定義字符時,會有設置不成功的情況。硬件程序增加了適當的延時,所以使用 chr 時請注意。
猜測可能是因爲硬件pcf8574模塊+1602模塊的本身特性,與arduino第三方庫不太兼容的原因。 如有錯誤,請各位老師多多指正!
示例
roslaunch zr_screen_1602 screen_1602_demo.launch
roslaunch zr_screen_1602 screen_1602_display.launch
roslaunch zr_screen_1602 screen_1602_fake.launch
video
https://www.bilibili.com/video/av95252286
gitbub
https://github.com/zaizhizhuang/zr