北方 发表于 2023-1-6 12:17

【微雪RP2040双核开发板】基于MicroPython自定义羽毛球拍击计数器

<div class='showpostmsg'><p><span style="font-size:16px;">1、使用现有的硬件和开发环境可以</span>自定义羽毛球拍击计数器为例<span style="font-size:16px;">简便开发自定义程序。这个程序的逻辑就是就是简单计算加速度传感器的动态变化,超过限值后就说明需要进入拍击计数的过程。</span></p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">2、程序逻辑是在现有范例代码的框架下搭建的,显示驱动和传感器的读取都没有变化,主逻辑如下面代码</span></p>

<pre>
<code class="language-python">if __name__=='__main__':

    LCD = LCD_1inch28()
    LCD.set_bl_pwm(65535)
    qmi8658=QMI8658()
    count = 0
    olddate =0
    newdate =0
    count = gesture_update(newdate,olddate,count)
   
    while(True):
      #read QMI8658      
      xyz=qmi8658.Read_XYZ()
      newdate = xyz
      gesture = gesture_update(newdate,olddate,count)   
      olddate = newdate
      #gesture = gesture_update(newdate,olddate,count)
      LCD_update(LCD , xyz, count)
      # count = (count + 1) % 1000
      time.sleep(0.1)   
</code></pre>

<p>首先设定一个全局变量Gate,这个需要在实际测试中选择合适的,</p>

<p>&nbsp; 然后,初始化lcd和传感器器,</p>

<pre>
<code>    LCD = LCD_1inch28()
    LCD.set_bl_pwm(65535)
    qmi8658=QMI8658()</code></pre>

<p>进入循环中,就是依次更新传感器的数据,并用监测代码对比在z方向的数值,对比超过限制就给计数器count递增,</p>

<pre>
<code>def gesture_update(newdate,olddate,count):
      if ( ( newdate -olddate)&gt; = GATE ):
            hit = 1
            count = count + 1                  
      hit = 0
      return count</code></pre>

<p>其中LCD显示部分也单独归入一个函数中,这样可以使得主程序循环更简洁。</p>

<p>&nbsp;</p>

<p><span style="font-size:16px;">3、运行效果</span></p>

<p>可以用自定义数据更改背景的颜色,修改前面的说明数据,显示如下。</p>

<p></p>

<p>这个是专属的EEworld评测范例,实际运行的过程中,sleep的数据选择有些更新慢,0.1秒显然有些大了,所以计数补正常。</p>

<p>不过,作为演示的范例,这个流程执行起来还是非常便捷的。</p>
</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>

Jacktang 发表于 2023-1-8 09:08

<p>自定义数据更改背景的颜色这个还行</p>
页: [1]
查看完整版本: 【微雪RP2040双核开发板】基于MicroPython自定义羽毛球拍击计数器