“距离表情小交互”的版本间的差异

来自Microduino Wikipedia
跳转至: 导航搜索
(创建页面,内容为“{| style="width: 800px;" |- | <p style="color: #4F4E4E;font-size:220%">'''Sensor-Ultrasonic+距离表情小交互'''</p> <br> 本示例给出了超声波传感器测…”)
 
 
第9行: 第9行:
 
<br>
 
<br>
 
<p style="color: #E87E05;font-size:135%">所需硬件</p>
 
<p style="color: #E87E05;font-size:135%">所需硬件</p>
*[[mCookie-Core]]
+
*[[mCenter+]]
*[[mCookie-Battery]]
 
*[[mCookie-Hub/zh|mCookie-Hub]]
 
 
*[[Sensor-Ultrasonic+]]
 
*[[Sensor-Ultrasonic+]]
 
<br>
 
<br>
第17行: 第15行:
 
将Ultrasonic+传感器接到Hub的IIC引脚。
 
将Ultrasonic+传感器接到Hub的IIC引脚。
 
<br>
 
<br>
将Battery、Core、Hub堆叠在一起(或者用mCenter+代替这三种模块,代替后下载编译核心选择core+),通过MicroUSB数据线接入电脑。初次使用请参考:[[AVR核心:Getting_started/zh|Getting Started]]。
+
将mCenter+(或者用Battery、Core、Hub堆叠在一起代替mCenter+,代替后核心选择core)通过MicroUSB数据线接入电脑,核心选择core+ 5V。初次使用请参考:[[AVR核心:Getting_started/zh|Getting Started]]。
 
<br>
 
<br>
 
<br>
 
<br>
第92行: 第90行:
  
 
<p style="color: #E87E05;font-size:135%">应用效果</p>
 
<p style="color: #E87E05;font-size:135%">应用效果</p>
0-15厘米时,点阵效果如下:
+
0-15厘米时,点阵效果如下:<br>
[[File:Sensor_Ultrasonic+_mouth1.jpg|200px|left]]
+
[[File:Sensor_Ultrasonic+_mouth1.jpg|200px]]
 
<br>
 
<br>
  
15-30厘米时,点阵效果如下:
+
15-30厘米时,点阵效果如下:<br>
[[File:Sensor_Ultrasonic+_mouth2.jpg|200px|left]]
+
[[File:Sensor_Ultrasonic+_mouth2.jpg|200px]]
 
<br>
 
<br>
  
超过30厘米
+
超过30厘米<br>
[[File:Sensor_Ultrasonic+_mouth3.jpg|200px|left]]
+
[[File:Sensor_Ultrasonic+_mouth3.jpg|200px]]
 
<br>
 
<br>
 +
 +
 +
  
 
[[Sensor-Ultrasonic/zh|返回Sensor-Ultrasonic 界面]]
 
[[Sensor-Ultrasonic/zh|返回Sensor-Ultrasonic 界面]]

2018年6月7日 (四) 03:07的最新版本

Sensor-Ultrasonic+距离表情小交互


本示例给出了超声波传感器测距与点阵显示图案交互的效果



所需硬件


电路搭建

将Ultrasonic+传感器接到Hub的IIC引脚。
将mCenter+(或者用Battery、Core、Hub堆叠在一起代替mCenter+,代替后核心选择core)通过MicroUSB数据线接入电脑,核心选择core+ 5V。初次使用请参考:Getting Started

代码

#include <Microduino_Ultrasonic.h>         //引用超声波库文件
#include <Microduino_Matrix.h>
uint8_t Addr[MatrixPix_X][MatrixPix_Y] = {  //1x1
  {48}      //点阵IIC地址
};
Matrix display = Matrix(Addr, TYPE_S2); //TYPE_COLOR or TYPE_S2
Ultrasonic Ultrasonic1(ULTRASONIC_ADDR_1);//将Ultrasonic实例化

uint16_t Distance;  //定义变量
uint32_t oledTime = millis();
uint8_t disFlag;

void setup() {
  Serial.begin(9600);  // 串口初始化
  Ultrasonic1.begin();  //超声波初始化
  display.setBrightness(100);
  delay(2000);
  display.clearDisplay();
  disFlag = 2;
}

void loop() {
  Distance = Ultrasonic1.getDistance(); //获取超声波测得的距离
  Serial.println(Distance);               //串口打印距离值
  matrixDraw(Distance);
  delay(10);                              //延时10ms
}

void matrixDraw(uint16_t Dis) {
  if (Dis <= 150) {
    if (disFlag == 0) return;
    else {
      disFlag = 0;
      display.clearDisplay();
      display.drawLine(0, 2, 7, 2);
      display.drawLine(0, 3, 2, 7);
      display.drawLine(7, 3, 5, 7);
      display.setLed(3, 7, true);
      display.setLed(4, 7, true);
    }
  }
  else if ((Dis > 150) && (Dis < 300)) {
    if (disFlag == 1) return;
    else {
      disFlag = 1;
      display.clearDisplay();
      display.drawLine(0, 2, 7, 2);
      display.drawLine(0, 3, 1, 4);
      display.drawLine(7, 3, 6, 4);
      display.drawLine(1, 4, 6, 4);
    }
  }
  else {
    if (disFlag == 2) return;
    else {
      disFlag = 2;
      display.clearDisplay();
      display.drawLine(0, 5, 2, 3);
      display.drawLine(7, 5, 5, 3);
      display.setLed(3, 3, true);
      display.setLed(4, 3, true);
    }
  }
}



应用效果

0-15厘米时,点阵效果如下:
Sensor Ultrasonic+ mouth1.jpg

15-30厘米时,点阵效果如下:
Sensor Ultrasonic+ mouth2.jpg

超过30厘米
Sensor Ultrasonic+ mouth3.jpg



返回Sensor-Ultrasonic 界面