精华内容
下载资源
问答
  • 模拟临大停车场车位管理系统 首页显示: 欢迎来到临沂大学 空闲停车位n个(n个灯亮) “by姓名” 按下K1(停车位数递减),显示“欢迎来到临沂大学,停车位剩余n个”。连续按n次,显示“没有空闲停车位”。 按...
  • 以前落后的人力停车管理即将被高科技化的自动停车管理系统所取代,高度自动化的停车场管理系统节省了大量时间和人力物资消耗,大大提高了效率。 功能描述: 1、采用51单片机作为主控芯片; 2、采用红外避障...

    随着人们生活水平的提高,汽车的数量也与日俱增,于是停车正在成为世界性的问题。以前落后的人力停车管理即将被高科技化的自动停车管理系统所取代,高度自动化的停车场管理系统节省了大量时间和人力物资消耗,大大提高了效率。

     

    功能描述

    1、采用51单片机作为主控芯片;

    2、采用红外避障传感器作为计数电路;

    3、采用LCD1602作为显示模块;

    4、当剩余车位数为0时,蜂鸣器报警、红灯亮(平时绿灯亮);

     

    按键说明

    1、设置键:设置车位总量;

    2、加值键:对设置值+1操作;

    3、减值键:对设置值-1操作;

     

    整体方案

     

    电路设计

    采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。

     

    仿真设计

    采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

     

    博主福利:100G电子设计学习资源包!

    http://mp.weixin.qq.com/mp/homepage?__biz=MzU3OTczMzk5Mg==&hid=7&sn=ad5d5d0f15df84f4a92ebf72f88d4ee8&scene=18#wechat_redirect

    --------------------------------------------------------------------------------------------------------------------------

    展开全文
  • 基于超声波的车位检测系统 三个超声波检测三个车位,LCD显示剩余车位,具有LED指示;: 仿真图2: 基于红外对管的车位检测系统,两个按键模拟红外对管,LCD显示剩余车位,具有LED指示,车辆超出后蜂鸣器报警...

    硬件设计

    (末尾附文件)

    仿真图1
    基于超声波的车位检测系统 三个超声波检测三个车位,LCD显示剩余的车位,具有LED指示;:
    在这里插入图片描述
    在这里插入图片描述
    仿真图2:
    基于红外对管的车位检测系统,两个按键模拟红外对管,LCD显示剩余的车位,具有LED指示,车辆超出后蜂鸣器报警提示;
    在这里插入图片描述
    在这里插入图片描述

    程序设计

    软件设计是设计中很重要的部分。它关系到一个系统能否实现其预定的要求。

    主程序设计
    主程序是软件设计的总体框架,因此主程序的流程图的设计决定了程序编写的好坏,该主程序的功能是扫描键盘,作出逻辑判断,控制各种中断,数据送入显示模块。其流程图如图所示。
    在这里插入图片描述
    在判断车辆是否进出中:本系统使用了两个传感器,一个用来检测出去的车,一个检测进来的车。当两个传感器同时检测到车的时候,说明进出的是车辆。当一个传感器检测到车辆时,开门。当两个传感器都检测到时,通过逻辑判断,剩余车位数进行加减。
    增加键
    在此程序中,剩余车位不超过最大车位数.流程图如图所示:
    在这里插入图片描述

    主程序
    #include <reg52.h>	          //调用单片机头文件
    #define uchar unsigned char   //无符号字符型 宏定义	变量范围0~255
    #define uint  unsigned int	  //无符号整型 宏定义	变量范围0~65535
    #include <intrins.h>
    #include "lcd1602.h"
    sbit K1=P1^0;
    sbit K2=P1^1;
    sbit K3=P1^2;
    sbit K4=P1^3;
    sbit beep = P1^7;   //蜂鸣器IO口定义
    sbit SH = P3^5;
    sbit ST = P3^6;
    sbit DS = P3^7;
    uchar num_jin;
    uchar num_chu;
    uchar num_car;
    //1ms延时函数
    void delay_1ms(uint q)
    {
    	uint i,j;
    	for(i=0;i<q;i++)
    		for(j=0;j<120;j++);
    }
    //74HC595函数
    void write_74hc595(unsigned int num)
    {
    	int i;	
    	ST = 0;
    	for(i=0; i<16; i++)
    	{
    		SH = 0;
    		if (num & 0x0001)   {DS = 1;}
    		Else               {DS = 0;}
    		SH = 1;
    		num >>= 1;
    	}
    	ST = 1;
    }
    unsigned int num_2_led(unsigned int num)
    {
    	int i;
    	unsigned int ret=0;
    	if (num > 16) 
    	    return 0xFFFF;
    	for(i=0;i<num;i++)
    	{
    		ret |= 1<<i;
    	}
    	return ret;
    }
    //独立按键程序
    void key()	   
    {
    	if(!K1)	       //  汽车进入(模拟传感器的监测)
    	{
    		delay_1ms(20);
    		if(!K1)
    		{
                while(!K1);
    			if(num_car==16)	 { beep=0; 	delay_1ms(200);  beep=1;}
                if(num_car<16)	 { num_car++;  if(num_jin<=255) { num_jin++;}  }
    			write_sfm2(1,4,num_jin); 
    			write_sfm2(1,12,num_chu);  
    			write_sfm2(2,4,num_car); 
    		    write_sfm2(2,12,16-num_car);  
    			write_74hc595(num_2_led(num_car));
    		  }
    	}	
    	if(!K2)	       //   汽车驶出(模拟传感器的监测)
    	{
    		delay_1ms(20);
    		if(!K2)
    		  {
                while(!K2);
                if(num_car>=1) {	num_car--;  if(num_chu<=255) { num_chu++;}  }	
    		    write_sfm2(1,4,num_jin); 
    			write_sfm2(1,12,num_chu);  
    			write_sfm2(2,4,num_car); 
    		    write_sfm2(2,12,16-num_car);  
    			write_74hc595(num_2_led(num_car));
    		  }
    	}	
    	if(!K3)	       //  人工调节    手动修改小区内停车位
    	{
    		delay_1ms(20);
    		if(!K3)
    		{
               while(!K3);
     		   if(num_car<16)	 { num_car++; }
    		   write_sfm2(1,4,num_jin); 
    		   write_sfm2(1,12,num_chu);  
    		   write_sfm2(2,4,num_car); 
    		   write_sfm2(2,12,16-num_car);  
    		 }
    	}	
    	if(!K4)	       //   人工调节   手动修改小区内停车位
    	{
    		delay_1ms(20);
    		if(!K4)
    		 {
                while(!K4);
                if(num_car>=1) {	num_car--;  }	
    		    write_sfm2(1,4,num_jin); 
    			write_sfm2(1,12,num_chu);  
    			write_sfm2(2,4,num_car); 
    		    write_sfm2(2,12,16-num_car);  
    		  }
    	}				
    }			
    
    

    .
    文件仅供参考、

    链接:https://pan.baidu.com/s/1ztS96VCr8BqJqfTh0-xGSA
    提取码:9mk3

    .

    展开全文
  • FreeRTOS课程设计之临沂大学停车场车位管理系统(一) 先看一下效果吧 1.作品要求 模拟临大停车场车位管理系统 首页显示: 欢迎来到临沂大学 空闲停车位n个(n个灯亮) “by姓名” 按下K1(停车位数递减),显示...

    FreeRTOS课程设计之临沂大学停车场车位管理系统(一)

    先看一下效果吧

    1.作品要求

    模拟临大停车场车位管理系统

    首页显示:

    欢迎来到临沂大学

    空闲停车位n个(n个灯亮)

    “by姓名”

    按下K1(停车位数递减),显示“欢迎来到临沂大学,停车位剩余n个”。连续按n次,显示“没有空闲停车位”。

    按下K2(停车位数递增),显示“欢迎再来临沂大学,停车位空余n个”。

    按下K3,挂起任务1. 灯闪烁。

    按下K4,恢复任务1. 灯全亮。

    加分项:
    功能的扩展与创意。

    2.实现思路

    • 需要用到 LED、OLED、按键等外设
    • 使用FreeRTOS实时操作系统
    • 需要创建几个任务、任务之间如何安排、数据如何传递?
    • 想好这些之后,再开始敲代码之前画个图吧!

    image-20201217201146378

    主要创建4个任务,这4个任务如上图所示,如何把这几个任务联系起来?

    当然是通过信号量了

    老师说,信号量可以在任务之间传递,但我没怎么用上,偷了个懒,定义了一个chewei(车位变量),Take与Give这两个任务就是对这个变量进行操作,使其–、++。

    LED_Task则是根据chewei信息及时更新LED与OLED显示。

    KEY_Task则是挂起与恢复 前两个任务。

    这样就是大体的思路了。

    3.主要代码

    3.1 任务句柄的创建
    /**************************** 任务句柄 ********************************/
    /* 
     * 任务句柄是一个指针,用于指向一个任务,当任务创建好之后,它就具有了一个任务句柄
     * 以后我们要想操作这个任务都需要通过这个任务句柄,如果是自身的任务操作自己,那么
     * 这个句柄可以为NULL。
     */
    static TaskHandle_t AppTaskCreate_Handle = NULL;/* 创建任务句柄 */
    static TaskHandle_t Take_Task_Handle = NULL;/* Take_Task任务句柄 */
    static TaskHandle_t Give_Task_Handle = NULL;/* Give_Task任务句柄 */
    static TaskHandle_t KEY_Task_Handle = NULL;/* KEY任务句柄 */
    static TaskHandle_t LED_Task_Handle = NULL;/* LED任务句柄 */
    
    3.2 AppTaskCreate任务
    /***********************************************************************
      * @ 函数名  : AppTaskCreate
      * @ 功能说明: 为了方便管理,所有的任务创建函数都放在这个函数里面
      * @ 参数    : 无  
      * @ 返回值  : 无
      **********************************************************************/
    static void AppTaskCreate(void)
    {
      BaseType_t xReturn = pdPASS;/* 定义一个创建信息返回值,默认为pdPASS */
      
      taskENTER_CRITICAL();           //进入临界区
      
      /* 创建Test_Queue */
      CountSem_Handle = xSemaphoreCreateCounting(4,4);	 
      if(NULL != CountSem_Handle)
        printf("CountSem_Handle计数信号量创建成功!\r\n");
    
      /* 创建Take_Task任务 */
      xReturn = xTaskCreate((TaskFunction_t )Take_Task, /* 任务入口函数 */
                            (const char*    )"Take_Task",/* 任务名字 */
                            (uint16_t       )512,   /* 任务栈大小 */
                            (void*          )NULL,	/* 任务入口函数参数 */
                            (UBaseType_t    )4,	    /* 任务的优先级 */
                            (TaskHandle_t*  )&Take_Task_Handle);/* 任务控制块指针 */
      if(pdPASS == xReturn)
        printf("创建Take_Task任务成功!\r\n");
      
      /* 创建Give_Task任务 */
      xReturn = xTaskCreate((TaskFunction_t )Give_Task,  /* 任务入口函数 */
                            (const char*    )"Give_Task",/* 任务名字 */
                            (uint16_t       )512,  /* 任务栈大小 */
                            (void*          )NULL,/* 任务入口函数参数 */
                            (UBaseType_t    )4, /* 任务的优先级 */
                            (TaskHandle_t*  )&Give_Task_Handle);/* 任务控制块指针 */ 
      if(pdPASS == xReturn)
        printf("创建Give_Task任务成功!\n\n");
    	/* 创建KEY_Task任务 */
      xReturn = xTaskCreate((TaskFunction_t )KEY_Task,  /* 任务入口函数 */
                            (const char*    )"KEY_Task",/* 任务名字 */
                            (uint16_t       )512,  /* 任务栈大小 */
                            (void*          )NULL,/* 任务入口函数参数 */
                            (UBaseType_t    )4, /* 任务的优先级 */
                            (TaskHandle_t*  )&KEY_Task_Handle);/* 任务控制块指针 */ 
      if(pdPASS == xReturn)
        printf("创建KEY_Task任务成功!\n\n");
    	/* 创建LED_Task任务 */
    	 xReturn = xTaskCreate((TaskFunction_t )LED_Task,  /* 任务入口函数 */
                            (const char*    )"LED_Task",/* 任务名字 */
                            (uint16_t       )512,  /* 任务栈大小 */
                            (void*          )NULL,/* 任务入口函数参数 */
                            (UBaseType_t    )4, /* 任务的优先级 */
                            (TaskHandle_t*  )&LED_Task_Handle);/* 任务控制块指针 */ 
      if(pdPASS == xReturn)
        printf("创建LED_Task任务成功!\n\n");
      
      vTaskDelete(AppTaskCreate_Handle); //删除AppTaskCreate任务
      
      taskEXIT_CRITICAL();            //退出临界区
    }
    
    3.3 Take_Task
    /**********************************************************************
      * @ 函数名  : Take_Task
      * @ 功能说明: Take_Task任务主体
      * @ 参数    :   
      * @ 返回值  : 无
      ********************************************************************/
    static void Take_Task(void* parameter)
    {	
      BaseType_t xReturn = pdTRUE;/* 定义一个创建信息返回值,默认为pdPASS */
      /* 任务都是一个无限循环,不能返回 */
      while (1)
      {
        //如果KEY1被单击	
    		if( 0 == HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin)  )       
    		{  
    			delay_ms(80);
    			if( 0 == HAL_GPIO_ReadPin(KEY1_GPIO_Port, KEY1_Pin)  )
    			{
    			/* 获取一个计数信号量 */
    				xReturn = xSemaphoreTake(CountSem_Handle,	/* 计数信号量句柄 */
                                 0); 	/* 等待时间:0 */
    				if(chewei!=0){
    					chewei--;
    				
    				}
    					
    				
    				if ( pdTRUE == xReturn ) 
    					printf( "KEY1被按下,成功申请到停车位。\n" );
    				else
    					printf( "KEY1被按下,不好意思,现在停车场已满!\n" );	
    		  }			
    		}
    		vTaskDelay(20);     //每20ms扫描一次		
      }
    }
    
    3.4 Give_Task
    static void Give_Task(void* parameter)
    {	 
      BaseType_t xReturn = pdTRUE;/* 定义一个创建信息返回值,默认为pdPASS */
      /* 任务都是一个无限循环,不能返回 */
      while (1)
      {
        //如果KEY2被单击
    		if( 0 == HAL_GPIO_ReadPin(KEY2_GPIO_Port, KEY2_Pin) )  			
    		{
    			delay_ms(80);
    			if( 0 == HAL_GPIO_ReadPin(KEY2_GPIO_Port, KEY2_Pin) )
    			{
    			/* 获取一个计数信号量 */
          xReturn = xSemaphoreGive(CountSem_Handle);//给出计数信号量  
          chewei++;
    			
    				if ( pdTRUE == xReturn ) 
    					printf( "KEY2被按下,成功释放车位!\r\n" );
    				else
    					printf( "KEY2被按下,不好意思,无可释放车位!\r\n" );	
    				
    		  }		
    				
    	
    	
    		}
    		vTaskDelay(20);     //每20ms扫描一次	
      }
    }
    
    3.5 Key_Task
    static void KEY_Task(void* parameter)
    {	
      while (1)
      {
        if( 0 == HAL_GPIO_ReadPin(KEY3_GPIO_Port, KEY3_Pin))
    			{
    				delay_ms(80);
    			if( 1 == HAL_GPIO_ReadPin(KEY3_GPIO_Port, KEY3_Pin) )
    			{
    				/* K3 被按下 */
    				printf("挂起任务\n");
    				vTaskSuspend(Take_Task_Handle);/* 挂起Take任务 */
    				vTaskSuspend(Give_Task_Handle);/* 挂起Give任务 */
    				printf("挂起任务成功!\n");
    				shining = 1;
    			}
    		}			
        if( 0 == HAL_GPIO_ReadPin(KEY4_GPIO_Port, KEY4_Pin) )
        {/* K4 被按下 */
    			delay_ms(80);
    			if( 0 == HAL_GPIO_ReadPin(KEY4_GPIO_Port, KEY4_Pin) )
    			{/* K4 被按下 */
    				printf("恢复任务!\n");
    				vTaskResume(Take_Task_Handle);/* 恢复Take任务! */
    				vTaskResume(Give_Task_Handle);/* 恢复Give任务! */
    				printf("恢复任务成功!\n");
    				shining = 0; 
    			}
    		}
    
        vTaskDelay(20);/* 延时20个tick */
      }
    }
    

    3.5LED_Task

    /**********************************************************************
      * @ 函数名  : LED_Task
      * @ 功能说明: LED_Task任务主体
      * @ 参数    :   
      * @ 返回值  : 无
      ********************************************************************/
    static void LED_Task(void* parameter)
    {	 
    	OLED_Clear();
    	OLED_ShowChinese_Row(0,0,*huanying); 
    	OLED_ShowChinese_Row(0,2,*shengyu); 
      while (1)
      {
    		pub++;
    				switch ( chewei ) 
    					{	
    						case 0:
    							LED1_OFF;
    							LED2_OFF;
    							LED3_OFF;
    							LED4_OFF;
    							OLED_ShowChinese_Row(0,0,*wukongxain);
    						  OLED_ShowString(0,2,"no free parking ");
    							OLED_ShowNum(64,4, chewei,1,15);
    							break; 
    						
    					  case 1:
    							LED1_OFF;
    						  LED2_OFF;
    						  LED3_OFF;
    						  LED4_ON;
    							if(shining==1){
    							delay_ms(500);
    							LED4_OFF;
    							delay_ms(500);
    						}
    
                  OLED_ShowNum(64,4, chewei,1,15);
    							break;
    					
    						case 2:
    							LED1_OFF;
    						  LED2_OFF;
    						  LED3_ON;
    						  LED4_ON;
    							if(shining==1){
    							delay_ms(500);
    							LED3_OFF;
    							LED4_OFF;
    							delay_ms(500);
    						}
    
                  OLED_ShowNum(64,4, chewei,1,15);
    
    							break;
    					
    						case 3:
    							LED1_OFF;
    						  LED2_ON;
    						  LED3_ON;
    						  LED4_ON;
    							if(shining==1){
    							delay_ms(500);
    							LED2_OFF;
    							LED3_OFF;
    							LED4_OFF;
    							delay_ms(500);
    						}
    
                  OLED_ShowNum(64,4, chewei,1,15);
    
    							break;
    					
    						case 4:
    							LED1_ON;
    						  LED2_ON;
    						  LED3_ON;
    						  LED4_ON;
    
    							if(shining==1)
    						{
    							delay_ms(500);
    							LED1_OFF;
    							LED2_OFF;
    							LED3_OFF;
    							LED4_OFF;
    							delay_ms(500);
    						}
                  OLED_ShowNum(64,4, chewei,1,15);
    
    							break;
    					
    						default: 
    						break;
    					}
    					//大概有1分钟上传一次数据
    			if(pub%2000==0){
    				pub = 0;
    			STM32DHT11_StatusReport();
    		}
      
    				
    		
    		vTaskDelay(20);     //每20ms扫描一次	
    	}
    }
    

    4.遇到一些问题

    4.1 按键不灵敏

    按键有些不灵敏,所要进行消抖

    我用的是软件延时消抖,效果还不错,延时时间为80ms

     if( 0 == HAL_GPIO_ReadPin(KEY3_GPIO_Port, KEY3_Pin))
    			{
    				delay_ms(80);
    			if( 1 == HAL_GPIO_ReadPin(KEY3_GPIO_Port, KEY3_Pin) )
    			{
    				/* K3 被按下 */
    			}
    		}
    

    HAL_GPIO_ReadPin(KEY3_GPIO_Port, KEY3_Pin)

    至于为什么用这个函数?

    贴一张cubeMX配置图

    image-20201217203620724

    一般来说,需要区分这个GPIO口用于输入还是输出。

    如果是output,那个一般选择no pull,这样,引脚才能根据你的output数据,进行正确输出。

    如果是input,那么需要看具体应用的默认输入值是0还是1. 如果默认是输入0,则最好配置为pull down,反之则配置为pull up.

    一个接有上拉电阻的端口设为输入状态时,他的常态就为高电平,用于检测低电平的输入

    展开全文
  • (1)显示停车场现有车辆数和已停放过车辆数,总共16个车位,指示灯指示具体的车位占用情况; (2)可以手动设置总车位数以及剩余车位数; (3)车位满后将报警提示。

    1、设计内容

    由AT89S52单片机+AT24C02数据存储模块+按键模块+LCD1602显示+报警模块等构成
    具体功能:
    (1)显示停车场现有车辆数和已停放过车辆数,总共16个车位,指示灯指示具体的车位占用情况;
    (2)可以手动设置总车位数以及剩余车位数;
    (3)车位满后将报警提示。

    2、系统概述

    本系统包括:电源模块、传感器模块、显示模块、手动键盘输入模块、车辆车位模拟模块等。它可以实现控制的开启、显示停车场现有车辆数和已停放过车辆数、人工的设置总车位数以及剩余车位数的数值显示等功能。并且拥有16个模拟的停车位,用来显示车辆停放的具体位置。

    系统的特点:

    (1)由于本系统采用电子元件无需人工管理。

    (2)自动显示停车场的车位状态,进出和停放车辆统计。

    (3)统计小区当天已停放车辆总数,并且显示停放位置。

    (4)本系统适用于任意停车场。

    (5)检测小区车位车辆是否已满,报警指示灯闪烁。

    系统框图:

     

    3、仿真图

     资料包括仿真原理图和程序,完美实现仿真:

    资料获取请关注微信公众号“电子工程师成长日记”,回复关键词:“仿真”!

    展开全文
  • 它可以实现控制的开启、显示停车场现有车辆数和已停放过车辆数、人工的设置总车位数以及剩余车位数的数值显示等功能。并且拥有16个模拟的停车位,用来显示车辆停放的具体位置。 系统的特点: 由于本系统采用电子元件...
  • 1.1 一个简单的.v程序: module nand2_ex16(a,b,f);//定义2输入与非门电路模块nand2_ex1 //模块的外部输入输出端口列表 input a,b; //a,b为输入端口 ...标识符用于表示电路系统中的模块、寄存器、I/O...
  • 使用Opencv对停车场剩余车位数量进行识别,所有代码不用类不用函数,适合初学者学习,详细介绍可以参考我的博文:https://blog.csdn.net/qq_36758914/article/details/104041779
  • 在线体验到室内地图的功能后,手机对室内地图加载一个字,要显示“快”,目前微信和电脑都可以打开室内地图的要求是3秒内打开,能有定位导航...目前就根据商场停车项目需求,先如何找到一个商场停车场车位的事情说起...
  • 那么怎么有效提升停车效率,又能精准地找到已停的车位,一套智慧停车场导航系统能够全部搞定。增强内部客流疏导和指引,满足商圈内找人、找车、找商铺等定位导航的业务需要。 智慧停车场导航系统,以轻量化3D电子...
  • 这套系统可实现车辆快速出入停车场、自动划分车辆类别、车位数量精确监控、车辆行驶路径精确诱导、停放车辆精确收费,完全杜绝任何形式的作弊,防止停车费用流失。系统采用的是工业级百万高清像素专业车牌照识别一体...
  • 停车场车位识别

    2021-06-09 09:29:27
    空车位并用mask画出来标记上,并且统计出总共车位和剩余车位的数量。 主要步骤 1.对图片(视频)做出预处理,画出车位线以及坐标。 2.根据一根线的两个点的坐标确定位置 ,根据车位线的坐标x1确定车位的位置,存入...
  • 系统是一个停车场车辆统计系统,可以实现停车场的车辆统计,并计算出剩余车位
  • 停车场车位识别,opencv图像预处理,训练网络模型 项目理论和源码来自唐宇迪opencv项目实战 ...2.利用上一步制作的数据集,训练神经网络模型,能够识别停车场中有哪些剩余车位。 1 数字数字图像处理 opencv ...
  • 停车场车位识别 要做的步骤 1、计算有几个车 2、计算还剩几个车位 3、哪个停车位被占用了,哪个停车位没有被占用。 读取图片 def select_rgb_white_yellow(self,image): #过滤掉背景 lower = np.uint8([120, 120...
  • 停车场系统

    千次阅读 多人点赞 2020-11-12 15:04:48
    现开发一个停车系统,用户根据车位停车 1)车主查看现在有无车位...查看现有的剩余车位 查看已停车的车位 查看停在车位上的车以及历史缴费 Client package com.gem.client; import java.util.Scanner; import
  • 停车场管理系统

    2019-06-29 20:23:56
    如果停车场已放满N辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场停车场内如有某辆车要开走,在他之后进入停车场的车都必须先退出停车场为它让...
  • 输入列表图像,在工具台中输出图像 def show_images(self,images,cmap=None): 输入的是某一张图片和给图片的name,make_write表示是否需要 yy yy afaf affad fs fg f 10.f
  • 给出一段停车场的视频,要求实时检测空停车位的数量及位置。 思路 从这段视频中取出一帧图片。 对图片进行处理,只保留图片中的有效信息(停车位)。 将所有停车位取出来,分别保存为单独的.jpg文件作为样本...
  • 智慧型停车场系统采用纯车牌自动识别技术、视频停车诱导技术及移动互联网APP停车应用技术,同时支持多种缴费场景和支付方式的全新智能化停车场系统系统能准确识别进出车辆的车牌号码,并以车辆的车牌号码作为...
  • opencv task2----停车场车位识别

    千次阅读 2020-08-28 11:17:05
    opencv task2----停车场车位识别前言预备知识1. inRange()函数2. Canny算子3. cvFillPoly4.HoughLinesP停车场车位识别需求分析具体步骤对图片预处理将建立好的字典序列 前言 这个项目虽然识别技术很老,相比深度学习...
  • 它可以实现控制的开启、显示停车场现有车辆数和已停放过车辆数、人工的设置总车位数以及剩余车位数的数值显示等功能。并且拥有16个模拟的停车位,用来显示车辆停放的具体位置。 系统的特点: (1)由于本系统采用...
  • 我会在近段时间内把之前的项目上遇到的一些我觉得需要记录的需求、问题给写下来,来弥补之前没有写博客的习惯。...需求:当管理员登录智慧停车项目后台时,首页需要展示当前地区的停车场信息,以及每个停车场的停...
  • 1.1 项目背景 软件系统的名称是停车场管理系统。我们开发的系统将帮助停车场管理员... 查看剩余车位数量,状态 记录车牌号,出入时间,收钱 查看停车出入记录 修改停车位类型(临时车位或永久车位,当有业主...
  • 它可以实现控制的开启、显示停车场现有车辆数和已停放过车辆数、人工的设置总车位数以及剩余车位数的数值显示等功能。并且拥有16个模拟的停车位,用来显示车辆停放的具体位置。 系统的特点: (1)由于本系统采用电子...
  • 1.1 项目背景 软件系统的名称是停车场管理系统。我们开发的系统将帮助停车场管理员和物业公司更加智能化的管理停车场,省去很多的人力物力。方便随时查询停车场的情况,也有助于车主方便随时查找... 查看剩余车位...
  • using System; using System.Collections.Generic; using System.Linq; using System.Text;...using System.Threading....namespace _08停车场管理系统 { class Program { //1.创建停车位数组 /// &lt;...
  • c#控制台实现停车场管理系统案例

    千次阅读 2019-02-15 17:54:50
    using System; using System.Collections.Generic; using System.Linq; using System.Text;...namespace _04_案例停车场管理系统 { class Program { static string[,] parking = new string[10,10]; ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 718
精华内容 287
关键字:

停车场剩余车位系统