【平头哥RVB2601创意应用开发】超声波压感sensor调试和LED/OLED显示
<p>1. 时间过得真快啊,转眼两周了,今年的五一很特别,继续封控,哈哈,希望早日解封吧。</p><p> </p>
<p>2. 继上次I2C可以正常读取超声波压感sensor数据后,我又很顺利的调试校准了sensor,并通过LED和OLED做了显示。</p>
<p> </p>
<p>3. Sensor校准后通过串口抓到的数据如下:</p>
<p>1)初始化</p>
<pre>
<code>
Welcome boot2.0!
build: Mar5 2021 15:34:41
load img & jump to
load&jump 0x18017000,0x18017000,152628
xip...
j 0x18017044
[ 0.020]<I>INIT Build:Apr7 2022,17:03:34
===main, 138
===main, 139
usp+zforce driver version:1.0.0
dev0(0X27) toggle via fd reg
bd read dev0(0X27) whoami (rc:0 ,whoami:0X1 ,is_otp_part:1)
fd read dev0(0X27) whoami successfully (whoami:0X62)
read dev0(0X27) si rev failed! (si_rev:0XFF)
set dev0(0X27) high power mode
dev0(0X27) read tx freq:0X8
dev0(0X27) write misc regs ok!
dev0(0X27) write zforce regs ok!
dev0(0X27) write zforce gain(0x1844=0X55, rc:0)
set dev0(0X27) i2c clk src: 4MHz
dev0(0X27) fw dl start...(fw size:3397 bytes)
dev0(0X27) fw dl completed
set dev0(0X27) high power mode
dev0(0X27) cali stage 0
dev0(0X27) zforce_offset 1172
dev0(0X27) zforce_offset 1102
dev0(0X27) zforce_offset 1074
dev0(0X27) zforce_offset 1078
dev0(0X27) zforce_offset 1075
dev0(0X27) offset_middle 14 ,offset_up 15 ,offset_down 13
dev0(0X27) cali stage 1
dev0(0X27) zforce_offset 1072
dev0(0X27) zforce_offset 1072
dev0(0X27) zforce_offset 1068
dev0(0X27) zforce_offset 1064
dev0(0X27) zforce_offset 1068
dev0(0X27) offset_middle 14 ,offset_up 15 ,offset_down 13
dev0(0X27) set 0x1880=0x08
dev0(0X27) set 0x1881=0x06
dev0(0X27) set 0x1882=0xa0
dev0(0X27) set 0x1883=0x00
dev0(0X27) set 0x1884=0x03
dev0(0X27) set 0x1885=0xff
dev0(0X27) set 0x1886=0x00
dev0(0X27) set 0x1887=0x00
dev0(0X27) set 0x1888=0x05
dev0(0X27) set 0x1889=0x01
dev0(0X27) set 0x188a=0x00
dev0(0X27) set 0x188b=0xac
dev0(0X27) set 0x188c=0x07
dev0(0X27) set 0x188d=0xa8
dev0(0X27) set 0x188e=0x19
dev0(0X27) set 0x188f=0x00
dev0(0X27) set 0x1890=0x33
dev0(0X27) set 0x1891=0x03
dev0(0X27) set 0x1892=0x56
dev0(0X27) set 0x1893=0x05
dev0(0X27) set usp max contrast 0x1154=0xff
dev0(0X27) set usp noise rms 0x1157=0x0d
dev0(0X27) set zforce gain 0x1844=0x55
dev0(0X27) set zforce contrast 0x115c=0x19
dev0(0X27) set zforce noise 0x115e=0x06
dev0(0X27) set sensitivity level to 3
dev0(0X27) set algo mode(2)
dev0(0X27) init done(rc:0)!
</code></pre>
<p>2)正常polling数据:</p>
<pre>
<code>
dev0(0X27) ,adc 924 ,1072, key 1
dev0(0X27) ,adc 933 ,1072, key 1
dev0(0X27) ,adc 924 ,1080, key 1
dev0(0X27) ,adc 939 ,1080, key 1
dev0(0X27) ,adc 928 ,1080, key 1
dev0(0X27) ,adc 933 ,1080, key 1
dev0(0X27) ,adc 935 ,1080, key 1
dev0(0X27) ,adc 906 ,1072, key 1
dev0(0X27) ,adc 936 ,1080, key 1
dev0(0X27) ,adc 926 ,1080, key 1
dev0(0X27) ,adc 928 ,1080, key 1
dev0(0X27) ,adc 938 ,1080, key 1
dev0(0X27) ,adc 901 ,1096, key 1
dev0(0X27) ,adc 872 ,1144, key 1
dev0(0X27) ,adc 868 ,1216, key 1
dev0(0X27) ,adc 852 ,1304, key 1
dev0(0X27) ,adc 848 ,1376, key 1
dev0(0X27) ,adc 831 ,1432, key 1
dev0(0X27) ,adc 826 ,1472, key 1
dev0(0X27) ,adc 818 ,1496, key 1
dev0(0X27) ,adc 813 ,1528, key 1
dev0(0X27) ,adc 800 ,1568, key 1
dev0(0X27) ,adc 802 ,1624, key 1
dev0(0X27) ,adc 810 ,1704, key 1
dev0(0X27) ,adc 763 ,1784, key 1
dev0(0X27) ,adc 777 ,1864, key 1
dev0(0X27) ,adc 744 ,1968, key 1
dev0(0X27) ,adc 751 ,2000, key 1
dev0(0X27) ,adc 752 ,2008, key 1
dev0(0X27) ,adc 727 ,2024, key 1
dev0(0X27) ,adc 721 ,2032, key 1
dev0(0X27) ,adc 723 ,2032, key 1
dev0(0X27) ,adc 719 ,2032, key 1
dev0(0X27) ,adc 703 ,2040, key 1
dev0(0X27) ,adc 709 ,2040, key 1
dev0(0X27) ,adc 700 ,2040, key 1
dev0(0X27) ,adc 707 ,2040, key 1
dev0(0X27) ,adc 688 ,2040, key 1
dev0(0X27) ,adc 683 ,2040, key 1
dev0(0X27) ,adc 688 ,2040, key 1
dev0(0X27) ,adc 680 ,2040, key 1
dev0(0X27) ,adc 679 ,2040, key 1
dev0(0X27) ,adc 674 ,2040, key 1
dev0(0X27) ,adc 672 ,2040, key 1
dev0(0X27) ,adc 670 ,2040, key 1
dev0(0X27) ,adc 672 ,2040, key 1
dev0(0X27) ,adc 654 ,2040, key 1
dev0(0X27) ,adc 674 ,2040, key 1
dev0(0X27) ,adc 662 ,2040, key 1
dev0(0X27) ,adc 676 ,2040, key 1
dev0(0X27) ,adc 664 ,2040, key 1
dev0(0X27) ,adc 656 ,2032, key 1
dev0(0X27) ,adc 658 ,2024, key 1
dev0(0X27) ,adc 657 ,2000, key 1
dev0(0X27) ,adc 655 ,1976, key 2
dev0(0X27) ,adc 667 ,1944, key 2
dev0(0X27) ,adc 679 ,1872, key 2
dev0(0X27) ,adc 671 ,1832, key 2
dev0(0X27) ,adc 657 ,1800, key 2
</code></pre>
<p>从log可以看到按压时key会从1变成2,在代码里加入如下片段,</p>
<pre>
<code> while (1) {
lv_task_handler();
for (i = 0; i < BUTTON_NUM; i++) {
ccl_tp_dev_t *dev = &ccl_tp_dev;
ccl_tp_if_get_adc(dev);
ccl_tp_if_get_btn_status(dev);
debug_info("dev%d(%#X) ,adc %d ,%d, key %d[%s]",
dev->dev_idx,
dev->i2c_addr,
dev->info.usp_adc,
dev->info.zforce_adc,
dev->info.btn_status,
(dev->info.btn_status == 2) ? "pressed" : "released");
if(dev->info.btn_status == 2){
csi_gpio_pin_write(&r, GPIO_PIN_HIGH);
csi_gpio_pin_write(&g, GPIO_PIN_HIGH);
csi_gpio_pin_write(&b, GPIO_PIN_LOW);
lable_press();
} else {
csi_gpio_pin_write(&r, GPIO_PIN_HIGH);
csi_gpio_pin_write(&g, GPIO_PIN_HIGH);
csi_gpio_pin_write(&b, GPIO_PIN_HIGH);
lable_release();
}
}
debug_info("\r\n");
aos_msleep(10);
lv_tick_inc(1);
}
...</code></pre>
<p>即https://bbs.eeworld.com.cn/thread-1198665-1-1.html里关于LED的控制,可以看到如下视频的效果:</p>
<p><iframe allowfullscreen="true" frameborder="0" height="510" src="https://training.eeworld.com.cn/shareOpenCourseAPI?isauto=true&lessonid=33220" style="background:#eee;margin-bottom:10px;" width="700"></iframe></p>
<p>4. 为了进一步加强交互体验,我还加入了OLED的显示,代码如下:</p>
<pre>
<code>lv_obj_t *p;
static void lable_test(void)
{
p = lv_label_create(lv_scr_act(), NULL);
lv_label_set_long_mode(p, LV_LABEL_LONG_BREAK);
lv_label_set_align(p, LV_LABEL_ALIGN_CENTER);
lv_obj_set_pos(p, 0, 4);
lv_obj_set_size(p, 128, 60);
lv_label_set_text(p, "THEAD\nMARQUEE\nDEMO");
}
static void lable_press(void)
{
lv_label_set_text(p, "");
lv_label_set_text(p, "Press");
}
static void lable_release(void)
{
lv_label_set_text(p, "");
lv_label_set_text(p, "Release");
}</code></pre>
<p>最终的视频效果如下:</p>
<p><iframe allowfullscreen="true" frameborder="0" height="510" src="https://training.eeworld.com.cn/shareOpenCourseAPI?isauto=true&lessonid=33221" style="background:#eee;margin-bottom:10px;" width="700"></iframe><br />
5. 以上就是我计划完成的作品:<strong>基于RISC-V处理器的超声波压感按键</strong>,最后再次感谢EEWORLD和平头哥提供的这次机会。</p>
<p>最后的那个最终的视频效果好像确实有点状况</p>
Jacktang 发表于 2022-5-1 22:46
最后的那个最终的视频效果好像确实有点状况
<p>您是指?这个效果正常的</p>
页:
[1]