Funpack第一期精彩之二:Argon带你用mqtt连OneNET,漂移菌带你跑Linux和驱屏幕

电子森林 2020-10-26 00:00
昨天我们看了圈圈和Rudy做的详细介绍,包括入门和连接阿里云。今天我们来看看嵌入式网络工程师Argon讲述怎么连上另一个IOT平台——OneNET,还有骑驴玩儿漂移的漂移菌带来的讲解以及他为大家准备的Github/Gitee仓库。



Argon


自我介绍

很有幸参与到这次Digi-key和硬禾学堂联合举办的这次开发板体验活动。 我叫Argon,来自浙江杭州是一名从事安防行业的嵌入式网络工程师。 从大学开始就对微电子充满了兴趣,在闲暇的时间也会利用手头的元器件自己搭建一些好玩的DIY产品。
 

实现功能叙述

1. Seeed STM32MP1开发板教程(0)前期准备篇:
https://blog.csdn.net/Argon_Ghost/article/details/109006612
2. Seeed STM32MP1开发板教程(1)Wi-Fi的使用:
https://blog.csdn.net/Argon_Ghost/article/details/108986471
3. Seeed STM32MP1开发板教程(2)GPIO的简单操作:
https://blog.csdn.net/Argon_Ghost/article/details/109009824
4. Seeed STM32MP1开发板教程(3)IIC设备AHT10的使用:
https://blog.csdn.net/Argon_Ghost/article/details/108986562

心得体会

工作从事的一直Linux网络开发,公司对代码的封装较为良好很少涉及到需要手动去驱动外设的情况。 通过这次活动我自己手动去编译设备树,修改设备树文。 我对设备树以及linux内核的编译有了更深层是的理解,同时也要感谢@圈圈BG3MDO、@漂移菌 大佬的细心指导,编写驱动的过程也是我们共同探索的过程。 在十一期间的多个夜晚我们和大洋彼岸的圈圈大佬视频会议来探讨设备树相关的技术难点,也让我想起了大学期间在实验室熬夜攻关的日子。 非常感谢硬禾举办的这次体验活动,让更多的学生以及工程师能了解到ST等大厂最新的产品和技术。

希望之后硬禾多增加宣传活动的力度,这个活动我也是从朋友那里得知的。之前对硬禾的了解非常有限,希望硬禾以此为契机来提高自己的知名度。



漂移菌


个人介绍

我是李伟斌, AKA 骑驴玩儿漂移,漂移菌。我是伍艾信息科技的一名工程师,我的日常就是打杂。长期使用树莓派,并熟悉 linux 的系统管理和网络应用,熟悉 python 编程和 C 语言编程,精通 shell 脚本编程。

STM32MP157C 上最先完成了一系列的 linux 系统级别的操作。
例如,配置 uEnvtxt 并加载全驱动 dtb 并开启 wifi ,联网后,更新了软件源,切换到清华国内的源。
安装了 vim 工具,编译工具等等,并进行了磁盘的扩展,默认磁盘空间大概只有 2GB,通过计算和配置,将磁盘扩展到 32GB,并通过 USB 接口实现了两个U 盘合并的磁盘整列。软 Raid
通过 stm32mp157c A7 核运行的 linux,搭建了一个简易 web 和群友共享资源。
后面实现了点灯,pwm 呼吸灯, spi 驱动屏幕等操作。

代码内容

1.   小夜灯 I2C 驱动(shell 脚本)

root@npi:/home/debian/bin# cat led.sh

#!/bin/bash


while true

do

i2cset -y 1 0x15 0x01 0xff
sleep 0.2
i2cset -y 1 0x15 0x02 0xff
sleep 0.2
i2cset -y 1 0x15 0x03 0xff
sleep 0.2
i2cset -y 1 0x15 0x04 0xff
sleep 0.2
i2cset -y 1 0x15 0x05 0xff
sleep 0.2
i2cset -y 1 0x15 0x06 0xff
sleep 0.2
i2cset -y 1 0x15 0x07 0xff
sleep 0.2
i2cset -y 1 0x15 0x08 0xff
sleep 0.2
i2cset -y 1 0x15 0x09 0xff
sleep 0.2
i2cset -y 1 0x15 0x0a 0xff
sleep 0.2
i2cset -y 1 0x15 0x0b 0xff
sleep 0.2
i2cset -y 1 0x15 0x0c 0xff
sleep 0.2
i2cset -y 1 0x15 0x0d 0xff
sleep 0.2
i2cset -y 1 0x15 0x0e 0xff
sleep 0.2
i2cset -y 1 0x15 0x0f 0xff
sleep 0.2
i2cset -y 1 0x15 0x10 0xff
sleep 0.2
i2cset -y 1 0x15 0x11 0xff
sleep 0.2
i2cset -y 1 0x15 0x12 0xff
sleep 0.2
i2cset -y 1 0x15 0x13 0xff
sleep 0.2
i2cset -y 1 0x15 0x14 0xff
sleep 0.2
i2cset -y 1 0x15 0x15 0xff
sleep 0.2
i2cset -y 1 0x15 0x16 0xff
sleep 0.2
i2cset -y 1 0x15 0x17 0xff
sleep 0.2
i2cset -y 1 0x15 0x18 0xff
sleep 0.2
i2cset -y 1 0x15 0x19 0xff
sleep 0.2
i2cset -y 1 0x15 0x01 0x00
sleep 0.2
i2cset -y 1 0x15 0x02 0x00
sleep 0.2
i2cset -y 1 0x15 0x03 0x00
sleep 0.2
i2cset -y 1 0x15 0x04 0x00
sleep 0.2
i2cset -y 1 0x15 0x05 0x00
sleep 0.2
i2cset -y 1 0x15 0x06 0x00
sleep 0.2
i2cset -y 1 0x15 0x07 0x00
sleep 0.2
i2cset -y 1 0x15 0x08 0x00
sleep 0.2
i2cset -y 1 0x15 0x09 0x00
sleep 0.2
i2cset -y 1 0x15 0x0a 0x00
sleep 0.2
i2cset -y 1 0x15 0x0b 0x00
sleep 0.2
i2cset -y 1 0x15 0x0c 0x00
sleep 0.2
i2cset -y 1 0x15 0x0d 0x00
sleep 0.2
i2cset -y 1 0x15 0x0e 0x00
sleep 0.2
i2cset -y 1 0x15 0x0f 0x00
sleep 0.2
i2cset -y 1 0x15 0x10 0x00
sleep 0.2
i2cset -y 1 0x15 0x11 0x00
sleep 0.2
i2cset -y 1 0x15 0x12 0x00
sleep 0.2
i2cset -y 1 0x15 0x13 0x00
sleep 0.2
i2cset -y 1 0x15 0x14 0x00
sleep 0.2
i2cset -y 1 0x15 0x15 0x00
sleep 0.2
i2cset -y 1 0x15 0x16 0x00
sleep 0.2
i2cset -y 1 0x15 0x17 0x00
sleep 0.2
i2cset -y 1 0x15 0x18 0x00
sleep 0.2
i2cset -y 1 0x15 0x19 0x00
sleep 0.2

done



2. 屏幕 ili9341 的驱动步骤简单讲述为:
   2.1 下载 seeed 官方主线内核
   2.2  生成.config 配置文件, 通过 zcat /proc/config.gz > .config
   2.3  编译内核并启用 framebuffer(小屏幕)fbtft_deivce 的驱动模块
   2.4  编译,建议交叉编译,我是直接在 mp157c 上进行编译的,时间为 244 分 34 秒
   2.5  替换内核和安装驱动模块
   2.6  挂载 spi 的 dtbo 设备树文件,并根据 dtbs 和 dtbi 文件找到引脚映射
   2.7 接驳设备并加载 fbtft_device 驱动
   2.8 利用 fbset 工具将终端映射到屏幕上: con2fbmap 1 1

3. OLED 0.96 屏幕驱动:
利用 luma 的驱动比较方便,通过python 驱动.避免了直接底层操作 I2C.

4. 创建了 github 和 gitee 的仓库,方便后续代码共享.
https://github.com/stm32mp/157c.git
https://gitee.com/yoyojacky/stm32mp157c.git

5. PWM 驱动,使用了核间通信机制,IPCC,在选择了 PA3 脚并切换至 TIM2/CH2,通过 cubeIDE 生成了代码后,加入了 pwm 的函数。
   5.1 点灯部分
/* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */
/* USER CODE BEGIN 3 */ HAL_GPIO_WritePin(led0_GPIO_Port,led0_Pin, GPIO_PIN_SET); HAL_Delay(200); HAL_GPIO_WritePin(led0_GPIO_Port,led0_Pin, GPIO_PIN_RESET); HAL_Delay(200); HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_SET); HAL_Delay(200); HAL_GPIO_WritePin(led1_GPIO_Port,led1_Pin, GPIO_PIN_RESET); HAL_Delay(200); }/* USER CODE END 3 */

   5.2  PWM 函数部分
void user_pwm_setvalue(uint16_t value){ TIM_OC_InitTypeDef sConfigOC;
sConfigOC.OCMode = TIM_OCMODE_PWM1; sConfigOC.Pulse = value; sConfigOC.OCPolarity = TIM_OCPOLARITY_HIGH; sConfigOC.OCFastMode = TIM_OCFAST_DISABLE; HAL_TIM_PWM_ConfigChannel(&htim2, &sConfigOC, TIM_CHANNEL_2); HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_2);}/* USER CODE END 0 */

主程序部分写了个死循环
/* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */
/* USER CODE BEGIN 3 */ for(int i=0; i<2000; i+=20) { user_pwm_setvalue(i); HAL_Delay(10); } for(int i=2000; i>0; i-=20) { user_pwm_setvalue(i); HAL_Delay(10); } }

心得体会

对这次活动非常满意, 感觉很有意思!
 
活动建议:希望项目可以继续持续下去,并且持续更新和持续开展不同level 的应用要求,例如,使用 ble ,大家都用 ble 做应用, 使用核间通信,就都用核间通信来做应用,然后分析和交流。
 

END


硬禾学堂

硬禾团队一直致力于给电子工程师和相关专业的同学,带来规范的核心技能课程,帮助大家在学习和工作的各个阶段,都能有效地提升自己的职业能力。

硬禾学堂

我们一起在电子领域探索前进

关注硬禾服务号,随时直达课堂


     

  点击阅读原文参与Funpack第二期

电子森林 讲述电子工程师需要掌握的重要技能: PCB设计、FPGA应用、模拟信号链路、电源管理等等;不断刷新的行业新技术 - 树莓派、ESP32、Arduino等开源系统;随时代演进的热点应用 - 物联网、无人驾驶、人工智能....
评论
  • 天问Block和Mixly是两个不同的编程工具,分别在单片机开发和教育编程领域有各自的应用。以下是对它们的详细比较: 基本定义 天问Block:天问Block是一个基于区块链技术的数字身份验证和数据交换平台。它的目标是为用户提供一个安全、去中心化、可信任的数字身份验证和数据交换解决方案。 Mixly:Mixly是一款由北京师范大学教育学部创客教育实验室开发的图形化编程软件,旨在为初学者提供一个易于学习和使用的Arduino编程环境。 主要功能 天问Block:支持STC全系列8位单片机,32位
    丙丁先生 2024-12-11 13:15 73浏览
  • 近日,搭载紫光展锐W517芯片平台的INMO GO2由影目科技正式推出。作为全球首款专为商务场景设计的智能翻译眼镜,INMO GO2 以“快、准、稳”三大核心优势,突破传统翻译产品局限,为全球商务人士带来高效、自然、稳定的跨语言交流体验。 INMO GO2内置的W517芯片,是紫光展锐4G旗舰级智能穿戴平台,采用四核处理器,具有高性能、低功耗的优势,内置超微高集成技术,采用先进工艺,计算能力相比同档位竞品提升4倍,强大的性能提供更加多样化的应用场景。【视频见P盘链接】 依托“
    紫光展锐 2024-12-11 11:50 83浏览
  • 时源芯微——RE超标整机定位与解决详细流程一、 初步测量与问题确认使用专业的电磁辐射测量设备,对整机的辐射发射进行精确测量。确认是否存在RE超标问题,并记录超标频段和幅度。二、电缆检查与处理若存在信号电缆:步骤一:拔掉所有信号电缆,仅保留电源线,再次测量整机的辐射发射。若测量合格:判定问题出在信号电缆上,可能是电缆的共模电流导致。逐一连接信号电缆,每次连接后测量,定位具体哪根电缆或接口导致超标。对问题电缆进行处理,如加共模扼流圈、滤波器,或优化电缆布局和屏蔽。重新连接所有电缆,再次测量
    时源芯微 2024-12-11 17:11 128浏览
  • 首先在gitee上打个广告:ad5d2f3b647444a88b6f7f9555fd681f.mp4 · 丙丁先生/香河英茂工作室中国 - Gitee.com丙丁先生 (mr-bingding) - Gitee.com2024年对我来说是充满挑战和机遇的一年。在这一年里,我不仅进行了多个开发板的测评,还尝试了多种不同的项目和技术。今天,我想分享一下这一年的故事,希望能给大家带来一些启发和乐趣。 年初的时候,我开始对各种开发板进行测评。从STM32WBA55CG到瑞萨、平头哥和平海的开发板,我都
    丙丁先生 2024-12-11 20:14 89浏览
  • 应用环境与极具挑战性的测试需求在服务器制造领域里,系统整合测试(System Integration Test;SIT)是确保产品质量和性能的关键步骤。随着服务器系统的复杂性不断提升,包括:多种硬件组件、操作系统、虚拟化平台以及各种应用程序和服务的整合,服务器制造商面临着更有挑战性的测试需求。这些挑战主要体现在以下五个方面:1. 硬件和软件的高度整合:现代服务器通常包括多个处理器、内存模块、储存设备和网络接口。这些硬件组件必须与操作系统及应用软件无缝整合。SIT测试可以帮助制造商确保这些不同组件
    百佳泰测试实验室 2024-12-12 17:45 98浏览
  • 全球智能电视时代来临这年头若是消费者想随意地从各个通路中选购电视时,不难发现目前市场上的产品都已是具有智能联网功能的智能电视了,可以宣告智能电视的普及时代已到临!Google从2021年开始大力推广Google TV(即原Android TV的升级版),其他各大品牌商也都跟进推出搭载Google TV操作系统的机种,除了Google TV外,LG、Samsung、Panasonic等大厂牌也开发出自家的智能电视平台,可以看出各家业者都一致地看好这块大饼。智能电视的Wi-Fi连线怎么消失了?智能电
    百佳泰测试实验室 2024-12-12 17:33 98浏览
  • RK3506 是瑞芯微推出的MPU产品,芯片制程为22nm,定位于轻量级、低成本解决方案。该MPU具有低功耗、外设接口丰富、实时性高的特点,适合用多种工商业场景。本文将基于RK3506的设计特点,为大家分析其应用场景。RK3506核心板主要分为三个型号,各型号间的区别如下图:​图 1  RK3506核心板处理器型号场景1:显示HMIRK3506核心板显示接口支持RGB、MIPI、QSPI输出,且支持2D图形加速,轻松运行QT、LVGL等GUI,最快3S内开
    万象奥科 2024-12-11 15:42 103浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-11 17:58 99浏览
  • 全球知名半导体制造商ROHM Co., Ltd.(以下简称“罗姆”)宣布与Taiwan Semiconductor Manufacturing Company Limited(以下简称“台积公司”)就车载氮化镓功率器件的开发和量产事宜建立战略合作伙伴关系。通过该合作关系,双方将致力于将罗姆的氮化镓器件开发技术与台积公司业界先进的GaN-on-Silicon工艺技术优势结合起来,满足市场对高耐压和高频特性优异的功率元器件日益增长的需求。氮化镓功率器件目前主要被用于AC适配器和服务器电源等消费电子和
    电子资讯报 2024-12-10 17:09 106浏览
  • 在智能化技术快速发展当下,图像数据的采集与处理逐渐成为自动驾驶、工业等领域的一项关键技术。高质量的图像数据采集与算法集成测试都是确保系统性能和可靠性的关键。随着技术的不断进步,对于图像数据的采集、处理和分析的需求日益增长,这不仅要求我们拥有高性能的相机硬件,还要求我们能够高效地集成和测试各种算法。我们探索了一种多源相机数据采集与算法集成测试方案,能够满足不同应用场景下对图像采集和算法测试的多样化需求,确保数据的准确性和算法的有效性。一、相机组成相机一般由镜头(Lens),图像传感器(Image
    康谋 2024-12-12 09:45 109浏览
  • 铁氧体芯片是一种基于铁氧体磁性材料制成的芯片,在通信、传感器、储能等领域有着广泛的应用。铁氧体磁性材料能够通过外加磁场调控其导电性质和反射性质,因此在信号处理和传感器技术方面有着独特的优势。以下是对半导体划片机在铁氧体划切领域应用的详细阐述: 一、半导体划片机的工作原理与特点半导体划片机是一种使用刀片或通过激光等方式高精度切割被加工物的装置,是半导体后道封测中晶圆切割和WLP切割环节的关键设备。它结合了水气电、空气静压高速主轴、精密机械传动、传感器及自动化控制等先进技术,具有高精度、高
    博捷芯划片机 2024-12-12 09:16 100浏览
  • 习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习笔记&记录学习习笔记&记学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记录学习学习笔记&记
    youyeye 2024-12-12 10:13 65浏览
  • 一、SAE J1939协议概述SAE J1939协议是由美国汽车工程师协会(SAE,Society of Automotive Engineers)定义的一种用于重型车辆和工业设备中的通信协议,主要应用于车辆和设备之间的实时数据交换。J1939基于CAN(Controller Area Network)总线技术,使用29bit的扩展标识符和扩展数据帧,CAN通信速率为250Kbps,用于车载电子控制单元(ECU)之间的通信和控制。小北同学在之前也对J1939协议做过扫盲科普【科普系列】SAE J
    北汇信息 2024-12-11 15:45 125浏览
  • 本文介绍瑞芯微RK3588主板/开发板Android12系统下,APK签名文件生成方法。触觉智能EVB3588开发板演示,搭载了瑞芯微RK3588芯片,该开发板是核心板加底板设计,音视频接口、通信接口等各类接口一应俱全,可帮助企业提高产品开发效率,缩短上市时间,降低成本和设计风险。工具准备下载Keytool-ImportKeyPair工具在源码:build/target/product/security/系统初始签名文件目录中,将以下三个文件拷贝出来:platform.pem;platform.
    Industio_触觉智能 2024-12-12 10:27 100浏览
我要评论
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦