在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ElfBoard開源項目|“智慧光伏”開源項目技術文檔

ElfBoard ? 2024-10-11 15:52 ? 次閱讀
wKgZomcI0SCAbJ-TAAdslccJvTs662.png【基于ELF 1開發板完成的“智慧光伏”項目】

“智慧光伏”項目能夠智能追蹤陽光的移動軌跡。通過內置的光敏傳感器和智能控制系統,實時感知周圍光源的變化,并驅動太陽能板精準調整角度,確保每一縷陽光都能被最大化地捕捉和利用。下面就和各位小伙伴詳細介紹一下這一開源項目是怎樣實現的。

環境說明

1.開發環境操作系統:Ubuntu18.04 64位版

2.交叉編譯工具鏈:arm-poky-linux-gnueabi-gcc5.3.0

3.開發板使用Bootloader版本:u-boot-2016.03

4.開發板內核版本:linux-4.1.15

5.開發板移植QT版本:qt5.6.2

一、 硬件連接

1、四路光敏傳感器與板卡的連接

wKgZomcI0UqAXRd7AAD4mKU6LRo152.png

2、舵機與板卡的連接

wKgZomcI0VaAfi_8AADSnETwRV8438.png

二、內核適配

1、實現舵機轉動的功能

MG90S舵機采用pwm的方式來控制,該項目需要用到兩個舵機,所以需要在設備樹中進行pwm7、pwm8的復用。

(1)拷貝ELF1開發板資料包\02-Linux 源代碼\02-0 出廠內核和uboot源碼\內核源碼\linux-4.1.15-elf1.tar.bz2

內核源碼到開發環境/home/elf/work/目錄下解壓

elf@ubuntu:~/work$ tar -xvf linux-4.1.15-elf1.tar.bz2

(2)修改頂層設備樹文件arch/arm/boot/dts/imx6ull.dtsi

elf@ubuntu:~/work$ cd linux-4.1.15-elf1/ elf@ubuntu:~/work/linux-4.1.15-elf1$ vi arch/arm/boot/dts/imx6ull.dtsi

wKgaoWcI1D2AUGqCAAD0VIgFxl8762.png

(3)修改設備樹文件arch/arm/boot/dts/imx6ull-elf1-emmc.dts

elf@ubuntu:~/work/linux-4.1.15-elf1$ vi arch/arm/boot/dts/imx6ull-elf1-emmc.dts

添加pwm7、pwm8設備節點

&pwm7 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm7>; status = "okay"; }; &pwm8 { pinctrl-names = "default"; pinctrl-0 = <&pinctrl_pwm8>; status = "okay"; };

wKgaomcI1eaAZjfMAACciSNZrIg420.png

在iomux節點下面添加pwm7、pwm8引腳復用

pinctrl_pwm7: pwm7grp { fsl,pins = < MX6UL_PAD_CSI_VSYNC__PWM7_OUT 0x110b0 >; }; pinctrl_pwm8: pwm8grp { fsl,pins = < MX6UL_PAD_CSI_HSYNC__PWM8_OUT 0x110b0 >; };

wKgZomcI1f-AaDdtAAC12TTTM_I189.png

取消其它用到csi功能的地方

wKgZomcI1iCALz2RAAC47pQs0MY660.pngwKgZomcI1iuAfdX6AADa0ymii6w527.png

至此pwm7、pwm8已經復用完成

2、實現獲取光照值的功能

四路光敏傳感器需要四路adc,需要在設備樹中進行adc1、adc2、adc3、adc4的復用

(1)修改設備樹文件arch/arm/boot/dts/imx6ull-elf1-emmc.dts

elf@ubuntu:~/work$ cd linux-4.1.15-elf1/ elf@ubuntu:~/work/linux-4.1.15-elf1$ vi arch/arm/boot/dts/imx6ull-elf1-emmc.dts

在iomux節點下面添加adc1、adc2、adc3、adc4引腳復用

pinctrl_adc1: adc1grp { fsl,pins = < MX6UL_PAD_GPIO1_IO05__GPIO1_IO05 0x00b0 MX6UL_PAD_GPIO1_IO01__GPIO1_IO01 0x00b0 MX6UL_PAD_GPIO1_IO02__GPIO1_IO02 0x00b0 MX6UL_PAD_GPIO1_IO03__GPIO1_IO03 0x00b0 MX6UL_PAD_GPIO1_IO04__GPIO1_IO04 0x00b0 >; };

wKgaomcI1miAOh9QAADCVdnkq5M265.png

注釋掉其它用到GPIO1_IO01、GPIO1_IO02、GPIO1_IO03、GPIO1_IO04功能的地方

wKgaoWcI11CAFTjcAADonpe1QCg130.png

至此adc已經復用完成

3、編譯并替換設備樹

(1)執行環境變量

elf@ubuntu:~/work/linux-4.1.15-elf1$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

(2)編譯設備樹

elf@ubuntu:~/work/linux-4.1.15-elf1$ make imx6ull_elf1_defconfig elf@ubuntu:~/work/linux-4.1.15-elf1$ make dtbs

(3)將arch/arm/boot/dts/路徑下的imx6ull-elf1-emmc.dtb放到U盤,通過U盤拷貝到開發板

root@ELF1:~# cp /run/media/sda1/imx6ull-elf1-emmc.dtb /run/media/mmcblk1p1/

(4)保存并重啟開發板

root@ELF1:~# sync root@ELF1:~# reboot

三、數據采集和設備控制

1、程序設計

wKgZoWcI2ASABFvUAABY1jE3f8E038.png

主函數的實現main.cpp

int main() { int up = 0; int down = 0; int left = 0; int right = 0; int duty_cycle6 = DUTY_90_DEG; int duty_cycle7 = DUTY_90_DEG; int adcChannels[] = {1, 2, 3, 4}; int adcValues[4] = {0}; init_pwm(); write_file(PWM6_DUTY_CYCLE, duty_cycle6); write_file(PWM7_DUTY_CYCLE, duty_cycle7); while (1) { for (int i = 0; i < 4; ++i) { adcValues[i] = read_adc_value(adcChannels[i]); } up = (adcValues[3] + adcValues[0]) ; down = (adcValues[2] + adcValues[1]) ; left = (adcValues[3] + adcValues[2]) ; right = (adcValues[0] + adcValues[1]) ; printf("up: %d\n", up); printf("down: %d\n", down); printf("left: %d\n", left); printf("right: %d\n", right); if ((down - up >= 200) && (duty_cycle6 >= DUTY_0_DEG)) { duty_cycle6 -= 100000; write_file(PWM6_DUTY_CYCLE, duty_cycle6); usleep(10000); } if ((up - down >= 200) && (duty_cycle6 <= DUTY_180_DEG)) { duty_cycle6 += 100000; write_file(PWM6_DUTY_CYCLE, duty_cycle6); usleep(10000); } if ((right - left >= 200) && (duty_cycle7 >= DUTY_0_DEG)) { duty_cycle7 -= 100000; write_file(PWM7_DUTY_CYCLE, duty_cycle7); usleep(10000); } if ((left - right >= 200) && (duty_cycle7 <= DUTY_180_DEG)) { duty_cycle7 += 100000; write_file(PWM7_DUTY_CYCLE, duty_cycle7); usleep(10000); } usleep(100000); } return 0; }

配置pwm

int init_pwm() { write_file(PWM6_EXPORT, 0); if (-1 == write_file(PWM6_PERIOD, PWM_PERIOD)) return -1; if (-1 == write_file(PWM6_ENABLE, 1)) return -1; write_file(PWM7_EXPORT, 0); if (-1 == write_file(PWM7_PERIOD, PWM_PERIOD)) return -1; if (-1 == write_file(PWM7_ENABLE, 1)) return -1; return 0; }

設置舵機初始位置

write_file(PWM6_DUTY_CYCLE, duty_cycle6); write_file(PWM7_DUTY_CYCLE, duty_cycle7);

獲取光照值

int read_adc_value(int adcNumber) { int adcValue = 0 ; FILE* adcFile; char adcValueFile[50]; char adcValueStr[10] = "0"; snprintf(adcValueFile, sizeof(adcValueFile), "/sys/bus/iio/devices/iio:device0/in_voltage%d_raw", adcNumber); adcFile = fopen(adcValueFile, "r"); if (adcFile) { fgets(adcValueStr, sizeof(adcValueStr), adcFile); adcValue = atoi(adcValueStr); fclose(adcFile); } else { fprintf(stderr, "Error opening ADC value file %s.\n", adcValueFile); } return adcValue; }

根據光照值調整舵機位置

if ((down - up >= 200) && (duty_cycle6 >= DUTY_0_DEG)) { duty_cycle6 -= 100000; write_file(PWM6_DUTY_CYCLE, duty_cycle6); usleep(10000); } if ((up - down >= 200) && (duty_cycle6 <= DUTY_180_DEG)) { duty_cycle6 += 100000; write_file(PWM6_DUTY_CYCLE, duty_cycle6); usleep(10000); } if ((right - left >= 200) && (duty_cycle7 >= DUTY_0_DEG)) { duty_cycle7 -= 100000; write_file(PWM7_DUTY_CYCLE, duty_cycle7); usleep(10000); } if ((left - right >= 200) && (duty_cycle7 <= DUTY_180_DEG)) { duty_cycle7 += 100000; write_file(PWM7_DUTY_CYCLE, duty_cycle7); usleep(10000); }

2、應用編譯

(1)拷貝sun.tar.bz2到開發環境/home/elf/work目錄下解壓

elf@ubuntu:~/work$ tar xvf sun.tar.bz2

(2)執行環境變量

elf@ubuntu:~/work$ . /opt/fsl-imx-x11/4.1.15-2.0.0/environment-setup-cortexa7hf-neon-poky-linux-gnueabi

(3)編譯

elf@ubuntu:~/work$ cd sun/ elf@ubuntu:~/work/sun$ make

(4)拷貝sanapp到開發板/home/root路徑下

root@ELF1:~# cp /run/media/sda1/sunapp ./ root@ELF1:~# sync

四、項目測試

1、確保開發板已正確連接四路光敏傳感器和舵機

2、執行應用

root@ELF1:~# ./sunapp

此時可以打開手電筒模擬太陽光,調整太陽能板的角度

對于初涉嵌入式開發領域的小伙伴來說,“智慧光伏”無疑是一個兼具趣味與實踐的開源項目。通過親身參與這一開源項目的組裝與調試過程,可以直接接觸到真實的開發環境、工具鏈和代碼庫,從而解決實際問題,幫助初學者更快地成長為合格的嵌入式開發工程師

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 單片機
    +關注

    關注

    6065

    文章

    44940

    瀏覽量

    647975
  • 嵌入式
    +關注

    關注

    5143

    文章

    19569

    瀏覽量

    315663
  • 開發板
    +關注

    關注

    25

    文章

    5576

    瀏覽量

    103008
  • Linux開發
    +關注

    關注

    0

    文章

    37

    瀏覽量

    7262
  • 開源代碼
    +關注

    關注

    0

    文章

    37

    瀏覽量

    3169
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    RISC V 開源芯片項目:OpenTitan 詳細解讀

    OpenTitan 是由 Google 主導的開源安全芯片項目,旨在為硬件系統提供 可信的硬件信任根(Root of Trust, RoT)? ,通過透明化設計和開源協作提升硬件安全水平。以下是其
    的頭像 發表于 04-09 14:45 ?1256次閱讀
    RISC V <b class='flag-5'>開源</b>芯片<b class='flag-5'>項目</b>:OpenTitan 詳細解讀

    Open Echo:一個開源的聲納項目

    開源硬件項目,Open Echo 致力于構建高精度聲吶系統,主要應用于水文測繪與科研探測領域。項目遵循完全開源協議,目前已在GitHub平臺公開全部
    的頭像 發表于 03-20 11:14 ?782次閱讀
    Open Echo:一個<b class='flag-5'>開源</b>的聲納<b class='flag-5'>項目</b>

    智慧光運維分析系統三大核心優勢賦能光電站智慧運維

    精準決策?公眾智能監測推出的智慧光運維分析系統以物聯網、大數據、人工智能為核心技術,聚焦“降本、增效、安全”三大核心優勢,為電站運營商提供智能化管理利器。 ?????? 一、降本——從“人海戰術”到
    的頭像 發表于 02-13 18:05 ?508次閱讀
    <b class='flag-5'>智慧光</b><b class='flag-5'>伏</b>運維分析系統三大核心優勢賦能光<b class='flag-5'>伏</b>電站<b class='flag-5'>智慧</b>運維

    智慧光運維管理系統

    智慧光運維管理系統 智慧光運維管理系統是專為光電站設計的一種高度集成化的智能管理系統,旨在通過先進的信息
    的頭像 發表于 01-10 16:15 ?469次閱讀
    <b class='flag-5'>智慧光</b><b class='flag-5'>伏</b>運維管理系統

    ElfBoard開源項目|智能消防車項目

    項目——利用ELF 1開發板打造的智慧消防車。該項目展現了物聯網、數據處理等前沿技術在消防領域的應用潛力,下面就和各位小伙伴展示一下這個開源
    的頭像 發表于 01-04 16:43 ?634次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>開源</b><b class='flag-5'>項目</b>|智能消防車<b class='flag-5'>項目</b>

    智慧光運維管理系統助力光運維降本增效

    智慧光運維管理系統助力光運維降本增效 智慧光運維管理系統是利用物聯網、大數據、云計算、人工智能等先進
    的頭像 發表于 01-03 17:00 ?459次閱讀
    <b class='flag-5'>智慧光</b><b class='flag-5'>伏</b>運維管理系統助力光<b class='flag-5'>伏</b>運維降本增效

    開源鴻蒙榮獲開放原子“2024年度操作系統領域國內活躍開源項目

    開源鴻蒙”或“OpenHarmony”)榮獲“2024年度操作系統領域國內活躍開源項目”。 活躍的開源項目
    的頭像 發表于 12-28 15:39 ?830次閱讀

    開放原子開源基金會與三個開源項目舉行捐贈簽約儀式

    近日,在2024開放原子開發者大會暨首屆開源技術學術大會開幕式上,開放原子開源基金會秘書長助理李博與openKylin、EasyAda、KWDB開源
    的頭像 發表于 12-23 11:29 ?660次閱讀

    ElfBoard開源項目|車牌識別項目技術文檔

    車牌識別項目基于百度智能云平臺,旨在利用其強大的OCR服務實現車牌號碼的自動識別。選擇百度智能云的原因是其高效的API接口和穩定的服務質量,能夠幫助開發者快速實現車牌識別應用。這個開源項目使用攝像頭
    的頭像 發表于 12-06 10:30 ?591次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>開源</b><b class='flag-5'>項目</b>|車牌識別<b class='flag-5'>項目</b><b class='flag-5'>技術</b><b class='flag-5'>文檔</b>

    無人機AI智慧光巡檢系統的技術實現與運維革新

    無人機AI智慧光巡檢系統的技術實現與運維革新 在綠色能源領域,光發電正以其清潔、可再生的特性引領著能源轉型的浪潮。然而,隨著光電站規模
    的頭像 發表于 11-28 16:32 ?833次閱讀

    凌蒙派OpenHarmony開源項目榮獲本期Gitee官方推薦

    近日,我司凌蒙派OpenHarmony開源項目榮獲本期Gitee官方推薦。本期Gitee官方推薦不僅是對凌蒙派OpenHarmony開源項目的高度認可,也是對我司在推動
    的頭像 發表于 11-20 01:04 ?804次閱讀
    凌蒙派OpenHarmony<b class='flag-5'>開源</b><b class='flag-5'>項目</b>榮獲本期Gitee官方推薦

    真格基金宣布捐贈開源AI項目vLLM

    開源技術處于 AI 革命的中心。Llama 3、Mistral 等開源大模型迅速追趕 GPT-4,TensorFlow、Pytorch 等開源深度學習框架提供了豐富的庫和工具。GitH
    的頭像 發表于 09-24 16:13 ?706次閱讀

    ElfBoard開源項目|“智慧教室”開源項目技術文檔

    智慧教室”項目的目標是實現實時采集環境中的溫度、濕度及光照信息,并將這些數據可視化地呈現在Qt圖形界面上。用戶既可以選擇手動控制風扇與窗簾的開關,也可以設置系統根據所采集的環境參數自動調節,以達到舒適的室內環境。接下來,將和各位小伙伴深入探討這一
    的頭像 發表于 09-11 10:51 ?797次閱讀
    <b class='flag-5'>ElfBoard</b><b class='flag-5'>開源</b><b class='flag-5'>項目</b>|“<b class='flag-5'>智慧</b>教室”<b class='flag-5'>開源</b><b class='flag-5'>項目</b><b class='flag-5'>技術</b><b class='flag-5'>文檔</b>

    Matepad pro12.2 已上市半個月,但是還沒有在開源網站看到該項目開源信息,違背開源精神

    Matepad pro12.2 已上市半個月,本人自己也購買了同款12+256的pad,想要同步學習下這款pad的一些體驗還不錯的功能點,但是目前為止還沒有在開源網站看到該項目開源信息,也查詢不到
    發表于 08-27 17:25

    智慧光運維管理系統引領光電站管理新時代

    ?????? 智慧光運維管理系統引領光電站管理新時代 ?????? 隨著全球對可再生能源需求的不斷增長,光電站作為清潔能源的代表,正迅速擴展器市場份額。然而,隨著光
    的頭像 發表于 07-30 16:00 ?1211次閱讀
    <b class='flag-5'>智慧光</b><b class='flag-5'>伏</b>運維管理系統引領光<b class='flag-5'>伏</b>電站管理新時代
    主站蜘蛛池模板: 久久久一本 | 天堂网男人 | 天天射狠狠干 | 免费a网址 | 日产精品卡二卡三卡四卡乱码视频 | 亚洲美女视频在线观看 | 久久草在线视频播放 | 日韩毛片免费视频一级特黄 | 手机在线看片福利盒子 | 免费看曰批女人爽的视频网址 | 天天干天天日天天射天天操毛片 | 天天摸日日舔 | 久久国产精品岛国搬运工 | 五月天亚洲综合 | 开心激情小说 | 伊人精品网 | 成人午夜久久 | xxxxxhd69日本护士| 欧美色图888| 久久精品免视看国产成人2021 | 婷婷色六月 | 大尺度视频在线 | 野外啪啪抽搐一进一出 | 亚洲一区二区在线 | 欧美a一| 午夜伦y4480影院中文字幕 | 免费观看a黄一级视频 | 男人和女人在床做黄的网站 | 成人午夜免费视频 | 免费看一级特黄a大片 | 性做久久久久久免费观看 | 中国高清性色生活片 | 爱爱免费视频 | 亚洲一区二区免费 | 奇米欧美 | 久久国产午夜精品理论片34页 | 在线观看黄色的网站 | 香蕉午夜视频 | 日本三级吹潮 | 美女张开腿让男人桶爽 | 丁香欧美 |