91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

3天內不再提示

【開源項目】OpenHarmony挑戰(zhàn)賽-家庭醫(yī)生終端系統(tǒng)-血壓/心率/血氧檢測

電子發(fā)燒友論壇 ? 2022-09-21 09:47 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、項目介紹

基于OpenHarmony使用HI3861實現(xiàn)血壓、心率、血氧的檢測和上傳(具有獨立APP)

采集被測人體血壓(高血壓/低血壓參數(shù))

采集被測人體心率參數(shù)

采集被測人體血氧參數(shù)

具有WEB配網功能

與服務器進行連接并實現(xiàn)數(shù)據(jù)交互

可使用清潔能源(太陽能板進行供電和充電)

開發(fā)基于OpenHarmony的控制APP

具有離線屏幕顯示功能(OLED-0.96寸)

3a4a2176-38da-11ed-b180-dac502259ad0.jpg

二、WEB配網

教程視頻:


(1)碰一碰配網介紹

3a5f1cfc-38da-11ed-b180-dac502259ad0.png

通過一機一碼的形式,識別到NFC后云端驗證設備,進行彈窗拉起,再由NAN或AP的方式,實現(xiàn)發(fā)送配網的SSID和Password。

NAN配網

1. 操作設備上配網鍵讓設備進入配網模式

2. 手機碰一碰設備上的NFC標簽,拉起輕應用

3. 選擇配網wifi

4. 調用 discoveryByNAN接口code為0

5. 調用connectDevice接口連接設備

6. 調用configDeviceNet接口開始配網

7. 調用disconnectDevice接口斷開網絡

8. 調用檢測設備是否上線接口

9. 檢測到設備上線,調用綁定設備接口

AP配網

1. 操作設備上配網鍵讓設備進入配網模式

2. 手機碰一碰設備上的NFC標簽,拉起輕應用

3. 選擇配網wifi

4. 調用discoveryByNAN接口code不為0

5. 調用discoveryBySoftAp接口搜索當前設備的ap,搜索不到的話嘗試直接去連接ap

6. 調用connectDevice接口連接設備

7. 調用configDeviceNet接口開始配網

8. 調用disconnectDevice接口斷開網絡

9. 調用檢測設備是否上線接口

10. 檢測到設備上線,調用綁定設備接口

(2)WEB配網

本章主要講述如何實現(xiàn)web配網,是在STA模式下,模擬為一個網站服務器,當手機或其它設備進行訪問時,檢測是否為瀏覽器的協(xié)議頭(HTTP),返回一個封裝好的網頁界面,通過網頁上輸入框的填寫實現(xiàn)配網。

3a6bee28-38da-11ed-b180-dac502259ad0.png

HTTP協(xié)議介紹:

1. http協(xié)議->超文本傳輸協(xié)議

2. 應用:編寫基于http協(xié)議的數(shù)據(jù)傳輸程序(網站中瀏覽器端獲取網頁的過程)

3. http請求作用:將要獲取的內容以http協(xié)議的格式發(fā)送給服務端,服務端根據(jù)格式進行解析獲取到其真實內容,將結果以http協(xié)議的格式回復給客戶端。

(3)WEB配網界面

html源代碼如下

"UTF-8" />"viewport" content="width=device-width, initial-scale=1.0">"X-UA-Compatible" content="ie=edge">程皖配網"my">"center">"16">歡迎使用程皖配網 
"center">WiFi名稱:"text" name="s" placeholder="請輸入您WiFi的名稱" id="aa" style="text-align:center">
"center">WiFi密碼:"text" name="p" placeholder="請輸入您WiFi的密碼" id="bb">
"center">服務器IP:"text" name="i" placeholder="請輸入您的服務器IP" id="cc">
"center">服務器端口:"text" name="t" placeholder="請輸入您的服務器端口" id="dd"> 
"center">"button" value="連接" onclick="wifi()" style="width:150px;height:40px" >"javascript">function wifi(){var ssid = my.s.value;var password =my.p.value;var tcp_ip = my.i.value;var tcp_port = my.t.value;var xmlhttp=new XMLHttpRequest();xmlhttp.open("GET","/HandleVal?ssid="+ssid+"&password="+password+"&tcp_ip="+tcp_ip+"&tcp_port="+tcp_port,true);xmlhttp.send()}

實現(xiàn)的效果如下:

3a7bafe8-38da-11ed-b180-dac502259ad0.png

(4)soft模式下實現(xiàn)網頁服務器

該部分步驟分為四步:打開WIFI、進入softap模式,創(chuàng)建tcp服務器,解析HTTP指令。此處可參照

潤和開源項目:

https://gitee.com/hihopeorg/HarmonyOS-IoT-Application-Development/tree/master

1)打開WIFI

ret = hi_wifi_init(APP_INIT_VAP_NUM, APP_INIT_USR_NUM);
  if (ret != HISI_OK) {
    printf("wifi init failed!
");
  } else {
    printf("wifi init success!
");
  }

2)進入softap模式

在softap.c文件下WifiAPTask函數(shù),注冊回調
  //注冊wifi事件的回調函數(shù)
  g_wifiEventHandler.OnHotspotStaJoin = OnHotspotStaJoinHandler;
  g_wifiEventHandler.OnHotspotStaLeave = OnHotspotStaLeaveHandler;
  g_wifiEventHandler.OnHotspotStateChanged = OnHotspotStateChangedHandler;

  error = RegisterWifiEvent(&g_wifiEventHandler);

3)創(chuàng)建socket通道后進入判斷接受內容循環(huán)

while (1)
    {
      if ((ret = recv(new_fd, recvbuf, sizeof(recvbuf), 0)) == -1)
      {
        printf("recv error 
");
      }else
      {
      //printf("recv :%s
", recvbuf);
      //返回s1中包含s2所有字符的最大起始段長度
      //size_t strspn(const char *s1, const char *s2);
      char* p= strstr(recvbuf,TEST);
      uint16_t DIR_buff = p - recvbuf;
      printf("
The GET HTTP num:%d
",DIR_buff);
      if(DIR_buff<10)
      {
       Set_clint_flag = 1;

      }else if(DIR_buff>40)
      {
       Set_clint_flag = 2;

       char *p1, *p2;
       p1 = strstr(recvbuf, "ssid=");
       p2 = strstr(recvbuf, "&password");
        if(p1!=0 && p2!=0 && p1
        {
          p1 += strlen("ssid=");
          memcpy(get_ssid, p1, p2 - p1);
          printf("
get the ssid = %s
", get_ssid); 
        }
       p1 = strstr(recvbuf, "password=");
       p2 = strstr(recvbuf, "&tcp_ip");
        if(p1!=0 && p2!=0 && p1
        {
          p1 += strlen("password=");
          memcpy(get_pwd, p1, p2 - p1);
          printf("get the ssid = %s
", get_pwd); 
        }
       WifiConnect(get_ssid,get_pwd);

      }else
      {
        Set_clint_flag = 3;
      }
      
      bzero(recvbuf, sizeof(recvbuf));
      //close(new_fd);
      }

      sleep(2);

      if(Set_clint_flag==1)
      {

    
      if ((ret = send(new_fd, httphard1, strlen(httphard1), 0)) == -1)
      {
        perror("send : ");
        
      }
      if ((ret = send(new_fd, webtr, strlen(webtr), 0)) == -1)
      {
        perror("send : ");
        
      }
        
        Set_clint_flag = 0;
        new_fd = -1;
        break;      
      }else if(Set_clint_flag==2)
      {
        Set_clint_flag = 0;
        new_fd = -1;
        WifiConnect(get_ssid,get_pwd);
        break;  
      }else if(Set_clint_flag==3)
      {
        Set_clint_flag = 0;
        new_fd = -1;
        break;   
      }
      sleep(2);
    }

在這個循環(huán)中實現(xiàn)了判斷當前是否為HTTP指令,如果接收到訪問信號就回發(fā)網頁具體內容,實現(xiàn)手機顯示網頁。

在填寫SSID和PWD后點擊提交,此時手機再向HI3861發(fā)出HTTP指令,中間攜帶填入的信息,該部分由以下程序讀?。?/span>

p1 = strstr(recvbuf, "ssid=");
       p2 = strstr(recvbuf, "&password");
        if(p1!=0 && p2!=0 && p1
        {
          p1 += strlen("ssid=");
          memcpy(get_ssid, p1, p2 - p1);
          printf("
get the ssid = %s
", get_ssid); 
        }

此時得到帳號密碼后嘗試連接,即實現(xiàn)網頁配網

WifiConnect(get_ssid,get_pwd);

三、外設驅動

本系統(tǒng)使用到usart(PM2.5傳感器)、IIC(OLED顯示屏)、單總線(DHT11)三個部分和TCP(雙線程收發(fā))幾個部分

Winodows下HI3861開發(fā):



HI3861:鴻蒙網頁顯示傳感器數(shù)據(jù):


(1)打開外設使能

在usr_config.mk文件中去掉注釋

CONFIG_I2C_SUPPORT=y
CONFIG_UART0_SUPPORT=y

(2)OLED顯示屏驅動

3a9059a2-38da-11ed-b180-dac502259ad0.png

OLED,即有機發(fā)光二極管(Organic Light-Emitting Diode),又稱為有機電激光顯示(Organic Electroluminesence Display)。OLED由于同時具備自發(fā)光,不需背光源、對比度高、厚度薄、視角廣、反應速度快、可用于撓曲性面板、使用溫度范圍廣、構造及制程較簡單等優(yōu)異之特性,被認為是下一代的平面顯示器新興應用技術。

該傳感器使用的IIC協(xié)議,經過IIC使能后初始化OLED就可以使用了:

hi_io_set_func(HI_IO_NAME_GPIO_13, HI_IO_FUNC_GPIO_13_I2C0_SDA);
  hi_io_set_func(HI_IO_NAME_GPIO_14, HI_IO_FUNC_GPIO_14_I2C0_SCL);
  ret = hi_i2c_deinit(HI_I2C_IDX_0);
  ret |= hi_i2c_init(HI_I2C_IDX_0, 100000); 
  if (ret != HI_ERR_SUCCESS) {
    printf("IIC error
");
  }else
  {
    printf("IIC sucesefful
");
  }
  OLED_ColorTurn(0);//0正常顯示,1 反色顯示
  OLED_DisplayTurn(0);//0正常顯示 1 屏幕翻轉顯示

其中主要用到的函數(shù)是void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size1):

//在指定位置顯示一個字符,包括部分字符
//x:0~127
//y:0~63
//size:選擇字體 12/16/24
//取模方式 逐列式
void OLED_ShowChar(u8 x,u8 y,u8 chr,u8 size1)
{
u8 i,m,temp,size2,chr1;
u8 y0=y;
size2=(size1/8+((size1%8)?1:0))*(size1/2); //得到字體一個字符對應點陣集所占的字節(jié)數(shù)
chr1=chr-' '; //計算偏移后的值
for(i=0;i
{
//temp=asc2_1206[chr1][i];
if(size1==12)
    {temp=asc2_1206[chr1][i];} //調用1206字體
else if(size1==16)
    {temp=asc2_1608[chr1][i];} //調用1608字體
else return;

    for(m=0;m<8;m++) ? ? ? ? ? //寫入數(shù)據(jù)
    {
      if(temp&0x80)OLED_DrawPoint(x,y);
      else OLED_ClearPoint(x,y);
      temp<<=1;
      y++;
      if((y-y0)==size1)
      {
        y=y0;
        x++;
        break;
      }
}
 }
}

通過該函數(shù),就能實現(xiàn)傳感器數(shù)值和字符的顯示。

(3)數(shù)據(jù)發(fā)送和接收

因為HI3861的線程限制,這邊使用雙線程,一個實現(xiàn)TCP數(shù)據(jù)的發(fā)送,另一個實現(xiàn)TCP數(shù)據(jù)的接收

發(fā)送線程:

void TcpClientTest(const char* host, unsigned short port)
{
  ssize_t retval = 0;
  int sockfd = socket(AF_INET, SOCK_STREAM, 0); // TCP socket
  SET_SOCKET_ID = sockfd;
  struct sockaddr_in serverAddr = {0};
  serverAddr.sin_family = AF_INET; // AF_INET表示IPv4協(xié)議
  serverAddr.sin_port = htons(port); // 端口號,從主機字節(jié)序轉為網絡字節(jié)序
  if (inet_pton(AF_INET, host, &serverAddr.sin_addr) <= 0) { ?// 將主機IP地址從“點分十進制”字符串 轉化為 標準格式(32位整數(shù))
    printf("inet_pton failed!
");
    goto do_cleanup;
  }

  // 嘗試和目標主機建立連接,連接成功會返回0 ,失敗返回 -1
  if (connect(sockfd, (struct sockaddr *)&serverAddr, sizeof(serverAddr)) < 0) {
    printf("connect failed!
");
    goto do_cleanup;
  }
  printf("connect to server %s success!
", host);
  Wifi_SOCKET_GET();

while (1)
{
  osDelay(500);
  /////////////////////////////////////////////////////////上傳函數(shù)
  retval = send(sockfd, buff, 6,0);//其中buff為數(shù)據(jù)
}

  do_cleanup:
  printf("do_cleanup...
");
  closesocket(sockfd);
}

接收處理線程:

static BOOL Wifi_SOCKET_RUN(void)
{
  ssize_t retval = 0;

  while(1)
  {

  retval = recv(SET_SOCKET_ID, &response, sizeof(response), 0);
    if(retval>0)
  {
    response[retval] = '';
    if(response[0] == 'o')
    {
      printf("send open!
");//此處對接收到的數(shù)據(jù)進行處理,并執(zhí)行對應內容
    }
  }
  }
  do_cleanup:
  printf("do_cleanup...
");
  closesocket(SET_SOCKET_ID);
}

void Wifi_SOCKET_GET(void)
{
  osThreadAttr_t attr;

  attr.name = "Wifi_SOCKET_RUN";
  attr.attr_bits = 0U;
  attr.cb_mem = NULL;
  attr.cb_size = 0U;
  attr.stack_mem = NULL;
  attr.stack_size = 2048;
  attr.priority = 25;

  if (osThreadNew((osThreadFunc_t)Wifi_SOCKET_RUN, NULL, &attr) == NULL)
  {
    printf("Falied to create WifiAPTask!
");
  }
}

(4)血壓測量驅動

3aa384e6-38da-11ed-b180-dac502259ad0.png


血壓的測量選擇使用便攜式測量,在開發(fā)中已與電子血壓儀行業(yè)標桿歐姆龍和傳統(tǒng)水銀血壓儀進行比較,較為準確,可作為參考使用。

當前為使用第一階段,與廠商(批量)第二階段合作時可以得到更多的數(shù)據(jù),可以當做一次小型的體檢,如下圖:

3ab6d438-38da-11ed-b180-dac502259ad0.jpg


其驅動方式為USART驅動,協(xié)議如下:

3ad02122-38da-11ed-b180-dac502259ad0.png


通過對數(shù)據(jù)的截取和發(fā)送即可實現(xiàn)。

四、APP開發(fā)

(1)環(huán)境搭建

3adba7e0-38da-11ed-b180-dac502259ad0.png

使用的是官方下載地址:

https://developer.harmonyos.com/cn/develop/deveco-studio#download_beta

我這邊用的是今年三月份的版本,不過不影響,界面沒什么變化

(2)TCP數(shù)據(jù)交互

該部分參考官方手冊:

https://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/reference/apis/js-apis-socket.md/

import socket from '@ohos.net.socket';
let tcp = socket.constructTCPSocketInstance();

tcp.bind({address: '0.0.0.0', port: 12121, family: 1}, err => {
 if (err) {
  console.log('bind fail');
  return;
 }
 console.log('bind success');
})

tcp.on('message', value => {
 console.log("on message, message:" + value.message + ", remoteInfo:" + value.remoteInfo)
 let da = resolveArrayBuffer(value.message);
 let dat_buff = String(da);
//此處對接受到的數(shù)據(jù)進行處理



});
//將接受到的數(shù)據(jù)轉化為文本型      
function resolveArrayBuffer(message){

 if (message instanceof ArrayBuffer) {
  let dataView = new DataView(message)
  let str = ""
  for (let i = 0;i < dataView.byteLength; ++i) {
   let c = String.fromCharCode(dataView.getUint8(i))
   if (c !== "
") {
    str += c
   }
  }
  return str;
 }
}
//數(shù)據(jù)的發(fā)送函數(shù)
function send_once(Con_buff) {
 if (flag == false) {

  let promise = tcp.connect({ address: { address: 'xxx.xxx.xxx.xxx', port: xxxx, family: 1 }, timeout: 2000 });
  promise.then(() => {
   console.log('connect success');
   flag = true;
   tcp.send({
    data: Con_buff
   }, err => {
    if (err) {
     console.log('send fail');
     return;
    }
    console.log('send success');
   })
  }).catch(err => {
   console.log('connect fail');
  });

 } else if (flag == true) {
  tcp.send({
   data: Con_buff
  }, err => {
   if (err) {
    console.log('send fail');
    return;
   }
   console.log('send success');
  })
 }
}

(3)界面設計

OpenHarmony界面設計(簡單)教程:


本APP共用到了按鈕、圖片、標簽三個部分,其對應的官網連接如下

按鈕(Button):

https://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-button.md/

圖片(Image):

https://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-image.md/

標簽(TEXT):

https://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-text.md/

豎向排列(Column):

https://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/reference/arkui-ts/ts-container-column.md/

橫向排列(Row):

https://docs.openharmony.cn/pages/v3.2Beta/zh-cn/application-dev/reference/arkui-ts/ts-container-row.md/

(4)參數(shù)動態(tài)更新

@State srtText: string = "測試變量";
 Text(this.srtText) //動態(tài)
    .fontSize(60)
    .fontWeight(FontWeight.Bold)
    .fontColor("#e94674")
   Button() {  //按鈕控件
    Text('點擊')
     .fontSize(50)
     .fontWeight(FontWeight.Bold)
   }.type(ButtonType.Capsule)
   .margin({
    top: 200
   })
   .width('50%')
   .height('10%')
   .backgroundColor('#0D9FFB')
   .onClick(() => {  //點擊事件
     this.srtText = "更改內容"http://更改數(shù)據(jù)
   })

在使用 @State變量對組件進行刷新時,發(fā)現(xiàn)只能在build中實現(xiàn)動態(tài)刷新,在外部創(chuàng)建全局變量或者外部函數(shù)的方式都不能實現(xiàn),查閱資料后得到如下部分:

官方文檔:

https://docs.openharmony.cn/pages/v3.1/zh-cn/application-dev/ui/ts-application-states-appstorage.md/

AppStorage與組件同步

在管理組件擁有的狀態(tài)中,已經定義了如何將組件的狀態(tài)變量與父組件或祖先組件中的@State裝飾的狀態(tài)變量同步,主要包括@Prop、@Link、@Consume。

本章節(jié)定義如何將組件變量與AppStorage同步,主要提供@StorageLink和@StorageProp裝飾器。

@StorageLink裝飾器

組件通過使用@StorageLink(key)裝飾的狀態(tài)變量,與AppStorage建立雙向數(shù)據(jù)綁定,key為AppStorage中的屬性鍵值。當創(chuàng)建包含@StorageLink的狀態(tài)變量的組件時,該狀態(tài)變量的值將使用AppStorage中的值進行初始化。在UI組件中對@StorageLink的狀態(tài)變量所做的更改將同步到AppStorage,并從AppStorage同步到任何其他綁定實例中,如PersistentStorage或其他綁定的UI組件。

@StorageProp裝飾器

組件通過使用@StorageProp(key)裝飾的狀態(tài)變量,將與AppStorage建立單向數(shù)據(jù)綁定,key標識AppStorage中的屬性鍵值。當創(chuàng)建包含@StoageProp的狀態(tài)變量的組件時,該狀態(tài)變量的值將使用AppStorage中的值進行初始化。AppStorage中的屬性值的更改會導致綁定的UI組件進行狀態(tài)更新。

let varA = AppStorage.Link('varA')
let envLang = AppStorage.Prop('languageCode')
@Entry
@Component
struct ComponentA {
 @StorageLink('varA') varA: number = 2
 @StorageProp('languageCode') lang: string = 'en'
 private label: string = 'count'

 private aboutToAppear() {
  this.label = (this.lang === 'zh') ? '數(shù)' : 'Count'
 }

 build() {
  Row({ space: 20 }) {

   Button(`${this.label}: ${this.varA}`)
    .onClick(() => {
     AppStorage.Set('varA', AppStorage.Get('varA') + 1)
    })
   Button(`lang: ${this.lang}`)
    .onClick(() => {
     if (this.lang === 'zh') {
      AppStorage.Set('languageCode', 'en')
     } else {
      AppStorage.Set('languageCode', 'zh')
     }
     this.label = (this.lang === 'zh') ? '數(shù)' : 'Count'
    })
  }
 }
}

即通過AppStorage.Link和 @StorageLink的方式,可實現(xiàn)外部動態(tài)刷新Text組件和image組件(等等之類都可以),方便我們在全局調用時更新數(shù)據(jù)。

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

    關注

    33

    文章

    3952

    瀏覽量

    21096
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    AICAS 2026 Grand Challenge全球挑戰(zhàn)賽啟動

    第四屆AICAS Grand Challenge——AICAS 2026全球技術挑戰(zhàn)賽現(xiàn)已正式啟動,誠邀各界英才和技術先鋒共同參與,以“芯”智能驅動未來!
    的頭像 發(fā)表于 02-04 14:59 ?503次閱讀

    沁恒高性價比MCU單片機儀應用方案

    家庭健康監(jiān)測與臨床醫(yī)療場景中,儀已成為不可或缺的基礎設備。它通過測量飽和度與脈率,能夠及時反映心、肺功能的早期變化,為健康管理提供
    的頭像 發(fā)表于 01-12 16:37 ?509次閱讀
    沁恒高性價比MCU單片機<b class='flag-5'>血</b><b class='flag-5'>氧</b>儀應用方案

    STM32驅動MAX30102心率傳感器(OLED顯示)

    MAX30102是一個集成的脈搏儀和心率監(jiān)測儀模塊。它包括內部led,光電探測器,光學元件,和低噪聲電子與環(huán)境光排斥。MAX30102提供了一個完整的系統(tǒng)解決方案,以簡化移動和可穿
    的頭像 發(fā)表于 01-10 10:29 ?1057次閱讀
    STM32驅動MAX30102<b class='flag-5'>心率</b><b class='flag-5'>血</b><b class='flag-5'>氧</b>傳感器(OLED顯示)

    “芯”年來襲 | 瑞薩邊緣AI線上技術月暨挑戰(zhàn)賽

    自1月7日起,瑞薩邊緣AI技術月活動將每周開啟一場在線技術交流,涵蓋MCU/MPU產品、應用案例及開發(fā)實踐,并同步開啟瑞薩AI評測挑戰(zhàn)賽,借助教程資源及每周在線講解和答疑,幫助嵌入式開發(fā)者從入門學習到上手第一個AI項目
    的頭像 發(fā)表于 12-25 10:21 ?2236次閱讀
    “芯”年來襲 | 瑞薩邊緣AI線上技術月暨<b class='flag-5'>挑戰(zhàn)賽</b>

    2025 EDA精英挑戰(zhàn)賽華大九天題發(fā)布

    中國研究生創(chuàng)“ 芯 ” 大賽·EDA精英挑戰(zhàn)賽(以下簡稱EDA精英挑戰(zhàn)賽)是由教育部學位管理與研究生教育司指導,中國學位與研究生教育學會、中國科協(xié)青少年科技中心主辦的“ 中國研究生創(chuàng)‘芯 ’大賽
    的頭像 發(fā)表于 08-26 15:00 ?1645次閱讀
    2025 EDA精英<b class='flag-5'>挑戰(zhàn)賽</b>華大九天<b class='flag-5'>賽</b>題發(fā)布

    2025 EDA精英挑戰(zhàn)賽紫光同創(chuàng)題發(fā)布

    中國研究生創(chuàng)“ 芯 ” 大賽·EDA精英挑戰(zhàn)賽(以下簡稱EDA精英挑戰(zhàn)賽)是由教育部學位管理與研究生教育司指導,中國學位與研究生教育學會、中國科協(xié)青少年科技中心主辦的“ 中國研究生創(chuàng)‘芯 ’大賽
    的頭像 發(fā)表于 08-25 09:40 ?1658次閱讀
    2025 EDA精英<b class='flag-5'>挑戰(zhàn)賽</b>紫光同創(chuàng)<b class='flag-5'>賽</b>題發(fā)布

    RT-Thread聯(lián)合瑞薩發(fā)起移植挑戰(zhàn)賽,邀您共創(chuàng)開源生態(tài)!| 社區(qū)活動

    為豐富嵌入式開源生態(tài),推動開源RT-ThreadRTOS在更多硬件平臺的落地應用,RT-Thread團隊攜手全球領先的半導體解決方案商瑞薩電子,正式啟動移植挑戰(zhàn)賽!本次活動將針對瑞薩8款主流MCU
    的頭像 發(fā)表于 08-08 10:36 ?1067次閱讀
    RT-Thread聯(lián)合瑞薩發(fā)起移植<b class='flag-5'>挑戰(zhàn)賽</b>,邀您共創(chuàng)<b class='flag-5'>開源</b>生態(tài)!| 社區(qū)活動

    e絡盟社區(qū)攜手 Würth Elektronik 發(fā)起全球 LED 設計挑戰(zhàn)賽

    安富利旗下e絡盟社區(qū)與 Würth Elektronik 合作推出全球設計挑戰(zhàn)賽。這項全新競賽誠邀工程師、創(chuàng)客和愛好者們使用 Würth Elektronik 先進的 SMD LED(集成了 WL-ICLED 控制器)開發(fā)原型或測試裝置。
    的頭像 發(fā)表于 07-23 10:15 ?914次閱讀
    e絡盟社區(qū)攜手 Würth Elektronik 發(fā)起全球 LED 設計<b class='flag-5'>挑戰(zhàn)賽</b>

    傳音多媒體團隊攬獲CVPR NTIRE 2025兩項挑戰(zhàn)賽冠亞軍

    近日,在計算機視覺領域最具影響力的國際競賽 CVPR NTIRE 2025中,傳音多媒體團隊與上海交通大學圖像所MediaLab聯(lián)合團隊分別斬獲 高效超分辨率挑戰(zhàn)賽(NTIRE 2025
    的頭像 發(fā)表于 06-24 16:08 ?1630次閱讀
    傳音多媒體團隊攬獲CVPR NTIRE 2025兩項<b class='flag-5'>挑戰(zhàn)賽</b>冠亞軍

    ASML杯光刻「芯 」勢力知識挑戰(zhàn)賽正式啟動

    ASML光刻「芯」勢力知識挑戰(zhàn)賽由全球半導體行業(yè)領先供應商ASML發(fā)起,是一項面向中國半導體人才與科技愛好者的科普賽事。依托ASML在光刻領域的技術積累與行業(yè)洞察,賽事致力于為參賽者打造一個深度探索光刻技術的知識競技窗口,同時培養(yǎng)優(yōu)秀科技「芯」勢力,共同推動摩爾定律演進。
    的頭像 發(fā)表于 06-23 17:04 ?1265次閱讀
    ASML杯光刻「芯 」勢力知識<b class='flag-5'>挑戰(zhàn)賽</b>正式啟動

    從行業(yè)痛點到創(chuàng)新解決儀驅動方案--【其利天下】

    在醫(yī)療健康領域,儀作為一種關鍵的檢測設備,其技術發(fā)展備受矚目。然而,目前市面上的儀方案面臨諸多技術難題,這些難題不僅影響了
    的頭像 發(fā)表于 06-19 17:50 ?2462次閱讀
    從行業(yè)痛點到創(chuàng)新解決<b class='flag-5'>血</b><b class='flag-5'>氧</b>儀驅動方案--【其利天下】

    抗干擾與穩(wěn)定性:無刷儀驅動方案的電路設計精髓 --其利天下

    在醫(yī)療健康領域,儀作為監(jiān)測人體飽和度和心率的重要設備,其準確性、穩(wěn)定性和低功耗性能至關重要。深圳市其利天下技術開發(fā)有限公司,憑借其在
    的頭像 發(fā)表于 05-11 00:00 ?1206次閱讀
    抗干擾與穩(wěn)定性:無刷<b class='flag-5'>血</b><b class='flag-5'>氧</b>儀驅動方案的電路設計精髓 --其利天下

    max30100用于可穿戴健康的脈搏儀和心率傳感器IC手冊

    電子發(fā)燒友網站提供《max30100用于可穿戴健康的脈搏儀和心率傳感器IC手冊.pdf》資料免費下載
    發(fā)表于 03-24 09:49 ?3次下載

    藍牙模塊在儀上的應用方案,實現(xiàn)精準監(jiān)測

    一、應用背景儀主要用于測量飽和度(SpO?)和脈率,廣泛應用于家庭健康、運動監(jiān)測、醫(yī)院護理等場景。傳統(tǒng)
    的頭像 發(fā)表于 03-19 15:25 ?1060次閱讀
    藍牙模塊在<b class='flag-5'>血</b><b class='flag-5'>氧</b>儀上的應用方案,實現(xiàn)精準監(jiān)測

    e絡盟社區(qū)聯(lián)合 TDK 發(fā)起超聲波傳感器挑戰(zhàn)賽

    安富利旗下社區(qū) e絡盟攜手 TDK 發(fā)起新的設計挑戰(zhàn)賽,誠邀工程師、創(chuàng)客及技術愛好者利用 TDK 防水超聲波測距傳感器開發(fā)創(chuàng)新項目,供實際應用使用。
    的頭像 發(fā)表于 03-11 10:09 ?1031次閱讀
    e絡盟社區(qū)聯(lián)合 TDK 發(fā)起超聲波傳感器<b class='flag-5'>挑戰(zhàn)賽</b>