zoukankan      html  css  js  c++  java
  • Windows on Device 项目实践 4

    在前面的文章中,我们已经学习并且利用Intel Galileo开发板和Windows on Device制作了火焰报警器、感光灯和PWM调光灯。在这个项目中,我们来利用温度传感器和直流电机,完成一个简单的智能风扇的制作。

    1. 温度传感器

    LM35 是很常用且易用的温度传感器元件,在传统的Arduino项目中,只需要一个LM35元件和一个模拟接口就可以实现,难点在于算法上的将读取的模拟值转换为实际的温度。但是针对Galileo就不行,因为Galileo对噪声和波动更加敏感,需要额外添加电阻和滤波电容。详细请参考下面的硬件连接一节。

    2. 直流电机

    这里使用普通的5V供电的直流电机就可以,关键在于,Galileo的驱动能力有限,需要使用一个三极管来驱动直流电机。详细可以参考下面的硬件连接一节。

    3. 元器件和硬件连接

    这次实践项目需要使用的元器件有:

    •温度传感器:LM35 一个

    •5V直流电机:一个

    •电阻:220欧姆、330欧姆各一个

    •二极管:一个

    •三极管:9013 一个

    •连接线:若干

    •面包板:一块

    1)温度传感器的连接

    LM35有三个引脚,分别是GND、Vout和Vs,连接地、Galileo的A0和5V引脚。这里需要在Vout输入和地之间加入一个220欧姆的电阻,同时需要在LM35电源输入的引脚附近加一个0.1uF的瓷片电容,用于滤除电源的干扰。

    2)直流电机的连接

    三极管9013的集电极上接直流电机,用Galileo的数字引脚11来控制三极管的基极,射级直接接地。需要注意的是,在直流电机两端放一个二极管,用于在断电后,剩余能量的释放。

    最终,其硬件连接如下图所示。

    image

    image

    4. 实验原理

    Galileo的A0口不断采集温度,对返回值进行判断,如果超过一定范围,就开启直流电机。如果温度没有超过设定值,就关闭直流电机。其流程如下。

    image

    5. 源代码解析

    #include "stdafx.h"
    #include "arduino.h"

    int _tmain(int argc, _TCHAR* argv[])
    {
        return RunArduinoSketch();
    }

    int MOTOR_PIN = 11; //定义数字接口11 控制直流电机
    int TEMP_PIN = A0; //定义模拟接口0 连接LM35 温度传感器

    void init_motor()
    {
        pinMode(MOTOR_PIN, OUTPUT);
        analogWrite(MOTOR_PIN, 0);
    }

    void setup()
    {
        // TODO: Add your code here
        init_motor(); // 初始化直流电机控制引脚
    }

    // the loop routine runs over and over again forever:
    void loop()
    {
        // TODO: Add your code here
        int val;//定义变量
        int dat;//定义变量
        val = analogRead(TEMP_PIN);// 读取传感器的模拟值并赋值给val
        dat = (125 * val) >> 8;//温度计算公式   
        Log(L"Tep:");
        Log(L"%d", dat);//显示dat 变量数值
        Log(L"C ");
        if (dat > 21)   //温度判断,根据实际情况设定
        {
            Log(L"Start DC Motor ");
            analogWrite(MOTOR_PIN, 100);
            delay(3000);
        }
        else
        {
            Log(L"Stop DC Motor ");
            analogWrite(MOTOR_PIN, 0);
            delay(3000);
        }

    }

    6. 调试结果

    启动Galileo,利用TelNet建立连接,然后点击调试。程序就会通过网口下载到Galileo上。在温度没有达到设定的阈值之前,风扇不转,温度超标以后,风扇工作。调试图片如下。

    IMG_0575

  • 相关阅读:
    Digital Video Stabilization and Rolling Shutter Correction using Gyroscope 论文笔记
    Distortion-Free Wide-Angle Portraits on Camera Phones 论文笔记
    Panorama Stitching on Mobile
    Natural Image Stitching with the Global Similarity Prior 论文笔记 (三)
    Natural Image Stitching with the Global Similarity Prior 论文笔记(二)
    Natural Image Stitching with the Global Similarity Prior 论文笔记(一)
    ADCensus Stereo Matching 笔记
    Efficient Large-Scale Stereo Matching论文解析
    Setting up caffe on Ubuntu
    Kubernetes配置Secret访问Harbor私有镜像仓库
  • 原文地址:https://www.cnblogs.com/dearsj001/p/WindowsOnDevice_4.html
Copyright © 2011-2022 走看看