开发者书库:Arduino案例实战 pdf下载pdf下载

开发者书库:Arduino案例实战百度网盘pdf下载

作者:
简介:本篇提供书籍《开发者书库:Arduino案例实战》百度网盘pdf下载
出版社:清华大学出版社京东自营官方旗舰店
出版时间:2019-01
pdf下载价格:0.00¥

免费下载


书籍下载


内容介绍

内容简介

本书系统论述了Arduino开源硬件的架构、原理、开发方法及14个完整的项目设计案例。本书共15章,内容包括Arduino设计基础、LED多模式显示时钟项目设计、机械臂控制图像识别项目设计、基于Mathematica的自动接球系统项目设计、蓝牙遥控四自由度可自动避障机器人项目设计、遥控智能四驱车项目设计、电机合奏团项目设计、教学电子琴项目设计、微型激光雕刻机项目设计、遥控吸尘器项目设计、写字报时机器人项目设计、棋盘小游戏之守护绿色项目设计、炮弹发射车项目设计、球形机器人项目设计和多功能蓝牙小车项目设计。
在编排方式上,全书侧重对创新产品的项目设计过程进行介绍,分别从需求、分析、设计与实现等角度论述硬件电路、软件设计、传感器和功能模块等,并剖析产品的功能、使用、电路连接和程序代码等。为便于读者高效学习,快速掌握Arduino开发方法,本书配套提供项目设计的硬件电路图和程序代码,可供读者举一反三,二次开发。
本书可作为高校电子信息类专业“开源硬件设计”“电子系统设计”“创新创业”等课程的教材,也可以作为创客及智能硬件爱好者的参考用书,还可作为从事物联网、创新开发和设计专业人员的技术参考书。

作者简介

李永华 现执教于北京邮电大学,拥有超过10年的嵌入式开发经验,致力于物联网和智能硬件的研究开发工作。在教学中以兴趣为导向,激发学生的创造性;以素质为基础,提高自身教学水平;以科研为手段,促进教学理念转变。通过信息工程专业综合改革,探索了以“学生学为中心”的教学模式,营造生动活泼的学习方法,提高学生独立思考问题、发现问题、解决问题的能力,激发学生的创造激情。在研发及教学实践中指导学生实现200余个创新案例,并指导着一支物联网开发团队,曾在物联网、开源硬件等技术领域进行了多场学术报告,并且出版了《AllJoyn技术原理及物联网程序开发指南》《Arduino实战指南——游戏开发、智能硬件、人机交互、智能家居与物联网设计30例》《Arduino软硬件协同设计实战指南》等多部物联网技术方面的著作。

目录

目录
第1章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元件清单
第10章遥控吸尘器项目设计
10.1项目背景
10.2创新描述
10.3功能及总体设计
10.3.1功能介绍
10.3.2总体设计
10.3.3模块介绍
10.4产品展示
10.5故障及问题分析
10.6元件清单
第11章写字报时机器人项目设计
11.1项目背景
11.2创新描述
11.3功能及总体设计
11.3.1功能介绍
11.3.2总体设计
11.3.3模块介绍
11.4产品展示
11.5故障及问题分析
11.6元件清单
第12章棋盘小游戏之守护绿色项目设计
12.1项目背景
12.2创新描述
12.3功能及总体设计
12.3.1功能介绍
12.3.2总体设计
12.3.3模块介绍
12.4产品展示
12.5故障及问题分析
12.6元件清单
第13章炮弹发射车项目设计
13.1项目背景
13.2创新描述
13.3功能及总体设计
13.3.1功能介绍
13.3.2总体设计
13.3.3模块介绍
13.4产品展示
13.5问题及故障分析
13.6元件清单
第14章球形机器人项目设计
14.1项目背景
14.2创新描述
14.3功能及总体设计
14.3.1功能介绍
14.3.2总体设计
14.3.3模块介绍
14.4产品展示
14.5故障及问题分析
14.6元件清单
第15章多功能蓝牙小车项目设计
15.1项目背景
15.2创新描述
15.3功能及总体设计
15.3.1功能介绍
15.3.2总体设计
15.3.3模块介绍
15.4产品展示
15.5故障及问题分析
15.6元件清单
参考文献

精彩书摘

  第3章
  机械臂控制图像识别项目设计
  第3章机械臂控制图像识别
  设计者:刘泽萱马铭阳
  3.1项目背景
  本章根据刘泽萱、马铭阳项目设计整理而成。
  机械臂是一类能够模仿人手臂的某些动作功能,按固定程序抓取、搬运物件或操作工具的自动操作装置。第一代机械臂能够按事先示教的位置和姿态重复地执行动作。目前,国际上使用的机械臂大多仍是这种工作方式。人脸肖像绘制机器人是当今的热点研究方向之一,基于机器视觉的技术在生产和生活等各个方面都有广泛的应用。本项目基于Arduino开发板,通过蓝牙控制摄像头,在后台对人脸进行艺术化处理。
  3.2创新描述
  外接摄像头搭载在可控的机械臂上,通过调节机械臂来调控摄像头朝向,以寻找最佳的取图角度。当找到合适角度后进行拍照并将照片存储在后台,进而识别程序可以自动识别图片中的人脸,并进行精确的器官识别,进行艺术化处理。
  与网上常见的处理方法相比,本项目的程序可以自动识别图片相关部分并进行处理,不需要额外的人为调控,节约了时间与人力成本。另外,处理后的彩图效果较为美观,对于边缘部分与细节的处理比较好。
  3.3功能及总体设计
  本作品主要分为三部分进行设计: 可自由调控的机械臂与摄像头; 图像采集程序; 人脸识别与图像处理程序。通过控制机械臂的转动可以调节摄像头角度; 图像采集程序可以通过摄像头进行拍照; 人脸识别与图像处理程序可以对已拍下的照片进行艺术化处理。搭载摄像头的机械臂可以在人工操控下调节方向,寻找一个合适的角度进行拍照; 图像采集程序可以实时显示摄像头拍摄的内容,以确定拍照时存储照片; 人脸识别与图像处理程序可以读取拍下的照片并对照片中的人脸进行识别,精确地分析并提取出人脸器官轮廓后进行预设的艺术化处理。
  3.3.1功能介绍
  人脸识别与图像处理程序可以读取预定目录中的图片,并识别图片中的人脸。当图中有人脸时,程序可以继续运行并精确地识别出图中的左眼、右眼、鼻子与嘴巴。在识别完五官后,可以按照设定的方法对图片进行处理并输出处理好的图片。
  3.3.2总体设计
  要实现上述功能需要将作品分成输入与处理两部分进行设计。输入部分选用基于Arduino开发板可自由转动的机械臂搭载USB摄像头进行图像采集; 处理部分由基于OpenCV的库文件完成。
  1. 整体框架图
  项目整体框图如图31所示。
  图31整体框架图
  2. 系统流程图
  系统流程图如图32所示。
  图32系统流程图
  3. 总电路图
  系统总电路图如图33所示。
  图33总电路图
  扩展板与Arduino开发板直接连接,底部旋转舵机连接扩展板的9引脚,右边舵机接5引脚,
  左边舵机接6引脚。蓝牙模块的T、R、G和V 4个引脚直接与扩展板对应的引脚相连。
  3.3.3模块介绍
  本项目包括机械臂模块,图像采集模块、人脸识别模块、图像预处理模块和添加文字模块。下面对各模块的功能和相关代码进行介绍。
  1. 机械臂模块
  1) 功能介绍
  通过编程和Arduino开发板的控制,完成对USB摄像头的蓝牙控制,为获取不同角度的照片,提供角度的旋转等功能。可通过手机控制机械臂转动,由蓝牙进行通信。安装APP ServoControl,打开APP后,选取HC06蓝牙编号,实现手机与舵机的连接,手机操控界面如图34所示,通过拖动滑块可调节舵机角度。
  图34舵机控制界面
  2) 相关代码
  #include"CommProtocolData.h"//通信协议
  BYTE buf_len = 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++;
  }
  return buf_len;
  }
  BYTE GetFrameDataPart(BYTE *data)
  {
  //串口输出数据函数,写二进制数据到串口
  GetBuffer(data);
  if ((buf_len >= 8) && (buffer[buf_len - 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_len = 0;
  return 1;
  }
  else
  {
  return 0;
  }
  }
  void ClearBuffer()
  {
  buf_len = 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) //设定舵机旋转角度
  ……

前言/序言

  前言
  物联网、智能硬件和大数据技术给社会带来了巨大的冲击,个性化、定制化和智能化的硬件设备成为未来的发展趋势。中国制造2025计划、德国的工业4.0及美国的工业互联网都是将人、数据和机器连接起来,其本质是工业的深度信息化,为未来智能社会的发展提供制造技术基础。
  在“大众创业、万众创新”的时代背景下,人才的培养方法和模式也应该满足当前的时代需求。依据当今信息社会的发展趋势,结合Arduino开源硬件的发展及智能硬件的发展要求,采取激励创新的工程教育方法,培养可以适应未来工业4.0发展的人才就显得相当重要。因此,笔者试图基于创新工程教育的基本方法,并将其提炼为适合我国国情、具有自身特色的创新实践教材。本书对实际教学中应用智能硬件的创新工程教学经验进行总结,包括具体的创新方法和开发案例,希望对教育教学及工业界有所帮助,起到抛砖引玉的作用。
  本书的内容和素材主要来源于作者所在学校近几年承担的教育部和北京市的教育教学改革项目和成果,也是北京邮电大学信息工程专业的同学们创新产品的设计成果。书中系统地介绍了如何利用Arduino开发平台进行产品开发,包括相关的设计、实现与产品应用,主要内容包括Arduino设计基础及项目开发案例,涉及智能控制类开发案例、生活便捷类开发案例、物联网开发案例、人机交互类开发案例及其他创意类开发案例。
  本书由北京市教育委员会人才培养共建项目(教学名师)资助。本书的编写得到了教育部电子信息类专业教学指导委员会、信息工程专业国家第一类特色专业建设项目、信息工程专业国家第二类特色专业建设项目、教育部CDIO工程教育模式研究与实践项目、教育部本科教学工程项目、信息工程专业北京市特色专业建设、北京市教育教学改革项目、北京邮电大学教育教学改革项目(2017JY04)的大力支持,在此一并表示感谢!
  李和禹、陈河泉、陈向梅、张秋彤、李昕烨、张国利参与了本书部分内容的编写。同时,感谢林家儒教授的鼎力支持和悉心指导,感谢郑铖、谭扬、黄旭新、顾铁玥、高凡石、陈佳丰等研究生的大力协助,感谢北京邮电大学信息工程专业所有同学,感谢父母、妻儿在精神上给予的支持与鼓励,使本书得以问世。
  欢迎广大读者加入开源硬件学习,以便获取本书配套资源,进行学习交流。
  由于作者水平有限,书中不妥之处在所难免,衷心希望各位读者多提宝贵意见及具体的整改措施,以便作者进一步修改和完善。
  李永华于北京邮电大学