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

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

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

對(duì)基于NUC472開(kāi)發(fā)板的機(jī)智云功能板進(jìn)行編程

Dtzl_SCAnalytic ? 來(lái)源:新唐MCU技術(shù)論壇 ? 作者:jinglixixi ? 2021-08-12 14:09 ? 次閱讀

在NUC472開(kāi)發(fā)板上配有Arduino接口,若以該接口與機(jī)智云的功能板相配合,則可以有效地拓展該開(kāi)發(fā)板的功能。就目前來(lái)講,對(duì)機(jī)智云功能板提供支持的核心底板有兩種,一種是基于STM32F103的,另一種則是基于ATMEGA328的。以NUC472開(kāi)發(fā)板來(lái)支持機(jī)智云功能板則可以增加一種對(duì)其進(jìn)行支持的核心底板。 就機(jī)智云功能板來(lái)說(shuō),它提供了RGB_LED、小電機(jī)、紅外感應(yīng)器、小按鍵、溫濕度傳感器、WIFI模塊及OLED接口等,如圖1所示。這里僅對(duì)RGB_LED、小電機(jī)、紅外感應(yīng)、小按鍵及OLED接口的使用加以介紹。此外,配合片內(nèi)的RTC、UART、A/D等資源,還實(shí)現(xiàn)了RTC電子時(shí)鐘、串行通訊及A/D采集等功能。

要對(duì)機(jī)智云功能板進(jìn)行編程,主要涉及各引腳的關(guān)系構(gòu)建、GPIO口輸入/輸出功能的設(shè)置及高低電平輸出語(yǔ)句的定義、輸入電平的讀取與判別、脈沖信號(hào)與時(shí)序的模擬等。為了便于理解,這里按由簡(jiǎn)單到復(fù)雜的順序來(lái)進(jìn)行。

1.小電機(jī)

功能板上提供了一個(gè)小直流電機(jī),其接口電路如圖2所示。它是通過(guò)L9110進(jìn)行驅(qū)動(dòng),當(dāng)在IA和IB兩端施加相異的電平時(shí),就可控制電機(jī)的正反轉(zhuǎn)。

30e5af4a-f76f-11eb-9bcf-12bb97331649.jpg

圖2 電機(jī)電路

電機(jī)與NUC472的連接關(guān)系為:

IA-PC11 IB-PC10

小電機(jī)的初始化函數(shù)為:

void MODER_init(void){GPIO_SetMode(PC, BIT11, GPIO_MODE_OUTPUT); // IAGPIO_SetMode(PC, BIT10, GPIO_MODE_OUTPUT); // IBPC10 = 0;PC11 = 0;}

使用如下高低電平輸出語(yǔ)句即可使電機(jī)轉(zhuǎn)動(dòng),互換高低電平即可實(shí)現(xiàn)反向轉(zhuǎn)動(dòng)。

PC11 = 1; //輸出高電平 PC10 = 0; //輸出低電平

2.小按鍵

利用板載的小按鍵,可進(jìn)行相應(yīng)功能的控制,其電路如圖3所示。

圖3 按鍵電路

按鍵與NUC472的連接關(guān)系為:

KEY1- PA10 KEY2- PA9

按鍵的初始化函數(shù)為:

void KEY_init(void)

{ // K1、K2GPIO_SetMode(PA, BIT10, GPIO_MODE_INPUT); // KEY1GPIO_SetMode(PA, BIT9, GPIO_MODE_INPUT); // KEY2}

K2鍵控制電機(jī)轉(zhuǎn)動(dòng)的語(yǔ)句如下:

PC10 = 0;if (PA9 != 1) // K2{ PC10 = 1; // MODOR}else{ PC10 = 0;}

3.紅外感應(yīng)

板載的紅外感應(yīng)器是用于避障控制的,其電路如圖4所示。

31250ea6-f76f-11eb-9bcf-12bb97331649.jpg

圖4 紅外感應(yīng)電路

電路的作用作用為:在TCRT5000的一端是一個(gè)可發(fā)出紅外光的二極管,另一端是一個(gè)接受器。在無(wú)遮擋的情況下,受到照射使電路導(dǎo)通并在AOUT端輸出低電平。在LM393的電路中,其作用是充當(dāng)一個(gè)AOUT與電位器設(shè)定電位的比較器,以產(chǎn)生閥值開(kāi)關(guān)的效果。當(dāng)IR_OUT為低電平時(shí),LED2被點(diǎn)亮,否則被熄滅。通過(guò)采集IR_OUT的狀態(tài)即可啟動(dòng)感應(yīng)開(kāi)關(guān)的作用。

IR_OUT與NUC472的連接關(guān)系為:

IR_OUT - PF9

IR_OUT的初始化函數(shù)為:

void IR_init(void) { GPIO_SetMode(PF, BIT9, GPIO_MODE_INPUT); // IR-OUT }

以IR控制電機(jī)正反轉(zhuǎn)的語(yǔ)句如下:

if (PF9 != 1) { PC11 = 1; PC10 = 0; } else { PC11 = 0; PC10 = 1; }

4.RGB_LED

通常RGB_LED的使用是無(wú)需外圍驅(qū)動(dòng)電路的,故使用起來(lái)十分簡(jiǎn)單,只需輸出高低電平即可控制其點(diǎn)亮與否。然而在機(jī)智云的功能板上卻是以P9813來(lái)驅(qū)動(dòng)和控制RGB_LED,其接口電路如圖5所示。

319a4748-f76f-11eb-9bcf-12bb97331649.jpg

圖5 RGB_LED接口電路

那使用P9813又有何特別之處呢?其主要用途在于,可以串行方式來(lái)傳送控制信號(hào),并起到控制RGB亮度的作用。而通常情況下,這是需要通過(guò)PWM來(lái)實(shí)現(xiàn)的。在信號(hào)傳送過(guò)程中,是通過(guò)32個(gè)脈沖信號(hào)來(lái)把控制數(shù)據(jù)傳遞到P9813中,再由RGB引腳加以輸出來(lái)控制RGB_LED。

P9813與NUC472的連接關(guān)系為:

A0-PE1 SCL- PD10 SDA-PD12

RGB_LED的初始化函數(shù)為:

void RGB_init(void){GPIO_SetMode(PD, BIT12, GPIO_MODE_OUTPUT); // SDAGPIO_SetMode(PD, BIT10, GPIO_MODE_OUTPUT); // SCLGPIO_SetMode(PE, BIT1, GPIO_MODE_OUTPUT); // A0PE1 = 0;}

RGB_LED的控制函數(shù)如下:

void RGB_Write_Data(uint8_t R,uint8_t G,uint8_t B){ uint32_t RGB_Data = 0; uint8_t i; RGB_Data |= 0xC0000000; RGB_Data |= ((uint32_t)((~B) & 0xc0)) 《《 22; RGB_Data |= ((uint32_t)((~G) & 0xc0)) 《《 20; RGB_Data |= ((uint32_t)((~R) & 0xc0)) 《《 18; RGB_Data |= ((uint32_t)B) 《《 16; RGB_Data |= ((uint32_t)G) 《《 8; RGB_Data |= R; for (i=0;i《32;i++) { if((RGB_Data & 0x80000000) != 0) { SDA_1; } else { SDA_0; } RGB_Data 《《= 1; SCL_0; SCL_0; SCL_1; SCL_1; }SDA_0; for (i=0;i《32;i++) { SCL_0; SCL_0; SCL_1; SCL_1; } }

實(shí)現(xiàn)呼吸燈的程序?yàn)椋?/p>

uint8_t i=0; RGB_init(); PE1 = 1; RGB_Write_Data(0x00,0x00,0x00); for (i=0;i《125;i++) { RGB_Write_Data(0x00,0x00,i); delay_1ms(20); } for (i=125;i》0;i--) { RGB_Write_Data(0x00,0x00,i); delay_1ms(20); } for (i=0;i《125;i++) { RGB_Write_Data(0x00,0x00,i); delay_1ms(20); } for (i=125;i》0;i--) { RGB_Write_Data(0x00,0x00,i); delay_1ms(20); }

實(shí)現(xiàn)色彩環(huán)的程序如下:

while(1){ RGB_Write_Data(120,0x00,0x00); RGB_del(5); RGB_Write_Data(0x00,120,0x00); RGB_del(5); RGB_Write_Data(0x00,0x00,120); RGB_del(5); RGB_Write_Data(120,120,0x00); RGB_del(5); RGB_Write_Data(0x00,120,120); RGB_del(5); RGB_Write_Data(120,0x00,120); RGB_del(5); RGB_Write_Data(120,120,120); RGB_del(5); RGB_Write_Data(0x00,0x00,0x00); RGB_del(5); }

使用紅外感應(yīng)器作為感應(yīng)提示器的語(yǔ)句如下:

if (PF9 != 1) // IR{ RGB_Write_Data(120,0x00,0x00); }else{ RGB_Write_Data(0x00,120,0x00); }

5.OLED接口

在功能板上提供了OLED接口,該接口適用于SPI接口的演示屏,其引腳分配如圖8所示。由于LCD5110屏使用的十分廣泛,故這里以該接口實(shí)現(xiàn)LCD5110屏的顯示。由于兩者的接口并不完全一致,因此需要稍加修改,具體的做法是將GND與NC引腳連接,來(lái)為L(zhǎng)CD5110的SCE引腳提供片選信號(hào)。其它引腳只需修改引腳定義即可。

31f2607c-f76f-11eb-9bcf-12bb97331649.png

圖8 OLED接口

LCD5110屏與NUC472的連接關(guān)系為:

CS---GND

RST---PD2

D/C---PD0

SDIN--PD3

SCLK--PD6

LED+--PD7

LCD5110各引腳輸出高低電平的定義語(yǔ)句如下:

#define SetLCD_RST_High() PD2 = 1;#define SetLCD_RST_Low() PD2 = 0;#define SetLCD_DC_High() PD0 = 1;#define SetLCD_DC_Low() PD0 = 0;#define SetLCD_SDIN_High() PD3 = 1;#define SetLCD_SDIN_Low() PD3 = 0;#define SetLCD_SCLK_High() PD6 = 1;#define SetLCD_SCLK_Low() PD6 = 0;

LCD5110的引腳配置函數(shù)如下:

void GPIO_Configuration(void){ GPIO_SetMode(PD, BIT0, GPIO_MODE_OUTPUT); GPIO_SetMode(PD, BIT2, GPIO_MODE_OUTPUT);
GPIO_SetMode(PD, BIT3, GPIO_MODE_OUTPUT); GPIO_SetMode(PD, BIT6, GPIO_MODE_OUTPUT); GPIO_SetMode(PD, BIT7, GPIO_MODE_OUTPUT); }

初始化函數(shù)為:

void LCD_init(void){ SetLCD_RST_Low(); delay_1us(); SetLCD_RST_High(); delay_1us(); delay_1us(); LCD_write_CMD(0x21); LCD_write_CMD(0xc0); LCD_write_CMD(0x06); LCD_write_CMD(0x13); LCD_write_CMD(0x20); LCD_Clear(); LCD_write_CMD(0x0c);}

主函數(shù)為:

int main(void){ GPIO_Configuration(); PD7 = 1; LCD_Init(); LCD_Clear();
LCD_write_english_string(2,0,“NUC472 +”); LCD_write_hanzi(2,3,6); LCD_write_hanzi(14,3,7); LCD_write_hanzi(26,3,8);
LCD_write_hanzi(38,3,9); LCD_write_hanzi(50,3,10); LCD_write_hanzi(62,3,11);}

其它驅(qū)動(dòng)LCD110屏顯示的函數(shù)基本無(wú)需變化,運(yùn)行后的顯示效果如圖9所示。

鑒于NUC472的資料相對(duì)較少,這里僅以機(jī)智云功能板的應(yīng)用為題對(duì)NUC472開(kāi)發(fā)板的應(yīng)用進(jìn)行了一些探索,相對(duì)來(lái)講NUC472使用起來(lái)還是比較易于上手的。

責(zé)任編輯:haq

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

    關(guān)注

    25

    文章

    5093

    瀏覽量

    97802
  • 機(jī)智云
    +關(guān)注

    關(guān)注

    2

    文章

    590

    瀏覽量

    26441

原文標(biāo)題:基于NUC472開(kāi)發(fā)板的機(jī)智云功能板控制

文章出處:【微信號(hào):SCAnalyticsPlatform,微信公眾號(hào):IBM大數(shù)據(jù)技術(shù)團(tuán)隊(duì)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    NUC472能夠配置成兩個(gè)獨(dú)立的usb接口嗎?

    NUC472的引腳配置中,除了USB0,還有USB1(USB1_D+ 和USB1_D-),能夠配置成兩個(gè)獨(dú)立的usb接口么?
    發(fā)表于 01-17 06:26

    機(jī)智微信開(kāi)發(fā)板】申請(qǐng)啦-微信公開(kāi)課

    (STM)共同推出,集成微信硬件Airkiss2.0 WiFi協(xié)議,以及微信硬件對(duì)協(xié)議,對(duì)接微信硬件平臺(tái)。智能寵物屋開(kāi)發(fā)板用來(lái)展示微信硬件平臺(tái)的Airkiss 2.0近場(chǎng)發(fā)現(xiàn)功能,
    發(fā)表于 01-12 16:04

    【NuMaker-PFM-NUC472試用申請(qǐng)】基于NUC472的語(yǔ)音錄放裝置

    項(xiàng)目名稱:基于NUC472的語(yǔ)音錄放裝置試用計(jì)劃:使用計(jì)劃:1.首先收集該開(kāi)發(fā)板的相關(guān)資源2.構(gòu)建基本的開(kāi)發(fā)環(huán)境3.測(cè)試相關(guān)例程的功能并學(xué)習(xí)其程序設(shè)計(jì)的方法4.利用
    發(fā)表于 05-17 16:17

    【NuMaker-PFM-NUC472試用體驗(yàn)】初次接觸與編程測(cè)試

    NUC472的產(chǎn)品,只不過(guò)那是一款功能相對(duì)簡(jiǎn)單些的NuTiny-SDK-NUC472開(kāi)發(fā)板,如圖2所示。其基本配置為主頻72MHz、512KB Flash、64KB SRAM,MCU是
    發(fā)表于 05-23 10:50

    【NuMaker-PFM-NUC472試用體驗(yàn)】基于NUC472開(kāi)發(fā)板機(jī)智功能控制(兼結(jié)題報(bào)告)

    。就目前來(lái)講,對(duì)機(jī)智功能提供支持的核心底板有兩種,一種是基于STM32F103的,另一種則是基于ATMEGA328的。以NUC472
    發(fā)表于 07-06 16:44

    新唐NUC472開(kāi)發(fā)板接入機(jī)智iot開(kāi)發(fā)平臺(tái),實(shí)現(xiàn)遠(yuǎn)程控制等功能

    開(kāi)發(fā)板功能。就目前來(lái)講,對(duì)機(jī)智功能提供支持的核心底板有兩種,一種是基于STM32F103的
    發(fā)表于 09-12 16:17

    新唐方案分享:基于NUC472開(kāi)發(fā)板的物聯(lián)網(wǎng)開(kāi)發(fā),接入機(jī)智

    支持的核心底板有兩種,一種是基于STM32F103的,另一種則是基于ATMEGA328的。以NUC472開(kāi)發(fā)板來(lái)支持機(jī)智功能
    發(fā)表于 09-16 16:06

    使用NUC472的兩個(gè)USB與PC連接

    使用 NUC472 的兩個(gè)USB 界面,一個(gè)USB 界面與USB 設(shè)備連接,另一個(gè)界面作為USB 樞紐與PC 連接。應(yīng)用程序進(jìn)行預(yù)處理,然后在 NUC472 收到USB 設(shè)備數(shù)據(jù)后將其傳送到PC。 您可以在下
    發(fā)表于 08-22 08:30

    請(qǐng)問(wèn)NUC472最大IO速度是多少?

    最近有個(gè)項(xiàng)目,考慮使用NUC472 買了個(gè)開(kāi)發(fā)板,直接控制IO,輸出翻轉(zhuǎn)速度才1Mhz,不夠用啊,nuc472能不能滿足10Mhz的IO翻轉(zhuǎn)輸出啊,如何測(cè)試。
    發(fā)表于 08-22 07:17

    如何使用NUC472的Ethernet函數(shù)定期向網(wǎng)絡(luò)主機(jī)報(bào)告消息

    應(yīng)用程序: 本代碼使用 Ethernet 函數(shù)定期向主機(jī)報(bào)告消息 。 BSP 版本: NUC472系列 BSP CMSIS V3.03.000 硬件: NuTiny-SDK-NUC472 此示例
    發(fā)表于 08-23 06:28

    請(qǐng)問(wèn)NUC472支持幾個(gè)USB接口?

    NUC472的引腳配置中,除了USB0,還有USB1(USB1_D+ 和USB1_D-),能夠配置成兩個(gè)獨(dú)立的usb接口么?
    發(fā)表于 08-29 08:08

    請(qǐng)問(wèn)NUC472的BSP下載不了是為什么?

    NUC472的BSP下載不了
    發(fā)表于 08-30 07:48

    使用NUC472的Ethernet函數(shù)定期向網(wǎng)絡(luò)主機(jī)報(bào)告消息

    應(yīng)用程序: 本代碼使用 Ethernet 函數(shù)定期向主機(jī)報(bào)告消息 。 BSP 版本: NUC472系列 BSP CMSIS V3.03.000 硬件: NuTiny-SDK-NUC472 此示例
    發(fā)表于 09-01 07:00

    IOT_Shield -機(jī)智第三代開(kāi)發(fā)板的原理圖

    機(jī)智第三代開(kāi)發(fā)板的原理圖,我還有機(jī)智其他的質(zhì)料,需要的話可以找我!
    發(fā)表于 11-24 10:32 ?33次下載

    機(jī)智AIoT開(kāi)發(fā)平臺(tái)的功能服務(wù)

    本文由機(jī)智開(kāi)發(fā)者分享,介紹使用機(jī)智物聯(lián)網(wǎng)平臺(tái)搭配機(jī)智
    的頭像 發(fā)表于 07-01 15:14 ?1336次閱讀