0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

ElfBoard ? 2025-01-04 16:43 ? 次閱讀

智慧城市的建設(shè)推動了城市各個領(lǐng)域的智能化發(fā)展,消防領(lǐng)域也不例外。智慧消防作為智慧城市的重要組成部分,其建設(shè)和發(fā)展與智慧城市的建設(shè)緊密相連。

在此背景下,ElfBoard團隊完成了一個創(chuàng)新性的開源項目——利用ELF 1開發(fā)板打造的智慧消防車。該項目展現(xiàn)了物聯(lián)網(wǎng)、數(shù)據(jù)處理等前沿技術(shù)在消防領(lǐng)域的應(yīng)用潛力,下面就和各位小伙伴展示一下這個開源項目是怎樣實現(xiàn)的。

項目簡介

智能消防車通過阿里云平臺實現(xiàn)遠(yuǎn)程控制,使得用戶可以遠(yuǎn)程控制車到達(dá)指定地點進(jìn)行滅火,或者通過火焰傳感器檢測到火焰時自動響應(yīng)滅火操作。

功能特性

1、數(shù)據(jù)監(jiān)測與顯示:實時監(jiān)測車運行狀態(tài),并直觀地顯示在Web界面上。

2、Web可視化界面:用戶可以通過Web界面遠(yuǎn)程控制車的移動。

3、遠(yuǎn)程控制:通過阿里云物聯(lián)網(wǎng)平臺向車發(fā)送指令,實現(xiàn)遠(yuǎn)程操作和控制。

4、自動滅火:根據(jù)火焰?zhèn)鞲衅鳈z測到的火焰情況,自動觸發(fā)滅火操作。

環(huán)境說明

1、開發(fā)環(huán)境操作系統(tǒng):Ubuntu18.04 64位版

2、交叉編譯工具鏈:arm-poky-linux-gnueabi-gcc 5.3.0

3、開發(fā)板使用Bootloader版本:u-boot-2016.03

4、開發(fā)板內(nèi)核版本:linux-4.1.15

5、開發(fā)板移植QT版本:qt5.6.2

硬件配置

1、小車驅(qū)動裝置

小車驅(qū)動裝置主要由TB6612FNG雙電機驅(qū)動板、TT馬達(dá)、車輪等組成。

(1)TB6612FNG雙電機驅(qū)動板

wKgZO2d46b6AAHi0AADv1SL2vms777.png

2、滅火裝置

滅火裝置主要由火焰?zhèn)鞲衅鳌⒗^電器、水泵等組成。

(1)火焰?zhèn)鞲衅?/p>wKgZPGd46cqAfSX7AACxkeCzNQg379.png

(2)繼電器

wKgZPGd46daATI0vAACnXAwpQCA603.png

(3)水泵

wKgZPGd46fCAVdcEAACjkRlG4do278.png

3、整體連接示意圖

內(nèi)核適配

1、實現(xiàn)正常驅(qū)動小車的功能

消防車驅(qū)動裝置主要由TB6612FNG雙電機驅(qū)動板,驅(qū)動板中pwm引腳接受板卡輸出的pwm信號,?通過調(diào)整pwm信號的占空比?來控制輸出電壓,?進(jìn)而控制電機的轉(zhuǎn)速,從而?控制小車速度,AIN0/AIN1:?連接板卡的IO端口,?用于控制電機的轉(zhuǎn)動方向。?通過控制這兩個引腳的電平狀態(tài),?可以實現(xiàn)電機的正轉(zhuǎn)、?反轉(zhuǎn)或停止。下面來介紹如何使用EFL 1板卡進(jìn)行pwm復(fù)用以及gpio復(fù)用。

(1)復(fù)用pwm

1)拷貝

ELF1開發(fā)板資料包\02-Linux 源代碼\02-0 出廠內(nèi)核和uboot源碼\內(nèi)核源碼\linux-4.1.15-elf1.tar.bz2內(nèi)核源碼到開發(fā)環(huán)境/home/elf/work/目錄下解壓。

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

2)修改頂層設(shè)備樹文件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

wKgZO2d46l6AWc_RAAHFWwLD2vc478.png

3)修改設(shè)備樹文件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

添加設(shè)備節(jié)點

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

wKgZPGd46oSAYYXhAAC-Oc1HBc4625.png

在iomux節(jié)點下面添加引腳復(fù)用

pinctrl_pwm5: pwm5grp { fsl,pins = < MX6UL_PAD_ENET1_TX_DATA1__PWM5_OUT 0x110b0 >; }; pinctrl_pwm6: pwm6grp { fsl,pins = < MX6UL_PAD_ENET1_TX_EN__PWM6_OUT 0x110b0 >; }; pinctrl_pwm7: pwm7grp { fsl,pins = < MX6UL_PAD_CSI_VSYNC__PWM7_OUT 0x110b0 >; }; pinctrl_pwm8: pwm8grp { fsl,pins = < MX6UL_PAD_CSI_HSYNC__PWM8_OUT 0x110b0 >; };

wKgZO2d48gmADVBqAAClj-T_EyQ260.png

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

wKgZPGd48h6AXahsAABFWU6-sx0080.pngwKgZO2d48h-AEMNcAAC-AxpStWY273.pngwKgZPGd48h-APj3ZAAgjBfSP18U747.png

至此pwm已經(jīng)復(fù)用完成。

(2)復(fù)用gpio

1)修改設(shè)備樹文件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節(jié)點下面添加引腳復(fù)用

MX6UL_PAD_CSI_DATA00__GPIO4_IO21 0x17059 MX6UL_PAD_CSI_DATA01__GPIO4_IO22 0x17059 MX6UL_PAD_CSI_DATA02__GPIO4_IO23 0x17059 MX6UL_PAD_CSI_DATA03__GPIO4_IO24 0x17059 MX6UL_PAD_CSI_DATA04__GPIO4_IO25 0x17059 MX6UL_PAD_CSI_DATA05__GPIO4_IO26 0x17059 MX6UL_PAD_CSI_DATA06__GPIO4_IO27 0x17059 MX6UL_PAD_CSI_DATA07__GPIO4_IO28 0x17059 MX6UL_PAD_UART2_TX_DATA__GPIO1_IO20 0x17059 MX6UL_PAD_UART2_RX_DATA__GPIO1_IO21 0x17059 MX6UL_PAD_CSI_MCLK__GPIO4_IO17 0x17059 MX6UL_PAD_CSI_PIXCLK__GPIO4_IO18 0x17059

wKgZO2d48meAVTRFAAFs0JMReSY610.png

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

wKgZPGd48h6AXahsAABFWU6-sx0080.pngwKgZO2d48h-AEMNcAAC-AxpStWY273.pngwKgZPGd48oWACInLAABpBR_wMO8871.png

至此gpio已經(jīng)復(fù)用完成

(3)編譯并替換設(shè)備樹

1)執(zhí)行環(huán)境變量

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)編譯設(shè)備樹和內(nèi)核

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盤拷貝到開發(fā)板

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

4)保存并重啟開發(fā)板

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

配基于云平臺的遠(yuǎn)程數(shù)據(jù)監(jiān)測和設(shè)備控制

1、配置阿里云物聯(lián)網(wǎng)平臺

(1)注冊并登錄阿里云賬號(2)開通物聯(lián)網(wǎng)平臺服務(wù)(3)開通公共實例(4)創(chuàng)建產(chǎn)品(5)添加設(shè)備(6)發(fā)布產(chǎn)品

2、配置IoT Stdio

(1)領(lǐng)取IoT Stdio體驗版免費試用機會(2)新建項目(3)關(guān)聯(lián)物聯(lián)網(wǎng)平臺產(chǎn)品、設(shè)備(4)新建Web應(yīng)用(5)配置Web顯示界面(6)發(fā)布應(yīng)用

3、程序設(shè)計

wKgZPGd48yiAZTvVAADq_fn1oh4213.png

主函數(shù)的實現(xiàn)main.cpp

int main(int argc, char *argv[]) { pthread_t gpio_tid, mqtt_tid; // 信號處理 signal(SIGTERM, SignHandler); signal(SIGINT, SignHandler); // 初始化控制參數(shù) if (-1 == init_controller_data()) goto to_end; // 初始化MQTT并建立連接 init_mqtt(); // 將設(shè)備數(shù)據(jù)同步到MQTT服務(wù)器 demo_mqtt_send_handler(SET_STRAIGHT_TO_SEND); demo_mqtt_send_handler(SET_LEFT_TO_SEND); demo_mqtt_send_handler(SET_RIGHT_TO_SEND); demo_mqtt_send_handler(SET_BACK_TO_SEND); demo_mqtt_send_handler(SET_STOP_TO_SEND); demo_mqtt_send_handler(SET_WATER_TO_SEND); set_controller(Upperleft, 5.0); set_controller(Lowerleft, 5.0); set_controller(Upperright, 5.0); set_controller(Lowerright, 5.0); set_controller(left, 1.0); set_controller(right, 1.0); set_controller(c8, 1.0); demo_mqtt_send_handler(SET_UPPERLEFT_TO_SEND); demo_mqtt_send_handler(SET_LOWERLEFT_TO_SEND); demo_mqtt_send_handler(SET_UPPERRIGHT_TO_SEND); demo_mqtt_send_handler(SET_LOWERRIGHT_TO_SEND); // 創(chuàng)建GPIO線程 if (pthread_create(&gpio_tid, NULL, gpio_thread, NULL) != 0) { perror("pthread_create for gpio_thread"); goto to_end; } // 創(chuàng)建MQTT線程 if (pthread_create(&mqtt_tid, NULL, mqtt_thread, NULL) != 0) { perror("pthread_create for mqtt_thread"); goto to_end; } pthread_join(gpio_tid, NULL); pthread_join(mqtt_tid, NULL); to_end: // 遇到異常,退出進(jìn)程前,回收資源 release_mqtt(); release_controller_devices(); sleep(1); exit(1); }

初始化控制器參數(shù)

int init_controller_data(void) { controller.left.value = 0; controller.right.value = 0;

controller.Upperleft.value = 0; controller.Upperright.value = 0;

controller.Lowerleft.value = 0; controller.Lowerright.value = 0;

controller.go_straight.value = 0; controller.turn_left.value = 0;

controller.turn_right.value = 0;

controller.go_back.value = 0; controller.go_stop.value = 0;

controller.spray_water.value = 0; controller.left.flag = 0;

controller.right.flag = 0; controller.Upperleft.flag = 0;

controller.Upperright.flag = 0; controller.Lowerleft.flag = 0; controller.Lowerright.flag = 0; controller.go_straight.flag = 0;

controller.turn_left.flag = 0; controller.turn_right.flag = 0;

controller.go_back.flag = 0; controller.go_stop.flag = 0;

controller.spray_water.flag = 0; return 0; }

初始化MQTT

/* init_mqtt, 初始化,跟mqtt服務(wù)器建立鏈接,設(shè)置訂閱,創(chuàng)建通道管理線程,創(chuàng)建接收處理線程 */ int init_mqtt(void)

{ int32_t res = STATE_SUCCESS; uint16_t port = 443; /* 無論設(shè)備是否使用TLS連接阿里云平臺, 目的端口都是443 */

aiot_sysdep_network_cred_t cred; /* 安全憑據(jù)結(jié)構(gòu)體, 如果要用TLS, 這個結(jié)構(gòu)體中配置CA證書等參數(shù) */ char sub_topic[100] = {0}; /* 配置SDK的底層依賴 */

aiot_sysdep_set_portfile(&g_aiot_sysdep_portfile); /* 配置SDK的日志輸出 */

aiot_state_set_logcb(demo_state_logcb); /* 創(chuàng)建SDK的安全憑據(jù), 用于建立TLS連接 */ memset(&cred, 0, sizeof(aiot_sysdep_network_cred_t)); cred.option = AIOT_SYSDEP_NETWORK_CRED_SVRCERT_CA; /* 使用RSA證書校驗MQTT服務(wù)端 */ cred.max_tls_fragment = 16384; /* 最大的分片長度為16K, 其它可選值還有4K, 2K, 1K, 0.5K */

cred.sni_enabled = 1; /* TLS建連時, 支持Server Name Indicator */ cred.x509_server_cert = ali_ca_cert; /* 用來驗證MQTT服務(wù)端的RSA根證書 */ cred.x509_server_cert_len = strlen(ali_ca_cert);

/* 用來驗證MQTT服務(wù)端的RSA根證書長度 */ /* 創(chuàng)建1個MQTT客戶端實例并內(nèi)部初始化默認(rèn)參數(shù) */

mqtt_handle = aiot_mqtt_init(); if (mqtt_handle == NULL) { printf("aiot_mqtt_init failed\n"); return -1; } /* TODO: 如果以下代碼不被注釋, 則例程會用TCP而不是TLS連接云平臺 */

{ memset(&cred, 0, sizeof(aiot_sysdep_network_cred_t)); cred.option = AIOT_SYSDEP_NETWORK_CRED_NONE; } /* 配置MQTT服務(wù)器地址 */ aiot_mqtt_setopt(mqtt_handle, AIOT_MQTTOPT_HOST, (void *)mqtt_host); /* 配置MQTT服務(wù)器端口 */ aiot_mqtt_setopt(mqtt_handle, AIOT_MQTTOPT_PORT, (void *)&port); /* 配置設(shè)備productKey */

aiot_mqtt_setopt(mqtt_handle, AIOT_MQTTOPT_PRODUCT_KEY, (void *)product_key);

/* 配置設(shè)備deviceName */

aiot_mqtt_setopt(mqtt_handle, AIOT_MQTTOPT_DEVICE_NAME, (void *)device_name);

/* 配置設(shè)備deviceSecret */ aiot_mqtt_setopt(mqtt_handle, AIOT_MQTTOPT_DEVICE_SECRET, (void *)device_secret); /* 配置網(wǎng)絡(luò)連接的安全憑據(jù), 上面已經(jīng)創(chuàng)建好了 */

aiot_mqtt_setopt(mqtt_handle, AIOT_MQTTOPT_NETWORK_CRED, (void *)&cred); /* 配置MQTT默認(rèn)消息接收回調(diào)函數(shù) */ aiot_mqtt_setopt(mqtt_handle, AIOT_MQTTOPT_RECV_HANDLER, (void *)demo_mqtt_default_recv_handler); /* 配置MQTT事件回調(diào)函數(shù) */

aiot_mqtt_setopt(mqtt_handle, AIOT_MQTTOPT_EVENT_HANDLER, (void *)demo_mqtt_event_handler);

/* 與服務(wù)器建立MQTT連接 */

res = aiot_mqtt_connect(mqtt_handle);

if (res < STATE_SUCCESS) { /* 嘗試建立連接失敗, 銷毀MQTT實例, 回收資源 */ aiot_mqtt_deinit(&mqtt_handle); printf("aiot_mqtt_connect failed: -0x%04X\n\r\n", -res); printf("please check variables like mqtt_host, produt_key, device_name, device_secret in demo\r\n"); return -1; }?

/* MQTT 訂閱topic功能示例, 請根據(jù)自己的業(yè)務(wù)需求進(jìn)行使用 */

{ strcpy(sub_topic, "/sys/k1l0mrfjkHG/control_unit_1/thing/service/property/set"); res = aiot_mqtt_sub(mqtt_handle, sub_topic, NULL, 1, NULL); if (res < 0) { printf("aiot_mqtt_sub failed, res: -0x%04X\n", -res); return -1; } }?

/* 創(chuàng)建一個單獨的線程, 專用于執(zhí)行aiot_mqtt_process, 它會自動發(fā)送心跳?;? 以及重發(fā)QoS1的未應(yīng)答報文 */

g_mqtt_process_thread_running = 1; res = pthread_create(&g_mqtt_process_thread, NULL, demo_mqtt_process_thread, mqtt_handle); if (res < 0) { printf("pthread_create demo_mqtt_process_thread failed: %d\n", res); return -1; } /* 創(chuàng)建一個單獨的線程用于執(zhí)行aiot_mqtt_recv, 它會循環(huán)收取服務(wù)器下發(fā)的MQTT消息, 并在斷線時自動重連 */ g_mqtt_recv_thread_running = 1; res = pthread_create(&g_mqtt_recv_thread, NULL, demo_mqtt_recv_thread, mqtt_handle); if (res < 0) { printf("pthread_create demo_mqtt_recv_thread failed: %d\n", res); return -1; } return 0; }

同步設(shè)備數(shù)據(jù)到MQTT服務(wù)器

demo_mqtt_send_handler(SET_STRAIGHT_TO_SEND); demo_mqtt_send_handler(SET_LEFT_TO_SEND); demo_mqtt_send_handler(SET_RIGHT_TO_SEND); demo_mqtt_send_handler(SET_BACK_TO_SEND); demo_mqtt_send_handler(SET_STOP_TO_SEND); demo_mqtt_send_handler(SET_WATER_TO_SEND); demo_mqtt_send_handler(SET_UPPERLEFT_TO_SEND); demo_mqtt_send_handler(SET_LOWERLEFT_TO_SEND); demo_mqtt_send_handler(SET_UPPERRIGHT_TO_SEND); demo_mqtt_send_handler(SET_LOWERRIGHT_TO_SEND);

設(shè)置控制器參數(shù)

set_controller(Upperleft, 5.0); set_controller(Lowerleft, 5.0); set_controller(Upperright, 5.0); set_controller(Lowerright, 5.0); set_controller(left, 1.0); set_controller(right, 1.0); set_controller(c8, 1.0);

GPIO線程

// GPIO線程函數(shù) void *gpio_thread(void *arg) { while (1) { int value = 0; set_gpio(c9, 114); value = read_gpio_value(c9_GPIO_VALUE); pthread_mutex_lock(&gpio_mutex); printf("Value: %d\n", value); if (value == -1) { printf("Error occurred while reading file: %s\n", c9_GPIO_VALUE); } if (value == 0) { cspray_water(); } pthread_mutex_unlock(&gpio_mutex); usleep(100000); } return NULL; } // 創(chuàng)建GPIO線程 if (pthread_create(&gpio_tid, NULL, gpio_thread, NULL) != 0) { perror("pthread_create for gpio_thread"); goto to_end; }

MQTT線程

// MQTT線程函數(shù) void *mqtt_thread(void *arg) { while (1) { pthread_mutex_lock(&mqtt_mutex); if (controller.Upperleft.flag == 1) { demo_mqtt_send_handler(SET_UPPERLEFT_TO_SEND); controller.Upperleft.flag = 0; } if (controller.Lowerleft.flag == 1) { demo_mqtt_send_handler(SET_LOWERLEFT_TO_SEND); controller.Lowerleft.flag = 0; } if (controller.Upperright.flag == 1)

{ demo_mqtt_send_handler(SET_UPPERRIGHT_TO_SEND); controller.Upperright.flag = 0; } if (controller.Lowerright.flag == 1) { demo_mqtt_send_handler(SET_LOWERRIGHT_TO_SEND); controller.Lowerright.flag = 0; } if (controller.go_straight.flag == 1)

{ demo_mqtt_send_handler(SET_STRAIGHT_TO_SEND); controller.go_straight.flag = 0;

} if (controller.turn_left.flag == 1) { demo_mqtt_send_handler(SET_LEFT_TO_SEND);

controller.turn_left.flag = 0; } if (controller.turn_right.flag == 1) { demo_mqtt_send_handler(SET_RIGHT_TO_SEND); controller.turn_right.flag = 0;

} if (controller.go_back.flag == 1) { demo_mqtt_send_handler(SET_BACK_TO_SEND);

controller.go_back.flag = 0; } if (controller.go_stop.flag == 1) { demo_mqtt_send_handler(SET_STOP_TO_SEND);

controller.go_stop.flag = 0; } if (controller.spray_water.flag == 1) { demo_mqtt_send_handler(SET_WATER_TO_SEND); controller.spray_water.flag = 0; } pthread_mutex_unlock(&mqtt_mutex); usleep(100000); } return NULL; } // 創(chuàng)建MQTT線程 if (pthread_create(&mqtt_tid, NULL, mqtt_thread, NULL) != 0) { perror("pthread_create for mqtt_thread"); goto to_end; }

4、應(yīng)用編譯

(1)拷貝car.tar.bz2到開發(fā)環(huán)境/home/elf/work目錄下解壓

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

(2)執(zhí)行環(huán)境變量

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 car/ elf@ubuntu:~/work/car$ make

(4)拷貝mqtt_test到開發(fā)板/home/root路徑下

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

設(shè)項目測試

1、設(shè)置Wi-Fi連接

root@ELF1:~# elf1_cmd_wifi.sh -i 8723 -s 賬號 -p 密碼

2、執(zhí)行應(yīng)用

root@ELF1:~# ./mqtt_test

wKgZO2d49C6Aam45AHxoz3BXuzA759.png

此時可以通過Web界面下發(fā)指令控制小車運行

wKgZO2d49DyAV5qvAADTPySxEk4533.png

Web界面將實時顯示小車的運行狀態(tài)

wKgZPGd49FSAVFJTAASkfkpRBm0873.png

至此,就已完成了對智能消防車這一開源項目的詳細(xì)介紹。衷心希望這份指南能為有志于學(xué)習(xí)嵌入式技術(shù)的小伙伴們提供實質(zhì)性的幫助與啟發(fā)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6039

    文章

    44573

    瀏覽量

    636294
  • 嵌入式
    +關(guān)注

    關(guān)注

    5086

    文章

    19142

    瀏覽量

    306035
  • 開發(fā)板
    +關(guān)注

    關(guān)注

    25

    文章

    5078

    瀏覽量

    97671
  • 智慧城市
    +關(guān)注

    關(guān)注

    21

    文章

    4269

    瀏覽量

    97445
  • 開源項目
    +關(guān)注

    關(guān)注

    0

    文章

    38

    瀏覽量

    7209
收藏 人收藏

    評論

    相關(guān)推薦

    基于單片機的新型消防車的研究

    系統(tǒng)功能要求1. 設(shè)計并制作消防車的車體結(jié)構(gòu)、車輪的制作、電機的選擇安裝等;2. 設(shè)計并制作可完成人機交互工作的控制電路板;3. 消防車上安裝有攝像頭,在一些特定場所消防人員難以進(jìn)入到事故現(xiàn)場,不僅
    發(fā)表于 07-31 22:00

    畢業(yè)設(shè)計:新型消防車研究

    的提高了工作效率。 2、消費車上安裝有攝像頭,在一些特定場所消費人員難以進(jìn)入到事故現(xiàn)場,在消防車上安裝攝像頭,不僅可以實時監(jiān)測事故現(xiàn)場的狀況,而且可以通過無線模塊實現(xiàn)對消防車的遠(yuǎn)程控制。以前沒做過無線視頻傳輸,我想問下怎么實現(xiàn)攝像頭的數(shù)據(jù)通過無線模塊存到單片機發(fā)送到電腦上
    發(fā)表于 03-05 18:18

    基于JetsoN Nano開發(fā)套件的開源智能車項目

    JetBot 項目是NVIDIA(英偉達(dá))基于JetsoN Nano開發(fā)套件而設(shè)計的一款開源智能車項目, 為初步上手Jetson Nano,并渴望做出自己的第一個AI
    發(fā)表于 11-04 07:40

    基于EPC2000的消防車控制系統(tǒng)

    基于EPC2000的消防車控制系統(tǒng) 現(xiàn)場環(huán)境是影響火災(zāi)救援工作的一個重要因素之一,如現(xiàn)場的氣溫、風(fēng)向、風(fēng)速等。在以往,現(xiàn)場環(huán)境的測量往往是獨立的,而且
    發(fā)表于 03-26 17:17 ?41次下載

    簡析傾角傳感器在消防車的云梯的作用

    隨著傳感技術(shù)和自動控制技術(shù)的發(fā)展,消防車輛的智能化水平在不斷升高。9月8日,新疆阿勒泰市政府便斥資200多萬元購置了一輛32米的云梯消防車。同時,這也是阿勒泰地區(qū)首輛云梯消防車。一般來
    發(fā)表于 09-22 16:11 ?5次下載

    特斯拉的駕駛系統(tǒng)看不到消防車?

    在洛杉磯郡405高速公路上,一輛特斯拉Model S撞上了停在路邊的消防車。司機告訴消防部門,當(dāng)時汽車處于Autopilot模式。這次事故再次表明了半自動駕駛系統(tǒng)的缺陷。目前,能讓汽車在特定條件
    的頭像 發(fā)表于 01-29 10:52 ?3887次閱讀

    特斯拉再次撞上消防車,自動駕駛系統(tǒng)就這么的不安全嗎?

    在上周六,美國當(dāng)?shù)貢r間8月25日,一輛特斯拉Model S在加州圣何塞的101公路上,撞上一輛停在路邊的消防車,車內(nèi)兩名乘客受了輕傷,37歲的司機因涉嫌酒后駕車被捕。這起事故,是今年特斯拉第三次撞上消防車了,特斯拉為啥老喜歡撞消防車
    發(fā)表于 08-30 15:26 ?1696次閱讀

    國產(chǎn)特種消防車是否可以采用國產(chǎn)底盤

    國產(chǎn)三一重工48/62米大跨度舉高噴射消防車,中聯(lián)重科DG113型登高平臺消防車,以及徐工大跨距石化專用舉噴消防車JP62。這三種消防車中,整車重量最大、高平臺最大作業(yè)高度最高的中聯(lián)重
    的頭像 發(fā)表于 05-06 14:11 ?7419次閱讀

    世界上第一輛電動消防車,奧地利聲稱價值600萬美元

    電氣化正在接管交通的每一個環(huán)節(jié),現(xiàn)在甚至連消防車也開始電動了。美國新澤西州的門羅公園消防部門正計劃購入一輛價值600萬美元的電動消防車。
    的頭像 發(fā)表于 12-13 14:04 ?3235次閱讀

    無線電控制開源項目

    電子發(fā)燒友網(wǎng)站提供《無線電控制開源項目.zip》資料免費下載
    發(fā)表于 07-08 09:22 ?3次下載
    無線電控制<b class='flag-5'>車</b><b class='flag-5'>開源</b><b class='flag-5'>項目</b>

    用于診斷皮爾斯消防車消防

    想跟大家分享一個PicoScope的截圖,診斷非傳統(tǒng)汽車獲取的波形圖。我是一名工程驗證的工程師,我們城市擁有大約200輛的消防相關(guān)車輛和約120輛救護車。此次截圖用于診斷皮爾斯消防車消防梯,使用者抱怨說梯子會在控制桿回到原位后
    的頭像 發(fā)表于 09-15 11:46 ?856次閱讀

    WIFI Nodemcu移動控制開源項目

    電子發(fā)燒友網(wǎng)站提供《WIFI Nodemcu移動控制開源項目.zip》資料免費下載
    發(fā)表于 10-27 09:27 ?0次下載
    WIFI Nodemcu移動控制<b class='flag-5'>車</b><b class='flag-5'>開源</b><b class='flag-5'>項目</b>

    泡沫消防車電控系統(tǒng)方案

    必備的裝備。泡沫消防車電控系統(tǒng)以長沙碩博電子科技股份有限公司的7寸顯示屏SPD-070-Bx、IO模塊SPC-SDIO-S1212、硅膠面板SPM-KEYP-A12為核心,通過CAN總線進(jìn)行通信,輔以整
    的頭像 發(fā)表于 12-14 15:24 ?1019次閱讀
    泡沫<b class='flag-5'>消防車</b>電控系統(tǒng)方案

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

    【基于ELF1開發(fā)板完成的“智慧光伏”項目】“智慧光伏”項目能夠智能追蹤陽光的移動軌跡。通過內(nèi)置的光敏傳感器和智能控制系統(tǒng),實時感知周圍光源的變化,并驅(qū)動太陽能板精準(zhǔn)調(diào)整角度,確保每一
    的頭像 發(fā)表于 10-11 15:52 ?420次閱讀
    <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>技術(shù)文檔

    5G?聯(lián)網(wǎng)賦能消防車調(diào)度,推動高效智能消防救援

    當(dāng)熊熊烈火肆虐,每一秒都關(guān)乎生命與財產(chǎn)的安危之際,消防車借助5G工業(yè)路由器構(gòu)建的聯(lián)網(wǎng),可以實時傳輸火災(zāi)現(xiàn)場的高清畫面,讓指揮中心如臨現(xiàn)場;能夠精準(zhǔn)定位,迅速規(guī)劃最優(yōu)救援路徑;與多輛消防車協(xié)同作戰(zhàn)
    的頭像 發(fā)表于 12-18 16:26 ?255次閱讀
    5G?<b class='flag-5'>車</b>聯(lián)網(wǎng)賦能<b class='flag-5'>消防車</b>調(diào)度,推動高效<b class='flag-5'>智能</b><b class='flag-5'>消防</b>救援