教程目标:

欢迎来到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单片机制作手机系列教程-基础篇相关推荐

  1. html5游戏制作入门系列教程(八)

    今天,我已经准备了一个新的游戏 – SkyWalker.基本上 – 这是用飞飞行模拟射击类游戏.我们的目标到达终点线.这个游戏还有其它一些特点,例如使用飞机运动动画和爆炸动画,多按键处理(例如同时移动 ...

  2. html5游戏制作入门系列教程(七)

    我们继续这一系列文章,使用HTML5的canvas组件进行游戏开发.我们将要更新完善我们的第4课html5游戏制作入门系列教程(四)的游戏实例,并增加了火球,敌人和碰撞检测等功能模块.所以,现在我们的 ...

  3. html5游戏制作入门系列教程(六)

    我们继续这一系列文章,使用HTML5的canvas组件进行游戏开发.今天,我们将创建我们的第一个完整的游戏 – 打砖块.在这一课中,我会告诉你如何检测基本的碰撞和HTML5的本地存储.您可以使用鼠标和 ...

  4. html5游戏制作入门系列教程(五)

    我们继续这一系列文章,使用HTML5的canvas组件进行游戏开发.今天,这是相当完整的游戏例子 – 它会回顾经典的旧电脑游戏 – 坦克大战.我会教你使用阵列地图并教你如何检测活动对象(坦克)与环境( ...

  5. html5游戏制作入门系列教程(四)

    今天,我们继续一系列文章,使用HTML5的canvas组件进行游戏开发.今天我们要学习下元素:声音控制与动画.在我们的演示中,你会 看到一个飞龙.我们会听到持续的翅膀拍打的声音(我们将循环这个声音), ...

  6. html5游戏制作入门系列教程(三)

    今天,我们继续一系列文章,使用HTML5的canvas组件进行游戏开发.接下来,我们将开始学习如何添加动画以及一些更有趣的功能.我 们的演示将包括一艘太空船飞越时空,并使用一个新的游戏元素 – 对话框 ...

  7. html5游戏制作入门系列教程(二)

    今天,我们继续html5游戏制作入门系列的系列文章.今天,我们将继续基础知识(也许甚至是高级技巧的基础).我要告诉你如何具有渐变颜色填充对象,绘制文本,使用自定义的字体绘制文本,基本的动画,以及最重要 ...

  8. 【视频教程】帝国CMS制作网站系列教程08—单页模板的制作

    作为一个程序员,搭建一个自己的博客网站是件非常容易的事情,但是作为很多非程序员非计算机专业的学习者来讲,可能就需要花点时间进行学习,而如果你想通过自学来学习怎么制作一个属于自己的网站的话,那这套帝国C ...

  9. html5游戏制作入门系列教程(一)

    从今天开始,我们将开始HTML5游戏开发一系列的文章.在我们的第一篇文章中,我们将讲解在画布canvas上的基础工作,创建简单的对象,填充和事件处理程序.另外,要注意在这个阶段中,我们不会立即学习We ...

  10. 【视频教程】帝国CMS制作网站系列教程14—标签模板及标签讲解

    作为一个程序员,搭建一个自己的博客网站是件非常容易的事情,但是作为很多非程序员非计算机专业的学习者来讲,可能就需要花点时间进行学习,而如果你想通过自学来学习怎么制作一个属于自己的网站的话,那这套帝国C ...

最新文章

  1. 架构思维-高业务复杂度系统建设思路
  2. Java 反射调用方法实例,动态动用方法实例
  3. Jquery全选单选功能
  4. 50道Java线程面试题分析及答案
  5. 大数据技术有什么优势
  6. python 解决for读取文件出现的换行符
  7. mybitis SQL insert into 多条数据
  8. 数据结构 实验1——一元多项式的表示与相加
  9. 易撰微信编辑器使用指南!
  10. 如何制作WIFI二维码,实现手机扫一扫快速连接
  11. CPU玩的是效率!超线程双核PK物理三核
  12. Activity 会签
  13. 项目二-成员函数、友元函数和一般函数之区别
  14. [USACO Section 4.4]追查坏牛奶Pollutant Control (最小割)
  15. 如何在C加加的面向对象写石头剪刀布游戏
  16. 程序员简历模版【A4纸正反两面】(20220511)
  17. vue 项目 去哪儿
  18. thymeleaf拆分头部(head)显示异常问题
  19. centos7 linux ffmpeg 改变 修改 视频 帧频 shell 懒人系列-17
  20. Flowable实战(二):表结构以及变量表单介绍

热门文章

  1. WS2811B驱动使用及使用说明应用
  2. Java中this和super的区别
  3. securecrt 上传文件到服务器,如何在SecureCRT下使用Zmodem传输文件
  4. 火狐FireFox浏览器国际版官网下载地址
  5. mid、mif文件转shapefile、geojson等格式的数据
  6. docker搭建pgadmin并挂载
  7. zlog的安装与使用
  8. 对JSP内置对象的部分总结
  9. AD14、20使用技巧学习记录
  10. php 时间转换时间戳_php时间戳与date格式转换