北方 发表于 2021-7-2 16:57

【汽车发动机实时振动跟踪器】 作品提交

<p>● 设计名称:汽车发动机实时振动跟踪器</p>

<p>【概述】听汽车发动机的声音可以大致了解汽车的工况,采用振动传感器实时监测,能够带来更准确和清晰的判断,可以用在工况判断,联合其他信息如温度湿度和运行时长累计,可以获得辅助检修,状态监测等更有价值的服务。本设计是一个基准原型设计,可以不断完善提升,达到比较理想的效果。</p>

<p>&nbsp;</p>

<p>●</p>

<p>一、作品简介(作品照片、功能介绍等)</p>

<p>&nbsp; &nbsp; 汽车发动机实时振动跟踪器,以RSL10-002GEVB为核心开发板,振动传感器作为传感器,通过ADC采集数据,然后通过低功耗蓝牙BLE传输到手机,远程获得更有效的信息。通过云端信息分析,得出有效的智能分析结果。</p>

<p>●</p>

<p>二、系统软硬件实现框图&nbsp;</p>

<p>2.1 系统软件框图</p>

<p></p>

<p>2.2 系统硬件和硬件框图</p>

<p></p>

<p>●</p>

<p>三、各部分实现的功能说明及讲解</p>

<p>3.1 数据采集功能</p>

<p>首先修改数据结构体,</p>

<pre>
<code class="language-cpp">struct app_env_tag
{
    /* Battery service */
    uint8_t batt_lvl;
    uint32_t sum_batt_lvl;
    uint16_t num_batt_read;
    uint8_t send_batt_ntf;
    /* Customized service */
    uint8_t vib_lvl;
    uint32_t sum_vib_lvl;
    uint16_t num_vib_read;
    uint8_t send_vib_ntf;
};</code></pre>

<p>然后设定对于adc的设置,采集vibration 参数,</p>

<pre>
<code class="language-cpp">Sys_ADC_InputSelectConfig(2,(ADC_NEG_INPUT_GND |ADC_POS_INPUT_VBAT_DIV2));</code></pre>

<p>修改采集频率为50Hz</p>

<pre>
<code class="language-cpp">ke_timer_set(APP_TEST_TIMER, TASK_APP, TIMER_20MS_SETTING); //Make 50Hz ADC sampling

viblel = ((ADC-&gt;DATA_TRIM_CH - VBAT_1p1V_MEASURED) * 100 / (VBAT_1p4V_MEASURED - VBAT_1p1V_MEASURED));
viblel = ((viblel &gt;= 100) ? 100 : viblel);

app_env.sum_vib_lvl += viblel;</code></pre>

<p>&nbsp;</p>

<p>3.2 蓝牙传输</p>

<p>&nbsp;</p>

<pre>
<code class="language-cpp">      if (ble_env.state == APPM_CONNECTED)
      {
            if (app_env.send_batt_ntf &amp;&amp; bass_support_env.enable)
            {
                app_env.send_batt_ntf = 0;
                Batt_LevelUpdateSend(0, app_env.batt_lvl, 0);
            }
      }</code></pre>

<p>3.3 手机接收和数据分析</p>

<p>启动手机android Studio,编写连接和处理代码,通过Gatt.readCharactistics()定时读取buff的内容。</p>

<pre>
<code class="language-java">                  @Override
                  public void onServicesDiscovered(BluetoothGatt gatt, int status) {
                        super.onServicesDiscovered(gatt, status);
                        List&lt;BluetoothGattService&gt; services = gatt.getServices();
                        BluetoothGattCharacteristic characteristic = null;
                        for (BluetoothGattService service : services) {
                            //sendmsg("UUID IS " + service.getUuid().toString());
                            for (BluetoothGattCharacteristic serviceCharacteristic : service.getCharacteristics()) {
                              characteristic = serviceCharacteristic;
                              boolean successfullyRead = gatt.readCharacteristic(characteristic);
                            }
                        }
                  }</code></pre>

<p>代码编写的layout如下,</p>

<p></p>

<p>&nbsp;</p>

<p>四、项目源码</p>

<p>4.1 主要代码解析</p>

<p>&nbsp;</p>

<p>4.2 代码压缩包,程序代码如下。</p>

<p></p>

<p>&nbsp;</p>

<p>五、演示效果和使用说明</p>

<p>1. Android studio手机APP的工程下载和调试后台</p>

<p></p>

<p>2、这个手机APP接收RSL10的蓝牙信号开发板的工作状态,见这个视频</p>

<p><iframe allowfullscreen="true" frameborder="0" height="510" src="https://training.eeworld.com.cn/shareOpenCourseAPI?isauto=true&amp;lessonid=30807" style="background:#eee;margin-bottom:10px;" width="750"></iframe></p>

<p>5.1 硬件连接</p>

<p></p>

<p>5.2 手机界面(有待优化)</p>

<p></p>

<p>连接成功并开始Vibration Tracing的通讯。</p>

<p>下图是自行开发使用的Android Studio开发页面。</p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

高进 发表于 2021-7-2 21:58

<p><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan88.gif" width="59" /><img height="48" src="https://bbs.eeworld.com.cn/static/editor/plugins/hkemoji/sticker/facebook/wanwan88.gif" width="59" /></p>

北方 发表于 2021-7-27 11:06

本帖最后由 北方 于 2021-7-27 15:18 编辑

<p>补充2个视频,</p>

<p>1. Android studio手机APP的工程下载和调试后台</p>

<p></p>

<p>2、这个手机APP接收RSL10的蓝牙信号开发板的工作状态,见这个视频</p>

<p></p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp;</p>
页: [1]
查看完整版本: 【汽车发动机实时振动跟踪器】 作品提交