【有奖征集】分享你的开发故事-活动已停

  [复制链接]
shineboy | 2023-8-30 19:34:05 | 显示全部楼层
大家好,我是祥子,今天浅谈一下我和单片机的故事
  • 一。初识单片机/开发板

我一个电子厂打螺丝的人,本来是不会和开发板,单片机这些东西产生交集的。或许我的生活,注定就是平平淡淡的上班下班,吃饭睡觉,像个机器人一样按照预设的指令一步步执行罢了。
但似乎命运不允许我平庸。
在一个偶然的下午,我照常打开哔哩哔哩,开始消遣。意外的,我就刷到一个精彩的小视频。
内容是某UP主发的一个宿舍MQTT控制电灯开关的视频,原视频已经找不到了,但当时给了我许多惊喜。看完那个短短的视频,我就开始疯狂的百度,开始知道,那是单片机。
又是一步步搜索,我了解到STM32,STC,ESP系列,很多网友对ESP乐鑫的产品评价很高,我也开始蠢蠢欲动。
然而当我打开乐鑫的淘宝店之后,直接就被价格劝退, 一个小小的开发板就要60+人民币,而且还不包邮,从上海到昆山居然都要我12元邮费,当时经济拮据的我自然是不会买了。
受到这样的打击,我没有停止脚步,而是继续开始百度:最便宜的单片机是什么?
由此开启了下一个篇章。
  • 二。喝粥的九块九

接着上文,当我在不断搜索便宜单片机的时候,一个词语反复出现在我眼前:喝粥。
于是乎我进了他们的淘宝店,一看九块九包邮,心里瞬间觉得稳了,就算真的学不会,也不算特别亏。
第一次接触单片机的我还是闹了笑话:我看到普通的开发板都是九块九一个,结果有一个墨水屏驱动板居然十几块钱。我当时以为那个墨水屏驱动板本身就可以独立工作,还以为赚翻了,结果收到货以后才发现,它必须要搭配一个开发板才可以显示内容。
我的第一个开发板是喝粥的AIR103,之所以是103,因为它有比较多的IO,拿到开发板后,第一次通电,板载三颗LED的闪烁让我兴奋不已。我当时也开始加了一些QQ群,开始淘宝那些杜邦线,LED等等。
我第一次成功点亮一颗LED的图片已经找不到了,还记得我那个板子焊完排针后,群友都说我焊的很不美观,锡都是一坨。
一个纯小白一开始学单片机还是比较困难的,要接触的知识点太多,那时候我根本不懂那些引脚功能,只知道GND是负极。在群里求爷爷告奶奶才终于请别人帮忙拍了几张air103和墨水屏接线的照片,我才一比一复刻,成功点亮了屏幕。
不过成功点亮之后我就开始自己参悟了,看着文档里那些函数方法,一个一个试验,加入到代码里刷进板子。这样的进步还是会比较快。大概三两天,我就完全拿下墨水屏显示了。
搞定墨水屏之后,我自然是不满足的,我又买了一个小的TFT屏,学习彩屏相关的内容。
我的一个成果,就是鸡你太美的视频播放,用PR把视频拆帧,再一张张播放,delay40ms。
这种小试牛刀自然满足不了我的进取欲,我接着又用一两天熟练了tft库的各个函数方法,可以成功实现一些常规的页面显示了。
后面我又抄了一下别人写的按键模块,开始加入一些交互,我把成果发在朋友圈,获得众多点赞,我心里也很有成就感。
后面我又攻克了MQTT,开始天天用AHT10测量房间的温湿度并上传到云端,并在手机端查看。
不得不说,巴法是个很有情怀的公司,无偿给个人开发者提供了稳定高效的云服务。这在当下的环境,是很难能可贵的。
正在键盘上敲打的我,也正在加深对安信可的了解,它或许是一家比巴法更伟大的企业!
只需要分享自己的开发故事,就可以获取最新最有竞争力的产品,这样的场景,大概也只有安信可才会有,也正因此,安信可才能不断做出革新市场的产品吧。
  • 三。STC--开始画板

习惯了喝粥的开发板之后,我开始不满足于笨重的开发板,用杜邦线,或者面包板连接屏幕开发板和原件,只适用于日常的验证,并不能成为一个正式的产品。
在我接触单片机以后,我的终极梦想就一直是靠自己制作一个智能终端,去控制房间或者工作区域。这样的智能终端的形态早已存在于我的脑海中:它应该具备一块三寸左右的屏幕,支持触控或者按键控制,可以联网,从而实现千里之外的远程控制,它应该采用type-c直插供电,或者使用可充电电池,它自身应该集成一部分传感器,它应当拥有一个简约美观的外壳。
基于上述的诉求,我就必须要学会PCB的绘制,由此,我开始接触了STC单片机。
STC的优势在于便宜,同时外围电路需求小,只需要几个电阻电容开关即可。几乎是最好画最小系统板的单片机MCU了。我也满怀信心,准备开始STC的征程。
但梦想从来都是美好的,而现实却会残酷的折磨人一遍又一遍。
最初在嘉立创 EDA画的板子,实在是bug漫天飞,所有的线连的一塌糊涂,连续打了三个板子,没一个可以成功刷写运行的。
我几乎要放弃了,望着手上一堆一堆的接插件,我的情绪久久不能平静。
但最终还是发了狠,我在群里豪言:如果拿不下STC,我就采购200pcs STC的芯片。
破釜沉舟是有效果的。
我摒弃了那些花了巨资买来的接插件,而是在淘宝上重新买了一堆贴片元件,电阻用贴片元件,电容用贴片元件,LED用贴片元件,按键用贴片元件。
于是,我第一个纯贴片元件的电路板费了一些时间后成功画了出来,所有的元件也陆陆续续从全国各地来到我手里。
努力没有白费,当STC的ISP工具第一次识别到我的PCB时,我心里的激动是难以言喻的。
一次成功的画板,对于我的单片机之路来说是开创性的成果,极大的提高了我的信心。
由此我也初步学习了一些STC本身的程序操作,或许是我与STC八字不合,又或许是因为我一直都是用luatos和arduino开发,我的所有代码都是基于应用层的,对于STC这种直接操作寄存器的模式我完全吃不消,虽然买了一本STC的书籍,我也完全学不进去,总是像看天书一样看手册,学来学去也只是会了点灯,惭愧,惭愧啊。
既然画PCB的相关知识我已经掌握的差不多了,那就要回归本性,去准备做成品了!
  • 四。ESP32--初步成品

实际上在三月份的时候,我就已经开始在为最终成品做了许多准备:买了一块触摸屏,学习了LVGL。
还记得那时候天天翻百问网的LVGL教程,有些缺漏的就去LVGL官方文档那里去查。付出总是有收获的,我成功的完成了多个小页面,微系统界面的编写,也积累了一定的素材,为后续的哔哩哔哩发视频做了铺垫。
最开始发视频的契机,和喝粥的S3开发板关系很大, 极强的性能,让我可以肆意挥洒我的想法。
一方面是为了让更多人可以加入到我们的社群之中,一方面又是想着能不能蹭蹭热度,赚点创作激励呢?
我开通了哔哩哔哩账号,并积极了以喝粥S3做主开发板创作了一系列教程。
20多个视频,获得了一万五的播放量,快两百的粉丝,五百多点赞。
每天也陆陆续续有很多新人因为看了我的视频而加了我们的QQ群,开始和我们一起天天研究开发板,每天都挺happy的。
因为种种原因,我舍弃了我的索尼耳机,新买了一个森海塞尔。
索尼耳机吃灰以后,白嫖大王提议我把索尼寄给他,从而让索尼耳机继续发光发热。
找了个时间,我把耳机成功寄给了白嫖大王,让他体会了一下索尼入门款耳机的音质。
白嫖大王也是有情有义的汉子,直接给我送了一个宝库和一大箱橙子。那些橙子几天就吃完了,那个宝库却让我用到现在都不曾绽放些许光华,着实是明珠暗投了。
白嫖大王的宝库中,最令我兴奋的,无疑是那整整齐齐的一排ESP32模块,梦想就在我面前,我一定要拿下它!
宝库之中,还有CH340串口芯片,以及降压芯片AMS1117,这一切的安排,不就是在催促我快些实现我的愿望嘛。
我也不在退缩,直接打了两个PCB,然而接连翻车。
第一个PCB打完之后,插到电脑上总是USB闪一下就提示不能正常驱动,无法识别,接着就完全没有反应了。我经过重重百度之后,意识到可能的原因是降压模块的异常导致串口芯片没有正常工作。
于是有了第二个PCB,没有串口芯片,直接加了几个电阻电容就打板了。和一开始的预期一样,我又失败了。
接连的两次失败,是对我自信心沉重的打击。
那之后,我沉默了许多,也很久没怎么写代码了,板子也不怎么打,似乎我的单片机之路就要终结,而我的生活也将归于平淡。
但故事并没有结束。
又是偶然的一天,我看到一个讲降压模块的视频,一口气看完之后,我又燃起信心,必须再冲一次!
我又在群里立了flag,如果国庆前搞不定ESP32模块加屏幕,就抽十个板子送给群友!
虽然一众群友都觉得稳了,我这次大概要出血了,但我心里还是比较稳的。
果不其然,第一个板子打出来,就成功实现了基础的IO高低电平控制,如果不是因为屏幕的一个引脚接了地,我可能已经成功了。
当蜂鸣器随着我的代码,叮咚叮咚一下下鸣叫之时,我心里的石头才落了地。
简单做了一些修改,我又打了一个PCB。今天刚刚发货,成败,周五周六见分晓!
五。小安派--后期展望
安信可这个品牌一直出现在我的四维,我也一直想拥有一块安信可的开发板或者模块,这次有机会参与安信可的活动还是很开心的。
希望安信可的板子早日达到我手里,可以让那块板子在我手里续写我的单片机开发故事。

墨水屏成功驱动

墨水屏成功驱动
回复 支持 反对

使用道具 举报

popoking | 2023-8-30 22:04:10 | 显示全部楼层
本帖最后由 popoking 于 2023-8-30 22:05 编辑

   在这个暑假遇到了不少的“翻车事故”,其中有一项,是让我和我的团队抓狂(甚至快要被它给逼疯——啊啊啊啊)
在做WiFi csi收数的时候,遇到了(获取接口信息是发生错误)。
   事情要从前面开始说起:
   我和我的团队在学校的实验室,拆开实验室的电脑,开始偷偷的在学校的电脑重新装linux12.04系统(实验所需),然后开始对其内核编译、驱动、固件配置,其中花费一个小时左右的时间,最后开始进行实验的最后一步,对csi的发送和csi的接收,csi的发送端能开始好好的发送信号,但在开始进行接收的时候,执行sudo bash ./monitor.sh wlan0 64 HT20的时候,就遇到了(获取接口信息是发生错误),其实在之前我们一直在网上找相关的实验,比对了我们的实验,与他们的结果都几乎是一致的,在我们以为最后收数快成功的时候,发生了错误,遇到了错误我们一直在寻找解决措施,课在着一个暑期中,至今都还未找到有效的解决措施(哭)

接口信息时发生错误

接口信息时发生错误
回复 支持 1 反对 0

使用道具 举报

je2077 | 2023-8-30 22:27:04 | 显示全部楼层

                               
登录/注册后可看大图



我是个初二升初三的学生,电学没学,但是我对电子有着浓厚的兴趣。这是我第一个复刻的项目,墨水屏阅读器,对我这种初中生特别友好,刚开始,经过大佬的指点,如何白嫖立创打板,如何买元件
到现在自己做出成品,都是很有成就感的
       慢慢的,我自己学会了使用万用表,自己学会了白嫖元件,融入这个圈子,感受了学习之外的世外桃源,现在我的屋子里满是纸袋子,全是元件,各种各样的工具
        bug自己遇到了不少,就比如玩51单片机,第一次写代码,花括号,封号,好多细节,都没有写。焊的主板么,也是一样,错了就不会维修,只是会重做,甚至有一次做出了,但是给我搞短路了,特别难过,这让我吸取了教训,也让我以后越来越有复刻经验
        希望阿自己的技术越来越好,也祝愿各位bug越来越少
       求求开发板www
回复 支持 反对

使用道具 举报

李白百 | 2023-8-30 22:53:51 | 显示全部楼层

我是上大一的时候,班里的伙伴拉着参加学校的机器人比赛开始接触硬件的,我们选择做寻迹小车,刚开始接触这些东西的时候是一点都不懂,从零开始学。遇到问题就去请教学长,于是有机会进入老师的硬件开发办公室,学着使用AD,学完之后老师让画一个USB转TTL的烧录器,打板之前还检查了几遍,回来发现USB的D+接到了ch340e的D-,还被老师笑话了。这个是20年的事情了,时间比较长就没有图片了。

最近刚好复刻一个开源收音机,焊好了扩展板,插上排线,忘记作者说过要把0欧姆电阻去掉,芯片冒烟才想起来。然后就翻车了换完芯片,重新上电,发现屏幕就亮一下就灭,我就赶紧断电,发现是排线线序不对,应该用反向线。再购买就太慢了,问了学长,教我怎么调线序,又学会一招,哈哈。

bug1.png


收音机有数据线和电池两种方式供电,电池管理使用的ip5306。单独使用数据线供电时没问题,单独使用电池就不能正常工作,经排查之后发现,ip5306芯片升压有问题,换芯片,买的同一批的都一样,大概是买到翻新货了,踩坑了,重新下单等着了。此外使用电池供电后还必须短接VCC和5VIN两个引脚才行,目前只是发现了这个问题,还不知道怎么解决。


bug2.png bug3.png


回复 支持 反对

使用道具 举报

HawkJ | 2023-8-30 23:06:48 | 显示全部楼层
说到我的开发翻车故事,还记得之前技术面被问到在开发过程中遇到过最大的困难,我想说做嵌入式开发就是摸石头过河,我从大一接触51到stm32,再到imx6ull,从各种点灯到通信协议,从usart到spi再到usb,开发环境也一直在换,从keil生成hex文件然后用stcisp烧录,到stm32的jlink下载,然后再玩到用安信可的esp-cam在linux下进行开发,配置ubuntu,用ssh连接虚拟机然后再部署程序,就连部署环境也是爬了很多很多的坑,但是就是在这不断的落坑爬坑的过程中,我对于嵌入式的整个系统架构以及主体框架有了非常深刻的理解,我明年本科毕业,虽然说我对于很多知识的深入并不够,但是我觉得我已经探索了嵌入式这块大陆的大部分领域。本科期间主要做的是智能trash回收箱,使用安信可的esp-cam与边缘服务器进行通信,然后将拍摄到的图片发送到linux开发板进行图像识别后再将结果发送回来,在其中使用arm neon技术对图像处理进行加速。接下来就是继续打磨自己的技术,深入某一块我最感兴趣的领域,让自己学习到更多的技术知识,把自己的能力用在实际的工作中!
回复 支持 反对

使用道具 举报

王道乐 | 2023-8-31 08:53:40 | 显示全部楼层
发个开箱贴
最近学校开学比较忙,一直没有来得及发帖,开箱通电运行一切OK,就是触摸感觉有些偏,等忙完这阵开始小安派学习之旅…………………………
微信图片_20230831090047_1.jpg
微信图片_20230831090047.jpg
微信图片_20230831085928.jpg
微信图片_20230831085927.jpg
回复 支持 反对

使用道具 举报

可乐klelee | 2023-8-31 09:30:21 | 显示全部楼层

背景介绍

我来分享分享Android驱动开发遇到的那些离谱的事情:龙迅LT8912B - MIPI转HDMI 之 调了两个月

怎么个事儿呢?我使用的CPU是广和通的SC806,平台是高通的msm8909. 芯片默认MIPI输出是好的,项目需要使用21.5寸的显示屏,很显然MIPI不能用了,所以就需要转成HDMI输出。事儿就是这么个事儿,接下来就说说我遇到的窝囊事儿。

BUG

这是个硬件BUG,最后发现是SC806控制LT8912B的IIC线接反了。

初识问题

msm8909平台,是基于Android7.1.2的。内核里面默认没有LT8912B的驱动。所以驱动文件是GIthub找的。对照龙迅提供的寄存器配置文件,发现寄存器没有可以直接使用,这样驱动就搞定了。作为一个驱动开发工程师,我自认为配置个设备树什么的还不在话下。所以,一切都搞定之后,开机上电,然后屏不亮。嗯,好的,应该的,毕竟第一次嘛。

于是我抓了LOG,发现满屏的LOG显示:

i2c-msm-v2 78b6000.i2c: NACK: slave not responding, ensure its powered: msgs(n:1 cur:0 tx) bc(rx:0 tx:2) mode:FIFO slv_addr:0x48 MSTR_STS:0x011363c8 OPER:0x00000090

调试过程

  1. IIC不通首先想到的肯定是线路有问题嘛,所以,先简单凉了一下从顶板到地板LT8912B之间的线路通断。按照进度条来看,当然是,所有的线路是通的。好吧,那么下一步;

  2. 既然硬件没有问题,那就很自然的怀疑到软件身上了,于是在两个周以内我尝试了三板driver驱动:

    1. Github xxxShao(某shao)的驱动,具体名字没记住,哈哈哈;
    2. Google Android 8 原生的Lt8912B驱动;
    3. 我自己写的驱动

    对的,事情如你看到的,以上都没有用。

  3. 于是,中间的一个月我被拉去干别的项目了(此处省略一万字)

  4. (十年后)回来第一件事,量IIC的波形。重点来了, 我用示波器量了十来次波形,为什么要量这么多次?

发现问题

从波形来看,IIC状态是正常的,有数据发送SDA,有SCL波形,但是就是没有数据接收,难道这里也没有问题了?等等,我刚刚chanel几是CLK来着?我再量一遍,淦,这个SDA长得怎么那么想SCL?

所以事情明了了,就是SDA和SCK接反了。改过来之后,屏就OK了。

总结

测试:我们应该对研发有基本的信任!

硬件:硬件没问题了,软件先试试。出问题后……,啊,屏不亮,我先看看硬件问题,软件你先搞别的。

软件:测试手法问题吧,硬件接反了吧,我的软件不可能有问题。

回复 支持 反对

使用道具 举报

爱笑 | 2023-8-31 10:25:00 | 显示全部楼层
shineboy 发表于 2023-8-30 19:34
大家好,我是祥子,今天浅谈一下我和单片机的故事
  • 一。初识单片机/开发板

  • 安信可的板子即将顺丰到达!
    用心做好保姆工作
    回复 支持 反对

    使用道具 举报

    爱笑 | 2023-8-31 10:28:11 | 显示全部楼层
    可乐klelee 发表于 2023-8-31 09:30
    [md]## 背景介绍

    我来分享分享Android驱动开发遇到的那些离谱的事情:龙迅LT8912B - MIPI转HDMI 之 调了两 ...

    哈哈哈哈最后互相甩锅嘛~~恭喜你,故事过关了!
    用心做好保姆工作
    回复 支持 反对

    使用道具 举报

    zundujiadugaga | 2023-8-31 10:36:10 | 显示全部楼层
    小菜坤,学习大佬,跟上大佬步伐
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则