65.9K
CodeProject 正在变化。 阅读更多。
Home

Intel DIY 挑战传感器

emptyStarIconemptyStarIconemptyStarIconemptyStarIconemptyStarIcon

0/5 (0投票)

2014年10月17日

CPOL

4分钟阅读

viewsIcon

14893

我们的目标是熟悉简单的传感器、导线和电路板连接。

与传感器交互

数字和模拟传感器

有许多传感器可供选择。重要的是要知道哪些与 Galileo 兼容:它们是否需要额外的组件才能工作?

从传感器获取信息

Galileo 可以与数字引脚和模拟输入与传感器进行通信。

我们将使用……

一块 Intel Galileo 主板和网络连接

我们假设您熟悉与嵌入式操作系统通信和执行 GPIO 命令。

Arduino 高级传感器套件(DFRobot)

一套 30 个用于 Arduino 的传感器和配件。http://www.dfrobot.com/index.php?route=product/product&product_id=725

公对母和公对公跳线以及原型开发板

方便将传感器和配件插入您的 Galileo。

数字和模拟传感器

数字传感器

数字传感器与物理环境交互,并向我们返回二进制信息。

例如,数字按钮是否被按下。它有两个状态,0 或 1。

可以连接三根导线

  • 一根黑色导线,用于接地。
  • 一根红色导线,用于输入电压。
  • 一根绿色导线,传输信息。

模拟传感器

模拟传感器与物理环境交互,并向我们发送一个物理值,该值几乎总是电压。

例如,模拟线性温度传感器是一个涉及电阻的电路。其值随温度线性变化。根据欧姆定律,电压也随之变化,这就是我们获取和测量的数值。

与数字传感器一样,常见的模拟传感器有三个引脚

  • 照常,黑色接地,红色连接输入电压。
  • 以及一根蓝色导线,对应传感器返回的电压。

如何选择传感器?

我们的第一套传感器

DFRobot 的 Arduino 高级传感器套件。

优点

  • 传感器种类繁多。
  • 易于使用,即插即用。
  • 足够用于入门或原型开发。

缺点

  • 不完全满足您的项目需求。
  • 不灵活且不可扩展

我还需要什么?

公对母和公对公跳线连接各种组件到 Galileo 非常有用。原型开发板让一切井井有条!

这是原型开发的最低要求。请参阅我们关于高级传感器和项目集成的内容,以进行更深入的学习。

第一个电路

我们的目标是熟悉简单的传感器、导线和电路板连接。

重要注意事项

  • 在本课程中,我们将使用 5V 引脚作为所有传感器和配件的输入电压。
  • 5V 引脚旁边是接地引脚,我们将把它连接到我们所有的传感器。
  • 不要直接将这两个引脚连接在一起!这会损坏您的主板。

连接这些组件,请参考下图

您需要

  • Intel Galileo 主板
  • LED 模块
  • 环境光传感器
  • 连线
  • 原型开发板

缓慢地将手移过光传感器。LED 灯的亮度应该会发生变化。

解释

光传感器根据环境光强度将输入电压发送到 LED 控制引脚。

较低的光强度会降低发送到 LED 的电压。

从 LED 模块的角度来看,电流根据控制引脚上的电压值发送到 LED。

尝试使用其他传感器代替环境光传感器,效果相同!

从传感器获取信息

让我们来实现这个电路

您需要

X 轴信号连接到模拟输入 1。Y 轴信号连接到模拟输入 2。

读取信息

  • 在您的计算机上创建一个 bash 文件
    touch joystick_info.sh
  • 复制/粘贴下一张幻灯片中的代码并保存您的文件
  • 将您的文件发送到 Galileo 主板
    scp joystick_info.sh root@192.168.1.XXX:~
  • 通过 SSH 连接到您的 Intel Galileo 嵌入式系统
    ssh root@192.168.1.XXX
  • 更改您文件的访问权限以便运行它
    chmod 755 joystick_info.sh
    ./joystick_info.sh
  • 移动操纵杆,您将在屏幕上看到电压输入值!
  • 如果您将操纵杆推到 X 轴的最大值,程序将终止。
  • 相同的程序也可以用于测试加速度计和陀螺仪。
  • 相同的程序可以用 C 语言编写,而不是 bash 脚本。
  • 操纵杆上的 Z 轴是一个按钮。
#! /bin/bash
# please refer to slides about GPIO for pin mapping
echo -n "36" > /sys/class/gpio/export
echo -n "23" > /sys/class/gpio/export
echo -n "out" > /sys/class/gpio/gpio36/direction
echo - gpio/gpio23/direction
echo -n "strong" > /sys/class/gpio/gpio36/drive
echo - gpio/gpio23/drive
echo -n "0" > /sys/class/gpio/gpio36/value
echo -n "0" > /sys/class/gpio/gpio23/value
xvolt=`cat /sys/bus/iio/devices/iio\:device0/in_voltage1_raw`
yvolt=`cat /sys/bus/iio/devices/iio\:device0/in_voltage2_raw`
#while xvolt value is lower than 4V
while [ $xvolt -le 4000 ]
do
    #Print values
    echo "xvolt" $xvolt
    echo "yvolt" $yvolt
    echo " "
    #Update values
    xvolt=`cat /sys/bus/iio/devices/iio\:device0/in_voltage1_raw`
    yvolt=`cat /sys/bus/iio/devices/iio\:device0/in_voltage2_raw`
    #Wait 500ms
    usleep 500000
done 
echo -n "36" > /sys/class/gpio/unexport
echo -n "23" > /sys/class/gpio/unexport

其他传感器

它们的工作原理如下

数字倾斜传感器:将传感器放在桌子上,等待一分钟,然后敲击桌子。数字磁传感器:将磁铁靠近传感器。火焰传感器:点燃打火机,距离传感器 20 厘米。

模拟线性温度传感器:使用模拟输入读取值。压电圆盘振动传感器:使用模拟输入读取值。土壤湿度传感器:将两条带子的末端浸入一杯水中。

模拟气体传感器:使用螺丝调整灵敏度。要进行测试,请将传感器靠近 70% 医用酒精瓶的顶部。将传感器灵敏度设置为最大值。

继电器模块:当绿色导线上有电压时,NO 和 COM 之间的电压是多少?否则,NC 和 COM 之间的电压是多少?

模拟分压器:将输入电压从 0-25V 的范围缩放到 Arduino 兼容的电压值范围(0-5V)。

© . All rights reserved.