dcexpert 发表于 2019-5-23 10:06

【麦昆试用】HCSR04超声波传感器的python驱动

<div class='showpostmsg'>HCSR04超声波传感器在智能小车、扫地机器人、DIY上有广泛应用。在makecode中已经有它的扩展,可以直接使用,但是python的驱动比较少。以前推荐过一个microbit的HCSR04超声波传感器的python驱动,但是用在麦昆时发现程序不能运行,会在测量时卡死。

经过仔细分析发现,问题出在spi的设置上,通过修改后,hcsr04就可以正常运行了。顺便又对代码进行了优化,让代码可以更加有效的运行:


[*]调整了缓冲区大小,留出更多空间给其他功能;
[*]优化了spi初始化功能,不需要每次测量都重新初始化
[*]优化了缓冲区,不需要每次测量都重新设置缓冲区
[*]优化了SCK引脚定义,避免了设置一个多余的SCK引脚(这一点对麦昆尤其重要)


**** Hidden Message *****

此内容由EEWORLD论坛网友dcexpert原创,如需转载或用于商业用途需征得作者同意并注明出处


</div><script>                                        var loginstr = '<div class="locked">查看本帖全部内容,请<a href="javascript:;"   style="color:#e60000" class="loginf">登录</a>或者<a href="https://bbs.eeworld.com.cn/member.php?mod=register_eeworld.php&action=wechat" style="color:#e60000" target="_blank">注册</a></div>';
                                       
                                        if(parseInt(discuz_uid)==0){
                                                                                                (function($){
                                                        var postHeight = getTextHeight(400);
                                                        $(".showpostmsg").html($(".showpostmsg").html());
                                                        $(".showpostmsg").after(loginstr);
                                                        $(".showpostmsg").css({height:postHeight,overflow:"hidden"});
                                                })(jQuery);
                                        }                </script><script type="text/javascript">(function(d,c){var a=d.createElement("script"),m=d.getElementsByTagName("script"),eewurl="//counter.eeworld.com.cn/pv/count/";a.src=eewurl+c;m.parentNode.insertBefore(a,m)})(document,523)</script>

hkzhouzhen 发表于 2019-6-18 23:53

<p>HCSR04超声波传感器的python驱动&nbsp;<img height="50" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/onion/Onion--1.gif" width="50" /></p>

hhqs 发表于 2019-6-23 12:36

<p>超声波测距Python驱动</p>

<p>&nbsp;</p>

Dolphin_zzx 发表于 2019-7-25 12:25

<p>HCSR04超声波传感器的python驱动<img height="50" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/onion/Onion--100.gif" width="50" /></p>

amec 发表于 2019-8-4 17:24

<p>想要学习【麦昆试用】HCSR04超声波传感器的python驱动</p>

Haken 发表于 2019-8-16 14:15

<p>感謝分享</p>

<p>&nbsp;</p>

<p>這就看看要怎麼使用超音波</p>

wangshujun72 发表于 2019-8-18 23:09

<p>之前那个用spi回读距离太有创意了,效果得多差</p>

<p>你现在的这个写法,不能对抗中断事件,比如系统中串口和无线模块运行中会导致测量出现较大的误差</p>

<p>最理想的hc04驱动是用io的中断回调来实现</p>

dcexpert 发表于 2019-8-19 09:11

wangshujun72 发表于 2019-8-18 23:09
之前那个用spi回读距离太有创意了,效果得多差

你现在的这个写法,不能对抗中断事件,比如系统中串口和 ...

<p>这是基础程序,如果要考虑更多应用环境,还需要进一步优化,比如用C写底层函数并集成到固件。</p>

wangshujun72 发表于 2019-8-19 10:01

<p>不需要呀,io中断回调直接是支持的,我不知道是不是所有的micropython是否支持,反正我用的lobos的移植支持的很好的,回到后的参数里面就有事件发生的时间,定义为高优先级,us精度的保障还是有的</p>

dcexpert 发表于 2019-8-19 10:53

wangshujun72 发表于 2019-8-19 10:01
不需要呀,io中断回调直接是支持的,我不知道是不是所有的micropython是否支持,反正我用的lobos的移植支持 ...

<p>microbit版本受硬件限制,目前不支持回调函数,其它的micropython支持回调函数。</p>

dzgcsjxby 发表于 2019-9-16 11:09

<p>xuexi</p>

苍凉双眼明月星辰 发表于 2019-10-10 10:48

<p>HCSR04超声波传感器的python驱动</p>

susanzhengzheng 发表于 2019-11-11 23:39

<p>感谢分享!!!</p>

wearred 发表于 2019-12-20 18:55

<p>学习学习</p>

<p>&nbsp;</p>

yu木风 发表于 2020-4-3 16:55

<p>很耐斯</p>

slofmcj 发表于 2023-11-6 19:43

uiyiuisddsfsf

vinchard 发表于 2024-2-4 21:58

<p>看看。。。。。。。。。。。。。</p><br/>

lonelystar 发表于 2024-5-11 17:16

<p>支持发贴看看内容</p>

<p>&nbsp;</p>

wangshujun72 发表于 2024-9-23 16:32

dcexpert 发表于 2019-8-19 10:53
microbit版本受硬件限制,目前不支持回调函数,其它的micropython支持回调函数。

<p>最近在micropython上测量一个频率,发现没法用中断和回调,用这个spi方式最终效果真不错,之前没认识到这在micropython上处理比较高速的信号采样是一个不错的方法</p>
页: [1]
查看完整版本: 【麦昆试用】HCSR04超声波传感器的python驱动