Arduino Lesson 2
- 格式:ppt
- 大小:3.84 MB
- 文档页数:9


第2章 基于Arduino的四轴飞行器
2.3.3 模块介绍
1、电机输出模块
(2)相关代码
//主要函数定义
extern uint8_t PWM_PIN[8];
void initOutput();//初始化函数
void mixTable();//PID计算
void writeMotors();//信号输出到电机
//输出程序
uint8_t PWM_PIN[8] = {9,10,11,3,6,5,A2,12}; //定义输出接口
void initOutput() {
for(uint8_t i=0;i<4;i++) {
pinMode(PWM_PIN[i],OUTPUT);
}//初始化,使PWM引脚作为输出引脚
void mixTable() {
int16_t maxMotor;//定义最大转速电机编号
uint8_t i;
#define PIDMIX(X,Y,Z) rcCommand[THROTTLE] + axisPID[ROLL]*X +
axisPID[PITCH]*Y + YAW_DIRECTION * axisPID[YAW]*Z //PID算法
motor[0] = PIDMIX(-1,+1,-1);
motor[1] = PIDMIX(-1,-1,+1);
motor[2] = PIDMIX(+1,+1,+1);
motor[3] = PIDMIX(+1,-1,-1);//4个电机输出计算(PID)
maxMotor=motor[0];//以下代码限制最大输出油门,防止异常
for(i=1; i<4; i++)
if (motor[i]>maxMotor) maxMotor=motor[i];
for(i=0; i<4; i++) {
if (maxMotor > MAXTHROTTLE) //保证当某一个油门达到最大时,陀螺仪仍有良好的信号连接
集美大学计算机工程学院实验报告
课程名称:嵌入式系统应用 班级: 实验成绩:
指导教师: 黄斌 姓名:
实验项目名称:
学号: 上机实践日期:
10.23
实验项目编号: 02 组号: 上机实践时间: 5-6
一、目的(本次实验所涉及并要求掌握的知识点)
a) 掌握嵌入式软件设计中的状态机和循环缓冲器
二、实验内容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析)
a) 利用状态机完成一个简单的嵌入式设计。你的设计必须有一定的现实意义,生活中 有许多基于状态机的设计,比如智能台灯、儿童玩具等等。(如果你没有足够的元 器件完成你的设计,你可以使用 LED 模拟输出,数字输入引脚的高低电平信号来模 拟输入。当然,你需要在报告里描述清楚你的设计。)
智能台灯,通过光照传感器来识别环境亮度,判断亮度是否足够。再通过声音传感器,来判断是否需要点亮台灯。
设计三种状态来实现,状态1:晚上状态。状态2:亮灯状态。状态3:灭灯状态。
#define DAYTIME 0
#define NIGHT 1
#define LIGHTING 2
#define DARK 3
unsigned long tttime;//计时器计时
unsigned int state = DAYTIME; //状态机状态
int light_sensor = 2; // 光照传感器引脚
bool light = 0; // 光照传感器读数
int belt_sensor = 3; // 声音传感器引脚
bool belt = 0; //声音传感器读数
int led = 4; //LED 灯引脚
void setup() {
Serial.begin(9600);
pinMode(light_sensor, INPUT);
pinMode(belt_sensor, INPUT);
第1章 进入Arduino的世界
欢迎来到Arduino的世界!Arduino是一个开源的开发平台,在全世界范围内成千上万的人正在用它开发制作一个又一个电子产品,这些电子产品包括从平时生活的小物件到时下流行的3D打印机,它降低了电子开发的门槛,即使是从零开始的入门者也能迅速上手,制作有趣的东西,这便是开源Arduino的魅力。通过本书的介绍,读者对Arduino会有一个更全面的认识。 本章知识点:
Arduino的起源与发展 Arduino的特点 Arduino开发板简介 Arduino的未来展望
1.1 什么是Arduino
什么是Arduino?相信很多读者会有这个疑问,也需要一个全面而准确的答案。不仅是读者,很多使用Arduino的人也许对这个问题都难以给出一个准确的说法,甚至认为手中的开发板就是Arduino,其实这并不准确。那么,Arduino究竟该如何理解呢?
1.1.1 Arduino不只是电路板
Arduino是一种开源的电子平台,该平台最初主要基于AVR单片机的微控制器[1]和相应的开发软件,目前在国内正受到电子发烧友的广泛关注。自从2005年Arduino腾空出世以来,其硬件和开发环境一直进行着更新迭代。现在Arduino已经有将近十年的发展历史,因此市场上称为Arduino的电路板已经有各式各样的版本了。Arduino开发团队正式发布的是Arduino Uno和Arduino Mega 2560,如图1-1和图1-2所示。
[1] 关于AVR单片机的内容会在第3章进行介绍。
Arduino开发从零开始学
·2·
图1-1 Arduino Uno R3
图1-2 Arduino Mega 2560 R3 图1-1和图1-2所示的开发板就是所谓的Arduino I/O印刷电路板(Printed Circuit Board, PCB)。
Arduino项目起源于意大利,该名字在意大利是男性用名,音译为“阿尔杜伊诺”,意思为“强壮的朋友”,通常作为专有名词,在拼写时首字母需要大写。其创始团队成员包括:Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti 6人。Arduino的出现并不是偶然,Arduino最初是为一些非电子工程专业的学生设计的。设计者最初为了寻求一个廉价好用的微控制器开发板从而决定自己动手制作开发板,Arduino一经推出,因其开源、廉价、简单易懂的特性迅速受到了广大电子迷的喜爱和推崇。几乎任何人,即便不懂电脑编程,利用这个开发板也能用Arduino做出炫酷有趣的东西,比如对感测器探测做出一些回应、闪烁灯光、控制马达等。 Arduino的硬件设计电路和软件都可以在官方网站上获得,正式的制作商是意大利的SmartProjects(), 许多制造商也在生产和销售他们自己的与Arduino兼容的电路板和扩展板,但是由Arduino团队设计和支持的产品需要始终保留着Arduino的名字。所以,Arduino更加准确的说法是一个包含硬件和软件的电子开发平台,具有互助和奉献的开源精神以及团队力量。
第1章 进入Arduino的世界
欢迎来到Arduino的世界!Arduino是一个开源的开发平台,在全世界范围内成千上万的人正在用它开发制作一个又一个电子产品,这些电子产品包括从平时生活的小物件到时下流行的3D打印机,它降低了电子开发的门槛,即使是从零开始的入门者也能迅速上手,制作有趣的东西,这便是开源Arduino的魅力。通过本书的介绍,读者对Arduino会有一个更全面的认识。
本章知识点:
Arduino的起源与发展
Arduino的特点
Arduino开发板简介
Arduino的未来展望
什么是Arduino
什么是Arduino相信很多读者会有这个疑问,也需要一个全面而准确的答案。不仅是读者,很多使用Arduino的人也许对这个问题都难以给出一个准确的说法,甚至认为手中的开发板就是Arduino,其实这并不准确。那么,Arduino究竟该如何理解呢 1.1.1 Arduino不只是电路板
Arduino是一种开源的电子平台,该平台最初主要基于AVR单片机的微控制器[1]和相应的开发软件,目前在国内正受到电子发烧友的广泛关注。自从2005年Arduino腾空出世以来,其硬件和开发环境一直进行着更新迭代。现在Arduino已经有将近十年的发展历史,因此市场上称为Arduino的电路板已经有各式各样的版本了。Arduino开发团队正式发布的是Arduino Uno和Arduino Mega 2560,如图1-1和图1-2所示。
图1-1 Arduino Uno R3
图1-2 Arduino Mega 2560 R3
图1-1和图1-2所示的开发板就是所谓的Arduino I/O印刷电路板(Printed Circuit Board, PCB)。
Arduino项目起源于意大利,该名字在意大利是男性用名,音译为“阿尔杜伊诺”,意思为“强壮的朋友”,通常作为专有名词,在拼写时首字母需要大写。其创始团队成员包括:Massimo Banzi、David Cuartielles、Tom Igoe、Gianluca Martino、David Mellis和Nicholas Zambetti 6人。Arduino的出现并不是偶然,Arduino最初是为一些非电子工程专业的学生