机器人控制器编程课程-教案02-基础
经过第一次课程,需要理解为何学习这门课?!
- 是教学大纲要求不得不学?
- 还是的确有趣并实用,必须要学?
那么如何学习一门技术,包括机器人控制器编程技术???
现在技术更新速度十分快,如何学习最新并使用最广的相关技术呢???
- 要点:跨平台,或者称之为多平台支持
Arduino软件支持windows、Mac OS X和Linux,凡是主流并广泛使用的工具都是全平台支持的。
如ROS2、Webots和V-Rep都是全平台支持的,也是本课程学有余力的同学推荐安装并学习的(还有Matlab^_^)。
还有其他特点吗????
- 要点:多语言支持,如支持至少3种以上语言(C++、Python、Java)进行程序编写
同样以Arduino,通过合适的配置不仅可以实现仿真,还支持Python、Matlab等编程。
所有IoT(物联网)硬件都是多平台多语言支持的!!!
Arduino微控制器和SoC世界无处不在的“Hello World”程序是“闪烁LED”。以下代码演示了如何使用Johnny-Five框架完成此操作。
var five = require("johnny-five");
var board = new five.Board();board.on("ready", function() {// Create an Led on pin 13var led = new five.Led(13);// Blink every half secondled.blink(500);
});
第2章,25-73页,分别介绍了Arduino语言结构、扩展模块等。
基础包括软件和硬件。
顺序结构(灯闪烁):
void setup() {pinMode(13, 1);
}void loop() {digitalWrite(13, 1); delay(1000); digitalWrite(13, 0); delay(1000);
}
选择结构(判断字符):
int val;//定义变量val
int ledpin=13;//定义数字接口13
void setup()
{Serial.begin(9600);//设置波特率为9600,这里要跟软件设置相一致。当接入特定设备(如:蓝牙)时,我们也要跟其他设备的波特率达到一致。pinMode(ledpin,OUTPUT);//设置数字13 口为输出接口,Arduino 上我们用到的I/O 口都要进行类似这样的定义。
}
void loop()
{val=Serial.read();//读取PC 机发送给Arduino 的指令或字符,并将该指令或字符赋给valif(val=='X')//判断接收到的指令或字符是否是“X”。{//如果接收到的是“X”字符digitalWrite(ledpin,HIGH);//点亮数字13 口LED。delay(500);digitalWrite(ledpin,LOW);//熄灭数字13 口LEDdelay(500);Serial.println("Hello World!");//显示“Hello World!”字符串}else{Serial.println("No XXXX");}
}
循环结构(跑马灯):
int BASE = 2 ; //第一顆 LED 接的 I/O 腳
int NUM = 6; //LED 的總數void setup()
{for (int i = BASE; i < BASE + NUM; i ++) {pinMode(i, OUTPUT); //設定數字I/O腳為輸出}
}void loop()
{for (int i = BASE; i < BASE + NUM; i ++) {digitalWrite(i, 1); //設定數字I/O腳輸出為"低",即逐漸關燈delay(200); //延遲}for (int i = BASE; i < BASE + NUM; i ++) {digitalWrite(i, 0); //設定數字I/O腳輸出為"低",即逐漸開燈delay(200); //延遲}
}
从PWM到呼吸灯:
int led = 9; // the PWM pin the LED is attached to
int brightness = 0; // how bright the LED is
int fadeAmount = 5; // how many points to fade the LED by// the setup routine runs once when you press reset:
void setup() {// declare pin 9 to be an output:pinMode(led, OUTPUT);
}// the loop routine runs over and over again forever:
void loop() {// set the brightness of pin 9:analogWrite(led, brightness);// change the brightness for next time through the loop:brightness = brightness + fadeAmount;// reverse the direction of the fading at the ends of the fade:if (brightness <= 0 || brightness >= 255) {fadeAmount = -fadeAmount;}// wait for 30 milliseconds to see the dimming effectdelay(30);
}
模拟量输入控制LED灯闪烁时间:
int sensorPin = A0; // select the input pin for the potentiometer
int ledPin = 13; // select the pin for the LED
int sensorValue = 0; // variable to store the value coming from the sensorvoid setup() {// declare the ledPin as an OUTPUT:pinMode(ledPin, OUTPUT);
}void loop() {// read the value from the sensor:sensorValue = analogRead(sensorPin);// turn the ledPin ondigitalWrite(ledPin, HIGH);// stop the program for <sensorValue> milliseconds:delay(sensorValue);// turn the ledPin off:digitalWrite(ledPin, LOW);// stop the program for for <sensorValue> milliseconds:delay(sensorValue);
}
机器人控制器编程课程-教案02-基础相关推荐
- 机器人控制器编程课程-教案06-理论课总结
理论课程本周结束.课程全部资源,查看机器人控制器编程课程专题,链接如下: 课程-机器人控制器编程- 自学能力是大学课程的核心与关键,也是终身学习的必备要素. 课程讲述了,使用arduino搭建如上图所 ...
- 机器人控制器编程课程-教案01-初识
课程主要介绍Arduino,辅助补充ROS机器人操作系统(1&2).有兴趣同学可以参考如下链接: 基于ROS_Arduino室内移动机器人SLAM实验测试 什么是机器人?什么是控制器?什么是编 ...
- 机器人控制器编程课程-教案03-进阶
先简要复习一下上次课的内容,主要介绍了一些理论上的知识,希望有一个宏观上的概念. 比如点-线-面-体,>感知<~~>控制<的维度需要匹配等.更多详细内容可以查看: 机器人感知- ...
- 机器人控制器编程课程-教案04-综合
课程已经接近尾声,那么制作一台可以远程遥控的机器人小车最少需要多少钱呢?支持ROS1和ROS2. ¥99元可以吗?只是遥控小车用不了那么多- 底盘: 控制器: 驱动: 一共14.71+13.50+5. ...
- 机器人控制器编程课程-教案05-秘籍
机器人操作系统从广义上讲,属于物联网系统的一部分.在学习完成Arduino全部课程之后,必须掌握的机器人工具之一. 这里推荐两款物联网系统: Windows IoT:https://developer ...
- 机器人控制器编程课程大纲(Arduino+ROS+IoT+SLAM……)2019-2020-1
补充说明:很多中小学已经开设了此类课程(需要预习哦): 面向中小学的Arduino机器人课程 全国青少年机器人等级考试1-6级大纲下载链接: 链接:https://pan.baidu.com/s/1M ...
- 机器人控制器编程整理汇总-辞旧迎新-
从微控制器到机器人: 旧版测试视频: turtlesim_esp32发布速度测试 课程进化如下设备: CoCube群机器人预览→资讯剧透← CoCube群机器人预览 从简单8位单片机,到网络化结合RO ...
- ROS1Melodic+ROS2Dashing+Arduino+SLAM学习镜像(机器人控制器编程等课程资料)
学习镜像供机器人工程专业机器人控制器编程课程学生使用,镜像融合了博客中所有经典的ROS1Melodic版本和ROS2Dashing版本案例,涵盖Arduino AVR和ARM全部独立知识点及其与ROS ...
- 机器人控制器编程教学进度表
受疫情影响调整较多,授课效果不好,向学生致歉. 周次 起止日期 讲课内容分章和分节的名称 课时数 习题.实验.设计.实践或科学实验名称 课时数 1 机器人控制器基本知识和Arduino[ESP32]入 ...
- PLC机器人控制器编程笔记
开发平台:开启时代四代集成开发平台 参考文献:[1]开启时代四代开发平台使用说明书 文章整理了相关基础知识,并以实际应用的消防排烟机器人的控制程序为例,描述了变量捕捉.线性变换等常用的功能,详细阐述了 ...
最新文章
- 1134. Vertex Cover (25)
- 如何在Ubuntu中使用dpkg命令卸载软件
- python pandas stack和unstack函数
- Android学习之碎片与活动之间的通信
- 凹入表形式打印树形结构_体育场径向环形大悬挑钢结构综合施工技术研究
- 运行javac编译报错:仅当显式请求注释处理时才接受类名称“xxxxxx”
- 全国高校计算机能力挑战赛C语言组真题
- 在 for 循环里写加号拼接字符串的那个同事,不见了~
- 服装DOCAD度卡系统8.5版本(DOCAD)
- html 新浪微博分享申请,新浪微博API申请流程详解
- mdt服务器实现自动加域,Windows自动化部署(三)MDT环境准备
- 专辑名称:极品汽车发烧音乐精选-音乐宝典18CD(金碟收藏版)
- MacBook不断重启的 5 个原因以及如何解决此问题
- 大学计算机与人工智能基础课后答案,好书推荐 | 人工智能基础及应用
- 21款奔驰S400L升级原厂小柏林之声音响
- 无法访问eclipse官网?镜像源可以帮你
- Android——App版本控制PHP
- 2×3卡方检验prism_抽样分布之卡方分布02 – 分布拟合优度检验
- Deep Learning on Graphs: A Survey
- 【视觉定位UV】CCD相机安装标准
热门文章
- php短信接口开发(http协议)
- 【硕博士推荐】国内有哪些不错的CV(计算机视觉)团队?
- PC-DARTS 网络结构搜索程序分析
- Python | 使用turtle库画笑脸滑稽表情
- 渥太华大学计算机科学博士,加拿大渥太华大学计算机科学CO-OP录取案例
- 早起的奇迹:那些能够在早晨8:00前改变人生的秘密
- 计算机的中mb b单位的关系,b、B、KB、MB、GB 的关系?
- h.265/HEVC 和 h.264/AVC 比较,在技术上的改进和优势
- word怎样删除向下的箭头“↓”
- Dota2 荒神罪 破解