arduino与肌电信号(传感器)的碰撞② 2021 7 20
一.代码详解
①带校准的与肌电传感器相配的代码
#include <Servo.h>
Servo servo1;
int posServo1 = 0;
int sensorValue ;
int biggest_data,smallest_data;
void setup() {servo1.attach(3);Serial.begin(9600);Serial.println("start");delay(500);pinMode(13,1);//初始化13号,引脚状态为1digitalWrite(13,1);//校准for (int i = 0; i < 5000; i++){sensorValue = analogRead(A0);delay(1000);Serial.println(sensorValue);if(biggest_data<sensorValue){biggest_data=sensorValue;}if (smallest_data>sensorValue){smallest_data=sensorValue;}//以上代码可以用下面两行代码表示//(biggest_data<sensorValue)?sensorValue:biggest_data;//(smallest_data>sensorValue)?sensorValue:smallest_data;}digitalWrite(13,0);Serial.println("ok");
}void loop() {int sensorValue = analogRead(A0);float voltage = sensorValue * (12.0 / 671.0);if (voltage > 6) {int val = map(voltage, smallest_data, biggest_data, 0, 180);//映射函数 servo1.write(val);delay(20);Serial.println(voltage);}else {servo1.write(0);delay(20);}
}
②读取某个端口的值并打印
int analogPin = A3; // potentiometer wiper (middle terminal) connected to analog pin 3// outside leads to ground and +5V
int val = 0; // variable to store the value read
void setup() {Serial.begin(9600); // setup serial
}void loop() {val = analogRead(analogPin); // read the input pinSerial.println(val); // debug valuedelay(1000);
}
void setup() {// initialize serial communication at 9600 bits per second:Serial.begin(9600);
}// the loop routine runs over and over again forever:
void loop() {// read the input on analog pin 0:int sensorValue = analogRead(A0);// Convert the analog reading (which goes from 0 - 1023) to a voltage (0 - 5V):float voltage = sensorValue * (40.0 / 1023.0);// print out the value you read:Serial.println(voltage);
}
③串口输入舵机转动相应的角度和不同的角度
#include <Servo.h>
Servo myservo; // 创建一个伺服电机对象
//Servo myserv1;
//Servo myserv2;
//Servo myserv3;
char inByte = 0; //串口接收的数据
int angle = 0; //角度值
String temp ;//临时字符变量,又或者说是缓存用的吧
void setup(){myservo.attach(9); //定义舵机的引脚为9,舵机只能是10,或者9引脚
Serial.begin(9600); //设置波特率
}
void loop(){while (Serial.available() > 0) //判断串口是否有数据{inByte = Serial.read();//读取数据,串口一次只能读1个字符temp += inByte;//把读到的字符存进临时变量里面缓存,//再继续判断串口还有没有数据,知道把所有数据都读取出来}if(temp !="" )//判断临时变量是否为空{angle = temp.toInt(); //把变量字符串类型转成整型Serial.println(angle);} //输出数据到串口上,以便观察temp = "" ;//请看临时变量myservo.write(angle); //控制舵机转动相应的角度。delay(2000);//延时100毫秒myservo.write(0);delay(2000);
}
④舵机来回转动
#include <Servo.h>
Servo myservo; // 定义Servo对象来控制
int pos = 0; // 角度存储变量
void setup() {myservo.attach(7); // 控制线连接数字7
}
void loop() {for (pos = 0; pos <= 180; pos ++) { // 0°到180°myservo.write(pos); // 舵机角度写入delay(5); // 等待转动到指定角度}for (pos = 180; pos >= 0; pos --) { // 从180°到0°myservo.write(pos); // 舵机角度写入delay(5); // 等待转动到指定角度}
}
⑤与肌电传感器相配的最简单的一套代码
```c
#include <Servo.h>
Servo servo1;
void setup() {servo1.attach(3);Serial.begin(9600);}
void loop() {int sensorValue = analogRead(A0);Serial.println(sensorValue);float voltage = sensorValue * (4.5 / 660.0);//不太懂Serial.println(voltage);if (voltage > 7.5) //7.5需要自己测一下找个合适的点{int val = map(voltage, 0, 1023, 0, 180); servo1.write(val); delay(20); }else {servo1.write(0);delay(20);}
}
⑥输入不同舵机应该转的角度并控制相应舵机进行运动
待更。。。
arduino与肌电信号(传感器)的碰撞② 2021 7 20相关推荐
- Arduino压电震动传感器(二)
Arduino压电震动传感器,前文有介绍模拟输出,用模拟输出可以检测震动的强弱. TTL电平输出 TTL电平输出可以理解为数字电平,共两种状态:高电平和低电平(即1和0).有效信号为高电平,输出控制电 ...
- 使用Arduino和HCSR04超声波传感器进行简单的超声波悬浮
原文:https://circuitdigest.com/microcontroller-projects/arduino-ultrasonic-acoustic-levitation-using-h ...
- arduino红外热释电传感器_【Arduino】108种传感器系列实验(17)-热释电传感器模块-Arduino中文社区 - Powered by Discuz!...
本帖最后由 eagler8 于 2019-8-24 22:13 编辑 37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器 ...
- 读论文-----基于单通道表面肌电信号的手势识别 Hand Gestures Recognition Based on One-Channel Surface EMG Signal
Hand Gestures Recognition Based on One-Channel Surface EMG Signal 摘要 本文提出了一个利用OpenBCI采集两种手势信号的数据并解码信 ...
- matlab肌电信号平滑滤波_BCIduino 滤波和频谱计算操作
本文介绍用 python 对航弈生物 BCIduino 放大器脑电/肌电数据进行滤波及频谱计算,介绍如何用 python mne 对 fif 格式保存的脑电数据进行读取和简单的滤波,并用numpy 对 ...
- 肌电信号的包络matlab程序_基于matlab的肌电信号处理程序
基于 matlab 的肌电信号处理程序: function varargout = untitled(varargin) % UNTITLED M- untitled.fig % UNTIT ...
- Arduino压电震动传感器
Arduino压电震动传感器 读取震动传感器的模拟值,串口输出:按压震动传感器控制LED灯亮灭. 外观 接线 Arduino 震动传感器 5V 5V GND GND A0 A0 2 D0 读取模拟值时 ...
- 玩转Mixly – 10、Arduino AVR编程 之 传感器,执行器,通信,存储,factory
以下内容源自Mixly官方技术文档: https://mixly.readthedocs.io/zh_CN/latest/Arduino/AVR/10Sensor.html https://mixly ...
- ESP32(arduino)和声音传感器数据采集并实现连接WiFi进行MQTT通信
ESP32(arduino)和声音传感器数据采集并实现连接WiFi进行MQTT通信 简单物联网应用--基于老人居家声音监测系统 使用 WiFi 库, 创建 WiFiClient 对象, 引用 WiFi ...
- 肌电信号特征提取的代码
肌电信号特征提取的代码可以使用 Python 编写.具体实现可以使用 numpy 和 scipy 库进行数据处理,使用 matplotlib 库进行数据可视化,使用 scikit-learn 库进行特 ...
最新文章
- 有了AD,还需要WINS吗?
- 禅道8.2.4 腾讯云迁移至VM
- 关于持续集成几点知识点
- 强制卸载域控制器命令
- CSS实现垂直居中的5种思路
- Java 编程的动态性,第 6 部分: 利用 Javassist 进行面向方面的更改--转载
- Smartform中如何设置背景阴影色(Shading)
- Spring Aop面向切面编程自动注入
- 看出每个应用程序最高可用内存是多少
- 看完白鹤滩水电站建造历程 感觉《流浪地球》那些真能造出来
- storm基础系列之二----zookeeper的作用
- bin文件编辑_为MediaWiki安装可视化编辑器VisualEditor
- linux下php安装
- Spring Boot制作个人博客-标签页
- AGV搬运机器人磁导航传感器D-MNSV7-X16安装方法与注意事项
- 电力电子技术(16)——直流斩波电路
- 【Python】PermissionError: [Errno 13] Permission denied: ‘xxx.xlsx‘问题解决
- Web技术基础学②——初步学习CSS
- 龙世界java游戏_我的世界:当Notch在6年后重回mc,会发生什么?萌新的像个弟弟...
- SQL优化速度,关于like
热门文章
- 期刊论文格式是什么样的,如何排版?
- 向量误差修正(VECM)模型案例分析
- GB/T 7714-2005《文后参考文献著录规则》(精简)
- PBRT v3看完了
- 一键查看MTALAB支持的字体
- 北大中文核心期刊目录(2004年版)全文
- Visual C++ 6.0 Processor Pack 编译xvidcore1.1.0
- 360度 EC11 旋转编码器模块 数字脉冲电位器
- 《矩阵分析与应用》(第2版)———知识+Matlab2018a——2nd
- wav音频文件格式解析【个人笔记】(自用)