页次: 1
memory 说:现在立创还能买到,代理商前几天通知说是V831快停产了,他们都缺货很久了
不错啊 那就非常奈斯了
可是现在831买不到
我也来玩玩 画一个开源!
附上ESP32S3开发板原理图:ESP32S3_V2.1.pdf
把官方的ESP-BOX代码移植了下,因为我的板子引脚不够,就直接用的数字麦克风和I2S功放,所以没有codec的情况下只能共用I2S的CLK引脚了,
ESP32可用IO除去PSRAM占用的35 36 37 还剩31个可用,摄像头占了13个,其中摄像头的CLK引脚用外部有源晶振提供
以下为我的引脚分布:
直接上图:
img刷图就行了
开源地址:https://github.com/Kevincoooool/ESP_MASTER
B站视频介绍:https://www.bilibili.com/video/BV1SM4y1V7Yb
本项目是以ESP32为核心,尽可能榨干其MCU的能力,打造一个多功能集合的综合性极强的小模块,功能包含:
1、语音识别。将数字麦克风通过I2S连接到ESP32,经过esp-skainet离线语音识别,自定义语音命令词最大个数为 100
2、物体识别、文字识别(车牌识别)。基于百度智能云,将摄像头获取的RGB图像转为JPG,经过base64和urlcode编码上传到百度云后获取识别结果来显示。
3、颜色识别。可由摄像头获取的图像将RGB转为HSL判断每一个像素点,进行颜色块的识别,获取颜色块坐标。
4、家电控制。可由语音设置空调类型,也可以在设置界面设置空调种类,当前支持格力、美的、海尔空调,空调码库由IREXT提供,码库存放在flash的spiffs分区中。
5、LVGL。基于LVGL 7.6.0,10余个界面切换。
6、ADC按键。在ESP32引脚极其不够的情况下,使用一个IO口,经过电阻分压可读取三个按键的状态。
7、FFT频谱,将数字麦克风通过I2S连接到ESP32,经过软件fft获得频谱通过lvgl img显示。
8、小游戏。移植2048和贪吃蛇游戏。
9、每日鸡汤。进入每日鸡汤界面后,HTTP随机获取一句话显示。
SVREF电压多少
楼主的通信方式是winusb还是hid呢
这个支持蓝牙键盘吗,模块的还是Usb的,我比较小白想在荔枝派上能用蓝牙键盘不知道怎么做的
这个我也没搞通 晕哥搞过
你好,我用了 https://github.com/Kevincoooool/KS_V3S 里面的 u-boot-sunxi-with-spl.bin, zImage, sun8i-v3s-licheepi-zero-dock.dtb,并将 ksdiy.config 放在 buildroot-2017.08 里改名为 .config 后编译了文件系统。将这些东西烧入 tf 卡后,启动,执行 fswebcam 报错如下:
--- Opening /dev/video0... Trying source module v4l2... /dev/video0 opened. No input was specified, using the first. Error starting stream. VIDIOC_STREAMON: Invalid argument Unable to use mmap. Using read instead. Unable to use read.
请问这是该怎么解决呢?我尝试了 fswebcam 的如下几种参数,依旧如此:
fswebcam -d /dev/video0 --no-banner -r 320x240 capture.jpg fswebcam -S 1 -d /dev/video0 -p UYVY -r 1600x1200 test.jpg fswebcam --no-banner -r 640x480 image.jpg
初始化摄像头过了吗
橙子不洒脱 说:我跟你一样耶!我猜是因为没有连接键盘,应该是连接了键盘按回车之后就可以输入命令了?
yelong98 说:楼主,uboot和kernel怎么配置,实现的直接输出到屏幕,并且也是在屏幕登录操作?我现在按照荔枝派zero的教程只能串口登录,uboot在启动时候lcd显示一下, 然后就没显示了。
不是这样的,我试过接了键盘也不行,应该是Uboot和kernel编译的时候需要设置,但是设置哪里我不知道
https://blog.csdn.net/xiangkezhi167810/article/details/111636349?spm=1001.2014.3001.5501
我记得GPL是不排斥商业用途的,只要保证修改后的继续开源就行
他这是啥都不改 直接git下来 用原作者的图和所有资料直接倒卖 没有任何自己的劳动
我开源的V3S板 被这个人倒卖 https://item.taobao.com/item.htm?spm=a1z10.1-c.w4004-23475677529.32.758375f96Aenbg&id=638672311949
另一个大佬开源的V3S板 也被他倒卖 https://item.taobao.com/item.htm?spm=a230r.1.14.23.2c2a21a3zPsol1&id=637906605633&ns=1&abbucket=13#detail
建议大家以后开源只放原理图PDF文件 不要放PCB和SCH文件
以下由 @哇酷小管家 2021-03-12 添加
---------------------------------------
淘宝店主在9#楼已道歉,并已下架
楼主好,从github上下载的原理图打开什么都没有,PCB是正常的
我的AD版本是20 可以试试
请问楼主LCD的购买链接?
中景园电子 1.3寸插接IPS 240*240
楼主,你用的摄像头是差分的MIPI接口?还是占用了LCD的部分脚,复用成DVP接口?
DVP复用 所以这块板不能用大屏LCD 只有ST7789
没有正确弹出TF卡,要eject
农夫三拳 说:varzhou 说:uboot和kernel直接上源码吧,不大,buildroot就上配置就好了,哈哈哈,白嫖党
辣个不是有了么:
br2配置文件: https://github.com/Kevincoooool/KS_V3S/blob/main/Buildroot/ksdiy.config
linux zImage & 设备树: https://github.com/Kevincoooool/KS_V3S/tree/main/Kernel
u-boot bin: https://github.com/Kevincoooool/KS_V3S/tree/main/Uboot
NES模拟器与游戏文件: https://github.com/Kevincoooool/KS_V3S/tree/main/Nes
硬件: https://github.com/Kevincoooool/KS_V3S/tree/main/Hardware
楼主上的这是只是DTS和buildroot的配置,有些还是不太清晰的。
所以我才建议上uboot和kernel的源码,以及buildroot的版本,qt版本等描述:cool
uboot喝kernel都是改deconfig,其他没有改动,buildroot用的晕哥的2017.8.1 qt5
好喜欢,楼主可以放出PCB或者原理图吗
PCB和原理图都在Github
从坛子里的各种各样的帖子入门了linux,本KS_V3S的PCB的原理图来自坛里,现在也回归坛里,用了主线5.10内核适配了OV7725和OV2640摄像头,uboot和buildroot也用的晕哥的。
设备树和相关文件也在git仓库里
OV2640需要把0X3C寄存器的值调整为0XEF,OV7725需要把时钟信号改为xclk
Github地址:https://github.com/Kevincoooool/KS_V3S
B站视频介绍:https://www.bilibili.com/video/BV17z4y1S7D6
也移植了NES
把摄像头图像通过v4l采集显示到fb上
以下由 @哇酷小管家 2021-01-19 添加:
---------------------------------------
建议github.com直接克隆, 也可以在本站下载 ->
PCB原理图: KS_V3S_Hardware_20210119.7z
github仓库打包: KS_V3S_20210119.7z
楼主的器件在哪配的,我打了一块板也准备焊一下
很棒,感谢楼主,这个板卡经过测试了吗?DDR速度能到多少
看了下DDR都有严格等长,应该没问题的
给你顶顶,俺也参考你的画一块,外设部分和稚辉的一样吗都是usb wifi
和最新的5.10 dma结构体不对应会报错
drivers/staging/media/sunxi/cedar/ion/ion.c:1026:2: error: unknown field ‘map’ specified in initializer
.map = ion_dma_buf_kmap,
^
drivers/staging/media/sunxi/cedar/ion/ion.c:1026:9: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.map = ion_dma_buf_kmap,
^
drivers/staging/media/sunxi/cedar/ion/ion.c:1026:9: note: (near initialization for ‘dma_buf_ops.mmap’)
drivers/staging/media/sunxi/cedar/ion/ion.c:1027:2: error: unknown field ‘unmap’ specified in initializer
.unmap = ion_dma_buf_kunmap,
^
drivers/staging/media/sunxi/cedar/ion/ion.c:1027:11: error: initialization from incompatible pointer type [-Werror=incompatible-pointer-types]
.unmap = ion_dma_buf_kunmap,
不能,引脚有冲突
等一手楼主好心情开源
这个固件拍出来的照片好黑啊。。。和我自己编译的一样
记录一下第一次尝试用linux点亮spi屏幕的过程,一共尝试了0.96 ST7735S(80160) \1.8 st7735R(128160) \1.14 st7789v(135240) \1.3 st7789vw (240240)这几个屏幕,有个奇怪的现象就是必须要接SPI0的CS引脚到显示屏上才能正常显示。
设备树(sun8i-h3-nanopi-neo-air.dts)中禁用其他SPI节点和使能ST7789VW节点:
在最后加上以下代码,st7735r和st7735s也调试过可用,7735超过48M显示的颜色就不正常了,7789vw可以96M正常显示,原始的IO口是
DC PA1 RESET PG11 BL PA0
我改成了
DC PA1 RESET PA2 BL PA0
同时禁用hdmi,防止开机从hdmi显示
&spi0{
spidev0:spi@0{
status="disable";
};
st7789vw: st7789vw@0{
compatible = "sitronix,st7789vw";
reg = <0>;
status = "okay";
spi-max-frequency = <96000000>;
buswidth = <8>;
rotate = <0>;
fps = <60>;
rgb;
dc-gpios = <&pio 0 1 GPIO_ACTIVE_HIGH>; /* PA1 */
reset-gpios = <&pio 0 2 GPIO_ACTIVE_HIGH>; /* PA2*/
led-gpios = <&pio 0 0 GPIO_ACTIVE_LOW>; /* PA0 */
debug = <0x00>;
};
// st7735r: st7735r@0{
// compatible = "sitronix,st7735r";
// reg = <0>;
// status = "okay";
// spi-max-frequency = <36000000>;
// spi-cpol;
// spi-cpha;
// rotate = <90>;
// fps = <60>;
// buswidth = <8>;
// dc-gpios = <&pio 0 1 GPIO_ACTIVE_HIGH>; /* PA1 */
// reset-gpios = <&pio 0 2 GPIO_ACTIVE_HIGH>; /* PA2*/
// led-gpios = <&pio 0 0 GPIO_ACTIVE_LOW>; /* PA0 */
// debug = <0x0>;
// };
// st7735s: st7735s@0{
// compatible = "sitronix,st7735s";
// reg = <0>;
// status = "okay";
// spi-max-frequency = <36000000>;
// spi-cpol;
// spi-cpha;
// rotate = <0>;
// fps = <60>;
// buswidth = <8>;
// dc-gpios = <&pio 0 1 GPIO_ACTIVE_HIGH>; /* PA1 */
// reset-gpios = <&pio 0 2 GPIO_ACTIVE_HIGH>; /* PA2 */
// led-gpios = <&pio 0 0 GPIO_ACTIVE_LOW>; /* PA0 */
// debug = <0x0>;
// };
};
&hdmi {
status = "disable";
};
修改初始化函数
原始的初始化没有复位显示屏,在初始化中添加
par->fbtftops.reset(par);
write_reg(par, PVGAMCTRL, 0xD0, 0x04, 0x0D, 0x11, 0x13, 0x2B, 0x3F, 0x54, 0x4C, 0x18, 0x0D, 0x0B, 0x1F, 0x23);
write_reg(par, NVGAMCTRL, 0xD0, 0x04, 0x0C, 0x11, 0x13, 0x2C, 0x3F, 0x44, 0x51, 0x2F, 0x1F, 0x1F, 0x20, 0x23);
static int init_display(struct fbtft_par *par)
{
par->fbtftops.reset(par);
// /* turn off sleep mode */
write_reg(par, MIPI_DCS_EXIT_SLEEP_MODE);
mdelay(120);
write_reg(par, MIPI_DCS_SET_ADDRESS_MODE, 0x0);
write_reg(par, MIPI_DCS_SET_PIXEL_FORMAT, MIPI_DCS_PIXEL_FMT_16BIT);
write_reg(par, PORCTRL, 0x0C, 0x0C, 0x00, 0x33, 0x33);
write_reg(par, GCTRL, 0x35);
write_reg(par, VCOMS, 0x19);
write_reg(par, LCMCTRL, 0x2C);
write_reg(par, VDVVRHEN, 0x01);
write_reg(par, VRHS, 0x12);
write_reg(par, VDVS, 0x20);
write_reg(par, FRCTRL2, 0x0F);
write_reg(par, PWCTRL1, 0xA4, 0xA1);
write_reg(par, PVGAMCTRL, 0xD0, 0x04, 0x0D, 0x11, 0x13, 0x2B, 0x3F, 0x54, 0x4C, 0x18, 0x0D, 0x0B, 0x1F, 0x23);
write_reg(par, NVGAMCTRL, 0xD0, 0x04, 0x0C, 0x11, 0x13, 0x2C, 0x3F, 0x44, 0x51, 0x2F, 0x1F, 0x1F, 0x20, 0x23);
write_reg(par, MIPI_DCS_ENTER_INVERT_MODE);
write_reg(par, MIPI_DCS_SET_DISPLAY_ON);
mdelay(120);
return 0;
}
使用1.14(135*240)ips屏幕的注意修改函数set_addr_win
原始的函数没有纠正偏移量,增加以下代码(只有135*240的需要增加,其他的屏不需要):
switch(par->info->var.rotate)
{
case 0: xs+=53;xe+=53;ys+=40;ye+=40;
break;
case 90: xs+=40;xe+=40;ys+=53;ye+=53;
break;
case 180: xs+=53;xe+=53;ys+=40;ye+=40;
break;
case 270: xs+=40;xe+=40;ys+=53;ye+=53;
break;
default :
break;
}
把驱动编译进内核
最原始的内核没有ST7789VW,只有ST7789V,所以把st7789v.c复制粘贴改名为st7789vw.c,相应驱动做一下修改,并且修改fbtft目录下的Kconfig和Makefile,这里我增加了ST7789VW和ST7735S的驱动
config FB_TFT_ST7789VW
tristate "FB driver for the ST7789VW LCD Controller"
depends on FB_TFT
help
This enables generic framebuffer support for the Sitronix ST7789VW
display controller. The controller is intended for small color
displays with a resolution of up to 240x240 pixels.
Say Y if you have such a display that utilizes this controller.
再到menuconfig使能此驱动,
make menuconfig ARCH=arm CROSS_COMPILE=arm-linux- -j80
Device Drivers --->
[ * ] Staging drivers --->
< * > Support for small TFT LCD display modules --->
< * > FB driver for the ST7789VW LCD Controller
编译内核 设备树 下载重启看效果
make zImage dtbs ARCH=arm CROSS_COMPILE=arm-linux- -j80
网络更新内核
scp arch/arm/boot/zImage root@192.168.137.83:/boot
网络更新设备树
scp arch/arm/boot/dts/sun8i-h3-nanopi-neo-air.dtb root@192.168.137.83:/boot
实际效果
1.3寸 240*240 IPS效果:
播放视频
mplayer badapple_320_240_15fps.avi -vo fbdev
运行QT
apt-get update && apt-get install git
git clone https://github.com/friendlyarm/matrix.git
cd matrix/demo/nanopi-status
./build.sh
./run.sh /dev/fb_st7789vw
老哥能不能把正常显示的代码发一下 我点1.14的没问题 1.3的不显示
给力,我用全志H3也要像你这样改才能正常显示
Kevincoooool 说:楼主可以把工程放到Github上面吗
我搞一下
嗯嗯,这个是用BTB连接底板的吗
楼主可以把工程放到Github上面吗
页次: 1