本篇主要提供:开发者书库:Arduino案例实战李永华,林家儒,王思野电子书的pdf版本下载,本电子书下载方式为百度网盘方式,点击以上按钮下单完成后即会通过邮件和网页的方式发货,有问题请联系邮箱ebook666@outlook.com
基本信息
书名:清华开发者书库:Arduino案例实战(卷Ⅷ)
定价:79.00元
作者:李永华,林家儒,王思野
出版社:清华大学出版社
出版日期:2019-01-01
ISBN:9787302511915
字数:
页码:413
版次:1
装帧:平装
开本:16开
商品重量:0.4kg
编辑推荐
内容提要
本书系统论述了Arduino开源硬件的架构、原理、开发方法及14个完整的项目设计案例。本书共15章,内容包括Arduino设计基础、LED多模式显示时钟项目设计、机械臂控制图像识别项目设计、基于Mathematica的自动接球系统项目设计、蓝牙遥控四自由度可自动避障机器人项目设计、遥控智能四驱车项目设计、电机合奏团项目设计、教学电子琴项目设计、微型激光雕刻机项目设计、遥控吸尘器项目设计、写字报时机器人项目设计、棋盘小游戏之守护绿色项目设计、炮弹发射车项目设计、球形机器人项目设计和多功能蓝牙小车项目设计。
在编排方式上,全书侧重对创新产品的项目设计过程进行介绍,分别从需求、分析、设计与实现等角度论述硬件电路、软件设计、传感器和功能模块等,并剖析产品的功能、使用、电路连接和程序代码等。为便于读者高效学习,快速掌握Arduino开发方法,本书配套提供项目设计的硬件电路图和程序代码,可供读者举一反三,二次开发。
本书可作为高校电子信息类专业“开源硬件设计”“电子系统设计”“创新创业”等课程的教材,也可以作为创客及智能硬件爱好者的参考用书,还可作为从事物联网、创新开发和设计专业人员的技术参考书。
目录
目录
章Arduino设计基础
1.1开源硬件概述
1.2Arduino开源硬件
1.2.1Arduino开发板
1.2.2Arduino扩展板
1.3Arduino软件开发平台
1.3.1Arduino平台特点
1.3.2Arduino IDE的安装
1.3.3Arduino IDE的使用
1.4Arduino编程语言
1.4.1Arduino编程基础
1.4.2数字I/O引脚的操作函数
1.4.3模拟I/O引脚的操作函数
1.4.4高级I/O引脚的操作函数
1.4.5时间函数
1.4.6中断函数
1.4.7串口通信函数
1.4.8Arduino的库文件
1.5Arduino硬件设计平台
1.5.1Fritzing软件简介
1.5.2Fritzing使用方法
1.5.3Arduino电路设计
1.5.4Arduino开发平台样例与编程
第2章LED多模式显示时钟项目设计
2.1项目背景
2.2创新描述
2.3功能及总体设计
2.3.1功能介绍
2.3.2总体设计
2.3.3模块介绍
2.4产品展示
2.5故障及问题分析
2.6元件清单
第3章机械臂控制图像识别项目设计
3.1项目背景
3.2创新描述
3.3功能及总体设计
3.3.1功能介绍
3.3.2总体设计
3.3.3模块介绍
3.4产品展示
3.5故障及问题分析
3.6元件清单
第4章基于Mathematica的自动接球系统项目设计
4.1项目背景
4.2创新描述
4.3功能及总体设计
4.3.1功能介绍
4.3.2总体设计
4.3.3模块介绍
4.4产品展示
4.5故障及问题分析
4.6元件清单
第5章蓝牙遥控四自由度可自动避障机器人项目设计
5.1项目背景
5.2创新描述
5.3功能及总体设计
5.3.1功能介绍
5.3.2总体设计
5.3.3模块介绍
5.4产品展示
5.5故障及问题分析
5.6元件清单
第6章遥控智能四驱车项目设计
6.1项目背景
6.2创新描述
6.3功能及总体设计
6.3.1功能介绍
6.3.2总体设计
6.3.3模块介绍
6.4产品展示
6.5故障及问题分析
6.6元件清单
第7章电机合奏团项目设计
7.1项目背景
7.2创新描述
7.3功能及总体设计
7.3.1功能介绍
7.3.2总体设计
7.3.3模块介绍
7.4产品展示
7.5故障及问题分析
7.6元件清单
第8章教学电子琴项目设计
8.1项目背景
8.2创新描述
8.3功能及总体设计
8.3.1功能介绍
8.3.2总体设计
8.3.3模块介绍
8.4产品展示
8.5故障及问题分析
8.6元件清单
第9章微型激光雕刻机项目设计
9.1项目背景
9.2创新描述
9.3功能及总体设计
9.3.1功能介绍
9.3.2总体设计
9.3.3模块介绍
9.4产品展示
9.5故障及问题分析
9.6元件清单
0章遥控吸尘器项目设计
10.1项目背景
10.2创新描述
10.3功能及总体设计
10.3.1功能介绍
10.3.2总体设计
10.3.3模块介绍
10.4产品展示
10.5故障及问题分析
10.6元件清单
1章写字报时机器人项目设计
11.1项目背景
11.2创新描述
11.3功能及总体设计
11.3.1功能介绍
11.3.2总体设计
11.3.3模块介绍
11.4产品展示
11.5故障及问题分析
11.6元件清单
2章棋盘小游戏之守护绿色项目设计
12.1项目背景
12.2创新描述
12.3功能及总体设计
12.3.1功能介绍
12.3.2总体设计
12.3.3模块介绍
12.4产品展示
12.5故障及问题分析
12.6元件清单
3章炮弹发射车项目设计
13.1项目背景
13.2创新描述
13.3功能及总体设计
13.3.1功能介绍
13.3.2总体设计
13.3.3模块介绍
13.4产品展示
13.5问题及故障分析
13.6元件清单
4章球形机器人项目设计
14.1项目背景
14.2创新描述
14.3功能及总体设计
14.3.1功能介绍
14.3.2总体设计
14.3.3模块介绍
14.4产品展示
14.5故障及问题分析
14.6元件清单
5章多功能蓝牙小车项目设计
15.1项目背景
15.2创新描述
15.3功能及总体设计
15.3.1功能介绍
15.3.2总体设计
15.3.3模块介绍
15.4产品展示
15.5故障及问题分析
15.6元件清单
参考文献
作者介绍
李永华 现执教于北京邮电大学,拥有超过10年的嵌入式开发经验,致力于物联网和智能硬件的研究开发工作。在教学中以兴趣为导向,激发学生的创造性;以素质为基础,提高自身教学水平;以科研为手段,促进教学理念转变。通过信息工程专业综合改革,探索了以“学生学为中心”的教学模式,营造生动活泼的学习方法,提高学生独立思考问题、发现问题、解决问题的能力,激发学生的创造激情。在研发及教学实践中指导学生实现200余个创新案例,并指导着一支物联网开发团队,曾在物联网、开源硬件等技术领域进行了多场学术报告,并且出版了《AllJoyn技术原理及物联网程序开发指南》《Arduino实战指南——游戏开发、智能硬件、人机交互、智能家居与物联网设计30例》《Arduino软硬件协同设计实战指南》等多部物联网技术方面的著作。
文摘
第3章
机械臂控制图像识别项目设计
第3章机械臂控制图像识别
设计者:刘泽萱马铭阳
3.1项目背景
本章根据刘泽萱、马铭阳项目设计整理而成。
机械臂是一类能够模仿人手臂的某些动作功能,按固定程序抓取、搬运物件或操作工具的自动操作装置。代机械臂能够按事先示教的位置和姿态重复地执行动作。目前,国际上使用的机械臂大多仍是这种工作方式。人脸肖像绘制机器人是当今的热点研究方向之一,基于机器视觉的技术在生产和生活等各个方面都有广泛的应用。本项目基于Arduino开发板,通过蓝牙控制摄像头,在后台对人脸进行艺术化处理。
3.2创新描述
外接摄像头搭载在可控的机械臂上,通过调节机械臂来调控摄像头朝向,以寻找佳的取图角度。当找到合适角度后进行拍照并将照片存储在后台,进而识别程序可以自动识别图片中的人脸,并进行的器官识别,进行艺术化处理。
与网上常见的处理方法相比,本项目的程序可以自动识别图片相关部分并进行处理,不需要额外的人为调控,节约了时间与人力成本。另外,处理后的彩图效果较为美观,对于边缘部分与细节的处理比较好。
3.3功能及总体设计
本作品主要分为三部分进行设计: 可自由调控的机械臂与摄像头; 图像采集程序; 人脸识别与图像处理程序。通过控制机械臂的转动可以调节摄像头角度; 图像采集程序可以通过摄像头进行拍照; 人脸识别与图像处理程序可以对已拍下的照片进行艺术化处理。搭载摄像头的机械臂可以在人工操控下调节方向,寻找一个合适的角度进行拍照; 图像采集程序可以实时显示摄像头拍摄的内容,以确定拍照时存储照片; 人脸识别与图像处理程序可以读取拍下的照片并对照片中的人脸进行识别,地分析并提取出人脸器官轮廓后进行预设的艺术化处理。
3.3.1功能介绍
人脸识别与图像处理程序可以读取预定目录中的图片,并识别图片中的人脸。当图中有人脸时,程序可以继续运行并地识别出图中的左眼、右眼、鼻子与嘴巴。在识别完五官后,可以按照设定的方法对图片进行处理并输出处理好的图片。
3.3.2总体设计
要实现上述功能需要将作品分成输入与处理两部分进行设计。输入部分选用基于Arduino开发板可自由转动的机械臂搭载USB摄像头进行图像采集; 处理部分由基于OpenCV的库文件完成。
1. 整体框架图
项目整体框图如图31所示。
图31整体框架图
2. 系统流程图
系统流程图如图32所示。
图32系统流程图
3. 总电路图
系统总电路图如图33所示。
图33总电路图
扩展板与Arduino开发板直接连接,底部旋转舵机连接扩展板的9引脚,右边舵机接5引脚,
左边舵机接6引脚。蓝牙模块的T、R、G和V 4个引脚直接与扩展板对应的引脚相连。
3.3.3模块介绍
本项目包括机械臂模块,图像采集模块、人脸识别模块、图像预处理模块和添加文字模块。下面对各模块的功能和相关代码进行介绍。
1. 机械臂模块
1) 功能介绍
通过编程和Arduino开发板的控制,完成对USB摄像头的蓝牙控制,为获取不同角度的照片,提供角度的旋转等功能。可通过手机控制机械臂转动,由蓝牙进行通信。安装APP ServoControl,打开APP后,选取HC06蓝牙编号,实现手机与舵机的连接,手机操控界面如图34所示,通过拖动滑块可调节舵机角度。
图34舵机控制界面
2) 相关代码
#include'CommProtocolData.h'//通信协议
BYTE buf_le= 0;
BYTE buffer[10];
void PrintChar(BYTE c)
{
Serial.print(c);
}
void copyBuf(BYTE data)
{
for (int i = 0; i
data[i] = buffer[i];
} //写入二进制数据(data,buf_len)到串口
}
void InitComm(int Baud)
{
Serial.begin(Baud);
}
BYTE GetBuffer(BYTE data)
{
while (Serial.available)
{
buffer[buf_len] = Serial.read;
//串口输出数据函数,写二进制数据到串口
buf_len++;
}
returbuf_len;
}
BYTE GetFrameDataPart(BYTE data)
{
//串口输出数据函数,写二进制数据到串口
GetBuffer(data);
if ((buf_le>= 8) && (buffer[buf_le- 1] == 0X0A))
{
copyBuf(data);
for (int i = 6; i
if (data[i] == 0X0D)
{
data[9] = i;
break;
}
}
data[1] -= '0';
data[3] -= '0';
data[4] -= '0';
data[5] -= '0';
if (data[9] == 7)
{
data[6] -= '0';
}
buf_le= 0;
retur1;
}
else
{
retur0;
}
}
void ClearBuffer
{
buf_le= 0;
}
#include'def.h'
#include
#ifndef MEM_H_
#defineMEM_H_
#defineMEM_LEN 512
#defineMEM_START 0x10
#defineMEM_ENDMEM_LEN
BYTE Write_section(uint16_t addr, BYTE buf, BYTE len); //设定舵机旋转角度
BYTE Read_section(uint16_t addr, BYTE buf, BYTE len); //读取舵机旋转角度
BYTE Save_toE2PROM(Servo_info pInfo); //保存舵机的旋转模式
BYTE Read_fromE2PROM(Servo_info pInfo); //读取保存舵机的旋转模式
BYTE Write_section(uint16_t addr, BYTE buf, BYTE len) //设定舵机旋转角度
序言