大家好,我是梁国庆。
目前在山东烟台一所专科院校读大二,这是我开通微信公众号后写的第一篇文章,文笔有所欠缺,还请读者朋友们多担待。
最近在博客园阅读了好多博主分享的关于 2022 年终总结的博客。我也想回顾总结一下我的 2022,在这一年中我成长了许多、也收获了许多,本篇就来聊聊关于我2022年的成长经历。
身处 b 站大学的我,说是自学应该不为过吧,由于对编程比较感兴趣,但所学的专业(电气自动化技术)中并没有开设相应的课程,所以我便跑到 b 站大学开始自学啦,接下来讲述一下我的自学之路。
C 语言是在协会中学习的,在大一上学期我加入了电子创新协会,每天的晚自习和周末都会和我的小伙伴一起去协会学习(因为白天有好多课)。当时就像着了迷一样,走路、吃饭时都会想着 C 语言的知识,就连做梦也经常梦到自己为解出一道编程题而笑出声来。
51 单片机是在大一寒假里学习的,在自己房间里把郭天祥老师的《10 天学会 51 单片机》教学视频来回看了 3~4 遍,用冻僵的手(北方的冬天好冷的)一遍遍的跟着敲代码,看着单片机展现出预期中的效果,心里就美滋滋的。
郭天祥老师讲的蛮不错的,在开始编程前,他都会详细的讲解需要用到的原理知识,在这时我就会把重点记在笔记上。最重要的是在视频中他手敲代码,而不是直接复制粘贴的那种,这样我可以很好的跟着他的思路去思考,思考如何根据需求来编写程序,因此提高了我的编程思维。
一个人在家自学,没有了学长学姐的帮助,还是挺困难的。这时就需要培养网上搜索知识或问题的能力,我在寒假学习中遇到的好多问题都是通过网上搜索的方式找到的解答,然后自己再把问题解决掉。
32 单片机是从大二上学期至今一直都在学习的,一开始是用正点原子的战舰板看的配套视频,在将 STM 32 入门后,便转战到“电子产品设计及制作”的操作台上进行学习。
这时老师便开始教学啦,经常一对一的讲解知识,一讲就是一上午、一下午的。有时晚上写程序时出现 Bug,老师会远程带着我一遍遍的调试直到出现预期的效果。
在学习中有前辈带着的感觉真的超级棒,前辈在我心中就如同神一般的存在,在我遇到困难钻牛角尖时他稍微点拨一下,就可以使我走出困境,发现问题的关键然后将问题解决。
学习 Arduino 是实习工作时需要用到它来设计制作电子产品,学习绘制 PCB 是想要做出一个拿得出手的产品,美化一下自己做的电子秤项目。
具体的细节下文会介绍,在这就不展开啦。
在大一下学期,我接了一个做电子秤的毕业设计的订单,这也是我学习嵌入式以来做的第一个完整的项目。因为当时还没有学绘制 PCB,而且这个毕业设计允许使用模块拼接做出成品,所以在根据毕业设计的要求确定所需模块后,我便从淘宝上买回了所有需要用到的模块,开始了项目的开发。
好巧不巧,在项目开发到一半的时候,烟台突然爆发了疫情,学校紧急通知全体学生回宿舍上网课,还关停了大学生的命脉——快递站。我看这种情况很有可能会封好长时间,快递停了产品做出来也发不出去,因为怕耽误了客户的毕业设计,所以我主动联系客户和他说明了情况,终止了这次的合作。
但此项目并没有就此搁置,在老师的帮助下我完成了这一项目,由于是用模块拼装出来的产品,成品的整体外观不太美观,看着也不像一个能拿得出手的产品,所以我想将所有用到的模块整合起来做成一块电路板,于是利用被封在宿舍上网课的这段时间自学了 Altium Designer 绘制 PCB。
目前项目正在整理中,等整理完成后会发布相应的博客进行分享。
大一暑假我经历了人生中第一次实习工作,是在一家培训机构里做老师,带着中小学的孩子制作以智能防疫为主题的电子创新产品,用于参加烟台市机器人创意比赛。
在这次的实习过程中,因为机构需要用 Arduino UNO 进行电子产品的制作,所以我自学了 Arduino UNO,然后把所学知识讲解给学生们,通过实验带着他们学习各种传感器模块,带领着 6 个队伍做出了 6 个不同的电子创新产品。
下面是参赛作品其中之一的演示视频:
更多作品演示视频链接 >> 点击跳转
经过这次实习我认识到了什么叫责任,身为一个老师的责任。
公司规定早晨八点上班,但我因为怕在讲课中出现差错,便要求自己七点十分必须到达公司,根据规划好的授课计划,把今天要讲的内容过一遍,要做的实验自己做一遍,实验中的程序代码自己敲一遍,确保在讲课时不会出现差错。在做完这些后差不多就要上课啦,然后就开始一天的授课工作。
机构的校长是上海交通大学毕业的,不仅学识渊博而且特别平易近人,经常和我一起讨论技术,和我交流人生规划,他说如果我专升本成功后一定要继续考研,只有这样才会形成质的变化,如果专升本没成功可以来找他,跟着他一起做项目,这我肯定答应呀,感觉抱大腿啦,哈哈。
在第十四届山东省大学生科技节——2022 年山东省大学生智能制造大赛柔顺控制赛项中,荣获一等奖。
比赛的任务是在一个丝杠组成的移动平台上面放一个烧杯,烧杯中注满水后在移动平台上来回移动 5 个回合。移动的总用时和移动结束后烧杯的重量作为比赛评定成绩的标准。
我在本次比赛中的任务是控制器软件的编写与调试。我将战舰开发板作为主控制器,利用伺服电机驱动器脉冲输入方式,通过主控制器的定时器输出不同频率的脉冲进行调速。在主控制器程序中使用了 S 加减速的算法来控制伺服电机,在保证速度的同时解决了平台移动到两边后,转换移动位置时烧杯中水外溢的问题。
下面是我参赛作品的演示视频:
作品演示视频链接 >> 点击跳转
在第十五届山东省职业院校技能大赛——电子产品设计及制作赛项中,荣获三等奖。
比赛任务是在 6 小时内,按赛题要求,利用所发的技术资料、元器件及器材完成视觉识别分拣机器人控制器的装调和测试任务,进行 Cortex-M3 系列 STM32F103ZET6 的软件设计,完成该控制器的整机设计及制作。
我在本次比赛中担任队长,负责统筹协调好队员间的配合工作,把控好比赛时间。主要任务是控制器软件的编写与调试,还有配合队友完成对机器人控制器的装配工作。
因比赛为技能大赛,具体细节就不展开分享啦。
在大二上学期先后获得校级奖学金 1000 元、国家励志奖学金 5000 元。
能获得奖学金真的挺高兴的,有谁会不爱钱钱呢,当然这也是对我努力学习的一种认可,以后我会更加努力学习的,加油!
我在学习中遇到了难题就会去网上搜索,因为网上有好多前辈们留下的技术博客,由此我也产生了编写个人技术博客的想法。但迟迟没有行动,一方面是忙着知识的输入,另一方面是自己的文笔不太好,不知该如何进行表达。
现在我已经开通了自己的个人博客,准备将输入的知识思考总结后进行输出,我认为这是一个对所学知识很好的复盘。为了能让读者可以读懂我的文章,我也会仔细斟酌每一句话是否表达清晰,这个过程也能够提高我的表达能力。如果学习嵌入式的小白遇到问题,正好看到我写的博客,也可以帮助他学习知识、解决问题。
一举三得的事情,何乐而不为呢。
为了方便大家平时在公交、地铁、外出办事时也能用手机随时随地查看我的博客,我会将原创博客首发于微信公众号——「main工作室」。
同时,公众号内包含大量的学习资源,欢迎关注,一同交流学习,共同进步!
首先,感谢您能看到这里,这就是我 2022 年的成长经历。
2023 年我会继续努力奋斗,自学的道路虽然坎坷,但仍要默默努力,成为更好的自己。
使用带有Rails插件的vim,您可以创建一个迁移文件,然后一次性打开该文件吗?textmate也可以这样吗? 最佳答案 你可以使用rails.vim然后做类似的事情::Rgeneratemigratonadd_foo_to_bar插件将打开迁移生成的文件,这正是您想要的。我不能代表textmate。 关于ruby-使用VimRails,您可以创建一个新的迁移文件并一次性打开它吗?,我们在StackOverflow上找到一个类似的问题: https://sta
我需要从一个View访问多个模型。以前,我的links_controller仅用于提供以不同方式排序的链接资源。现在我想包括一个部分(我假设)显示按分数排序的顶级用户(@users=User.all.sort_by(&:score))我知道我可以将此代码插入每个链接操作并从View访问它,但这似乎不是“ruby方式”,我将需要在不久的将来访问更多模型。这可能会变得很脏,是否有针对这种情况的任何技术?注意事项:我认为我的应用程序正朝着单一格式和动态页面内容的方向发展,本质上是一个典型的网络应用程序。我知道before_filter但考虑到我希望应用程序进入的方向,这似乎很麻烦。最终从任何
我想要做的是有2个不同的Controller,client和test_client。客户端Controller已经构建,我想创建一个test_clientController,我可以使用它来玩弄客户端的UI并根据需要进行调整。我主要是想绕过我在客户端中内置的验证及其对加载数据的管理Controller的依赖。所以我希望test_clientController加载示例数据集,然后呈现客户端Controller的索引View,以便我可以调整客户端UI。就是这样。我在test_clients索引方法中试过这个:classTestClientdefindexrender:template=>
如果您尝试在Ruby中的nil对象上调用方法,则会出现NoMethodError异常并显示消息:"undefinedmethod‘...’fornil:NilClass"然而,有一个tryRails中的方法,如果它被发送到一个nil对象,它只返回nil:require'rubygems'require'active_support/all'nil.try(:nonexisting_method)#noNoMethodErrorexceptionanymore那么try如何在内部工作以防止该异常? 最佳答案 像Ruby中的所有其他对象
关闭。这个问题需要detailsorclarity.它目前不接受答案。想改进这个问题吗?通过editingthispost添加细节并澄清问题.关闭8年前。Improvethisquestion为什么SecureRandom.uuid创建一个唯一的字符串?SecureRandom.uuid#=>"35cb4e30-54e1-49f9-b5ce-4134799eb2c0"SecureRandom.uuid方法创建的字符串从不重复?
我有一个正在构建的应用程序,我需要一个模型来创建另一个模型的实例。我希望每辆车都有4个轮胎。汽车模型classCar轮胎模型classTire但是,在make_tires内部有一个错误,如果我为Tire尝试它,则没有用于创建或新建的activerecord方法。当我检查轮胎时,它没有这些方法。我该如何补救?错误是这样的:未定义的方法'create'forActiveRecord::AttributeMethods::Serialization::Tire::Module我测试了两个环境:测试和开发,它们都因相同的错误而失败。 最佳答案
“输出”是一个序列化的OpenStruct。定义标题try(:output).try(:data).try(:title)结束什么会更好?:) 最佳答案 或者只是这样:deftitleoutput.data.titlerescuenilend 关于ruby-on-rails-更好的替代方法try(:output).try(:data).try(:name)?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.c
我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b
我想让一个yaml对象引用另一个,如下所示:intro:"Hello,dearuser."registration:$introThanksforregistering!new_message:$introYouhaveanewmessage!上面的语法只是它如何工作的一个例子(这也是它在thiscpanmodule中的工作方式。)我正在使用标准的rubyyaml解析器。这可能吗? 最佳答案 一些yaml对象确实引用了其他对象:irb>require'yaml'#=>trueirb>str="hello"#=>"hello"ir
我收到格式为的回复#我需要将其转换为哈希值(针对活跃商家)。目前我正在遍历变量并执行此操作:response.instance_variables.eachdo|r|my_hash.merge!(r.to_s.delete("@").intern=>response.instance_eval(r.to_s.delete("@")))end这有效,它将生成{:first="charlie",:last=>"kelly"},但它似乎有点hacky和不稳定。有更好的方法吗?编辑:我刚刚意识到我可以使用instance_variable_get作为该等式的第二部分,但这仍然是主要问题。