(SKU:DFR0515)OSD Character Overlay Module
来自DFRobot Product Wiki
目录 |
简介
OSD是On-screen Display的简称,即屏幕菜单式调节方式。这是一种在屏幕上附加各类菜单式字符的技术。DFRobot新推出的OSD视频字符叠加模块,采用AT7456E高性能视频字符叠加芯片,该芯片集成了512Byte的EEPROM用户自定义存储空间,是一款单通道、单色随屏显示发生器,具备视频驱动、同步分离器、视频分离开关等功能。在接入视频源后(AV信号),可在视频上覆盖一层540x192像素点,可显示16x30个字符。用户可调取字库来显示相应文字或图案。
Firebeetle OSD字符叠加模块,兼容FireBeetle萤火虫接口,可以直接插接在FireBeetle萤火虫系列主板上。
技术规格
- 工作电压: 3.3V~5V
- 工作电流: 75mA
- 字符显示: 16行x30列
- 字符像素: 18x12
- 分辨率: 540x192
- 显示颜色: 单色(白)
- 信号源:AV输入/AV输出
- 通信接口: SPI
- 工作温度: -10℃~85℃
- 外形尺寸: 58mm x 29mm
- 安装孔尺寸: 3.1mm x 6mm
- 安装孔位置: 53mm x 24mm
- 安装孔尺寸: 内径3.1mm/外径6mm
功能示意图
- RCA的A/V_IN或PH2.0的IN提供视频信号输入
- RCA的A/V_OUT或PH2.0的OUT提供视频信号输出
- SPI接口控制字符叠加
- RST按钮使字符叠加芯片复位
- D2-D5通过拨码开关提供片选
PinOut
注:NC不连接,VCC为电源电压输出(5V-USB供电时, 3.7V-锂电池供电时)
使用教程
准备
硬件
- AV接口摄像头 *1
- AV接口显示屏 *1
- AV信号线 *2
- OSD Character Overlay Module(V1.0) *1
- FireBeetle-ESP32 *1
软件
- Arduino IDE,点击下载Arduino IDE
- 请先下载FireBeetle DFRobot_OSD库 如何安装库文件,点击链接
- 开源字模软件TheDotFactory.exe 包含在arduino库tool目录下,github 下载链接
接线图
操作步骤
- 将OSD模块与FireBeetle-ESP32按照上图对应的引脚连接,并拨动OSD的拨码开关(当前代码使用的是D3)。
- 将摄像头和显示屏按照接线图与OSD模块连接。
- 将FireBeetle-ESP32通过USB线与电脑连接,打开IDE,下载并运行DFRobot_OSD库中的example。
注:cs变量为片选引脚,必须和拨码开关相对应。例如:拨码开关D3,对应的FireBeetle-ESP32引脚为IO26。本示例片选为D3。
EEPROM字库
字模软件的使用
1.点击设置按钮
2.选择下图中的选项:Padding Removal,Line wrap,Byte
3.在左侧编辑框输入内容,点击Generate生成字模
示例
- 以下为FireBeetle DFRobot_OSD的样例代码,请注意确保CS与你选择的片选引脚对应。
/*! * file DFRobot_OSD.ino * character superimposition. * @n This example Set characters on the screen. * * Copyright [DFRobot](http://www.dfrobot.com), 2016 * Copyright GNU Lesser General Public License * * version V1.0 * date 2017-10-9 */ #include <DFRobot_OSD.h> /*select CS pin*/ #ifdef __AVR__ int cs = 3; #elif defined ESP_PLATFORM int cs = D3; #elif defined __ets__ int cs = D3; #else #error unknow board #endif DFRobot_OSD osd(cs); /*Define Chinese characters*/ int buf0[36] = {0x02,0x80,0x02,0x40,0x7F,0xE0,0x42,0x00,0x42,0x00,0x7A,0x40,0x4A,0x40,0x4A,0x80,0x49,0x20,0x5A,0xA0,0x44,0x60,0x88,0x20}; int buf1[36] = {0x20,0x00,0x25,0xE0,0x75,0x20,0x29,0x20,0xFD,0x40,0x21,0x40,0x7D,0x20,0xC5,0x20,0x7D,0x20,0x45,0xC0,0x7D,0x00,0x45,0x00}; int buf2[36] = {0x20,0x00,0x2F,0xC0,0x24,0x40,0xF4,0x40,0x24,0x80,0x64,0xE0,0x74,0x20,0xA6,0x20,0x25,0x40,0x28,0x80,0x29,0x40,0x32,0x20}; int buf3[36] = {0x3F,0x00,0x2A,0xE0,0xFA,0x20,0x2E,0xA0,0x2A,0xA0,0xFE,0xA0,0x2A,0x40,0xAB,0x40,0xBE,0xA0,0xA3,0x20,0xE2,0x00,0xBF,0xE0}; void setup(){ osd.init(); osd.clear(); /* Write the custom character to the OSD, replacing the original character*/ /* Expand 0xe0 to 0x0e0, the high 8 bits indicate page number and the low 8 bits indicate the inpage address.*/ osd.storeChar(0xe0,buf0); osd.storeChar(0xe1,buf1); osd.storeChar(0xe2,buf2); osd.storeChar(0xe3,buf3); /*Displays custom characters*/ osd.displayChar(2,2,0xe0); osd.displayChar(2,3,0xe1); osd.displayChar(2,4,0xe2); osd.displayChar(2,5,0xe3); /*display character*/ osd.displayChar(9,9,0x11d); osd.displayChar(9,10,0x11e); osd.displayChar(8,11,0x10f); /*display String*/ const char* str1 = "DFRobot"; String str2 = "2017.9.12"; String str3(3.14); osd.displayString(14,21,str1); osd.displayString(2,19,str2); osd.displayString(4,19,str3); osd.displayString(4,2,"hello world!"); } void loop(){ } |
结果
Arduino库函数功能列表
- 构造函数,参数:cs 片选引脚
DFRobot_OSD(int CS);
- OSD的初始化
void init();
- 清空显示屏上的字符
void clear(void);
- 显示EEPROM中的字符,可容纳16行,30列字符,参数:row纵向坐标(0,15),col横向坐标(0,29),addr表示字符的地址值,高八位是页号,低八位是页内地址(可查阅EEPROM表),比如0x028,表示第一页,页内地址0x28,查表可知代表d字符。0x10F,表示第二页,页内地址0x0F,查表可知代表雷达字符。
void displayChar(unsigned char row, unsigned char col, unsigned short addr);
- 显示字符串,可容纳16行,30列字符,参数:row纵向坐标(0,15),col横向坐标(0,29),s为String类型的字符串
void displayString(unsigned char row, unsigned char col, unsigned char *s);
- 显示字符串,可容纳16行,30列字符,参数:row纵向坐标(0,15),col横向坐标(0,29),s为String类型的字符串
void displayString(unsigned char row, unsigned char col, String s);
- 将自定义字符存储到OSD的指定地址,参数:addr为OSD存储字符的地址,dt为字模软件提取的字模
void storeChar(unsigned short addr,int dt[]);
兼容性测试
MCU | 测试通过 | 测试失败 | 未测试 | 特别标注 |
FireBeetle-Board328P | √ | |||
FireBeetle-ESP32 | √ | |||
FireBeetle-ESP8266 | √ | |||
Leonardo | √ | 使用杜邦线连接测试 |
尺寸图
- pin脚间距:2.54mm
- 安装孔间距:24mm/53mm
- 安装孔尺寸:3.1mm
- 主板尺寸:29.00mm×58.00mm
- 板厚:1.6mm
常见问题
还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!
更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。