(SKU:DFR0515)OSD Character Overlay Module

来自DFRobot Product Wiki
跳转至: 导航搜索
产品名称

Update/modify/delete Forbidden, 禁止更改本图,请更改图片名称,避免覆盖上传

目录

简介

DFRobot新推出的OSD视频字符叠加模块,采用AT7456E高性能视频字符叠加芯片,该芯片集成了512Byte的EEPROM用户自定义存储空间。它是一款单通道、单色随屏显示发生器,具备视频驱动、同步分离器、视频分离开关,提高了系统的集成度。同时,OSD视频字符叠加模块,还兼容FireBeetle萤火虫接口,可以直接插接在FireBeetle萤火虫系列主板上。


技术规格

  • 工作电压: 3.3V~5V
  • 工作电流:75mA
  • 通信接口:SPI
  • 工作温度:-40℃~85℃
  • 外形尺寸: 58mm x 29mm
  • 安装孔尺寸:3.1mm x 6mm
  • 安装孔位置: 53mm x 24mm
  • 安装孔尺寸:内径3.1mm/外径6mm


尺寸图

  • pin脚间距:2.54mm
  • 安装孔间距:24mm/53mm
  • 安装孔尺寸:3.1mm
  • 主板尺寸:29.00mm×58.00mm
  • 板厚:1.6mm
Fig1: FireBeetle Covers-OLED12864 Display尺寸图

功能示意图

  • RCA的A/V_IN或PH2.0的IN提供视频信号输入
  • RCA的A/V_OUT或PH2.0的OUT提供视频信号输出
  • SPI接口控制字符叠加
  • RST按钮使字符叠加芯片复位
  • D2-D5通过拨码开关提供片选


PinOut

Fig3: OSD Character Overlay Module Pinout


Warning yellow.png

注:NC不连接,VCC为电源电压输出(5V-USB供电时, 3.7V-锂电池供电时)


Arduino库函数功能列表

DFRobot_OSD Arduino库

  • 构造函数,参数:cs 片选引脚
DFRobot_OSD(int CS);
  • OSD的初始化
void init();
  • 清空显示屏上的字符
void clear(void);
  • 显示EEPROM中的字符,参数:row纵向坐标(0,15),col横向坐标(0,29),addr表示字符的地址值,高八位是页号,低八位是页内地址(可查阅EEPROM表),比如0x028,表示第一页,页内地址0x28,查表可知代表d字符。0x10F,表示第二页,页内地址0x0F,查表可知代表雷达字符。
void displayChar(unsigned char row, unsigned char col, unsigned short addr);
  • 显示字符串,参数:row纵向坐标(0,15),col横向坐标(0,29),s指针类型的字符串
void displayString(unsigned char row, unsigned char col, unsigned char *s); 
  • 显示字符串,参数: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[]);


使用教程

准备

硬件

  • AV接口摄像头 *1
  • AV接口显示屏 *1
  • AV信号线 *2
  • OSD Character Overlay Module(V1.0) *1
  • FireBeetle-ESP32 *1

软件


接线图

Connect osd.png

操作步骤

  • 将OSD模块与FireBeetle-ESP32按照上图对应的引脚连接,并拨动OSD的拨码开关(当前代码使用的是D3)。
  • 将摄像头和显示屏按照接线图与OSD模块连接。
  • 将FireBeetle-ESP32通过USB线与电脑连接,打开IDE,下载并运行DFRobot_OSD库中的example。

注:cs变量为片选引脚,必须和拨码开关相对应。例如:拨码开关D3,对应的FireBeetle-ESP32引脚为IO26。本示例片选为D3。


EEPROM字库


字模软件的使用

1.点击选项按钮

PCtoLCDmain.png


2.选择下图中的选项:取模方式,输出数制,自定义格式

PCtoLCDconfig.png


3.选择下图中的选项: 字宽,字高,然后在输入框输入字符,点击生成字模

PCtoLCDputout.png


示例

  • 以下为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] = {0x00,0x00,0x40,0x01,0x40,0x02,0x40,0x03,0xFC,0x07,0x44,0x00,0x44,0x02,0x44,0x02,0x7C,0x02,0x94,0x02,0x94,0x01,0x92,0x01,0x12,0x01,0x9A,0x05,0x52,0x06,0x22,0x04,0x00,0x00,0x00,0x00};
int buf1[36] = {0x08,0x00,0x08,0x00,0xC8,0x07,0xBC,0x04,0xA8,0x02,0x98,0x02,0xFE,0x02,0x88,0x02,0x8C,0x02,0xB4,0x04,0xA6,0x04,0xBC,0x04,0xA4,0x04,0xA4,0x06,0xBC,0x00,0x84,0x00,0x00,0x00,0x00,0x00};
int buf2[36] = {0x00,0x00,0x04,0x02,0xC4,0x03,0x44,0x02,0x5E,0x01,0x44,0x01,0x44,0x05,0xCC,0x06,0x76,0x02,0x76,0x02,0xA6,0x02,0xA6,0x01,0x24,0x01,0x94,0x01,0x54,0x02,0x24,0x04,0x00,0x00,0x00,0x00};
int buf3[36] = {0x00,0x00,0x04,0x00,0xF4,0x01,0xAC,0x00,0xB4,0x07,0xA4,0x04,0xF4,0x05,0xAE,0x03,0xA4,0x02,0xE6,0x02,0xBA,0x06,0xE6,0x05,0xA6,0x01,0x86,0x00,0x89,0x00,0xF1,0x07,0x00,0x00,0x00,0x00};

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";
  
  osd.displayString(14,21,str1);
  osd.displayString(2,19,str2);
  osd.displayString(4,2,"hello world!");
  
}

void loop(){
  
}


结果

DSC 77701.jpg

兼容性测试

MCU 测试通过 测试失败 未测试 特别标注
FireBeetle-Board328P
FireBeetle-ESP32
FireBeetle-ESP8266
Leonardo 使用杜邦线连接测试

常见问题

还没有客户对此产品有任何问题,欢迎通过qq或者论坛联系我们!


更多问题及有趣的应用,可以 访问论坛 进行查阅或发帖。


更多


DFshopping car1.png [Link DFRobot商城购买链接]

个人工具
名字空间

变换
操作
导航
工具箱