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

電子發(fā)燒友App

硬聲App

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

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

3天內(nèi)不再提示
創(chuàng)作
電子發(fā)燒友網(wǎng)>電子資料下載>電子資料>基于涂鴉LZ201 Cat.1和MCU SDK的自動售貨機

基于涂鴉LZ201 Cat.1和MCU SDK的自動售貨機

2023-06-15 | zip | 0.00 MB | 次下載 | 2積分

資料介紹

描述

概述

得益于創(chuàng)新技術(shù),我們的生活方式變得更加高效和智能簡單的自動售貨機是現(xiàn)代的偉大發(fā)明之一。這是供應(yīng)商使用的一種高效且低成本的方法,可以 24/7 全天候向最終用戶交付產(chǎn)品

教程將向您展示如何基于涂鴉 LZ201 Cat.1 模塊和 MCU SDK 以低代碼方式制作自動售貨機原型。

腳步

第 1 步:硬件設(shè)計

硬件由電源單元、單片機單元(MCU)、電機驅(qū)動與控制單元、電機到位檢測單元、無線通信單元等外圍單元組成。框圖如下。

?
pYYBAGNoeV6ARWCpAAJA2CHOjGo852.png
?

供電單元

三臺機組需要供電:

  • 主電源:24V直流電源。將其連接到 MOSFET 為自動售貨機的電機供電。
  • 無線通訊單元:4V直流電源。使用LM2576 DC-DC穩(wěn)壓IC將24V降壓至4V。LM2576 可以驅(qū)動 3A 負(fù)載,具有出色的線路和負(fù)載調(diào)整率。
  • 單片機:3.3V供電。使用 S-1206B33-U3T1G 低壓差 (LDO) 穩(wěn)壓器 IC 將 4V 降壓至 3.3V。

單片機

STM32F103RET6 是一款 32 位高密度性能 MCU。它采用 ARM Cortex-M3 架構(gòu),工作頻率為 72 MHz。它具有 11 個定時器和一個內(nèi)部復(fù)位電路、電壓檢測器、電壓調(diào)節(jié)器和微調(diào) RC 振蕩器有關(guān)產(chǎn)品和數(shù)據(jù)表的更多信息,請分別參見STM32F103RE 概述STM32F103RE 數(shù)據(jù)表

?
pYYBAGNoeWGAPz-VAACwxaokVT4850.png
?

電機驅(qū)動和控制單元

元器件74HC595是一個8位串行輸入并行輸出移位寄存器,用于向電機輸出控制信號( 74HC595 數(shù)據(jù)表)

?
poYBAGNoeWOAYtvcAABKsUuG7VA164.png
?

將電機的每個端子分別連接到 FDS9945 n 溝道 MOSFET(FDS9945 數(shù)據(jù)表)和 FDS9958 p 溝道 MOSFET(FDS9958 數(shù)據(jù)表)。連接方法如下:

  • 關(guān)于 FDS9945 MOSFET 的三個端子,源極接地,柵極連接信號線,漏極連接電機負(fù)極。
pYYBAGNoeWWAa7aWAAA1lJ_AGWY790.png
?
  • 關(guān)于FDS9958 MOSFET的三個端子,源極接24V電源,柵極接信號線,漏極接電機正極。
poYBAGNoeWiAAI5nAAA_YDm43PQ565.png
?

當(dāng) FDS9945 和 FDS9958 都處于導(dǎo)通狀態(tài)時,電機可以旋轉(zhuǎn)。

元件數(shù)量

  • 信號線:11根。我們設(shè)計了 10 個產(chǎn)品托盤,需要 10 個電機。通常,我們需要 20 根信號線。如果我們用一根信號線將 10 個電機的負(fù)極端子連接到 FDS9945 MOSFET 的漏極。只需要 11 根電線。
  • 74HC595移位寄存器:兩片串聯(lián)。我們有 11 位數(shù)據(jù)要輸入和輸出,但一個移位寄存器只支持 8 位數(shù)據(jù)。因此,我們將兩個移位寄存器串聯(lián)起來,最多支持 16 位數(shù)據(jù)。

電機到位檢測單元

74HC165是一個8位并行輸入和串行輸出移位寄存器,用于確定電機旋轉(zhuǎn)方向。( 74HC165 數(shù)據(jù)表)

?
poYBAGNoeWuAaqDJAAAiEXGVFg4388.png
?

當(dāng)電機旋轉(zhuǎn)到指定位置時,限位開關(guān)向74HC165移位寄存器上的并行輸入引腳輸出一個低電平信號。MCU 可以從 74HC165 上的串行輸出引腳讀取數(shù)據(jù)。當(dāng)單片機檢測到某個位的低電平時,會停止相應(yīng)的電機。

由于我們沒有足夠的 I/O,10 個電機可以共享同一個限位開關(guān)。

無線通信單元

涂鴉專有的 LZ201-CN Cat.1 蜂窩模塊可以在自動售貨機和涂鴉 IoT Cloud 之間建立通信有關(guān)詳細(xì)信息,請參閱LZ201-CN Cat.1 模塊數(shù)據(jù)表

?
poYBAGNoeW2AYyEYAABjV2tZKyQ057.png
?

該模塊由高度集成的LTE Cat.1芯片UIS8910DM和外圍電路組成。它的特點:

  • 內(nèi)置LTE Cat.1網(wǎng)絡(luò)通信協(xié)議棧和庫函數(shù)。
  • 嵌入式 Cortex-A5 處理器和 Cat.1bis 調(diào)制解調(diào)器。
  • 高達(dá) 64 MB 的閃存和高達(dá) 128 MB 的 SRAM
  • 支持的引腳包括 USBUARTSDIO、SPI、I2C、I2S 和 ADC
  • 支持的外設(shè)包括顯示器、攝像頭、鍵盤矩陣、麥克風(fēng)、揚聲器、充電器、microSD 卡和 USIM 卡。

只需移植涂鴉MCU SDK,即可實現(xiàn)自動售貨機聯(lián)網(wǎng)云端,通過APP實現(xiàn)設(shè)備控制。您還可以選擇 WB3S Wi-Fi 模塊或其他通信協(xié)議的模塊。

其他外圍設(shè)備

下面列出了一些可選外設(shè):

  • LED 指示網(wǎng)絡(luò)狀態(tài)。
  • LED 指示電源狀態(tài)。
  • 溫度傳感器檢測自動售貨機中的溫度。
  • 跌落檢測器檢測產(chǎn)品跌落并返回操作結(jié)果。
  • 多通道按鈕觸發(fā)特定的按鈕按下動作。
  • RS-485 接口用于在自動售貨機和 RS-485 設(shè)備之間建立通信。
  • LCD 用于人機交互。

完成硬件設(shè)計后,即可進行 PCB 布局、焊接和測試。下圖顯示了我們完成的PCB。

?
pYYBAGNoeXCAC-ATAAJlx9dBLik496.png
?

第二步:在涂鴉IoT平臺上創(chuàng)建產(chǎn)品

1.登錄涂鴉物聯(lián)網(wǎng)平臺,點擊創(chuàng)建

2.找到標(biāo)準(zhǔn)品類,點擊戶外出行>智能電動車

?
poYBAGNoeXKAQ6QWAABx_9n0xQ8894.png
?

3. 單擊自定義解決方案選項卡上的智能電動汽車。

4.填寫基本信息,協(xié)議選擇LTE Cat.1 ,點擊創(chuàng)建

?
poYBAGNoeXWAba_yAABPuC3vMgc496.png
?

5.根據(jù)需要添加標(biāo)準(zhǔn)功能。

?
pYYBAGNoeXmAXgrTAACMP2B_lBM608.png
?

6.(可選)如果沒有找到需要的功能,找到自定義功能,點擊+添加創(chuàng)建功能。我們創(chuàng)建兩個功能:一個是Item ,從云端獲取數(shù)據(jù),另一個是Inventory ,發(fā)送數(shù)據(jù)到云端.

?
poYBAGNoeXyAXjUiAAAjL1koCAE417.png
?

7.單擊設(shè)備面板選項卡并選擇一個面板。為了方便測試,您可以選擇調(diào)試面板,稍后再更改。

?
pYYBAGNoeX6AUAclAADSun3jHRI243.png
?

8.單擊硬件開發(fā)選項卡。選擇涂鴉標(biāo)準(zhǔn)模組MCU SDK ,然后選擇LZ201-CN LTE Cat.1 Module

?
poYBAGNoeYKAY2v_AACjS285Wg0124.png
?

9.向下滾動頁面并找到下載文檔單擊全部下載以獲取嵌入式編程的所有文件。

第 3 步:嵌入式編程

將 SDK 中的文件添加到您的項目中,并根據(jù)錯誤消息更正您的代碼。

您可能會使用不同的 MCU,因此以下驅(qū)動程序供您參考。完整示例代碼見tuya-iotos-embeded-mcu-demo-4g-vending-machine

配置串口

/***********************************************************
*   Function:  USART3_Init
*   Input:     uint32_t pclk2,uint32_t bound
*   Output:    none
*   Return:    none
*   Notice:    USART initialization
***********************************************************/
void USART3_Init(uint32_t pclk2,uint32_t bound)
{
float temp;
uint16_t mantissa;
uint16_t fraction;
temp=(float)(pclk2*1000000)/(bound*16);// Get USARTDIV.
mantissa=temp;  			    // Get the integer part.
fraction=(temp-mantissa)*16; // Get the decimal part.
mantissa<<=4;
mantissa+=fraction;
RCC->APB2ENR|=1<<3;   // Enable the clock for PORTB.
RCC->APB1ENR|=1<<18;  // Enable the clock for USART3.
GPIOB->CRH&=~(0xf<<8|0xf<<12);
GPIOB->CRH|=0X0B<<8|8<<12;// // Configure GPIO state.
GPIOB->ODR|=1<<11;
RCC->APB1RSTR|=1<<18;   // Reset USART3.
RCC->APB1RSTR&=~(1<<18);// Stop reset.
// Set baud rate.
USART3->BRR=mantissa; // Set baud rate.
USART3->CR1|=0X200C;  // No parity, and 1 stop bit. 			USART3->CR1|=1<<8;    // Enable PE interrupt.
USART3->CR1|=1<<5;    // Enable the RXNE interrupt.
MY_NVIC_Init(1,2,USART3_IRQn,2);// Group 2
}

接收串行數(shù)據(jù)

/***********************************************************
*   Function:  USART3_IRQHandler
*   Input:     none
*   Output:    none
*   Return:    none
*   Notice:    USART interrupt handler function. Receive one byte of data in interrupt mode.
***********************************************************/
void USART3_IRQHandler(void)
{
if(USART3->SR&(1<<5))// Received data.
{
uart_receive_input((unsigned char)(USART3->DR));
}
}

發(fā)送串口數(shù)據(jù)

/***********************************************************
*   Function:  Uart3_PutChar
*   Input:     uint8_t
*   Output:    none
*   Return:    uint8_t
*   Notice:    Send one byte of data to check whether a timeout has happened.
***********************************************************/
uint8_t Uart3_PutChar(uint8_t data)
{
uint8_t ret=1;
uint16_t timeout=0x8000;
USART3->DR = data;
while((USART3->SR&1<<6)! =1<<6)// Wait until the transmission is completed.
{
timeout--;
if( 0 == timeout )
{
ret = 1;
break;
}
}
if( 0 != timeout )
{
ret = 0;
}
return ret;
}
/**
* @brief  Send serial data
* @param[in] {value}  The one byte of data to be sent by UART.
* @return Null
*/
void uart_transmit_output(u8 value)
{
//#error "Specify the UART transmission function and delete this line"
Uart3_PutChar(value);
/*
// Example:
extern void Uart_PutChar(u8 value);
Uart_PutChar(value);                                    // UART transmission function
*/
}

通過74HC165移位寄存器讀取數(shù)據(jù)

/***********************************************************
*   Function:  HC165In
*   Input:     none
*   Output:    none
*   Return:    uint8_t
*   Notice:    Read values of the eight pins of 74HC165 and return 8-bit data.
***********************************************************/
uint8_t HC165In(void)
{
uint8_t i,dat=0;
CP_SET;
PL_RESET;
delay_us(10);
PL_SET;
delay_us(10);
for(i=0;i<8;i++)
{
dat=dat<<1;
if(ODATA==1)
{
dat=dat+1;
}
CP_RESET;
delay_us(10);
CP_SET;
delay_us(10);
}
CP_RESET;
return dat;
}

通過74HC595移位寄存器發(fā)送數(shù)據(jù)

該功能用于通過74HC595向n溝道MOSFET和p溝道MOSFET輸出不同電平的信號。這樣,我們可以控制電機旋轉(zhuǎn)。

/***********************************************************
*   Function:  HC595Send
*   Input:     uint16_t
*   Output:    none
*   Return:    none
*   Notice:    Output 16-bit data through pins of the two 74HC595 shift registers.
***********************************************************/
void HC595Send(uint16_t data)
{
uint8_t j;
LOCK_RESET;
delay_us(10);
for (j = 16; j > 0; j--)
{
SHIFT_RESET;
delay_us(10);
if(data & 0x8000)
{
INDATA_SET;
}
else
{
INDATA_RESET;
}
delay_us(10);
data <<= 1;
SHIFT_SET;
delay_us(10);
}
LOCK_SET;
delay_us(10);
}

例如,要旋轉(zhuǎn)第 X (0≤X≤9) 個電機來運送產(chǎn)品,我們可以調(diào)用

HC595Send(1<1||<<10);

1<表示高電平信號輸出到第 X 個 p 溝道 MOSFET。<>

注意:電路中的所有 n 溝道 MOSFET 使用相同的信號引腳,因此1<<10是固定的。

要停止電機旋轉(zhuǎn),我們可以調(diào)用

HC595Send(0);

該功能的參數(shù)電路設(shè)計而異。根據(jù)您的硬件調(diào)整它們。

處理來自云端的命令

來自云端的數(shù)據(jù)長度為 6 個字節(jié)。我們可以指定位 0 為產(chǎn)品托盤編號,位 1 為產(chǎn)品編號,位 2 至位 5 為訂單編號。

您可以根據(jù)需要指定通信協(xié)議。以下程序供您參考。

/*****************************************************************************
Function name: dp_download_m_num_handle
Feature description: a processing function for DPID_M_NUM.
Input parameters: value indicates the data source
: length: the length of the data
Return parameters: Return SUCCESS on success, and ERROR on failure
Instruction: For the send-only data point, the results must be sent to the cloud after the operation is completed.
*****************************************************************************/
static unsigned char dp_download_m_num_handle(const unsigned char value[], unsigned short length)
{
// Example: This is a data point of raw type.
unsigned char ret;
const unsigned char error[6]={"ERROR1"};
/*
// Process data of raw type.

*/
if((length==6)&&(value[0]<11)&&(value[1]<10))
{
IoT_receive[Q_U3.rear].data[0]=value[0];
IoT_receive[Q_U3.rear].data[1]=value[1];
IoT_receive[Q_U3.rear].data[2]=value[2];
IoT_receive[Q_U3.rear].data[3]=value[3];
IoT_receive[Q_U3.rear].data[4]=value[4];
IoT_receive[Q_U3.rear].data[5]=value[5];
F_TASK_MOTOR_OPEN++;
rear_inc(&Q_U3);
}
else
{
mcu_dp_raw_update(DPID_R_NUM,error,6);
}
// Return the result of the operation.
ret = mcu_dp_raw_update(DPID_M_NUM,value,length);
if(ret == SUCCESS)
return SUCCESS;
else
return ERROR;
}

編譯下載

編程完成后,如果出現(xiàn)任何錯誤,請單擊構(gòu)建并更正您的代碼。

然后,將程序下載到開發(fā)板上進行測試。

STM32 支持 ST-Link 和 J-Link 等調(diào)試器。建議使用 ST-Link。下表概述了要連接的引腳:

pYYBAGNoeYSADW2eAAAi3_pn84Y444.png
?

將 ST-Link 連接到您的開發(fā)板后,單擊下載

第 4 步:演示

打開涂鴉智能應(yīng)用,點擊您為自動售貨機選擇的面板。找到創(chuàng)建的數(shù)據(jù)點Item ,輸入XXYYZZZZZZZZ格式的值進行測試。

  • XX表示第 X 個產(chǎn)品托盤。
  • YY表示托盤上的剩余產(chǎn)品。
  • ZZZZZZZZ表示訂單號。它可以是任何值。

例如輸入0104aabbccdd,表示第一個托盤現(xiàn)在有四個產(chǎn)品,訂單號是aabbccdd

數(shù)據(jù)發(fā)送后,您會發(fā)現(xiàn)電機開始轉(zhuǎn)動,產(chǎn)品掉落后停止。

注意:庫存值必須與項目匹配。例如,如果第一個托盤有四個產(chǎn)品,則有效值為0104無效值如01050103不能使電機旋轉(zhuǎn)。
?
poYBAGNoeYeABlINAAD6JLhjfNQ572.jpg
?

概括

涂鴉物聯(lián)網(wǎng)平臺提供便捷物聯(lián)網(wǎng)開發(fā)工具和服務(wù),旨在讓您的物聯(lián)網(wǎng)項目更輕松、更高效。查看并發(fā)現(xiàn)更多很棒的想法。

?


下載該資料的人也在下載 下載該資料的人還在閱讀
更多 >

評論

查看更多

下載排行

本周

  1. 1山景DSP芯片AP8248A2數(shù)據(jù)手冊
  2. 1.06 MB  |  532次下載  |  免費
  3. 2RK3399完整板原理圖(支持平板,盒子VR)
  4. 3.28 MB  |  339次下載  |  免費
  5. 3TC358743XBG評估板參考手冊
  6. 1.36 MB  |  330次下載  |  免費
  7. 4DFM軟件使用教程
  8. 0.84 MB  |  295次下載  |  免費
  9. 5元宇宙深度解析—未來的未來-風(fēng)口還是泡沫
  10. 6.40 MB  |  227次下載  |  免費
  11. 6迪文DGUS開發(fā)指南
  12. 31.67 MB  |  194次下載  |  免費
  13. 7元宇宙底層硬件系列報告
  14. 13.42 MB  |  182次下載  |  免費
  15. 8FP5207XR-G1中文應(yīng)用手冊
  16. 1.09 MB  |  178次下載  |  免費

本月

  1. 1OrCAD10.5下載OrCAD10.5中文版軟件
  2. 0.00 MB  |  234315次下載  |  免費
  3. 2555集成電路應(yīng)用800例(新編版)
  4. 0.00 MB  |  33566次下載  |  免費
  5. 3接口電路圖大全
  6. 未知  |  30323次下載  |  免費
  7. 4開關(guān)電源設(shè)計實例指南
  8. 未知  |  21549次下載  |  免費
  9. 5電氣工程師手冊免費下載(新編第二版pdf電子書)
  10. 0.00 MB  |  15349次下載  |  免費
  11. 6數(shù)字電路基礎(chǔ)pdf(下載)
  12. 未知  |  13750次下載  |  免費
  13. 7電子制作實例集錦 下載
  14. 未知  |  8113次下載  |  免費
  15. 8《LED驅(qū)動電路設(shè)計》 溫德爾著
  16. 0.00 MB  |  6656次下載  |  免費

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935054次下載  |  免費
  3. 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
  4. 78.1 MB  |  537798次下載  |  免費
  5. 3MATLAB 7.1 下載 (含軟件介紹)
  6. 未知  |  420027次下載  |  免費
  7. 4OrCAD10.5下載OrCAD10.5中文版軟件
  8. 0.00 MB  |  234315次下載  |  免費
  9. 5Altium DXP2002下載入口
  10. 未知  |  233046次下載  |  免費
  11. 6電路仿真軟件multisim 10.0免費下載
  12. 340992  |  191187次下載  |  免費
  13. 7十天學(xué)會AVR單片機與C語言視頻教程 下載
  14. 158M  |  183279次下載  |  免費
  15. 8proe5.0野火版下載(中文版免費下載)
  16. 未知  |  138040次下載  |  免費
主站蜘蛛池模板: 久久天天综合| 国产精品网站在线进入| 欧美性区| 国产午夜精品久久久久九九 | 亚洲图片欧美色图| 张柏芝三级无删减在线观看| 在线天堂中文字幕| 熊出没之环球大冒险旧版免费观看| 天堂中文在线www| 日本一级成人毛片免费观看| 亚洲一区免费在线观看| 免费色黄网站| 亚洲bt天堂| 日本特级黄色大片| 久在草影院| 成年大片免费视频播放手机不卡| 夜夜骑日日射| 久久精品国产乱子伦多人| 亚洲成a人片77777潘金莲| 亚洲免费一| 亚洲综合激情九月婷婷| 色多多在线观看播放| 婷婷综合激情| 亚洲国产成人在线| 色欧美在线视频| 免费观看a黄一级视频| 日本高清网站| 韩国理论三级在线观看视频| 一本在线免费视频| 黄色网日本| 美女扒开尿口给男人捅| 台湾佬自偷自拍情侣在线| 五月婷婷丁香在线视频| 欧美一二| 77久久| 狠狠色狠狠色狠狠五月ady| 57pao强力打造免费高清高速| 一卡二卡三卡四卡无卡在线| 日本a级片在线播放| 成zzzwww日本免费| 激情综合五月天丁香婷婷|