无线RGB小夜灯实习报告Word文档下载推荐.docx
《无线RGB小夜灯实习报告Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《无线RGB小夜灯实习报告Word文档下载推荐.docx(18页珍藏版)》请在冰豆网上搜索。
WIFI控制的RGB小夜灯
功能描述:
能够在安卓手机端设置RGB颜色,并通过WIFI控制小夜灯调色调亮。
焊接任务:
完成MCU最小系统板、WIFI扩展板、传感器HUB、RGB光源LED板的焊接。
在双面PCB上焊接直插器件——2、54间距接插件,晶振等,焊接贴片器件——0805阻容,0805LED,ASM1117-3、3,0805电感,贴片Micro-USB座等
调试任务:
1、完成MCU最小系统板中的供电部分测试、
用实验电源给MCU板5V电源网络供电,记录STM32芯片输入电压。
连续调低MCU板供电电压,记录STM32芯片输入电压为2、0V时对应的实验电源输出电压值
。
2、MCU最小系统板烧写测试
了解烧写工具,接线方法,记录最小系统板的烧写过程,观察就是否烧写成功。
3、WIFI扩展板供电测试
用实验电源给WIFI扩展板5V电源网络供电,记录WIFI模块电源两端的输入电压。
连续调低WIFI扩展板供电电压,记录WIFI模块输入电压为3、0V时对应的实验电源输出电压值。
测试WIFI链接手机时,模块的功耗。
4、RGB光源LED板功能测试
观察LED颗粒就是否能调色调亮。
5、WIFI扩展板连接与通信距离测试
观察扩展板与手机或电脑的连接稳定性,并记录有效的通信距离。
6、系统功耗测试
各个模块组装完成后,用实验电源供电,测试整机最大功耗与最小功耗。
7、用纸壳或亚克力等材料自行设计外观。
8、对STM32源代码进行优化。
选做。
自行优化,实现扩展创新功能。
如实现对接入SENSORHUB板的多个LED模块的流水效果控制。
实习报告撰写:
按照实习报告统一格式撰写。
1、设计目的:
焊接制好的最小系统电路板
2、设计内容:
实现对单片机最小系统开发板与JTAG程序下载线的焊接,保证硬件焊接无误。
3、设计工具:
电烙铁,吸锡器,焊锡丝,镊子,钳子,万用表,电脑
4、负责老师:
陈分雄、杨勇
二、1焊接任务:
ColorLEDBoard焊接
时间:
12月21日-12月23日
地点:
信息楼401
目的:
学习焊接掌握电烙铁的使用
完成ColorLEDBoard焊接
内容:
学习焊接方法,观瞧视频,
先练习焊接,在废旧电路板上焊接
领取实验材料对比实验样范
进行焊接老师指导验收
SensorHUB焊接
12月24日-12月25日
完成SensorHUB焊接
练习焊接
领取实验材料
对比实验样范
程序下载
STM32_BASE Board焊接
12月28日-12月29日
目的;
完成STM32_BASE Board焊接
领取实验材料对比实验样范
交给老师焊接芯片
二丶2调试任务
12月29日-1月2日
完成无线RGB小夜灯的调试
将各个板块进行组合
下载相应检测软件
进行调试,用万用表检测电路就是否正确
用手机进行WIFI控制RGB小夜灯
二丶3实验验收
1月2日
实验验收
交与老师检测验收
二丶4获取实验数据
1月2-3日
获取实验数据
使用万用表检测32板
与WiFiboard板
的有效输入个输出
使用手机进行通信距离测试
附录1STM32—BASE程序
/*Includes------------------------------------------------------------------*/
#include"
stm32f10x、h"
platform_config、h"
stm32f10x_usart、h"
misc、h"
stm32f1_delay、h"
ws2812b、h"
/*Privatetypedef-----------------------------------------------------------*/
typedefenum{FAILED=0,PASSED=!
FAILED}TestStatus;
/*Privatedefine------------------------------------------------------------*/
/*Privatemacro-------------------------------------------------------------*/
/*Privatevariables---------------------------------------------------------*/
externuint8_tRXFRMOK;
//Ö
¡
½
Ó
Ê
Õ
±
ê
Ö
¾
externuint8_tRXAAOK;
Æ
ð
¼
externuint8_tReceiveBuf0[ReceiveMaxLength];
//½
»
º
³
å
Ç
ø
USART_InitTypeDefUSART_InitStructure;
GPIO_InitTypeDefGPIO_InitStructure;
voidRCC_Configuration(void);
voidGPIO_Configuration(void);
voidNVIC_Configuration(void);
voidDelay(__IOuint32_tnCount);
voidUSART_OUT(USART_TypeDef*USARTx,uint8_t*Data,uint16_tLen);
intmain(void)
{
uint16_ti,index;
uint8_tDATA_HEADER[4];
uint8_tDATA_DEV[4];
uint8_tDATA_R;
uint8_tDATA_G;
uint8_tDATA_B;
/*SystemClocksConfiguration**********************************************/
RCC_Configuration();
GPIO_Configuration();
NVIC_Configuration();
HAL_InitTick();
Timer4_init();
/*USARTconfiguration------------------------------------------------------*/
/*USART2configuredasfollow:
-BaudRate=115200baud
-WordLength=8Bits
-OneStopBit
-Noparity
-Hardwareflowcontroldisabled(RTSandCTSsignals)
-Receiveandtransmitenabled
*/
USART_InitStructure、USART_BaudRate=115200;
USART_InitStructure、USART_WordLength=USART_WordLength_8b;
USART_InitStructure、USART_StopBits=USART_StopBits_1;
USART_InitStructure、USART_Parity=USART_Parity_No;
USART_InitStructure、USART_HardwareFlowControl=USART_HardwareFlowControl_None;
USART_InitStructure、USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
/*ConfigureUSART2*/
USART_Init(USART2,&
USART_InitStructure);
/*EnableUSART2ReceiveandTransmitinterrupts*/
USART_ITConfig(USART2,USART_IT_RXNE,ENABLE);
USART_ITConfig(USART2,USART_IT_TXE,ENABLE);
/*EnabletheUSART2*/
USART_Cmd(USART2,ENABLE);
WS2812_testBreath(40);
delay_ms(100);
WS2812_send(30,30,30);
delay_ms(1000);
GPIO_ResetBits(GPIOA,GPIO_Pin_8);
while
(1)
{
if(RXFRMOK==1)
{//{"
put"
:
RGB,"
R"
000,"
G"
B"
000}
//USART_OUT(USART2,ReceiveBuf0,35);
index=0;
for(i=2;
i<
5;
i++)//HEADER
{
DATA_HEADER[index++]=ReceiveBuf0[i];
}
DATA_HEADER[3]='
\0'
;
for(i=7;
10;
i++)//RGB
DATA_DEV[index++]=ReceiveBuf0[i];
DATA_DEV[3]='
//DATA
DATA_R=((uint8_t)(ReceiveBuf0[15]-0x30))*100+((uint8_t)(ReceiveBuf0[16]-0x30))*10+(uint8_t)(ReceiveBuf0[17]-0x30);
DATA_G=((uint8_t)(ReceiveBuf0[23]-0x30))*100+((uint8_t)(ReceiveBuf0[24]-0x30))*10+(uint8_t)(ReceiveBuf0[25]-0x30);
DATA_B=((uint8_t)(ReceiveBuf0[31]-0x30))*100+((uint8_t)(ReceiveBuf0[32]-0x30))*10+(uint8_t)(ReceiveBuf0[33]-0x30);
if(strcmp(DATA_HEADER,"
)==0&
&
strcmp(DATA_DEV,"
RGB"
)==0)//devisOK?
WS2812_send(DATA_R,DATA_G,DATA_B);
delay_ms(100);
USART_OUT(USART2,"
ok"
2);
//Return
RXFRMOK=0;
RXAAOK=0;
}
///*TurnoffLD1*/
//GPIO_SetBits(GPIOA,GPIO_Pin_8);
///*Insertdelay*/
//delay_ms(100);
///*TurnonLD1*/
//GPIO_ResetBits(GPIOA,GPIO_Pin_8);
//
}
voidRCC_Configuration(void)
{
/*Setupthemicrocontrollersystem、InitializetheEmbeddedFlashInterface,
initializethePLLandupdatetheSystemFrequencyvariable、*/
SystemInit();
//
/*ConfigureallunusedGPIOportpinsinAnalogInputmode(floatinginput
triggerOFF),thiswillreducethepowerconsumptionandincreasethedevice
immunityagainstEMI/EMC*************************************************/
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB|
RCC_APB2Periph_GPIOC,ENABLE);
/*EnableUSART2clock*/
RCC_APB1PeriphClockCmd(RCC_APB1Periph_USART2,ENABLE);
voidGPIO_Configuration(void)
GPIO_InitStructure、GPIO_Pin=GPIO_Pin_8;
//LED
GPIO_InitStructure、GPIO_Mode=GPIO_Mode_Out_PP;
GPIO_InitStructure、GPIO_Speed=GPIO_Speed_50MHz;
GPIO_Init(GPIOA,&
GPIO_InitStructure);
GPIO_InitStructure、GPIO_Pin=GPIO_Pin_2;
//USART2TX
GPIO_InitStructure、GPIO_Mode=GPIO_Mode_AF_PP;
//¸
´
Ã
Í
ì
ä
ö
//A¶
Ë
¿
Ú
GPIO_InitStructure、GPIO_Pin=GPIO_Pin_3;
//USART2RX
GPIO_InitStructure、GPIO_Mode=GPIO_Mode_IN_FLOATING;
ª
Â
©
È
ë
/**
*@briefConfiguresthenestedvectoredinterruptcontroller、
*@paramNone
*@retval:
None
voidNVIC_Configuration(void)
NVIC_InitTypeDefNVIC_InitStructure;
/*ConfiguretheNVICPreemptionPriorityBits*/
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
/*EnabletheUSART2Interrupt*/
NVIC_InitStructure、NVIC_IRQChannel=USART2_IRQn;
NVIC_InitStructure、NVIC_IRQChannelSubPriority=0;
NVIC_InitStructure、NVIC_IRQChannelCmd=ENABLE;
NVIC_Init(&
NVIC_InitStructure);
voidUSART_OUT(USART_TypeDef*USARTx,uint8_t*Data,uint16_tLen)
uint16_ti;
for(i=0;
Len;
i++)
{
USART_SendData(USARTx,Data[i]);
while(USART_GetFlagStatus(USARTx,USART_FLAG_TC)==RESET);
}
#ifdefUSE_FULL_ASSERT
*@briefReportsthenameofthesourcethesourcelinenumber
*wheretheassert_paramerrorhasoccurred、
*@paramfile:
pointertothesource
*@paramline:
assert_paramerrorlinesourcenumber
voidassert_failed(uint8_t*file,uint32_tline)
/*Usercanaddhisownimplementationtoreporttheandlinenumber,
ex:
printf("
Wrongparametersvalue:
online%d\r\n"
file,line)*/
/*Infiniteloop*/
#endif
/*******************(C)COPYRIGHT2009STMicroelectronics*****ENDOFFILE****/
附录2原理图及相关引脚图
附录3实验样范
三,实验总结
通过多天的实习我已较为熟练的掌握了焊接电路板,充分的认识到了电子工程实习的困难与较多的问题,其中程序与硬件的交汇为我们的生活带来许多便利。
通过实习我多该课程有了更深的理解与认识
问题反馈及建议:
实验中出现了焊接问题,有漏焊,少焊,以及焊反的问题,往往都就是验收时才知道出现了问题,这就要求学生能认真仔细参考范例进行焊接,其次就就是焊接正确但程序调试有问题,这就需要老师的指导了。
建议:
多点老师来监督指导,有很多完成了但到老师那检测很难,其次就就是希望多些实验材料,以免焊错后无力补救
指导老师评语:
成绩评定:
指导老师(签字):
注:
成绩评定分为优、良、中、及格与不及格五个等级