小熊板的制作过程


本文主要记录硬件历程。

软硬件开源:little bear

一、引言

回忆:时间发生在2020年初,疫情在家,每天在家做做毕设、准备准备复试、跑跑飞车。在B站刷到了自称为野生钢铁侠的一位UP主—稚晖君,它的 一部作品 技术宅UP耗时三个月,自制B站最强小电视!直接顶上B站热门榜榜首,获赞50w+。我当场就给他一个一键三连以示敬意,过了短短一年,他已经是华为天才少年中的一员,而且此人本科居然是生物工程,果然大佬干啥都强。
制作过程用到的知识:来源于该视频评论区
在这里插入图片描述
整体构想
由于本人技术能力有限、设计经验少、资金不足。反复观看视频后总结出了自己力所能及的技术:学习原子板imx6ull mini的底板部分模块原理图(电源、boot启动、SD卡、USB、串口调试、ov5640摄像头)、使用原子核心板、精心挑选了1.14寸ipslcd小屏幕。

学习历程

  • 研一上半年:大四毕业季复试结束,毕设完成,暑假没事干就学点儿东西(好像是考研后遗症,不学东西感觉心里很慌),花费几百大洋买了原子的imx6ull mini板,对照着开发手册,认识ubuntu(乌班图)的基本命令,之前有32基础,学了一些裸机开发部分,linux系统的基本构成,认识了linus的这么个外国人。开学后才开始学习linux驱动相关知识,接触设备树,学一点儿记个笔记。
    就算记了笔记,过后的知识还是会忘,但是我找到了另一种感觉,一种“技术沉淀”的东西,学完了真的会忘,不过沉淀在你潜意识中的那种直觉一直在提升你的思考能力。 那些linux内核中的启动函数,一层套一层,感觉吃不消,所以那些笔记就都归类为“雨露均沾的知识”,以后用到了起码有个模糊的印象,哈哈哈。
  • 研一下半年:过完年,又长了一岁,青春一去不复返,基础知识沉淀的差不多了,开始撸起袖子加油干!!!利用业余时间,开始有针对性地着手熊熊的软件学习和硬件学习。
    硬件学习
    首先,初步构想是做一个比较小巧的东西,但是具体形状是个什么呢,本来想来个四旋翼那种的板子,后来得知嘉立创画板子10cm以内才5块钱,遂否决。本科时候使用CAD画过皮卡丘的形状,然后AD生成对应的pcd板子,想着看看有什么可爱的小动物呢?在网上搜了搜,果然找到了令自己满意的小熊熊图案。
    接着,电路都添加什么模块呢?第一次自己画板子要处处谨慎,同时又要胆大心细,经过研究原子的电路板原理图,基础的最小系统:imx6ull核心板插座(用现成的,核心板有高速信号,没有钱钱和经验不要尝试)、电源模块boot启动和复位模块这些都要有的。俗话说“有稚晖君的地方就有屏幕”,人机交互方面屏幕自然也不能少,调试还需要串口模块。一台跑系统的小板子还需要联网,这就需要WIFI模块,接口有SDIO和USB两种,但是害怕内存不足,还要加SD卡,WIFI自然只能选择USB接口了,此外加入的摄像头模块是最后的难点,可惜左老师还没有更新摄像头应用的编写,器件选型中的关键电源电路是严格按照原子电路器件挑选的。
    然后,就是动手画原理图和PCB图的过程,花费了一天时间在b站看了AD速成的视频,对AD的基本操作有了初步了解,各种器件摆放、布线规则等小知识都记录在了本栏目下,有的东西忘了可以快速浏览一遍。寒假自己先尝试画了一遍PCB,对整个流程操作了一遍,让4年画板经验的同学指导了一下,对于没有高速信号的电路来说,布线规则不算太严格。这下有了坚持做下去的勇气,为了更熟练画板,对设计的原理图画了第二遍,第二次的过程就很顺利,各种操作也得心应手。
    最后,就是在嘉立创买器件,打板子。器件挑选基本都考虑了成本,前后买了两拨,打板子也是打了两次,第一次画板,难免会出错,第一次打完板发现电源模块的一块电容封装画小了,还好每次只需要5元。
    软件学习
    软件的学习就相对简单了,软件主要是对linux驱动的理解和应用,原子哥的驱动已经很完善了,针对熊熊主要研究的驱动有:屏幕驱动WIFI驱动摄像头驱动。因为都有现成的直接用,唯有屏幕驱动需要自己整,本人只重点研究了屏幕驱动和调试。待更新。。。
    所有驱动完成,上电开机,插上键盘就能命令行操作了。

二、硬件学习设计

1、PCB形状

工具:AutoCAD2020
文件类型:画完后,低版本导出为小熊.dwg,此类型就能被Altium Designer 20导入,绘制对应形状的pcb板。
在这里插入图片描述

2、原理图绘制

原理图的绘制参考了各种技术文档里的模块化方法,绘制顺序是先最小系,再功能模块的方法,原理图的连线决定了pcb以及后续的焊接,所以原理图绘制为画板子的重中之重。
总结

  • 一般和地连在一起的电容都是1uF、100nf等就是为了滤波,防干扰的;
  • 信号之间加几K电阻的就是为了限流。
  • 电源电路一定要多检查几遍,焊完冒烟就jiji。
  • imx6ull核心板有两块USB_OTG,ID线接0-做主机;接1-做从机。本文都做主机,一块用于WIFI模块,一块备用插键盘、U盘等。

第一部分:
在这里插入图片描述
第二部分:
在这里插入图片描述

3、PCB板绘制

原理图画完后就开始向pcb文件中导入器件,中间还需要自动检查一下网络是否连接正常。

  • 摆放器件
  • 连线,信号线设置:8 ~ 12mil 电源线设置:15 ~ 20mil
  • 调整字体大小,大概得40mil左右,查找相似对象-字符类型可以批量处理。
    在这里插入图片描述
  • 铺铜,铜的网络一定要都设置成GND,间隔大概是6mil。
  • 生成3D图看看效果
    在这里插入图片描述
  • 看着差不多就能到处pcb信息了。

4、购买器件

购买器件可谓是省吃俭用,货比三家
尽量找便宜且销量高的买,买器件是个漫长的过程,首先AD导出器件信息,生成详细的清单(报告-Bill of Material)。

  • 主要注意器件的名字、值、封装类型、所需数量、精度等进行购买,在嘉立创买了两次,因为有时候那个器件就一家卖还缺货。
    在这里插入图片描述
  • 买东西时就注意到有两个电容的封装搞错了,所以pcb又要修改。以后一定要买完器件在打板子。
    在这里插入图片描述

5、焊接成品

焊接过程还是要感谢那位拥有4年焊接经验的同学的帮忙!焊接大概花费了一周的时间。期间也遇到了一些问题。

  • 焊接顺序依然是先最小系统部分,再功能模块部分

  • 那种小电阻电容,一开始焊接真的手抖,半天才焊上一个,再加上焊接设备比较稀缺,也没有风枪之类的,导致焊接进度很慢。后期学会了一些技巧,慢慢得心应手了。

  • 最重要的电源模块,12V->5Vsuccess!,接着5V->3.3Vsuccess!!!激动的心,颤抖的手!!!这已经成功一半了。焊接开关的时候,发现买的按钮不是自锁的,这可咋整,跟大佬接了一个蓝色自锁开关,发现开关不是7*7的,后来直接把另外3个脚剪掉才装上了开关。

  • 在焊接核心板、串口之后,想调试一下,看看核心板开机了吗。发现串口调试助手咋没动静呢?用万用表测呀测,发现TTL输出端咋没电压呢,正常通信会有点儿电压的,再一看芯片买成了CH340G(需要外接晶振),画的电路for C,后来在淘宝上买了CH340C(内置晶振,不需输入时钟),更换器件,兴奋地期待成功,调了半天也没出数后来发现波特率没改115200?115200!
    hai~,居然又范弱智了 (本科室友传授的:一hai解千愁)

  • 焊接SD卡部分后,发现SD卡也读不出来了,当时本人早就有了心理准备,因为出些小问题是正常的。看看电路有没有短接?断接?都没有,软件部分也没问题呀?晚上10点了,要回宿舍了,晚上睡不好了,想着难道是核心板插排没焊好?纠结了一晚上,第二天,万用表测呀测,偶然发现SD卡外壳没接地?这正常吗?再测测原子开发板SD卡外壳,咦?接地了,后来明白了,这个SD卡有根信号线,插入SD卡,信号线就跟外壳相接,如此告诉系统,有SD卡插入,才能正常运行,可是原子原理图里的SD卡部分根本没有外壳引脚。解决完问题,本人内心毫无波澜,甚至还有点儿小激动,离胜利又近了一步。

  • 最后焊上两个开关,屏幕焊完插上OK! WIFI连上OK!!,,果然出问题了,屏幕不听使唤了,老是刷新?hai一下。。。晚上10点了,完了,这一晚上又睡不好觉了,又是第二天,连上键盘打字怎么就是都往上跑,在原子开发板上连上键盘,是什么让打的字往上跑呢?是回车呀,在键盘上按住回车也能还原屏幕一直刷新的假象。。。突然就有了印象,看左老师教程时候,他说过,这个按键开关跟回车是连着的,因为系统过10分钟会息屏,需要回车键唤醒,而我的开关部分的电路默认拉高,低电平触发。我一个健步就去看设备树中此引脚的描述,果然,它是高电平触发,这不是大水冲了龙王庙吗。hai~

  • 除了摄像头部分,其他部分都调试良好,不说了,上图:

在这里插入图片描述
在这里插入图片描述
研二上学期,终于发了一篇CSDN,满足了毕业要求,想起来还有鸽了很久的摄像头。在开发板上调试着没问题了,在小熊版上咋就不行呢,经过一天的硬件检查和控制变量发现,摄像头的I2C接错了,(对自己无语。。。)。只能寻求具有熟练焊接经验的小伙伴帮忙,强行在板子上引线,引线不能太细,否则受干扰太强,摄像头初始化写寄存器都不行。
经过一番抢救,摄像头终于能用,接下来就能开发Qt相关的应用编程啦。
在这里插入图片描述

三、软件学习设计

软件部分也没啥,都放在其他文章里了,就不说了,主要就是研究了WIFI模块屏幕驱动跑命令行。本栏目的其他文章有介绍。。。

系统平台

内核版本:4.1.15
文件系统:ubuntu-base
EMM:SD卡、核心板上EMMC

无线WIFI驱动

无线驱动直接使用厂家写好的驱动,直接放到linux内核里重新编译一遍即可。
本栏目链接

驱动一块ipslcd

ipslcd主要用于显示命令行终端,此部分参考了稚晖君大佬的驱动源码,就是让linux内核认识裸机驱动的功能函数。
本栏目链接

终端命令

就和电脑上一样。
shell简单操作

玩具一号先这样,,,
玩具二号正在安排,,,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值