【YY手机】用AVR单片机制作手机系列教程-基础篇
教程目标:
欢迎来到YY手机制作教程。通过本教程,我将一步一步指导你制作一部YY手机,并且提供有详细注释的源代码供你参考。你将得到一部具有如下功能的手机:
·发送英文短信
·打电话、接电话
·发送邮件
·拍照并作为附件发送邮件
YY手机也有很多不完善的地方,比如:不可接收短信;由于使用的模块的限制,只有音频输入没有输出(打电话只能说不能听);打电话麦克风噪音大(也就是对方听不清);邮件不能收;所有功能仅支持英文。这就是为什么我们叫他YY手机,因为他不是一部称职的手机,只是用来搞着玩的。当然了,欢迎你花点脑子和时间解决上述中的问题,让他变得称职,干掉诺基亚功能机。
YY手机既然不是一部好手机,那能做什么用呢?这就很多了。从上述功能中可以发现,他可以用短信向外发送数据,可以用网络收发数据。因此你可以用他做远程通信模块。你可以加到你的小车上,就变成了远程控制的小车并且可以远程传输第一视角视频。YY手机有很多潜力,我们期待你去挖掘。
教程说明:
本教程会教你制作一部手机,但是需要你自己学习相关AVR单片机的编程知识。因此,本教程涵盖的内容有:
·YY手机硬件连接与示例程序解释
·GPRS模块的基础知识与配置使用
·搭建发送邮件的TCP服务器和发送邮件脚本(使用Linux系统和Python语言)。
·搭建接收照片的HTTP服务器和发送带附件的邮件的脚本(使用Linux系统、NodeJS语言和Python语言)。
当然,如果你希望用别的单片机,也可以移植程序。
方案基础:
YY手机的解决方案是基于AVR单片机的,硬件组成包括单片机(ATmega16A即可,当然还有系统板)、GPRS模块(我们使用的是安信可A6C模块)、1602显示屏、矩阵键盘、麦克风(带放大)模块。GPRS模块上集成了摄像头,并且支持输出JPEG格式的图片,这省去了很多成本。
当然你可以使用如下方案:各种单片机 + SIM900A模块(使用最多的GPRS模块) + 可输出JPEG格式的摄像头 + 1602 + 矩阵键盘 + 麦克风。不过本教程仅针对第一种方案。
所以如果你想制作一部令人激动的YY手机,你应当做如下准备:
·软件方面,搭建AVR开发环境。笔者推荐使用Atmel Studio最新版。本软件不仅提供非常用户友好的编程环境,并且支持使用USPISP烧写单片机。配置教程参考我的博文:blog.csdn.net/daqianc/article/details/53199571。此外,笔者建议应当学习AVR的基础知识,包括但不限于:基础I/O操作、矩阵键盘的使用、USART与其中断、1602显示器的使用。推荐一本机械工业出版社的书《AVR单片机入门与速成攻略》。当然,不具备编程知识直接烧写我的程序也是可以做出YY手机的。此外,你还应当学习GPRS模块的使用(即用AT指令控制模块),学习的方法包括看教程和具体的AT指令集;这个过程比较枯燥,我也准备了本模块基础的AT指令,因此你可以跳过这一步。
·硬件方面,准备上述解决方案中的硬件。包括:ATmega16A单片机与其系统板、安信可A6C模块、1602显示器、4x4矩阵键盘、麦克风模块(几块一个,不要使用巨便宜的咪头)、11.0592MHz晶振,以及杜邦线等基础材料。这些硬件应该会花费你不到100元。
OK,第一期教程到此结束。下一章节中,我将详细带你制作YY手机
【YY手机】用AVR单片机制作手机系列教程-基础篇相关推荐
- html5游戏制作入门系列教程(八)
今天,我已经准备了一个新的游戏 – SkyWalker.基本上 – 这是用飞飞行模拟射击类游戏.我们的目标到达终点线.这个游戏还有其它一些特点,例如使用飞机运动动画和爆炸动画,多按键处理(例如同时移动 ...
- html5游戏制作入门系列教程(七)
我们继续这一系列文章,使用HTML5的canvas组件进行游戏开发.我们将要更新完善我们的第4课html5游戏制作入门系列教程(四)的游戏实例,并增加了火球,敌人和碰撞检测等功能模块.所以,现在我们的 ...
- html5游戏制作入门系列教程(六)
我们继续这一系列文章,使用HTML5的canvas组件进行游戏开发.今天,我们将创建我们的第一个完整的游戏 – 打砖块.在这一课中,我会告诉你如何检测基本的碰撞和HTML5的本地存储.您可以使用鼠标和 ...
- html5游戏制作入门系列教程(五)
我们继续这一系列文章,使用HTML5的canvas组件进行游戏开发.今天,这是相当完整的游戏例子 – 它会回顾经典的旧电脑游戏 – 坦克大战.我会教你使用阵列地图并教你如何检测活动对象(坦克)与环境( ...
- html5游戏制作入门系列教程(四)
今天,我们继续一系列文章,使用HTML5的canvas组件进行游戏开发.今天我们要学习下元素:声音控制与动画.在我们的演示中,你会 看到一个飞龙.我们会听到持续的翅膀拍打的声音(我们将循环这个声音), ...
- html5游戏制作入门系列教程(三)
今天,我们继续一系列文章,使用HTML5的canvas组件进行游戏开发.接下来,我们将开始学习如何添加动画以及一些更有趣的功能.我 们的演示将包括一艘太空船飞越时空,并使用一个新的游戏元素 – 对话框 ...
- html5游戏制作入门系列教程(二)
今天,我们继续html5游戏制作入门系列的系列文章.今天,我们将继续基础知识(也许甚至是高级技巧的基础).我要告诉你如何具有渐变颜色填充对象,绘制文本,使用自定义的字体绘制文本,基本的动画,以及最重要 ...
- 【视频教程】帝国CMS制作网站系列教程08—单页模板的制作
作为一个程序员,搭建一个自己的博客网站是件非常容易的事情,但是作为很多非程序员非计算机专业的学习者来讲,可能就需要花点时间进行学习,而如果你想通过自学来学习怎么制作一个属于自己的网站的话,那这套帝国C ...
- html5游戏制作入门系列教程(一)
从今天开始,我们将开始HTML5游戏开发一系列的文章.在我们的第一篇文章中,我们将讲解在画布canvas上的基础工作,创建简单的对象,填充和事件处理程序.另外,要注意在这个阶段中,我们不会立即学习We ...
- 【视频教程】帝国CMS制作网站系列教程14—标签模板及标签讲解
作为一个程序员,搭建一个自己的博客网站是件非常容易的事情,但是作为很多非程序员非计算机专业的学习者来讲,可能就需要花点时间进行学习,而如果你想通过自学来学习怎么制作一个属于自己的网站的话,那这套帝国C ...
最新文章
- 架构思维-高业务复杂度系统建设思路
- Java 反射调用方法实例,动态动用方法实例
- Jquery全选单选功能
- 50道Java线程面试题分析及答案
- 大数据技术有什么优势
- python 解决for读取文件出现的换行符
- mybitis SQL insert into 多条数据
- 数据结构 实验1——一元多项式的表示与相加
- 易撰微信编辑器使用指南!
- 如何制作WIFI二维码,实现手机扫一扫快速连接
- CPU玩的是效率!超线程双核PK物理三核
- Activity 会签
- 项目二-成员函数、友元函数和一般函数之区别
- [USACO Section 4.4]追查坏牛奶Pollutant Control (最小割)
- 如何在C加加的面向对象写石头剪刀布游戏
- 程序员简历模版【A4纸正反两面】(20220511)
- vue 项目 去哪儿
- thymeleaf拆分头部(head)显示异常问题
- centos7 linux ffmpeg 改变 修改 视频 帧频 shell 懒人系列-17
- Flowable实战(二):表结构以及变量表单介绍