自我介绍

大家好,我是张艺城,毕业于赣东学院自动化专业。虽然我没有正式的工作经验,但在学校期间我参与了多个嵌入式系统项目,积累了实际开发经验。我希望能成为一名嵌入式软件工程师,并通过我的技术能力为公司的发展做出贡献。

在学校,我参加了C语言竞赛并获得了第一名,提升了我的编程技能。此外,我还举办了一场Python讲座,帮助自己巩固了基础语法,并提高了沟通能力。

除了课程学习,我自学了C语言、Python、LVGL操作系统和Linux编程等技术,并在两个项目中得到了实践应用:

  1. 汽车仪表盘项目:我参与了基于LVGL的汽车仪表盘设计,负责系统架构和功能模块实现,如油门控制和转向灯的显示。
  2. 基于LVGL的平板电脑项目:这个项目包含7个功能模块,涉及天气显示、音乐播放器、聊天机器人等。特别是在音乐播放器中,我利用多线程和互斥锁处理共享资源,确保了系统的流畅运行。

我还深入理解了API接口调用,使用MQTT协议进行服务器通信,并通过Linux命令获取CPU和内存使用情况,展现了系统资源占用。

我拥有计算机二级Python证书、计算机网络三级证书,并通过了英语四级考试。

我热衷于嵌入式开发,具备较强的自学能力和团队合作精神,希望能在贵公司深耕技术,并为团队发展贡献力量。谢谢!

自我介绍:张艺城 - 嵌入式软件工程师

大家好,我是张艺城,毕业于赣东学院,主修自动化专业。我一直对嵌入式系统充满兴趣,毕业后希望能成为一名嵌入式软件工程师。

学校经历

在学校期间,我积极参与了许多与编程相关的活动:

  • C语言竞赛:参加过学校的C语言竞赛,并获得了第一名,奖励是一款价值200元的充电宝。
  • Python讲座:我举办过一场关于Python的讲座,主要讲解基础语法,为期两天。通过这个讲座,我提高了自己的表达能力和对技术的深入理解。

技能掌握

除了学校的课程学习外,我还自学了以下技术:

  • 编程语言:C、Python。
  • 框架和工具:Django、Flask、LVGL操作系统、Linux编程。
  • 数据库:数据库基础,了解如何与数据库进行交互。

项目经验

  1. 汽车仪表盘项目
    该项目是一个基于LVGL的汽车仪表盘,涉及到多个模块的控制。包括油门和刹车控制转速、胎压、油表、气温等。

    • 油门控制转速,刹车可以降低油表的气温。
    • 油量不足或油温过高时,系统会显示警告标志。
    • 通过LVGL实现了左转向灯和右转向灯的控制。
  2. 基于LVGL的平板电脑项目
    该项目实现了7个功能界面,其中包括:

    • 登录界面:使用LVGL文档中的键盘示例实现。
    • 天气显示:通过Postman模拟天气API接口,使用cJSON解析JSON数据,并在界面上显示天气信息。
    • 音乐播放器:包括播放控制、音量调节、歌曲切换等功能。为避免界面卡死,使用了多线程和互斥锁保护共享资源。
    • 聊天机器人:通过MQTT客户端与服务器通信,将用户输入发送给ChatGPT接口,并在界面上显示返回结果。
    • CPU信息监控:通过读取Linux系统文件计算CPU和内存的使用情况,使用LVGL的Arc控件展示占用率。
    • 相册模块:实现了图片缩略图浏览、滑动切换图片等功能。
    • 设置模块:实现了设备重启、关机、显示IP和MAC地址等功能。

项目技术细节

  • 多线程和资源保护:在音乐播放器模块中,利用多线程来处理音乐播放,同时使用互斥锁避免多线程抢占共享资源。
  • API接口调用:在聊天机器人项目中,使用了MQTT协议与服务器交互,并通过cURL和json-c库来调用API。
  • Linux命令操作:在CPU监控模块中,利用/proc/stat/proc/meminfo获取CPU和内存使用情况。

证书与语言能力

  • 计算机二级Python证书
  • 计算机网络三级证书
  • 英语四级证书

自我评价

我有较强的责任心,良好的沟通能力和团队合作精神。对技术充满热情,具备较强的自学能力,能够快速掌握新技术。在学校期间,我通过自学和实践,积累了丰富的嵌入式开发经验,并且能够阅读相关技术文档(如STM32的UM手册)。
我的兴趣爱好包括打游戏和跑步,闲暇时也喜欢通过跑步保持身心健康。

求职意向

我希望能加入贵公司,作为嵌入式软件工程师发挥自己的所学,继续深入嵌入式开发领域,不断提升自己的技术能力,为公司的发展贡献我的力量。

谢谢大家!

初稿

给我写一个关于嵌入式软件工程师的自我介绍,本人叫张艺城,毕业于赣东学院,是一名自动化的学生,想成为一名嵌入式软件工程师,学校经历:参加过学校的c语言竞赛,拿到了第一名,获得价值200的充电宝,并且举行过python讲座,主要是将一些基础的一些语法,讲了2天左右,在学校有保持良好的学习,自学过python,数据库,django,flask框架,以及linux编程,做过两个项目,第一个项目是汽车仪表盘,主要实现了刹车和油门,油门可以控制转速,转速控制速度,并且会影响胎压和油表气温,他们有一定的算法连续,刹车会将油表的气温降下来,并且在油量不够的时候会有一个标志闪烁,油温太高也会有一个油温标志闪烁,当油温降低了,闪烁有停下来,可以实现左转向灯和右转向灯的控制用到的是lvgl操作系统实现的,第二个项目是基于lvgl的平板电脑,实现了7个界面,知道低代码ui软件,比如squareline studio,eez studio,anyui等软件,但是这个项目我并没有使用它实现,而是通过参考lvgl官方文档实现的,并且参考了squareline studio模板,比如有screen,image,font,ui.h,ui.c,等,实现的功能有登录界面,天气显示,音乐播放器,聊天机器人,cpu相关信息监控,相册模块,设置模块,登录功能用到的是lvgl官方文档例子中的键盘案例实现的,天气显示,通过posman软件模拟调用该天气api接口,然后利用该软件导出相关代码,实现json数据包的返回,然后通过cjson解析库提取出想要的数据,通过lvgl展示在画面中。音乐播放器实现的功能有下一首,上一首,循环播放,随机播放,快进,后退,调高音量,调低音量,在这个音乐模块这里,如果一首歌正在执行,那么界面会卡死,这是因为这个线程正在执行,如果只有一条线程的话,就会出现这个情况,这个音乐播放完成之后,界面才会恢复正常,这里就需要用到多线程,并且需要用到互斥锁保护共享资源,防止出现多个线程抢占共享资源,而对于lvgl这样,是线程不安全的,只允许一条线程使用共享资源,所以需要互斥锁保护共享资源,还有就是在实现循环播放的时候,这里我是用到的一个死循环,然后有一个全局变量表示歌曲的数量,当这个数量要超过的时候会重新赋值,这里需要用到一个标志位用于退出该循环,从而不允许其他功能的使用,随机播放,这里用到了一个rand这样一个内置随机函数,然后通过取余控制范围,也需要一个标志位用于控制退出循环,这里用到了myplayer来播放音乐,通过system在代码中模拟终端来给管道输入一个指令,从而控制音乐的播放,如果想要获取音乐的播放的时间,当前音量等消息,需要用到popen来存放指令返回的内容,然后通过字符串解析得到需求的信息,lvgl中实现ui能不用多线程就不用多线程,因为lvgl是线程不安全的,最好使用lvgl自带的工具,比如定时器等,聊天机器人实现了通过MQTT客户端工具MQTTX发送文本消息给服务端,服务端将数据返回到一个聊天框中,用到是textarea文本框,然后通过send按钮将数据发送给chatgpt接口,这里用到了一个全局变量接受从MQTTX客户端发送过来的数据,然后通过curl和json-c相关网络库 ,来模拟调用api接口的功能,然后在使用一个全局变量接受chatgpt服务端发送过来的数据,在将该数据返回到事先布局好的label标签上面去,cpu相关信息监控需要用到一些linux指令,然后通过fopen读取内存和cpu相关文件,将他们提取出来,然后通过他们之间的一个关系计算出cpu占用量和内存占用量,用到了lvgl中arc圆弧来展示,cpu的相关的文件/proc/stat,内存的相关文件/proc/meminfo,相册模块用到的是一个缩略图思想,点击缩小的图片可以将其全屏展示,然后用到了右滑和左滑事件类型,左滑切换左边一张图片,右滑切换右边一张图片,并且上面有相关的提示,表示该图片的索引和总图片数目的一个展示,用到了switch case,当需要展示某个图片时,当点击的时候,他会清空该屏幕,然后在重新展示相关lvgl函数的图像效果,清空函数用到的是lv_obj_clean,设置模块实现了重启和关机,以及MAC地址,IPV4地址,以及改变亮度,用到定时器,以便ipv4地址以及亮度等信息改变时,可以更新信息,关机用到的是sudo reboot ,sudo poweroff指令,证书有计算机二级python,计算机网络三级证书,以及英语四级,自我评价是有较好的责任性,良好的沟通能力,爱好有打游戏,跑步,有较好的自学能力,好学,会使用一些文档,比如stm32FXX后缀为um的chm帮助文档,会去看相关技术的文档。