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

聚豐項目 > 面向低功耗無線傳感器的智能小車巡回無線充電系統(tǒng)

面向低功耗無線傳感器的智能小車巡回無線充電系統(tǒng)

物聯網依靠無線傳感器進行信息傳輸。無線傳感器需要電池供電。如果無線傳感器嵌入到物體內部,導致電池更換代價高或者不方便。如果用無線充電來給嵌入式的無線傳感器進行能量供應,會為物聯網應用帶來極大的便利。因此,本設計考慮利用移動小車作為電源移動供應站,向嵌入到固定固體內部的傳感器節(jié)點進行無線充電。本系統(tǒng)完成小車的自動循跡、自動定位需要充電的傳感器,并根據預設的電量需求進行自動智能充電。(本項目采用的是IDT 3W無線充電開發(fā)套件)

東北風_b0f 東北風_b0f

分享
3 喜歡這個項目
團隊介紹

東北風_b0f 東北風_b0f

團隊成員

東北風_b0f 隊長

此號已啟用

鯨落

千芷

分享
項目簡介
物聯網依靠無線傳感器進行信息傳輸。無線傳感器需要電池供電。如果無線傳感器嵌入到物體內部,導致電池更換代價高或者不方便。如果用無線充電來給嵌入式的無線傳感器進行能量供應,會為物聯網應用帶來極大的便利。因此,本設計考慮利用移動小車作為電源移動供應站,向嵌入到固定固體內部的傳感器節(jié)點進行無線充電。本系統(tǒng)完成小車的自動循跡、自動定位需要充電的傳感器,并根據預設的電量需求進行自動智能充電。(本項目采用的是IDT 3W無線充電開發(fā)套件)
硬件說明

由于沒有做出來室內定位,所以尋址用藍牙遙控代替,沒電時發(fā)射信號也省略了。在墻上嵌入接收器,小車靠近為其充電。

小車具備前進、后退、左轉、右轉、原地旋轉360度無死角,而且具備慢、中、快三檔調節(jié),便于小車尋找到目標截屏_20171023_165751.png

stm32c8t6

藍牙hc06

電機驅動L298n

電池18650

IDT 3W無線充電開發(fā)套件 

軟件說明
PWM.c
 #include "PWM.h"
	
	
	
	void PWM_Init(void)
	{
		TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure;
  TIM_OCInitTypeDef TIM_OCInitStructure;
	TIM_TimeBaseStructure.TIM_Period=500-1;
	TIM_TimeBaseStructure.TIM_Prescaler=720-1;
	TIM_TimeBaseStructure.TIM_ClockDivision=0;
	TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
	TIM_TimeBaseInit(TIM3,&TIM_TimeBaseStructure);
	
	TIM_OCInitStructure.TIM_OCMode=TIM_OCMode_PWM1;
	TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
	TIM_OCInitStructure.TIM_Pulse=100;//指定將要加載到捕獲比較寄存器的脈沖值,當計數器計數到這個值時,電平發(fā)生跳變
	TIM_OCInitStructure.TIM_OCPolarity=TIM_OCPolarity_High;//設置輸出比較極性,當定時器計數值小于CCR1_Val時為高點平
	TIM_OC1Init(TIM3,&TIM_OCInitStructure);
  TIM_OC1PreloadConfig(TIM3,TIM_OCPreload_Enable);
	
	TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
	TIM_OCInitStructure.TIM_Pulse=100;
	TIM_OC2Init(TIM3,&TIM_OCInitStructure);
  TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);
	
	TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
	TIM_OCInitStructure.TIM_Pulse=100;
	TIM_OC3Init(TIM3,&TIM_OCInitStructure);
  TIM_OC3PreloadConfig(TIM3,TIM_OCPreload_Enable);
	
	TIM_OCInitStructure.TIM_OutputState=TIM_OutputState_Enable;
	TIM_OCInitStructure.TIM_Pulse=100;
	TIM_OC4Init(TIM3,&TIM_OCInitStructure);
  TIM_OC4PreloadConfig(TIM3,TIM_OCPreload_Enable);
	
	TIM_ARRPreloadConfig(TIM3,ENABLE);
	
	TIM_Cmd(TIM3,ENABLE);
	}	
Motor.h
/*
電池端
ENA---PB0            IN1---PC4      IN2---PC5
ENN---PB1            IN3---PC6      IN4---PC7
車尾端
ENA---PA7            IN1---PC8      IN2---PC9
ENB---PB6            IN3---PC10     IN4---PC11
*/
#include "Motor.h"
u8 temp;
void GPIO_Configuration(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
	RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE);
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_12|GPIO_Pin_13;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10|GPIO_Pin_11;//電機驅動IN
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOC,&GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7;//電機驅動EN
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_0|GPIO_Pin_1;//電機驅動EN
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOB,&GPIO_InitStructure);
	
}

void Motor_Forward(void)
{
	           GPIO_SetBits(GPIOC,GPIO_Pin_4);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_5);
	           GPIO_SetBits(GPIOC,GPIO_Pin_7);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_6);
	           GPIO_SetBits(GPIOC,GPIO_Pin_9);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_8);
	           GPIO_SetBits(GPIOC,GPIO_Pin_10);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_11);
	           temp=1;
}
void Motor_Back(void)
{
	           GPIO_SetBits(GPIOC,GPIO_Pin_5);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_4);
	           GPIO_SetBits(GPIOC,GPIO_Pin_6);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_7);
	           GPIO_SetBits(GPIOC,GPIO_Pin_8);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_9);
	           GPIO_SetBits(GPIOC,GPIO_Pin_11);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_10);
	           temp=2;
}
void Motor_Right(void)
{
          	 GPIO_SetBits(GPIOC,GPIO_Pin_4);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_5);
	           GPIO_SetBits(GPIOC,GPIO_Pin_6);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_7);
	           GPIO_SetBits(GPIOC,GPIO_Pin_8);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_9);
	           GPIO_SetBits(GPIOC,GPIO_Pin_10);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_11);
	           temp=3;
}
void Motor_Left(void)
{
	         	 GPIO_SetBits(GPIOC,GPIO_Pin_5);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_4);
	           GPIO_SetBits(GPIOC,GPIO_Pin_7);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_6);
	           GPIO_SetBits(GPIOC,GPIO_Pin_9);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_8);
	           GPIO_SetBits(GPIOC,GPIO_Pin_11);
		         GPIO_ResetBits(GPIOC,GPIO_Pin_10);
	           temp=4;
}
void Motor_Park(void)
{
          	GPIO_SetBits(GPIOC,GPIO_Pin_4);
		        GPIO_SetBits(GPIOC,GPIO_Pin_5);
	        	GPIO_SetBits(GPIOC,GPIO_Pin_6);
		        GPIO_SetBits(GPIOC,GPIO_Pin_7);
	          GPIO_SetBits(GPIOC,GPIO_Pin_8);
		        GPIO_SetBits(GPIOC,GPIO_Pin_9);
	        	GPIO_SetBits(GPIOC,GPIO_Pin_10);
		        GPIO_SetBits(GPIOC,GPIO_Pin_11);
	          temp=0;
}
Usart.c
#include "Usart.h"
void USART1_Configuration(void)
{
	GPIO_InitTypeDef GPIO_InitStructure;
	USART_InitTypeDef USART_InitStructure;
	NVIC_InitTypeDef NVIC_InitStructure;
	SystemInit();
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IN_FLOATING;
	GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
	GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
	GPIO_Init(GPIOA,&GPIO_InitStructure);
	
	USART_InitStructure.USART_BaudRate=9600;
	USART_InitStructure.USART_HardwareFlowControl=USART_HardwareFlowControl_None;
	USART_InitStructure.USART_Mode=USART_Mode_Rx|USART_Mode_Tx;
	USART_InitStructure.USART_Parity=USART_Parity_No;
	USART_InitStructure.USART_StopBits=USART_StopBits_1;
	USART_InitStructure.USART_WordLength=USART_WordLength_8b;
	USART_Init(USART1,&USART_InitStructure);
	
	USART_Cmd(USART1,ENABLE);
	
	USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);
	
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);
	
	NVIC_InitStructure.NVIC_IRQChannel=USART1_IRQn;
	NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
	NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;
	NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;
	NVIC_Init(&NVIC_InitStructure);
	
}
中斷函數
void USART1_IRQHandler(void)//藍牙中斷指令
{
	u8 res;
	extern u8 temp;

	
	if(USART_GetITStatus(USART1,USART_IT_RXNE))
	{
		res=USART_ReceiveData(USART1);
		if(res=='D')
	{
		        Motor_Forward();
	}
	if(res=='B'){
		//float distance=Senor_Using();
		//if(distance<=5.0)
		//{
		    //    Motor_Park();
			//GPIO_ResetBits(GPIOB,GPIO_Pin_12);
			//GPIO_SetBits(GPIOB,GPIO_Pin_13);
		//}
		//else
		//{
		Motor_Back();
		//}
	}
	if(res=='P'){
		        Motor_Park();
	}
	if(res=='L')
	{
	        Motor_Left();
	}
	if(res=='R')
	{
		        Motor_Right();
	}
		
	if(res=='a')
	{
		if(temp==1)
		{
			Motor_Forward();
		}
		if(temp==2)
		{
			Motor_Back();
		}
		if(temp==3)
		{
			Motor_Right();
		}
		if(temp==4)
		{
			Motor_Left();
		}
		if(temp==0)
		{
			Motor_Forward();
		}
		TIM_SetCompare1(TIM3,100);
		TIM_SetCompare2(TIM3,100);
		TIM_SetCompare3(TIM3,100);
		TIM_SetCompare4(TIM3,100);
	}
	if(res=='b')
	{
		if(temp==1)
		{
			Motor_Forward();
		}
		if(temp==2)
		{
			Motor_Back();
		}
		if(temp==3)
		{
			Motor_Right();
		}
		if(temp==4)
		{
			Motor_Left();
		}
		if(temp==0)
		{
			Motor_Forward();
		}
		TIM_SetCompare1(TIM3,200);
		TIM_SetCompare2(TIM3,200);
		TIM_SetCompare3(TIM3,200);
		TIM_SetCompare4(TIM3,200);
	}
	if(res=='c')
	{
		if(temp==1)
		{
			Motor_Forward();
		}
		if(temp==2)
		{
			Motor_Back();
		}
		if(temp==3)
		{
			Motor_Right();
		}
		if(temp==4)
		{
			Motor_Left();
		}
		if(temp==0)
		{
			Motor_Forward();
		}
		TIM_SetCompare1(TIM3,300);
		TIM_SetCompare2(TIM3,300);
		TIM_SetCompare3(TIM3,300);
		TIM_SetCompare4(TIM3,300);
	}
		USART_SendData(USART1,res);
	}
}


評論區(qū)(1 )
  • 動心忍性1234: 您好我是無線電雜志的編輯,我們對您的項目十分感興趣,請問您有興趣投稿嗎?成為我們的作者除稿費外還有其他優(yōu)厚條件。敬請參與。投稿請聯系QQ260534978.

    回復

主站蜘蛛池模板: 网站在线观看你懂的 | 亚洲一区中文字幕在线 | 国产一级特黄aa大片免费 | 香港日本三级在线播放 | 深爱五月激情网 | 午夜视频你懂的 | 天天操天天干天天 | 午夜大片男女免费观看爽爽爽尤物 | 亚洲午夜网未来影院 | 李老汉的性生生活2 | 亚洲人成影院在线高清 | 亚洲成人高清 | 亚洲综合视频一区 | 国产成人精品一区二区三区 | 欧美一区色 | 中文字幕一二三四区2021 | 老师今晚让你爽个够 | 男人j进女人j视频 | 18欧美乱大交 | 色综合中文字幕 | 午夜a视频 | 欧美艹逼视频 | 亚洲午夜视频在线 | 成年大片免费视频播放手机不卡 | 人人澡人人澡碰人人看软件 | 好爽毛片一区二区三区四区 | 久热操 | 色视频在线观看网站 | 欧美亚洲综合另类成人 | 性色aⅴ闺蜜一区二区三区 性色成人网 | 一日本道加勒比高清一二三 | 亚洲伊人色一综合网 | 中国性猛交xxxx乱大交 | 99久久精品费精品国产 | 久久免费精品国产72精品剧情 | 国产午夜毛片v一区二区三区 | 一级特黄视频 | 亚洲精品一卡2卡3卡三卡四卡 | 好男人www社区影视在线 | 中文字幕久久精品波多野结 | 福利一区二区在线观看 |