電子發(fā)燒友App

硬聲App

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

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

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

基于涂鴉LZ201 Cat.1和MCU SDK的自動(dòng)售貨機(jī)

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

資料介紹

描述

概述

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

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

腳步

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

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

?
pYYBAGNoeV6ARWCpAAJA2CHOjGo852.png
?

供電單元

三臺(tái)機(jī)組需要供電:

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

單片機(jī)

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

?
pYYBAGNoeWGAPz-VAACwxaokVT4850.png
?

電機(jī)驅(qū)動(dòng)和控制單元

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

?
poYBAGNoeWOAYtvcAABKsUuG7VA164.png
?

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

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

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

元件數(shù)量

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

電機(jī)到位檢測(cè)單元

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

?
poYBAGNoeWuAaqDJAAAiEXGVFg4388.png
?

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

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

無(wú)線通信單元

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

?
poYBAGNoeW2AYyEYAABjV2tZKyQ057.png
?

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

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

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

其他外圍設(shè)備

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

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

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

?
pYYBAGNoeXCAC-ATAAJlx9dBLik496.png
?

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

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

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

?
poYBAGNoeXKAQ6QWAABx_9n0xQ8894.png
?

3. 單擊自定義解決方案選項(xiàng)卡上的智能電動(dòng)汽車。

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

?
poYBAGNoeXWAba_yAABPuC3vMgc496.png
?

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

?
pYYBAGNoeXmAXgrTAACMP2B_lBM608.png
?

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

?
poYBAGNoeXyAXjUiAAAjL1koCAE417.png
?

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

?
pYYBAGNoeX6AUAclAADSun3jHRI243.png
?

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

?
poYBAGNoeYKAY2v_AACjS285Wg0124.png
?

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

第 3 步:嵌入式編程

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

您可能會(huì)使用不同的 MCU,因此以下驅(qū)動(dòng)程序供您參考。完整示例代碼見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輸出不同電平的信號(hào)。這樣,我們可以控制電機(jī)旋轉(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) 個(gè)電機(jī)來(lái)運(yùn)送產(chǎn)品,我們可以調(diào)用

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

1<表示高電平信號(hào)輸出到第 X 個(gè) p 溝道 MOSFET。<>

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

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

HC595Send(0);

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

處理來(lái)自云端的命令

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

您可以根據(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)任何錯(cuò)誤,請(qǐng)單擊構(gòu)建并更正您的代碼。

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

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

pYYBAGNoeYSADW2eAAAi3_pn84Y444.png
?

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

第 4 步:演示

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

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

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

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

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

概括

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

?


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

評(píng)論

查看更多

下載排行

本周

  1. 1使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
  2. 2.96 MB   |  44次下載  |  免費(fèi)
  3. 2聯(lián)想E46L DAOLL6筆記本電腦圖紙
  4. 1.10 MB   |  2次下載  |  5 積分
  5. 3MATLAB繪圖合集
  6. 27.12 MB   |  2次下載  |  5 積分
  7. 4PR735,使用UCC28060的600W交錯(cuò)式PFC轉(zhuǎn)換器
  8. 540.03KB   |  1次下載  |  免費(fèi)
  9. 5UCC38C42 30W同步降壓轉(zhuǎn)換器參考設(shè)計(jì)
  10. 428.07KB   |  1次下載  |  免費(fèi)
  11. 6DV2004S1/ES1/HS1快速充電開發(fā)系統(tǒng)
  12. 2.08MB   |  1次下載  |  免費(fèi)
  13. 7模態(tài)分解合集matlab代碼
  14. 3.03 MB   |  1次下載  |  2 積分
  15. 8美的電磁爐維修手冊(cè)大全
  16. 1.56 MB   |  1次下載  |  5 積分

本月

  1. 1使用單片機(jī)實(shí)現(xiàn)七人表決器的程序和仿真資料免費(fèi)下載
  2. 2.96 MB   |  44次下載  |  免費(fèi)
  3. 2UC3842/3/4/5電源管理芯片中文手冊(cè)
  4. 1.75 MB   |  15次下載  |  免費(fèi)
  5. 3DMT0660數(shù)字萬(wàn)用表產(chǎn)品說(shuō)明書
  6. 0.70 MB   |  13次下載  |  免費(fèi)
  7. 4TPS54202H降壓轉(zhuǎn)換器評(píng)估模塊用戶指南
  8. 1.02MB   |  8次下載  |  免費(fèi)
  9. 5STM32F101x8/STM32F101xB手冊(cè)
  10. 1.69 MB   |  8次下載  |  1 積分
  11. 6HY12P65/HY12P66數(shù)字萬(wàn)用表芯片規(guī)格書
  12. 0.69 MB   |  6次下載  |  免費(fèi)
  13. 7華瑞昇CR216芯片數(shù)字萬(wàn)用表規(guī)格書附原理圖及校正流程方法
  14. 0.74 MB   |  6次下載  |  3 積分
  15. 8華瑞昇CR215芯片數(shù)字萬(wàn)用表原理圖
  16. 0.21 MB   |  5次下載  |  3 積分

總榜

  1. 1matlab軟件下載入口
  2. 未知  |  935119次下載  |  10 積分
  3. 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
  4. 1.48MB  |  420061次下載  |  10 積分
  5. 3Altium DXP2002下載入口
  6. 未知  |  233084次下載  |  10 積分
  7. 4電路仿真軟件multisim 10.0免費(fèi)下載
  8. 340992  |  191367次下載  |  10 積分
  9. 5十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
  10. 158M  |  183335次下載  |  10 積分
  11. 6labview8.5下載
  12. 未知  |  81581次下載  |  10 積分
  13. 7Keil工具M(jìn)DK-Arm免費(fèi)下載
  14. 0.02 MB  |  73807次下載  |  10 積分
  15. 8LabVIEW 8.6下載
  16. 未知  |  65987次下載  |  10 積分