stm32+手势识别模块+步进电机,模拟一种无接触式手势识别电梯

目录

前言

一、材料

二、接线

1.步进电机与步进电机驱动接线

2.stm32与步进电机驱动接线

3.手势识别模块与stm32接线

4.其他

 三、主要程序解释

 1.如何控制步进电机方向

2.手势控制步进电机相关代码

四、工程代码下载

总结



前言

由于参加了学校的研究性课程,题目是手势识别的控制研究,所以最近一直在搞这些,前面已经分享过两波其他方式的手势识别,有感兴趣的可以去看看(用openmv来手势识别还没做出来,可能能要下一波来分享了),这里是借助手势识别模块来识别手势,来控制步进电机。


一、材料

1.手势识别模块(我使用的是某宝上买的PAJ7620型号)

2.stm32单片机(stm32f103)

3.THB6128步进电机驱动

步进电机驱动说明链接

4.两相四线步进电机

5.交流转直流电源(12v)

二、接线

1.步进电机与步进电机驱动接线

 这里可以参考我另一篇博客--->>步进电机与驱动接线链接

不同的是之前用的一块充电宝当的电源,一开始还好用,不过到后面就拉跨了,后来我改用了12V的直流电源,就好多了(不过用着驱动板有点烫)。

2.stm32与步进电机驱动接线

1.CP+与DIR+分别接B6与B9口,CP-与DIR-都接地(G)。

3.手势识别模块与stm32接线

1.手势识别模块上的VCC与GND分别接stm32上的3.3v与G

2.手势识别模块上的SCL、SDA、INT分别接stm32上面的B8、B7、B5。

4.其他

1.如果想看识别结果的话,可以接上USB-TTL,A9、A10,分别接RXD、TXD。

2.ST-LINK接线就不多说了,一一连就好了,连线方面大家可以看下面的图片   

 

 

 

 三、主要程序解释

 1.如何控制步进电机方向

void DIR_Init(void)		//DIR¡ª¡ªPB5³õʼ»¯
{	
 GPIO_InitTypeDef  GPIO_InitStructure;
 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);	 
 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;				 
 GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; 		 
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;		 
 GPIO_Init(GPIOB, &GPIO_InitStructure);					 
 GPIO_SetBits(GPIOB,GPIO_Pin_9);						 				
}

 步进电机驱动的DIR接的B9,所以要控制电机转动方向,直接改变B9的状态即可。

状态1:

 GPIO_SetBits(GPIOB,GPIO_Pin_9);

状态2

 GPIO_ResetBits(GPIOB,GPIO_Pin_9);

2.手势控制步进电机相关代码

static void Paj7620_UpAction(void)
{

  LED_Init();
  DIR_Init();		
	TIM4_PWM_Init(200,450);
  TIM_SetCompare1(TIM4,200/2);	//ÉèÖÃÕ¼¿Õ±ÈΪ50%=arr/2
  GPIO_SetBits(GPIOB,GPIO_Pin_9);
	printf("up123\r\n");
  delay_ms(2000);
	TIM4_PWM_Init(0,0);
}

static void Paj7620_DownAction(void)
{

  LED_Init();
  DIR_Init();		
	TIM4_PWM_Init(200,450);
  TIM_SetCompare1(TIM4,200/2);	//ÉèÖÃÕ¼¿Õ±ÈΪ50%=arr/2
  GPIO_ResetBits(GPIOB,GPIO_Pin_9);
	printf("down\r\n");
	delay_ms(2000);
	TIM4_PWM_Init(0,0);
}

1.手势识别模块可以识别10种不同的手势,这里电梯只需要识别上下即可。

2.这里电机转动的时间设置的是2000ms,如果觉得时间短可以再改大一点。

四、工程代码下载

1.CSDN下载

下载积分设置的是0积分,乐在分享嘛,欢迎大家来交流讨论。


 

总结

本文介绍了使用stm32结合手势识别模块来控制步进电机,模拟一种无接触式手势识别电梯,而手势识别的方法还有很多,能控制的硬件也有很多,主要是要多多思考,多发现、多思考、多总结。接下来如果还有什么方法我也会分享出来,大家如果也有好的想法,也欢迎来交流交流。

版权声明:本文为CSDN博主「馘耳」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_48535429/article/details/120933398

生成海报
点赞 0

馘耳

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

32位芯片IO口的工作模式详解

一、IO口基本信息 以STM32单片机为例,共有7组IO口,从GPIOA~GPIOG,每组IO口有16个IO,一共有7×16112个IO。另外还有两个PH0和PH1,共11

STM32F103C8T6点亮LED流水灯详解

目录 一、STM32寄存器简介 二、keil5添加stm32固件库 三、编译代码部分 四、将程序烧录到STM32F103C8t6中去 一、STM32寄存器简介 简单来说,寄存器就是存放东西的东西。从名字来看,跟

RT-Thread Studio移植LAN8720A驱动

RTT网络协议栈驱动移植(霸天虎) 1、新建工程 ​ 工程路径不含中文路径名,工程名用纯英文不含任何符号。 2、用CubeMx配置板子外设 2.1、配置时钟 ​ 按照自己板子配置相应时钟。