【鸿蒙开发板试用报告】鸿蒙 OS Hi3861 OLED 屏上播放视频

开发
本文将介绍Hi3861 WLAN模组的开发环境搭建、版本编译构建、烧录、源码修改、调试验证视频播放功能。通过学习,开发者会对Hi3861 WLAN模组、0.96 OLED屏模组开发流程有初步认识,并可上手业务开发。

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

本文将介绍Hi3861 WLAN模组的开发环境搭建、版本编译构建、烧录、源码修改、调试验证视频播放功能。通过学习,开发者会对Hi3861 WLAN模组、0.96 OLED屏模组开发流程有初步认识,并可上手业务开发。

一、开发板简介

Hi3861底板可以与其他模块连接,具有扩充自身的外设能力,可以接WLAM模组主板、接OLED屏板。 

 

Hi3861 WLAN模组是一片大约2cm*5cm大小的开发板,是一款高度集成的2.4GHz WLAN SoC芯片,频率高波长短的5G信号,覆盖范围相对较小,穿过障碍物的能力不如2.4GHz,基带支持正交频分复用(OFDM)技术,并向下兼容直接序列扩频(DSSS)和补码键控(CCK)技术,支持IEEE 802.11 b/g/n协议的各种数据速率。 

 集成IEEE 802.11b/g/n基带和RF(Radio Frequency)电路,射频集成电路是一种紧凑的电子电路,它使用有源器件来实现所谓射频(RF)范围内的信号频率,RF电路包括功率放大器PA(Power Amplifier)、低噪声放大器LNA(Low Noise Amplifier)、RF Balun、天线开关以及电源管理等模块;支持20MHz标准带宽和5MHz/10MHz窄带宽,提供最大72.2Mbit/s物理层速率。 

 

Hi3861芯片集成高性能32bit微处理器、硬件安全引擎以及丰富的外设接口,外设接口包括SPI(Synchronous Peripheral Interface)、UART(Universal Asynchronous Receiver & Transmitter)、I2C(The Inter Integrated Circuit)、PWM(Pulse Width Modulation)、GPIO(General Purpose Input/Output)和多路ADC(Analog to Digital Converter),同时支持高速SDIO2.0(Secure Digital Input/Output)接口,最高时钟可达50MHz;芯片内置SRAM(Static Random Access Memory)和Flash,可独立运行,并支持在Flash上运行程序。支持HarmonyOS,并配套提供开放、易用的开发和调试运行环境。

Hi3861 WLAN模组资源十分有限,整板共2MB FLASH,可以理解成只读内存(Read-Only Memory,缩写:ROM),ROM所存数据,一般是装入整机前事先写好的,整机工作过程中只能读出,而不像随机存储器那样能快速地、方便地加以改写。352KB RAM随机存取存储器(Random Access Memory,缩写:RAM),也叫主存,是与CPU直接交换数据的内部存储器。容量小的那个一定是内存RAM,容量大的一定是存储(闪存)ROM,在编写业务代码时,需注意资源使用效率。

二、搭建环境

Linux编译服务器使用的是Ubuntu16.04,需要检查以下环境。

1、Python版本 

  1. sudo apt-get install gcc && sudo apt-get install g++ && sudo apt-get install make && sudo apt-get install zlib* && sudo apt-get install libffi-dev 
  2. wget https://www.python.org/ftp/python/3.8.5/Python-3.8.5.tgz 
  3. tar -xvzf Python-3.8.5.tgz && cd Python-3.8.5 && sudo ./configure --enable-optimizations && sudo make && sudo make install 
  4. python --version 
  5. which python3.8 
  6. cd /usr/bin && sudo rm python && sudo ln -s python3.8-path python && python --version 

2、pip3版本及相关模块安装 

  1. sudo apt-get install python3-setuptools python3-pip -y 
  2.  
  3. sudo pip3 install --upgrade pip 
  4.  
  5. pip3 install setuptools -y 
  6.  
  7. sudo pip3 install kconfiglib -y 
  8.  
  9. sudo pip3 install pycryptodome -y 
  10.  
  11. sudo pip3 install six --upgrade --ignore-installed six -y 
  12.  
  13. sudo pip3 install ecdsa -y 
  14.  
  15. sudo apt-get install scons -y 
  16.  
  17. sudo apt-get install python-numpy -y 
  18.  
  19. sudo apt-get install python-opencv -y 
  20.  
  21. sudo pip install Pillow 
  22.  
  23. sudo apt-get install --reinstall python3-pkg-resources 
  24.  
  25. sudo apt install ffmpeg -y 

3、安装编译工具 

  1. wget https://repo.huaweicloud.com/harmonyos/compiler/gn/1523/linux/gn.1523.tar 
  2.  
  3. tar -xvf gn.1523.tar -C ~/ 
  4.  
  5. wget https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar 
  6.  
  7. tar -xvf ninja.1.9.0.tar -C ~/ 
  8.  
  9. wget https://repo.huaweicloud.com/harmonyos/compiler/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz 
  10.  
  11. tar -xvf gcc_riscv32-linux-7.3.0.tar.gz -C ~/ 
  12.  
  13. vim ~/.bashrc 
  14.  
  15. export PATH=~/gn:$PATH 
  16.  
  17. export PATH=~/ninja:$PATH 
  18.  
  19. export PATH=~/gcc_riscv32/bin:$PATH 
  20.  
  21. source ~/.bashrc 
  22.  
  23. riscv32-unknown-elf-gcc -v 

4、获取Hi3861源码编译检验环境 

  1. wget https://repo.huaweicloud.com/harmonyos/os/1.0/code-1.0.tar.gz 
  2.  
  3. python build.py wifiiot 

编译结束后,如果出现“BUILD SUCCESS”字样,则证明构建成功。 

  

三、编译鸿蒙OS在0.96寸OLED屏上播放视频  

  1. git clone --recursive https://gitee.com/hihopeorg/harmonyos_oled_player.git 
  2.  
  3. vim build/lite/product/wifiiot.json 

//applications/sample/wifi-iot/app替换为//harmonyos_oled_player:app。 

 

进入harmonyos_oled_player目录下,找一个视频,命名为input.mp4,使用工具将帧率转为10fps,目前ssd1306库实测的最大帧率为10fps,使用video2bin将视频转为bin文件。 

  1. ffmpeg -i input.mp4 -r 10 output.mp4 
  2.  
  3. ./video2bin.py output.mp4 out.bin 

 进入harmonyos_oled_player/play目录下,根据热点信息(SSID,PSK)和PC(ubuntu)的IP地址,修改play/net_params.h文件中的相关参数。 

 

在openharmony源码顶层目录下执行编译,构建成功后,会在./out/wifiiot/路径中生成以下文件,编译构建流程结束。使用 HiBurn 烧写 .bin 文件到 Hi3861,记得勾选“Auto burn”,点击 Connect,连接串口设备,按下开发板的 RESET 按键,烧录成功后,需要手动点“Disconnect”断开串口连接,否则会提示“Wait connect success flag (hisilicon) overtime.”,在PC(ubuntu)harmonyos_oled_player目录下运行bin2stream,将会启动一个TCP服务器,默认监听5678端口,并复位设备,板子启动后,首先会连上热点,然后会连接PC上的TCP服务,就可以看到视频的在OLED屏播放了。 

  1. python build.py wifiiot 
  2.  
  3. ls -l out/wifiiot 
  4.  
  5. ./bin2stream.py out.bin 

 [[349551]] 

想了解更多内容,请访问:

51CTO和华为官方合作共建的鸿蒙技术社区

https://harmonyos.51cto.com

 

责任编辑:jianghua 来源: 鸿蒙社区
相关推荐

2020-12-09 09:44:29

Hi3861硬件介绍鸿蒙开发板

2020-11-25 11:55:47

FlappyBird

2020-11-17 12:15:36

MQTT开发

2020-10-29 09:53:06

Hi3861硬件开发板

2020-12-31 12:22:15

鸿蒙Hi3861应用开发

2020-11-03 09:53:04

体验官方固件程序

2020-11-06 10:15:16

HiBurn

2020-11-18 11:56:06

鸿蒙Hi3861

2020-10-30 17:12:05

Hi3861

2020-11-11 10:06:15

鸿蒙

2020-10-14 09:37:03

HiBurn鸿蒙.bin文件

2020-12-08 12:36:41

Hi3861 ADC驱动开发

2020-12-17 10:02:16

鸿蒙Hi3861开发板

2020-11-06 11:32:11

NV操作

2020-11-27 11:52:40

OneNet

2020-11-26 12:02:07

OneNet平台

2020-12-15 11:57:49

Hi3861 HarmonyOS开发板

2020-12-11 12:45:04

鸿蒙Hi3861游戏

2020-12-02 11:55:40

OLED

2021-12-20 21:01:52

鸿蒙HarmonyOS应用
点赞
收藏

51CTO技术栈公众号