昨天我們看了圈圈和Rudy做的詳細(xì)介紹,包括入門和連接阿里云。今天我們來看看嵌入式網(wǎng)絡(luò)工程師Argon講述怎么連上另一個(gè)IOT平臺(tái)——OneNET,還有騎驢玩兒漂移的漂移菌帶來的講解以及他為大家準(zhǔn)備的Github/Gitee倉(cāng)庫(kù)。
Argon
自我介紹
很有幸參與到這次Digi-key和硬禾學(xué)堂聯(lián)合舉辦的這次開發(fā)板體驗(yàn)活動(dòng)。我叫Argon,來自浙江杭州是一名從事安防行業(yè)的嵌入式網(wǎng)絡(luò)工程師。從大學(xué)開始就對(duì)微電子充滿了興趣,在閑暇的時(shí)間也會(huì)利用手頭的元器件自己搭建一些好玩的DIY產(chǎn)品。
實(shí)現(xiàn)功能敘述
1. Seeed STM32MP1開發(fā)板教程(0)前期準(zhǔn)備篇: https://blog.csdn.net/Argon_Ghost/article/details/109006612 2. Seeed STM32MP1開發(fā)板教程(1)Wi-Fi的使用: https://blog.csdn.net/Argon_Ghost/article/details/108986471 3. Seeed STM32MP1開發(fā)板教程(2)GPIO的簡(jiǎn)單操作: https://blog.csdn.net/Argon_Ghost/article/details/109009824 4. Seeed STM32MP1開發(fā)板教程(3)IIC設(shè)備AHT10的使用: https://blog.csdn.net/Argon_Ghost/article/details/108986562
心得體會(huì)
工作從事的一直Linux網(wǎng)絡(luò)開發(fā),公司對(duì)代碼的封裝較為良好很少涉及到需要手動(dòng)去驅(qū)動(dòng)外設(shè)的情況。通過這次活動(dòng)我自己手動(dòng)去編譯設(shè)備樹,修改設(shè)備樹文。我對(duì)設(shè)備樹以及l(fā)inux內(nèi)核的編譯有了更深層是的理解,同時(shí)也要感謝@圈圈BG3MDO、@漂移菌 大佬的細(xì)心指導(dǎo),編寫驅(qū)動(dòng)的過程也是我們共同探索的過程。在十一期間的多個(gè)夜晚我們和大洋彼岸的圈圈大佬視頻會(huì)議來探討設(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ī)來提高自己的知名度。
漂移菌
個(gè)人介紹
我是李偉斌, AKA 騎驢玩兒漂移,漂移菌。我是伍艾信息科技的一名工程師,我的日常就是打雜。長(zhǎng)期使用樹莓派,并熟悉 linux 的系統(tǒng)管理和網(wǎng)絡(luò)應(yīng)用,熟悉 python 編程和 C 語(yǔ)言編程,精通 shell 腳本編程。 在 STM32MP157C 上最先完成了一系列的 linux 系統(tǒng)級(jí)別的操作。 例如,配置 uEnv。txt 并加載全驅(qū)動(dòng) dtb 并開啟 wifi ,聯(lián)網(wǎng)后,更新了軟件源,切換到清華國(guó)內(nèi)的源。 安裝了 vim 工具,編譯工具等等,并進(jìn)行了磁盤的擴(kuò)展,默認(rèn)磁盤空間大概只有 2GB,通過計(jì)算和配置,將磁盤擴(kuò)展到 32GB,并通過 USB 接口實(shí)現(xiàn)了兩個(gè)U 盤合并的磁盤整列。軟 Raid。 通過 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 配置文件, 通過 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è)備樹文件,并根據(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)比較方便,通過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,通過 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 */? 主程序部分寫了個(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)非常滿意, 感覺很有意思! 活動(dòng)建議:希望項(xiàng)目可以繼續(xù)持續(xù)下去,并且持續(xù)更新和持續(xù)開展不同level 的應(yīng)用要求,例如,使用 ble ,大家都用 ble 做應(yīng)用, 使用核間通信,就都用核間通信來做應(yīng)用,然后分析和交流。
責(zé)任編輯:xj
原文標(biāo)題:Funpack第一期精彩之二:Argon帶你用mqtt連OneNET,漂移菌帶你跑Linux和驅(qū)屏幕
文章出處:【微信公眾號(hào):FPGA入門到精通】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
Linux
+關(guān)注
關(guān)注
87文章
11326瀏覽量
209961 -
MQTT
+關(guān)注
關(guān)注
5文章
653瀏覽量
22588 -
GitHub
+關(guān)注
關(guān)注
3文章
473瀏覽量
16503 -
OneNET
+關(guān)注
關(guān)注
1文章
51瀏覽量
12833
原文標(biāo)題:Funpack第一期精彩之二:Argon帶你用mqtt連OneNET,漂移菌帶你跑Linux和驅(qū)屏幕
文章出處:【微信號(hào):xiaojiaoyafpga,微信公眾號(hào):電子森林】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論