• 上海合作组织青岛峰会举行 2019-04-20
  • 遭遇隐形歧视 就业权益谁来维护 2019-04-20
  • 杨立新解读2018年天津市《政府工作报告》--天津频道--人民网 2019-04-19
  • 【北京海之沃车型报价】北京海之沃4S店车型价格 2019-04-19
  • 让个体诚信有力推动社会诚信 2019-04-13
  • 习近平会见巴基斯坦总统侯赛因 2019-04-13
  • 罗亦农:“残躯何足惜,大敌正当前” 2019-03-21
  • 由进口至出口再至走向世界,这一路着实不易,其中少不了无数位科研人员的奉献与牺牲。 2019-03-21
  • 查看: 4495|回复: 17
    打印 上一主题 下一主题

    [项目分享] 自制Arduino最小系统板,集成N多种功能??!赶快来围观吧》》

    [复制链接]
    本帖最后由 2877137721 于 2018-11-14 19:51 编辑

    前文:
            最近想做点??氐男⊥婢?,所以一直在寻找一款实用的开发板(最好是兼容Arduino的,因为我只会玩arduino,对于其他单片机编程烧写什么的一概不知道。。。),所以苦苦寻找了许久,然后发现了下面两款板子:号称世界上最小的arduino:基于ATTINY85的主板以及DF家的beetle。这两块板子体积都挺小的beetle(20*22mm)以及attiny85(23*18mm),功能上来说肯定Beetle更加优秀,但是价格略高。便宜的attiny85仅有的6个端口并不够我使用。。而且对于一些项目来说,对于主板的体积还是有一定要求的,这两块板子搭配上扩展板之后可能过于庞大(而且市面上还找不到这样的扩展板,DF家到是出了一块,但仅仅是将所有引脚引出)。于是纠结好久之后,按捺不住想自己画板子了,于是有了下文。

    (上面是两种市面上可以购买到的最小的Arduino板)

                                                                        第一部分
           选取自己想要的功能是十分必要的,俗话说鱼和熊掌不可兼得,画电路板也是一样,不可能一块小小的板子上啥功能都有,所以先要明确自己的使用环境以及所需要的功能?。?!:victory:
    我的使用环境:
           一些无线??氐耐婢呋蛘?a target="_blank" class="relatedlink">机器人上,体积上越小越好,这些玩具一般是3.7V锂电池供电的,而且驱动方式一般是以电机或者舵机为主,一般至少3路电机驱动,当然要有可以控制玩具灯光的接口,因为这样比较炫酷,嘻嘻:lol。
          
           有了使用环境,那么需要的功能就很明了了!下面就是我列举的一些功能:
    1.首先最主要的是??兀。。ㄖ氐?!:P),所以一个给无线通讯??樵ち舻慕涌谑亲钪匾?,同时呢,给无线??楣┑绻ぷ饕惨龊茫。。ú蝗还┑绲缪共还坏幕拔尴吣?槭涑龅氖菥吐业袅?,然后整个单片机就傻掉了。。。。然后就。。。:'(


    2.供电方式是3.7V锂电池,所以一路电源升压电路是肯定必要的啦,这个电路可以将锂电池的电源升压到5V之后输出给单片机使用的。那么,电池玩着玩着没电了怎么办?这时候有个电压报警器就是很方便的了,他可以很好的?;の颐堑牡绯夭换峁诺?!所以,划重点??!:curse:锂电池供电部分我们需要一个升压电路和一个电压报警器电路。


    3.说到电源的问题,是不是我们日常见到的电压有两种呢?一种是3.3V,一种是5V,有些芯片工作需要5V但是有的只要3.3V。你可能会问两个不就是差1.7V吗,接上去也没多大事,然而事实是这个芯片可能会活不久。。(不要问我怎么知道的)因此,为了兼顾多种芯片,我决定多加上输出电压3.3V的稳压电路。


    4.驱动方面,我说到主要是以舵机和电机为主,舵机可能不需要驱动(直接接PWM输出就好了),但是电机是必须要接驱动的(曾经有直接用单片机端口驱动电机的,后来他就弃坑了。。。)而且接上驱动??橹蟮缁箍梢缘魉僖约暗鹘谡醋?。所以至少3路的驱动以及一路或者多路的舵机接口是必要的。


    5.控制灯光的接口就比较好弄了,直接怼上单片机的I/O口即可(注意单片机I/O口控制一般小的led还是可以的,谁要控制什么1w或者10w的大功率led灯珠就是作死了。。。)


    6.需要带有一些常规的数字接口或者模拟输入接口(这个数量当然是越多越好,方便后期扩展)

    整理了一下,我列出了一个表格:


           列出来了需要的功能,我感觉整个工作就完成了一大半,有选择恐惧症的我在决定哪些功能时候真的是非常头痛,然而现在感觉好了许多,设计的方向也就比较明了了。

                                接下来就是纠结的选器件了::Q
    1.片机的话我是真的除了atmel系列之外都不会,所以我毫不犹豫的选了Atmega328P-AU,这个芯片也是Arduino nano上使用的,由于需要体积小巧的要求,所以我选择的是贴片TQFP封装的。而且这个芯片买回来烧写上bootloader之后就可以使用Arduino ide来开发了,这也是我选择它的原因。


    2.单片机选了当然需要一个Rs232转串口芯片给Atmega328p写程序啊,但是我并不想给整个板子加上一个电平转换芯片,一个是因为这样会占用本来就小的版面空间和多出一个usb接口,我还不如使用类似Arduino pro mini的那种方案,使用外置的RS232转TTL芯片去给328p写固件,这样可以最大化的节省板面空间(正经脸.JPG)


    3.对于无线??榈难≡窨梢运凳欠浅V匾?,稳定的??榫龆送ㄑ兜闹柿渴欠褡愎桓?,也决定了??氐难映僖约笆指?。这部分我木有太多纠结,因为目标非常明显,就是NRF24L01,用过的都说好。而且使用SPI协议与Atmega328p通讯,速度快且稳定。这里放一张NRF24L01的图:



    4. 5V升压的电路的设计我取自一款升压??榈牡缏?,我在网上找到了原理图,如下:芯片使用的是E50D,输入电压0.9V-5V,恒定输出电压5V,最大输出电流超过500ma,足够我使用了。




    5.3.3V的稳压芯片我使用的是MIC5205-3.3,MIC5205是一款LDO芯片(低压差线性稳压芯片)输入电压与输出电压之间最少可以只有350mv的电压差,对于电源不太稳定的电路实在再合适不过,最大输入电压16V,最大输出电流150ma,恒定输出电压3.3V。电路图如下:


    6.电机驱动我并没有选择使用集成的电机驱动IC,因为我看了看封装都过于庞大,不适合这种小体积项目,而且我并不太需要双向的驱动,只用单向的即可。挑来挑去,我决定使用最简单的mos管驱动电机,便宜而且实用。mos管的话我使用的是nmos管,不建议使用pmos管的原因是pmos管的导通内阻较大,会造成很大的损耗。对着数据表格看了半天之后,我看中了AO3400,最大通过电流5.7A,足够使用了。


    7.对于板子我还添加了一路电压输入,因为顾及到有些电池电压在5V以上的情况(例如7V,9V和12V)我的板子也要可以正常工作,于是我添加了一个降压电路,可以将输入的7-12V电压降到5V供给整个系统使用。芯片选的是ME6210A50PG,同样是一款低压差线性稳压芯片,最大输入电压18V,最大输出电流500ma,恒定输出电压5V,电路图如下:



           至此为止,所有的器件都选择完毕了,下面就是细化每个部分的设计以及将电路图画出来。我会介绍一些基本的电路知识给大家,请大家拍砖。:lol:lol

                             第二部分
           对于电路的设计,我主张从大到小,从重要到次要的顺序来设计:这样我们可以搞清楚整个系统的主次关系,方便日后查找问题。
    1.Atmega328P外围电路的设计
             Atmega328p的外围电路着实简单,仅需要几个器件就可以完成(基本上就是晶振电路和复位电路)没有什么好说的,我也省省篇幅,歇一会。。。上图?。?!


    2.NRF24L01接口的设计
            NRF24L01与Atmega328P采用SPI协议进行通讯,所以我将对应的引脚连接到Atmega328P上。在这里我给电源正负极之间接了一个47uf的电解电容,是为了保证电压的稳定(因为NRF24L01对电源的要求还是比较高的)



    3.锂电池升压电路的设计(输入0.9-5V,输出5V)
            整个升压电路其实就只需要几个零件,在这里我说明需要注意的一些事项:选择的电感一定要是功率电感,二极管的话务必使用肖特基二极管(因为E50D的工作频率在300khz左右,所以普通二极管频率没有肖特基二极管这么快)推荐型号是1N5817或者1N5819



    4.3.3V稳压电路的设计(输入5V,输出3.3V)
            首先放上电路图,这个电路没有什么需要的外围器件,仅仅一个电容用来滤波即可



    5.7-12V降压电路的设计(输入7-12V,输出5V)
            这个电路和上一个基本上一样的,就是在输入端上加了一个10uf电容滤波,可以过滤掉一些输入电压的纹波。



    6.电机驱动电路的设计
            对于电机驱动电路,电路图如下。其中单片机的输出信号脚经过一个?;さ缱柚罅釉趍os管的栅极上,同时在mos管的栅极还有一个电阻接地,这是因为三极管的栅极存在结电容,所以这个电阻给mos管关断时候提供了一条电子释放通道。对于电动机的这类感性负载,用mos管控制开关的时候容易产生较大的感生电动势,容易击穿mos管,于是我添加了一个续流二极管在电动机的两端,来减少反向电压。同样的,这个二极管尽量选择肖特基二极管,以满足频率要求,我这里采用的是1N5819。



    7.报警电路的设计
            对于这个报警器我想了很久,想过很多方式去控制蜂鸣器的鸣叫,纠结许久之后才定下来这个方案,采用Atmega328p采集电池电压数据,通过一个数字口来控制蜂鸣器的鸣叫。对于电压采集电路,因为输入的电压电压低于5V,所以直接使用Atmega328p的模拟输入端口读取电压数据。
            关于控制蜂鸣器的鸣叫,我选择的是有源蜂鸣器,这种蜂鸣器只需要给一个高低电平信号即可发出声音,但是声音频率是固定的,若是选择无源蜂鸣器,我还需要给它输入PWM信号,这样做会占用一个PWM口,所以权衡之下还是使用有源蜂鸣器。
            但是纠结的我又想了想,要是没电的时候一直响岂不是很烦人?我更希望是响一声,停几秒,再响一声,再停几秒。。这种的,于是我花了点时间回顾了单稳态触发器(我真的是给自己找坑挖。。。)最后设计出来如下电路:


           这里采用555芯片制作了一个单稳态触发器,触发器的输出口通过一个三极管控制蜂鸣器,需要注意的是蜂鸣器同样属于感性负载,务必接上一个续流二极管,这个二极管由于工作频率较低,没有什么限制。但是我还是选用了一个肖特基二极管(并不想多买一种二极管)555芯片的reset端我连接上了Atmega328p的四号端口,用这个脚的信号来控制整个蜂鸣器电路是否工作。这个电路即可控制蜂鸣器响一下,停一下。

    8.其他输出接口的设计
           首先是给单片机下载程序的接口,如图


          然后是两种电源输出的接口(3.3V和5V)

           再就是4路模拟量输入接口(在这里我预留了Atmega328p的i2C接口A4和A5,方便连接其他使用i2C的设备)

           最后就是6路的数字输出口,其中D3,D5,D6,D9,D10 5路为PWM和I/O复用端口,方便连接舵机,接入其他电机驱动板或者连接其他传感器设备。D2脚作为Atmega328p的外部中断端口,可以控制单片机的中断操作。但是注意,D3,D5,D6口也用来控制板载的mos管,所以当使用板载mos管控制电机时,这几个管脚请不要使用。

                                           总结
          至此为止,整个电路就设计完毕了,接下来就需要进行PCB电路板的排版以及布线,这个星期有点小忙,关于接下来的设计我会在下周放出,请大家期待,如果有什么关于电路设计以及PCB板的问题,欢迎大家提问,我会认真的回复你们。。
          最后,感谢你们阅读我写的这么多文字,希望我此次做的电路可以对你们提供一些帮助和引导,谢谢。:handshake:handshake



    本帖被以下淘专辑推荐:

    • · |主题: 32, 订阅: 1
    沙发

    铁熊  版主

    发表于 2018-11-15 09:49:28

    点个赞
    板凳

    微笑的rockets  NPC

    发表于 2018-11-15 10:31:37


    点赞请点在人家帖子的下方,那里有个按钮。
    地板

    微笑的rockets  NPC

    发表于 2018-11-15 10:32:36

    这个文章专业程度很好,非常不错。
    可以看到我们是如何进行需求的工程实现的。
    5#

    2877137721  初级技师
     楼主|

    发表于 2018-11-15 16:14:12


    继续努力完成设计中?。?!
    6#

    2877137721  初级技师
     楼主|

    发表于 2018-11-15 16:17:25

    微笑的rockets 发表于 2018-11-15 10:32
    这个文章专业程度很好,非常不错。
    可以看到我们是如何进行需求的工程实现的。 ...

    哈哈哈,我也是第一次设计,有很多不懂的地方请多指教
    7#

    gray6666  高级技匠

    发表于 2018-12-7 15:40:15

    好赞。。。。。。。。。。。。。。。。。。。。
    8#

    #嘉诚欧巴#  初级技师

    发表于 2018-12-8 13:12:01

    不错,继续加油,建议增加一些G-V-S传感器接口,会更实用些~
    9#

    2877137721  初级技师
     楼主|

    发表于 2018-12-9 15:35:45

    #嘉诚欧巴# 发表于 2018-12-8 13:12
    不错,继续加油,建议增加一些G-V-S传感器接口,会更实用些~

    确实板子上这样的接口过少,但是由于板子大小限制,没法添加那么多。在最新的帖子中,我添加了一路舵机的接口,连接在Atmega328的10号引脚,既可以做舵机接口也可以用来处理传感器的信号
    10#

    robo027  初级技匠

    发表于 2018-12-11 11:33:46

    如无必要,勿增实体,
    ble romeo mini楼主怎么看
    11#

    2877137721  初级技师
     楼主|

    发表于 2018-12-11 23:16:35

    robo027 发表于 2018-12-11 11:33
    如无必要,勿增实体,
    ble romeo mini楼主怎么看

    东西确实好,但是有点小贵。。。而且不知道他们用的什么电源方案,我感觉我的板子优点可能就是小一点吧(37mm*32mm),但是可能接口不是标准的三线接口(尽管我已经尽量将所有常用的接口全部留出)。再就是我的板子上带有报警,这点可能市面上少有最小板带有了吧。在程序下载方面我需要用到一个ch340???,但是romeo不用,后期我可能会考虑加一个串口转ttl电路上去,尽量保持大小不变吧。。。关于他的芯片方案的话还是不错的,Ti的蓝牙芯片用的还挺广,而且是集成的,这点很不错。反观我的板子,我想集成NRF24l01上去,但是由于不会画PCB天线,只能作罢。。。总结一下,我的板子和romeo可能主攻方向不同,我的准备用在??乩嘞钅可系?,比如??爻狄?卮?,??鼗魅耸裁吹?。。。而romeo主攻在手机控制的一些项目上,可能方向不太一样,不过我倒是建议dfrobot可以基于乐鑫esp8266开发一个板子,应为romeo上有两块芯片,一片蓝牙一片atmega328,有些浪费了。用esp8266就可以集成wifi与单片机功能了,正好还可以用arduino环境开发,一举多得。
    12#

    robo027  初级技匠

    发表于 2018-12-16 18:26:14

    2877137721 发表于 2018-12-11 23:16
    东西确实好,但是有点小贵。。。而且不知道他们用的什么电源方案,我感觉我的板子优点可能就是小一点吧( ...

    原来如此,24L01楼主说的比较友好,上手这个无线??槲胰疵簧倩ㄊ奔?编译问题,配对通信问题,找到对的库和控制好电压是关键.
    13#

    2877137721  初级技师
     楼主|

    发表于 2018-12-18 15:11:36

    robo027 发表于 2018-12-16 18:26
    原来如此,24L01楼主说的比较友好,上手这个无线??槲胰疵簧倩ㄊ奔?编译问题,配对通信问题,找到对的库和控 ...

    关于24L01这里有篇帖子讲的很不错,你可以看看
    https://blog.csdn.net/ling3ye/article/details/53054959
    14#

    蛋蛋无虚发  学徒

    发表于 2018-12-18 20:27:10

    很赞  对我们这种非电子专业的arduino爱好者也很有帮助??!
    15#

    2877137721  初级技师
     楼主|

    发表于 2018-12-20 23:09:32

    蛋蛋无虚发 发表于 2018-12-18 20:27
    很赞  对我们这种非电子专业的arduino爱好者也很有帮助??!

    一起学习,一起玩:lol
    16#

    1528  学徒

    发表于 2019-1-29 08:46:32

    完习了!完习了!完习了!完习了!完习了!
    17#

    静默  学徒

    发表于 2019-1-29 18:56:34

    厉害了学习学习
    18#

    破风而来  初级技师 来自手机

    发表于 2019-3-18 11:19:16

    2877137721 发表于 2018-11-14 18:00
    前文:
            最近想做点??氐男⊥婢?,所以一直在寻找一款实用的开发板(最好是兼容arduino的,因为我只 ...

    挺厉害的。电路知识还不少,5v到3.3最简单的串联2个二极管就可以了?;蛘哂胊ms1117,就是体积大点。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    为本项目制作心愿单
    购买心愿单
    心愿单 编辑
    wifi气象站

    硬件清单

    btnicon
    我也要做!
    点击进入购买页面
    上海智位机器人股份有限公司 沪ICP备09038501号-4

    © 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

    浙江6加1开奖结果
  • 上海合作组织青岛峰会举行 2019-04-20
  • 遭遇隐形歧视 就业权益谁来维护 2019-04-20
  • 杨立新解读2018年天津市《政府工作报告》--天津频道--人民网 2019-04-19
  • 【北京海之沃车型报价】北京海之沃4S店车型价格 2019-04-19
  • 让个体诚信有力推动社会诚信 2019-04-13
  • 习近平会见巴基斯坦总统侯赛因 2019-04-13
  • 罗亦农:“残躯何足惜,大敌正当前” 2019-03-21
  • 由进口至出口再至走向世界,这一路着实不易,其中少不了无数位科研人员的奉献与牺牲。 2019-03-21