昨天我們看了圈圈和Rudy做的詳細(xì)介紹,包括入門(mén)和連接阿里云。今天我們來(lái)看看嵌入式網(wǎng)絡(luò)工程師Argon講述怎么連上另一個(gè)IOT平臺(tái)——OneNET,還有騎驢玩兒漂移的漂移菌帶來(lái)的講解以及他為大家準(zhǔn)備的Github/Gitee倉(cāng)庫(kù)。
Argon
自我介紹
很有幸參與到這次Digi-key和硬禾學(xué)堂聯(lián)合舉辦的這次開(kāi)發(fā)板體驗(yàn)活動(dòng)。我叫Argon,來(lái)自浙江杭州是一名從事安防行業(yè)的嵌入式網(wǎng)絡(luò)工程師。從大學(xué)開(kāi)始就對(duì)微電子充滿了興趣,在閑暇的時(shí)間也會(huì)利用手頭的元器件自己搭建一些好玩的DIY產(chǎn)品。
實(shí)現(xiàn)功能敘述
1. Seeed STM32MP1開(kāi)發(fā)板教程(0)前期準(zhǔn)備篇: https://blog.csdn.net/Argon_Ghost/article/details/109006612 2. Seeed STM32MP1開(kāi)發(fā)板教程(1)Wi-Fi的使用: https://blog.csdn.net/Argon_Ghost/article/details/108986471 3. Seeed STM32MP1開(kāi)發(fā)板教程(2)GPIO的簡(jiǎn)單操作: https://blog.csdn.net/Argon_Ghost/article/details/109009824 4. Seeed STM32MP1開(kāi)發(fā)板教程(3)IIC設(shè)備AHT10的使用: https://blog.csdn.net/Argon_Ghost/article/details/108986562
心得體會(huì)
工作從事的一直Linux網(wǎng)絡(luò)開(kāi)發(fā),公司對(duì)代碼的封裝較為良好很少涉及到需要手動(dòng)去驅(qū)動(dòng)外設(shè)的情況。通過(guò)這次活動(dòng)我自己手動(dòng)去編譯設(shè)備樹(shù),修改設(shè)備樹(shù)文。我對(duì)設(shè)備樹(shù)以及l(fā)inux內(nèi)核的編譯有了更深層是的理解,同時(shí)也要感謝@圈圈BG3MDO、@漂移菌 大佬的細(xì)心指導(dǎo),編寫(xiě)驅(qū)動(dòng)的過(guò)程也是我們共同探索的過(guò)程。在十一期間的多個(gè)夜晚我們和大洋彼岸的圈圈大佬視頻會(huì)議來(lái)探討設(shè)備樹(shù)相關(guān)的技術(shù)難點(diǎn),也讓我想起了大學(xué)期間在實(shí)驗(yàn)室熬夜攻關(guān)的日子。非常感謝硬禾舉辦的這次體驗(yàn)活動(dòng),讓更多的學(xué)生以及工程師能了解到ST等大廠最新的產(chǎn)品和技術(shù)。 希望之后硬禾多增加宣傳活動(dòng)的力度,這個(gè)活動(dòng)我也是從朋友那里得知的。之前對(duì)硬禾的了解非常有限,希望硬禾以此為契機(jī)來(lái)提高自己的知名度。
漂移菌
個(gè)人介紹
我是李偉斌, AKA 騎驢玩兒漂移,漂移菌。我是伍艾信息科技的一名工程師,我的日常就是打雜。長(zhǎng)期使用樹(shù)莓派,并熟悉 linux 的系統(tǒng)管理和網(wǎng)絡(luò)應(yīng)用,熟悉 python 編程和 C 語(yǔ)言編程,精通 shell 腳本編程。 在 STM32MP157C 上最先完成了一系列的 linux 系統(tǒng)級(jí)別的操作。 例如,配置 uEnv。txt 并加載全驅(qū)動(dòng) dtb 并開(kāi)啟 wifi ,聯(lián)網(wǎng)后,更新了軟件源,切換到清華國(guó)內(nèi)的源。 安裝了 vim 工具,編譯工具等等,并進(jìn)行了磁盤(pán)的擴(kuò)展,默認(rèn)磁盤(pán)空間大概只有 2GB,通過(guò)計(jì)算和配置,將磁盤(pán)擴(kuò)展到 32GB,并通過(guò) USB 接口實(shí)現(xiàn)了兩個(gè)U 盤(pán)合并的磁盤(pán)整列。軟 Raid。 通過(guò) stm32mp157c的 A7 核運(yùn)行的 linux,搭建了一個(gè)簡(jiǎn)易 web 和群友共享資源。 后面實(shí)現(xiàn)了點(diǎn)燈,pwm 呼吸燈, spi 驅(qū)動(dòng)屏幕等操作。
代碼內(nèi)容
1.小夜燈 I2C 驅(qū)動(dòng)(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 的驅(qū)動(dòng)步驟簡(jiǎn)單講述為: 2.1 下載 seeed 官方主線內(nèi)核
2.2 生成.config 配置文件, 通過(guò) zcat /proc/config.gz > .config
2.3 編譯內(nèi)核并啟用 framebuffer(小屏幕)fbtft_deivce 的驅(qū)動(dòng)模塊
2.4 編譯,建議交叉編譯,我是直接在 mp157c 上進(jìn)行編譯的,時(shí)間為 244 分 34 秒 2.5 替換內(nèi)核和安裝驅(qū)動(dòng)模塊 2.6 掛載 spi 的 dtbo 設(shè)備樹(shù)文件,并根據(jù) dtbs 和 dtbi 文件找到引腳映射 2.7 接駁設(shè)備并加載 fbtft_device 驅(qū)動(dòng) 2.8 利用 fbset 工具將終端映射到屏幕上: con2fbmap 1 1
3. OLED 0.96 屏幕驅(qū)動(dòng): 利用 luma 的驅(qū)動(dòng)比較方便,通過(guò)python 驅(qū)動(dòng).避免了直接底層操作 I2C.
4. 創(chuàng)建了 github 和 gitee 的倉(cāng)庫(kù),方便后續(xù)代碼共享. https://github.com/stm32mp/157c.git https://gitee.com/yoyojacky/stm32mp157c.git 5. PWM 驅(qū)動(dòng),使用了核間通信機(jī)制,IPCC,在選擇了 PA3 腳并切換至 TIM2/CH2,通過(guò) cubeIDE 生成了代碼后,加入了 pwm 的函數(shù)。 5.1 點(diǎn)燈部分
/* 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 函數(shù)部分
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 */? 主程序部分寫(xiě)了個(gè)死循環(huán)
/* 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); } }
心得體會(huì)
對(duì)這次活動(dòng)非常滿意, 感覺(jué)很有意思! 活動(dòng)建議:希望項(xiàng)目可以繼續(xù)持續(xù)下去,并且持續(xù)更新和持續(xù)開(kāi)展不同level 的應(yīng)用要求,例如,使用 ble ,大家都用 ble 做應(yīng)用, 使用核間通信,就都用核間通信來(lái)做應(yīng)用,然后分析和交流。
責(zé)任編輯:xj
原文標(biāo)題:Funpack第一期精彩之二:Argon帶你用mqtt連OneNET,漂移菌帶你跑Linux和驅(qū)屏幕
文章出處:【微信公眾號(hào):FPGA入門(mén)到精通】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
Linux
+關(guān)注
關(guān)注
87文章
11465瀏覽量
212819 -
MQTT
+關(guān)注
關(guān)注
5文章
670瀏覽量
23489 -
GitHub
+關(guān)注
關(guān)注
3文章
481瀏覽量
17462 -
OneNET
+關(guān)注
關(guān)注
1文章
51瀏覽量
13237
原文標(biāo)題:Funpack第一期精彩之二:Argon帶你用mqtt連OneNET,漂移菌帶你跑Linux和驅(qū)屏幕
文章出處:【微信號(hào):xiaojiaoyafpga,微信公眾號(hào):電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
Linux權(quán)限管理基礎(chǔ)入門(mén)

兩分鐘帶你了解多功能標(biāo)準(zhǔn)源

企業(yè)級(jí)Claude API應(yīng)用方案!完整調(diào)用攻略來(lái)襲:帶你解鎖Claude 3.5/3.7大模型

杰和課堂|帶你認(rèn)識(shí)算力

【教程】設(shè)備通過(guò)MQTT協(xié)議接入OneNET平臺(tái),建立可視化界面

MQTT調(diào)試助手中文版(物聯(lián)網(wǎng)開(kāi)發(fā)必備)
MQTT.fx 連接Onenet 多協(xié)議接入平臺(tái) MQTT協(xié)議(舊版)詳解

合宙Air780EP模塊——AT指令MQTT接入OneNET開(kāi)發(fā)指南

Air780EP模塊 AT開(kāi)發(fā)-MQTT接入OneNET移動(dòng)物聯(lián)網(wǎng)平臺(tái)應(yīng)用指南

評(píng)論