ATmega16 + DS18B20 + LED + рдореИрдЯрд▓реИрдм / рд╕рд┐рдореБрд▓рд┐рдВрдХ = рдПрдЖрд░

рдореИрдВрдиреЗ рдХрд┐рд╕реА рддрд░рд╣ DS18B20 рд╕реЗрдВрд╕рд░ рдХреЗ рд╕рд╛рде рдЦреЗрд▓рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ ред рд╣рд╛рдВ, рди рдХреЗрд╡рд▓ рддрд╛рдкрдорд╛рди рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП (рд╣рд░ рдХреЛрдИ рдХреНрдпрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ), рдмрд▓реНрдХрд┐ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЗрд╕рдХреА рдХрд▓реНрдкрдирд╛ рдХрд░реЗрдВред рдПрдХ рд╕рд░рд▓ рд╡рд┐рдЪрд╛рд░ рдерд╛ред рд╣рдордиреЗ рд╡реЗрдмрдХреЗрдо рд▓рдЧрд╛рдпрд╛ред рд╣рдо рдкреНрд░рдХрд╛рд╢ рдХреЛ рдПрдХ рд╕рдорддрд▓ рдкрд░ рдкреНрд░рдЬреНрд╡рд▓рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдПрдХ рд╡рд┐рд╖рдо рдкрд░ рд╣рдо рдЗрд╕реЗ рдмреБрдЭрд╛рддреЗ рд╣реИрдВред рддрд╕реНрд╡реАрд░ рдХреЛ рдШрдЯрд╛рдПрдВ - рдХреЗрд╡рд▓ рдлреНрд▓реИрд╢ рдмрдиреА рд╣реБрдИ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╕реЗрдВрд╕рд░ рдХреЗ рд╕реНрдерд╛рди рдХреА рддрд▓рд╛рд╢ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдЕрдВрддрд░рд┐рдХреНрд╖ рдореЗрдВ рдПрд▓рдИрдбреА рд╕реЗ рд╢рд╛рд░реАрд░рд┐рдХ рд░реВрдк рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рд╣реИред рдФрд░ рдлрд┐рд░ рдЧрдгрд┐рддреАрдп рдкреНрд░рд╕рдВрд╕реНрдХрд░рдгред рдЦреИрд░, рдпрд╣ рд╕рдм simulinka рдореЗрдВред рдХреИрдЯреЛрдо рдХреЗ рддрд╣рдд рдпрд╣ рд╡рд░реНрдгрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рд╕реБрдВрджрд░ рдЪрд┐рддреНрд░ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдФрд░ рдЬреЛ рд▓реЛрдЧ рд╕рдордЭрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЙрдирдХреЗ рд▓рд┐рдП рдореИрдВ рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВред


рд╕рд░реНрдХрд┐рдЯ


рд╕рд░реНрдХрд┐рдЯрд░реА рдмреЗрд╣рдж рд╕рд░рд▓ рд╣реИред рджрд┐рд▓ ATmega16 рд╣реИред рд╕рднреА DS18B20 рд╕реЗрдВрд╕рд░ рдПрдХ рд╣реА рдкрд┐рди (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдкреЛрд░реНрдЯ рдкреЛрд░реНрдЯ рдХреЗ PB0 рдкрд░) рдХреЛ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВред рдкрд┐рди рдЦреБрдж рдХреЛ 4.7 kor рд░реЛрдХрдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдкреВрд░реНрддрд┐ рд╡реЛрд▓реНрдЯреЗрдЬ рдореЗрдВ рдЦреАрдВрдЪ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕реНрдХреАрдо рд╕реНрдХреЗрд▓реЗрдмрд▓ рд╣реИред рддрд╕реНрд╡реАрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИред



рд╕рднреА рдПрд▓рдИрдбреА рдкреНрд░рддрд┐рд░реЛрдзреЛрдВ рдХреЛ рд╕рдорд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкреЛрд░реНрдЯрд╛ рдмрдВрджрд░рдЧрд╛рд╣ рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реИрдВред рдПрдХ рдЧреНрд░реЗ рдмрд╣реБрднреБрдЬ рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдпрд╣ рдПрд▓рдИрдбреА рднреМрддрд┐рдХ рд░реВрдк рд╕реЗ DS18B20 рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реИред рд╣рд╕реНрддрдХреНрд╖реЗрдк рдХреЗ рдХрд╛рд░рдг рдЖрдХрд╕реНрдорд┐рдХ рд░реАрд╕реЗрдЯ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд░реАрд╕реЗрдЯ рдкрд┐рди 10 k╬й рд░реЛрдХрдиреЗрд╡рд╛рд▓рд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдЪреНрдЪ рдЦреАрдВрдЪрд╛ рдЬрд╛рддрд╛ рд╣реИред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЛ 16 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдкрд░ рджреЗрдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рд╕рдХреЗ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдХрд░реАрдм рд░рдЦреЗрдВред рдЖрдВрддрд░рд┐рдХ рд░реВрдк рд╕реЗ рд▓реЛрдб рдЯреИрдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдлреНрдпреВрдЬ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ред рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЖрдЙрдЯрдкреБрдЯ ICP рдХрдиреЗрдХреНрдЯрд░реНрд╕ (рдлрд░реНрдорд╡реЗрдпрд░ рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП) рдФрд░ UART "рд╕рдВрдЪрд╛рд░" рдХреЗ рд▓рд┐рдПред рдХреНрд╖рдорддрд╛ C1 (рдЗрд▓реЗрдХреНрдЯреНрд░реЛрд▓рд╛рдЗрдЯ 10 ╬╝F) рдФрд░ C2 (рд╕рд┐рд░реЗрдорд┐рдХ 100 рдПрдирдПрдл)ред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреЗ рдкрд╛рд╡рд░ рдкрд┐рдВрд╕ рдХреЗ рдЬрд┐рддрдирд╛ рд╕рдВрднрд╡ рд╣реЛ рдЙрддрдирд╛ рдХрд░реАрдм рд░рдЦреЗрдВред рд▓реЛрдб рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рджреМрд░рд╛рди рдЖрдХрд╕реНрдорд┐рдХ рдбрд┐рд╕реНрдЪрд╛рд░реНрдЬ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╕рд░реНрдХрд┐рдЯрд░реА рд╡рд┐рдзрд╛рдирд╕рднрд╛

рдПрдХ рдЧреНрд░реЗ рдмрд╣реБрднреБрдЬ рдХреНрдпрд╛ рд╣реИ?

рдлрд░реНрдорд╡реЗрдпрд░ + рдХрд╛рдо рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо


рдлрд░реНрдорд╡реЗрдпрд░ рдХреЛ C рдХреЛ Atmel Studio 7 IDE рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рдерд╛ ред рдЧреАрдерд╣рдм рдкрд░ рд╕реВрддреНрд░ рдкреЛрд╕реНрдЯ рдХрд┐рдП рдЧрдП рд╣реИрдВ ред рдХреЛрдб рдЕрдзрд┐рдХрддрдо рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИред
рдкрд░рд┐рдпреЛрдЬрдирд╛ рдЕрдореВрд░реНрддрди рдХреЗ рдХрдИ рд╕реНрддрд░реЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рд╣реИ:
  • рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ - рдирд┐рдореНрдирддрдо рд╕реНрддрд░, рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХрддрдо рдмрд╛рдзреНрдпрдХрд╛рд░реАред рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ рдХреА рдкрд░рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред
  • рдорд┐рдбрд▓рд╡реЗрдпрд░ рд╣рд╛рд░реНрдбрд╡реЗрдпрд░ рдФрд░ рдбреНрд░рд╛рдЗрд╡рд░реНрд╕ рдХреЗ рдмреАрдЪ рдХрд╛ рдордзреНрдп рдореИрджрд╛рди рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, 1-рд╡рд╛рдпрд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдиред
  • рдбреНрд░рд╛рдЗрд╡рд░ - рдбреНрд░рд╛рдЗрд╡рд░ рдХрд╛ рд╕реНрддрд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, DS18B20 рдЪрд┐рдк рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ред
  • рдЖрд╡реЗрджрди - рдЕрдореВрд░реНрддрддрд╛ рдХрд╛ рдЙрдЪреНрдЪрддрдо рд╕реНрддрд░ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, UART рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрд╛рдкрдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдФрд░ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдирд╛ред

рдореБрдЦреНрдп рдХрд╛рд░реНрдп рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рддреНрд╡рд░рд┐рдд рдирдЬрд╝рд░ред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ ROM рдкрддреЛрдВ рдХреА рддрд╛рд▓рд┐рдХрд╛ рдЖрддреА рд╣реИред рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ рдХрд┐ рд╢реВрдиреНрдп рдПрд▓рдИрдбреА (PORTA рдкреЛрд░реНрдЯ рдХреЗ PA0 рдкрд░ рд▓рдЯрдХрд╛ рд╣реБрдЖ) рд╕реЗ рдЬреБрдбрд╝реЗ рд╕реЗрдВрд╕рд░ рдХрд╛ рдкрддрд╛ рд╢реВрдиреНрдп рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣реЛ, рдЖрджрд┐ред ROM рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ sendROMToUART рдлрд╝рдВрдХреНрд╢рди рд╣реИ ред рдЖрдкрдХреЛ рдмрд╕ рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдВрд╕рд░ рдЕрдХреЗрд▓реЗ рдмрд╕ рдореЗрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрдиреНрдпрдерд╛ рдкрддреЗ рдХреА рдЯрдХреНрдХрд░ рд╣реЛрдЧреАред
рдореБрдЦреНрдп
int main(void)
{	
	const uint8_t ROM[][sizeof(ROM_T)] = /* ROM array */
	{
		{0x26, 0x00, 0x00, 0x04, 0x4B, 0x15, 0x89, 0x28}, // 0
		{0x71, 0x00, 0x00, 0x04, 0x4A, 0xC0, 0x65, 0x28}, // 1
		{0xA5, 0x00, 0x00, 0x04, 0x4A, 0xCB, 0xCE, 0x28}, // 2
		{0x41, 0x00, 0x00, 0x04, 0x4A, 0xAC, 0x65, 0x28}, // 3
		{0x22, 0x00, 0x00, 0x04, 0x4B, 0x06, 0x0D, 0x28}, // 4
		{0x86, 0x00, 0x00, 0x04, 0x4A, 0xF6, 0x46, 0x28}  // 5
	};
	
	uint8_t nDevices = sizeof(ROM) / sizeof(ROM_T); /* Number of DS18B20 devices */
	
	initUART(MYUBRR); /* Initialization of UART with appropriate baudrate */
	initTimer0(); /* Initialization of Timer/counter0 */
	initLED(nDevices); /* Initialization of LEDs */
	
	{ /* DS18B20s initialization */
		uint8_t nDevices = sizeof(ROM) / sizeof(ROM_T); /* Number of DS18B20 devices */
		ROM_T *pROM = (ROM_T *)&ROM; /* Pointer to ROM array */
		
		initDQ(); /* Initialization of DQ pin */
		
		while (nDevices--) /* For all DS18B20 */
			initDS18B20(pROM++, RESOLUTION_11BIT); /* Initialization of DS18B20 with appropriate resolution */
	}
	
	sei(); /* Global enable interrupts */
	
	while (1) /* Infinite loop */
	{
		sendTemperatureToUART((ROM_T *)&ROM, nDevices); /* Execute function routine */
	}
}

рдЕрдЧрд▓рд╛ рдкрд░рд┐рдзреАрдпреЛрдВ рдХрд╛ рдЖрд░рдВрднреАрдХрд░рдг рд╣реИ рдФрд░ рдбреАрдПрд╕-рдУрдХреЗ рд╕реНрд╡рдпрдВ рдЙрдЪрд┐рдд рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рдеред рддрд╛рдкрдорд╛рди рдХрд╛ рдирдореВрдирд╛ рд▓реЗрдиреЗ рдХреА рдЕрд╡рдзрд┐ рдЗрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред 11 рдмрд┐рдЯреНрд╕ рдХреЗ рд▓рд┐рдП, рдпрд╣ 375 рдПрдордПрд╕ рд╣реИред рдПрдХ рдЕрдирдВрдд рд▓реВрдк рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рддреНрдпреЗрдХ рд╕реЗрдВрд╕рд░ рд╕реЗ рддрд╛рдкрдорд╛рди рдкрдврд╝рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ UART рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрддрд╛ рд╣реИред

рдПрд▓ рдИ рдбреА рдХреЗ рд╕рд╛рде рдХрд╛рдо рдЗрдВрдЯрд░рдкреНрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред UART рдХреЗ рдЕрдиреБрд╕рд╛рд░, LED ID рдПрдХ рд╕рдо рдФрд░ рд╡рд┐рд╖рдо рдлреНрд░реЗрдо рдореЗрдВ 2 рдмрд╛рд░ рдЖрддреА рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдПрд▓рдИрдбреА рд░реЛрд╢рдиреАред рдЯрд╛рдЗрдорд░ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдордп рдХреЗ рдмрд╛рдж рдмреБрдЭ рдЬрд╛рддрд╛ рд╣реИ (рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, 15 рдПрдордПрд╕)ред рджреВрд╕рд░реА рдмрд╛рд░ рдмрд╕ рдирдЬрд░рдЕрдВрджрд╛рдЬ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЯрд╛рдЗрдорд░ рдХреЛ CTC рдореЛрдб рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рд╣рд░ 1 ms рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╡реНрдпрд╡рдзрд╛рди рдЙрддреНрдкрдиреНрди рд╣реЛред
рдХреЛрдб
volatile uint8_t ledID = 0; /* Current ledID value */
volatile uint8_t ledID_prev = 255;  /* Previous ledID value */
volatile uint8_t duration = FLASH_DURATION; /* Flash duration value */

ISR(USART_RXC_vect) /* UART interrupt handler */
{
	ledID = UDR; /* Assign ledID to receive via UART value */
	if (ledID != ledID_prev) /* If current ledID equal to previous value */
	{
		turnOnLED(ledID); /* Turn on the ledID LED */
		timer0Start(); /* Start Timer0 */
		ledID_prev = ledID; /* Previous ledID assign to current */
		duration = FLASH_DURATION; /* Update LED flash duration */
	}
}

ISR(TIMER0_COMP_vect) /* Timer0 compare interrupt handler */
{
	if (--duration == 0) /* Decrement Duration value each 1ms and if it reach to 0 */
	{
		timer0Stop(); /* Stop Timer0 */
		turnOffAllLED(); /* Turn off all LEDs */
		timer0Clear(); /* Clear Timer0 counter register */
	}
}

рдХреЛрдб рдХреЗ рд╕рдордп рд╕рдВрд╡реЗрджрдирд╢реАрд▓ рдЕрдиреБрднрд╛рдЧ, рдЬреЛ 1-рд╡рд╛рдпрд░ рд╕рд┐рдЧреНрдирд▓ рд╣реИрдВ, рдПрдХ ATOMIC_BLOCK рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд▓рд┐рдкрдЯреЗ рд╣реБрдП рд╣реИрдВ ред рд╕рднреА рдмреБрдирд┐рдпрд╛рджреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ Global.h рдореЗрдВ рдмрдирд╛рдИ рдЧрдИ рд╣реИрдВ ред UART 250,000 рдХреА рдЧрддрд┐ рд╕реЗ рд╕рдВрдЪрд╛рд▓рд┐рдд рд╣реЛрддрд╛ рд╣реИред 16 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рдХреЗ рд▓рд┐рдП рдлрд╛рд╕реНрдЯ рдФрд░ рдПрд░рд░-рдлреНрд░реАред DS18B20 рдбреНрд░рд╛рдЗрд╡рд░ рдХреА рдиреНрдпреВрдирддрдо рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЗрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИред рдмрд╛рдХреА - рдХреЛрдб рджреЗрдЦреЗрдВред рд╕рд╡рд╛рд▓ рд╣реЛрдВрдЧреЗ - рдкреВрдЫреЛ, рд╢рд░реНрдорд╛рдУ рдорддред рдореИрдВ рдЖрдкрдХреЛ рдлрд╝реНрдпреВрдЬрд╝ рдХреА рд╕реЗрдЯрд┐рдВрдЧ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдпрд╛рдж рджрд┐рд▓рд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рдЙрдиреНрд╣реЗрдВ рдмрд╛рд╣рд░реА рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рд╕реЗ рдШрдбрд╝реА рдХреА рдХреНрд╖рдорддрд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ рдпрд╣ рдЖрдВрддрд░рд┐рдХ рдЬрдирд░реЗрдЯрд░ рд╕реЗ рд╣реЛрдЧрд╛ (рдФрд░ рдпрд╣ рдЕрдзрд┐рдХрддрдо 8 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рдкрд░ рд╣реИ рдФрд░ рдмрд╣реБрдд рд╕реНрдерд┐рд░ рдирд╣реАрдВ рд╣реИ)ред рдареАрдХ рд╣реИ, CKOPT рдмрд┐рдЯ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░реЗрдВ, рдЕрдиреНрдпрдерд╛ 8 рдореЗрдЧрд╛рд╣рд░реНрдЯреНрдЬ рд╕реЗ рдКрдкрд░ рдХрд╛ рдХреНрд╡рд╛рд░реНрдЯреНрдЬ рд╢реБрд░реВ рдирд╣реАрдВ рд╣реЛрдЧрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рд╣рд╛рдИ рдлреНрдпреВрдЬ = 0xD9 , рд▓реЛ рдлреНрдпреВрдЬ = 0xFF рд╣реИ ред

Simulink рдореЙрдбрд▓ + рдСрдкрд░реЗрд╢рди рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо


Matlab R2015b рд╕рдВрд╕реНрдХрд░рдг ред рдореЗрдВ Simulink , рдЕрдВрддрд░реНрдирд┐рд░реНрдорд┐рдд рд╕рдВрдЧреНрд░рд╣рд╛рд▓рдп рдореЗрдВ рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдкреНрд░рдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрдВрдкреНрдпреВрдЯрд░ рд╡рд┐рдЬрди рд╕рд┐рд╕реНрдЯрдо рдЙрдкрдХрд░рдг рдмреЙрдХреНрд╕ рдФрд░ рдЫрд╡рд┐ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдЯреВрд▓рдмреЙрдХреНрд╕ ред рдкреВрд░реЗ рдореЙрдбрд▓ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ GitHub рдореЗрдВ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдиреАрдЪреЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╕реНрддреГрдд рд╡рд┐рд╡рд░рдг рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рднреА рддрд╕реНрд╡реАрд░реЗрдВ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╣реИрдВред

WebCamTemp рдореЙрдбреНрдпреВрд▓


рдкреАрд▓рд╛ рдмреНрд▓реЙрдХ COM рдкреЛрд░реНрдЯ рдмреНрд▓реЙрдХ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЕрд▓рдЧ рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░, рд░рд┐рд╕реАрд╡рд░ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕рдХред рдкреЛрд░реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЛ рдмрд┐рд▓реНрдХреБрд▓ рдорд╛рдЗрдХреНрд░реЛрдХрдВрдЯреНрд░реЛрд▓рд░ (рдЧрддрд┐, рд╕рдорддрд╛, рдмрд┐рдЯреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛, рдЖрджрд┐) рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд░рд┐рд╕реАрд╡рд░ рддрд╛рдкрдорд╛рди рдХреЛ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ int16 рдХреЗ рдЖрдХрд╛рд░ рдХреЗ [n 1] рдореЗрдВ рд╕рдореВрд╣рд┐рдд рдХрд░рдХреЗ рддрд╛рдкрдорд╛рди рд▓реЗрддрд╛ рд╣реИ , рдЬрд╣рд╛рдВ n DS18B20 рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИ (рдореЗрд░реЗ рдкрд╛рд╕ 6 рд╣реИ)ред рдЗрд╕ рд╕рд░рдгреА рдХреЗ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЛ 16 рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред рдпрд╣ рдкреГрд╖реНрда рдкрд░ рдбреЗрдЯрд╛рд╢реАрдЯ 6 рд╕реЗ рд╣реИред рдЯреНрд░рд╛рдВрд╕рдореАрдЯрд░ рд╡рд░реНрддрдорд╛рди рдХрд╛рдЙрдВрдЯрд░ рдорд╛рди рдХреЛ рдХрд╛рдЙрдВрдЯрд░ рдкрд░ рднреЗрдЬрддрд╛ рд╣реИ ред рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рд╡рд┐рд╢реЗрд╖ рдПрд▓рдИрдбреА рд░реЛрд╢рдиреАред 0 рд╕реЗ n рддрдХ рдЯрд┐рдХ рдХрд░рдирд╛ред рдЕрд╡рдзрд┐ 2 рдирдореВрдиреЗред рд╡реАрдбрд┐рдпреЛ рд╕реНрдЯреНрд░реАрдо рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд / рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдмреНрд▓реЙрдХ рдХреЛ рдиреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рд╡рд░реНрдЧреАрдХреГрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЧреНрд░реАрди - рд╡реАрдбрд┐рдпреЛ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд▓реЙрдХред рджрд░рдЕрд╕рд▓ рд╡реЗрдмрдХреЗрдо рд╣реАред рдирд┐рд░реНрдорд╛рддрд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдмрд╣реБрдд рд╕рд╛рд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕, рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реИрдВред рдЪрд┐рддреНрд░ рдЧреНрд░реЗ рдЯрди рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рддреЛ рджрд┐рд▓рдЪрд╕реНрдк рд╣реИред рдбрд┐рдл рдмреНрд▓реЙрдХ рдкрд┐рдЫрд▓реЗ рдФрд░ рд╡рд░реНрддрдорд╛рди рдлреНрд░реЗрдо рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдмрдирд╛рддрд╛ рд╣реИред Downsample рд╡рд┐рд╖рдо рдмреНрд▓реЙрдХ рдХреЗрд╡рд▓ рдЕрдВрддрд░ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рддрд╛ рд╣реИ - рдЬрд▓рд╛рдпрд╛ рдирд╣реАрдВ рдЧрдпрд╛ рдПрд▓рдИрдбреА, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд╡рд┐рдкрд░реАрдд рдирд╣реАрдВред Downsample рднреА рдХреЗрд╡рд▓ рдЙрд╕реА рдлрд╝реНрд░реЗрдо рдХреЛ рдмреНрд▓реЙрдХ рдХрд░рддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рдПрд▓рдИрдбреА рдмрдВрдж рд╣реИред

Img рдЕрдВрддрд░
, тАФ . ( ). , . 0.25.



Img рдЧреНрд░реЗ
, тАФ , . , . .



рдлрд╝реНрд░реЗрдо рджрд░ рдкреНрд░рджрд░реНрд╢рди рд╡рд░реНрддрдорд╛рди FPS рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рд╕рднреА рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдмреНрд▓реЙрдХ рдПрд▓ рдИ рдбреА рдореЗрдВ рд╣реИ ред рд╣рдо рдЗрд╕ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред

рдПрд▓рдИрдбреА рдореЙрдбреНрдпреВрд▓


рд╡рд╛рдпрд▓реЗрдЯ рд╕рдореВрд╣ 2 рдбреА рдЧрд╛рдКрд╕реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмреНрд▓реЙрдХ ред рд╣рдореЗрдВ рджреЛ рдЪрд╛рд╣рд┐рдП: рд╣рд╕реНрддрдХреНрд╖реЗрдк рдФрд░ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ ред рд╡реЗ рд╕рд┐рдЧреНрдорд╛ рдореЗрдВ рднрд┐рдиреНрди рд╣реИрдВред рдЙрдирдХрд╛ рдХреЗрдВрджреНрд░ рдЕрдзрд┐рдХрддрдо рдмрд┐рдВрджреБ рдкрд░ рд╣реИ (рдЬрд╣рд╛рдВ рдПрд▓рдИрдбреА рдЪрд╛рд▓реВ рдерд╛)ред рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдЕрдзрд┐рдХрддрдо рдмреНрд▓реЙрдХ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВ ред рдЗрд╕ рддрд░рд╣ рдХреЗ рдЧрд╛рдКрд╕реА (рдФрд░ рдШрд╛рддрд╛рдВрдХ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рдордп рд▓реЗрдиреЗ рд╡рд╛рд▓реА рдЧрдгрд┐рддреАрдп рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╣реИ) рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдЙрдиреНрд╣реЗрдВ рдХрд╛рдЯрдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдо-рдлрд╛рдЗрд▓ рдореЗрдВ, рдмреАрдЪ рдореЗрдВ рдХреЗрдВрджреНрд░ рдХреЗ рд╕рд╛рде рдЖрдпрд╛рдореЛрдВ рдХреЗ рд╕рд╛рде рджреЛ рдЗрдВрдЯ рдФрд░ рдУрдк рдЙрддреНрдкрдиреНрди рд╣реЛрддреЗ рд╣реИрдВ , рдЬрд┐рдирдореЗрдВ рд╕реЗ, рдЖрдЧреЗ, рдЖрд╡рд╢реНрдпрдХ рд░реВрдк рд╕реЗ рдлрд╕рд▓ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдФрд░ рдлрд╕рд▓ рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдмреНрд▓реЙрдХреЛрдВ рдХреЗ рд╕рд╛рде рдлрд╕рд▓ рд╣реЛрддреА рд╣реИ ред

рдХрд╛рдо рдХрд╛ рдЙрджрд╛рд╣рд░рдг
тАФ . тАФ . тАФ . тАФ . 0.25.



рд╕реНрдореГрддрд┐ рдХреЗ рдмреНрд▓реЙрдХ рд╣рд░реЗ рд░рдВрдЧ рдореЗрдВ рдкрд░рд┐рдЪрд╛рд▓рд┐рдд рд╣реИрдВред рдЙрдирдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдкреНрд░рддреНрдпреЗрдХ рдПрд▓рдИрдбреА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдФрд░ рдЧреЙрд╕рд┐рдпрдВрд╕ рд╕реНрдЯреЛрд░ рдХрд░рдирд╛ рд╣реИред рд╣рдо рдиреАрдЪреЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред рд░рдВрдЧ рдмреНрд▓реЙрдХ рдПрдХ рддрд╛рдкрдорд╛рди рд╡рд┐рддрд░рдг рдФрд░ рдПрдХ рд░рдВрдЧ рдирдХреНрд╢рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рдирд╛ рд╣реИред рд╕рд╛рде рд╣реА рдиреАрдЪреЗ рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред рд╕рд┐рдЧреНрдирд▓ рд░рдЪрдирд╛ рдЗрдХрд╛рдИ рд╕рдВрдпреЛрдЬрди рдорд┐рд╢реНрд░рдгреЛрдВ рджреЛ рдЫрд╡рд┐рдпреЛрдВ Image1 рдФрд░ Image2 рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЗ рд╕реЗ:


рд╕рдореНрдорд┐рд▓рд┐рдд рдкрд╛рда рдмреНрд▓реЙрдХ рдЫрд╡рд┐ рдкрд░ рд╕реНрд╡рд░реВрдкрд┐рдд рдкрд╛рда (рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рддрд╛рдкрдорд╛рди) рдХреЛ рд▓рдЧрд╛рддрд╛ рд╣реИред рдпрд╣ n рдЪрд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреНрд░рд╛рд░реВрдк [XY] рдореЗрдВ рд╕рдордиреНрд╡рдп рдХрд░рддрд╛ рд╣реИ ред рдЖрдк рдлрд╝реЙрдиреНрдЯ рдФрд░ рдЙрд╕рдХреЗ рдЖрдХрд╛рд░ рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд▓рд╛рд▓ рдЖрдпрдд рдХреЗ рдЕрдВрджрд░ рдХреЗ рдмреНрд▓реЙрдХ рдЪрд▓рддреА рдФрд╕рдд рдПрд▓реНрдЧреЛрд░рд┐рдереНрдо рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ ред рд╕рдВрдХреНрд░рдордг рдХрдо рдзреБрдВрдзрд▓реА рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдирд╕реЛрдВ рдХреЛ рд╕рдВрд░рдХреНрд╖рд┐рдд рдХрд░рддреА рд╣реИ рдФрд░ рдЖрдВрдЦ рдХреЛ рдкреНрд░рд╕рдиреНрди рдХрд░рддреА рд╣реИред

рдЙрджрд╛рд╣рд░рдг
, тАФ 8- . ( ) .



рдореЗрдореЛрд░реА рдореЙрдбреНрдпреВрд▓


рдореЗрдореЛрд░реА рд╣рд╕реНрддрдХреНрд╖реЗрдк рдФрд░ рдореЗрдореЛрд░реА рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рд╕реНрдЯреЛрд░ 2D рдЧрд╛рдКрд╕реА рд╕реЗрдЯ, рдореЗрдореЛрд░реА рдкреАрдЯреАрдПрд╕ - рдкреНрд░рддреНрдпреЗрдХ рдПрд▓рдИрдбреА рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХред

рдореЗрдореЛрд░реА рд╣рд╕реНрддрдХреНрд╖реЗрдк рдФрд░ рдореЗрдореЛрд░реА рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛
. Address . . . Delay LEDs ( , ). . Enable . , ( Maximum Threshold LEDs). тАФ . . [H W n], HxW тАФ -, n тАФ /.

рдореЗрдореЛрд░реА рдкреАрдЯреА
. . Permute Matrix , [Y X], [X Y].

рд░рдВрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП


рд╣рд░рд╛ - рдЕрдкрд╛рд░рджрд░реНрд╢рд┐рддрд╛ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг ред рддреАрд╕рд░реЗ рдЖрдпрд╛рдо рдореЗрдВ рдЗрдирдкреБрдЯ рд╕рд░рдгреА рдХреЛ рд╕рд╛рд░рд╛рдВрд╢рд┐рдд рдХрд░реЗрдВред рд╣рдо рдЗрд╕реЗ рдЕрдзрд┐рдХрддрдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рдХрд░рддреЗ рд╣реИрдВред рд▓рд╛рдн рдорд╛рди (0 рд╕реЗ 1) (1) рд╕реЗ рдЧреБрдгрд╛ рдХрд░реЗрдВ ред рдХреБрд▓ рдореЗрдВ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╕реБрдкрд░рд┐рдВрдкреЛрдЬреНрдб рдЧреЙрд╕рд┐рдпрдВрд╕ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рд╣реИ рдФрд░ рдПрдХ рдЕрдзрд┐рдХрддрдо рд▓рд╛рдн рд╣реИ ред рдЫрд╡рд┐рдпреЛрдВ рдХреЗ рдорд┐рд╢реНрд░рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░рдХ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ред рд▓рд╛рд▓ - рддрд╛рдкрдорд╛рди рдХрд╛ рдПрдХ рд░рдВрдЧ рдирдХреНрд╢рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред рдпрд╣рд╛рдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рдЧрдгрд┐рдд, рд╕рднреА рдПрдХ рд╣реА рдЧреЙрд╕рд┐рдпрдиред рдпрд╣ рд╕реВрддреНрд░ (2) рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИ ред рдореЛрдЯреЗ рддреМрд░ рдкрд░, рдПрдХ рдордирдорд╛рдирд╛ рдмрд┐рдВрджреБ рдкрд░ рддрд╛рдкрдорд╛рди рд╕рднреА рд╕реЗрдВрд╕рд░ рдХрд╛ рднрд╛рд░рд┐рдд рдФрд╕рдд рд╣реИред рд▓реЗрдХрд┐рди рдкреНрд░рддрд┐рд╢рдд рдЕрдиреБрдкрд╛рдд рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рд╕рдВрд╡реЗрджрдХ рдХрд╛ рдкреНрд░рднрд╛рд╡ рдЙрд╕рдореЗрдВ рдЧреМрд╕рд┐рдпрди рдХреЗ рдореВрд▓реНрдп рдХреЗ рд╕рдорд╛рдиреБрдкрд╛рддреА рд╣реЛрддрд╛ рд╣реИред рд╕рднреА рдХрд╛ рдпреЛрдЧ 100% рдХреЗ рд░реВрдк рдореЗрдВ рд▓рд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред


рдпрд╣ рдЗрд╕ рдмрд╛рдд рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрдирд╛ рд╣реБрдЖ рд╣реИ рдХрд┐ рддрд╛рдкрдорд╛рди рд╡рд┐рддрд░рдг рдПрдХ рд░рдВрдЧ рдорд╛рдирдЪрд┐рддреНрд░ рдореЗрдВ рдХреИрд╕реЗ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред рдиреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рдЬреЛ рдкрд░рд┐рдХреНрд░рдорд╛ рдХреА рдЬрд╛рддреА рд╣реИ рд╡рд╣ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд╛рдкрдорд╛рди рдХреЛ 0 рдФрд░ 1 рдХреЗ рдмреАрдЪ рдХреЗ рдорд╛рди рдореЗрдВ рдмрджрд▓ рджреЗрддреА рд╣реИред рд░реЗрдб рдЬреЛрди рдореЗрдВ, рдкреНрд░реАрдкреЗрдирдк рдмреНрд▓реЙрдХ рдЙрд╕ рд╕реВрдЪрдХрд╛рдВрдХ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рд▓, рд╣рд░реЗ рдФрд░ рдиреАрд▓реЗ рд░рдВрдЧ рдХрд╛ рдореВрд▓реНрдп рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИред рд░рдВрдЧ рд╕рд░рдгреА рдореЗрдВ 64 рдорд╛рди рд╣реИрдВред рдордзреНрдпрд╡рд░реНрддреА рдХреА рдЧрдгрдирд╛ рдкреНрд░рдХреНрд╖реЗрдк рджреНрд╡рд╛рд░рд╛ рдХреА рдЬрд╛рддреА рд╣реИред рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдореЗрдВ рд╕реЗ, рджреЛ рдореЛрдб рд╣реИрдВ: рд╕рд╛рдкреЗрдХреНрд╖ рдФрд░ рдирд┐рд░рдкреЗрдХреНрд╖ред рд╕рд╛рдкреЗрдХреНрд╖ рд╕рдмрд╕реЗ рдардВрдбреЗ рдФрд░ рд╕рдмрд╕реЗ рдЧрд░реНрдо рд╕реНрдерд╛рди рдореЗрдВ, рдиреНрдпреВрдирддрдо рдФрд░ рдЕрдзрд┐рдХрддрдо рдЗрдирдкреБрдЯ рд╕рд░рдгреА рд╕реЗ рдореЗрд▓ рдЦрд╛рддреА рд╣реИред рдирд┐рд░рдкреЗрдХреНрд╖ рдореЗрдВ, рдХреБрдЫ рдирд┐рд░рдВрддрд░ рдореВрд▓реНрдп рд╣реИрдВред рдкрд╣рд▓реЗ рдореЗрдВ, рдпрд╣ рддрд╛рдкрдорд╛рди рд╡рд┐рддрд░рдг рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИред рджреВрд╕рд░реЗ рдореЗрдВ, рдЗрд╕рдХрд╛ рдкреВрд░реНрдг рдкрд░рд┐рд╡рд░реНрддрдиред

рдПрдо рдлрд╝рд╛рдЗрд▓


рдпрд╣ рдХрд╛рд░реНрдпрд╕реНрдерд▓ рдореЗрдВ рдЪрд░ рдХрд╛ рдкрд░рд┐рдЪрдп, рд╕рд┐рдореБрд▓реЗрд╢рди рд╕реЗ рдкрд╣рд▓реЗ, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдХреЛрдб
H = 480; % Height of image
W = 640; % Width of image
minT = 20; % Min temperature
maxT = 25; % Max temperature
sigmaInt = 40; % Sigma interference
sigmaOp = 80; % Sigma opacity
gain = 1.0; % Gain value
T = 0.3; % Threshold value
nAvr = 8; % number of means
% ------------------------------------------------------
[M,N] = meshgrid(-W:W, -H:H); % Meshgrid function

R = sqrt(M.^2 + N.^2); % Distance from the center

Int = normpdf(R, 0, sigmaInt); % 2D gaussian for interference
Op = normpdf(R, 0, sigmaOp); % 2D gaussian for opacity

Int = Int/max(max(Int)); % Normalization of interference gaussian
Op = Op/max(max(Op)); % Normalization of opacity gaussian

clear M N R sigmaInt sigmaOp % Delete unused variables from memory

load('MyColormaps','mycmap'); % Load colormap


рдЗрд╕рдореЗрдВ рдореБрдЦреНрдп рдирд┐рдпрдВрддреНрд░рдг рдЪрд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:
  • H тАФ .
  • W тАФ .
  • minT тАФ .
  • maxT тАФ .
  • sigmaInt тАФ Interference.
  • sigmaOp тАФ Opacity.
  • gain тАФ Factor.
  • T тАФ .
  • nAvr тАФ .

рдПрдЪ рдФрд░ рдбрдмреНрд▓реНрдпреВ рдХреЛ рд╡реЗрдмрдХреИрдорд░рд╛ рдмреНрд▓реЙрдХ рдореЗрдВ рд╡рд░реНрддрдорд╛рди рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЯрдХрд╕рд╛рд▓ рдФрд░ рдЕрдзрд┐рдХрддрдо рддрд╛рдкрдорд╛рди рдирд┐рд░рдкреЗрдХреНрд╖ рддрд╛рдкрдорд╛рди рдореЛрдб рдореЗрдВ рд░рдВрдЧ рдорд╛рдирдЪрд┐рддреНрд░ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддреЗ рд╣реИрдВред T 0 рд╕реЗ 1. рд╕реЗрдЯ рд╣реИред рдХрднреА-рдХрднреА COM рдкреЛрд░реНрдЯ рдФрд░ рд╡реЗрдмрдХреИрдо рд╕рд┐рдВрдХ рд╕реЗ рдмрд╛рд╣рд░ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред рд╡рд┐рднреЗрджрдХ рдЫрд╡рд┐ рдХрд╛ рдЪрд░рдг 180 ┬░ рд╕реЗ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдЬрд╣рд╛рдВ рдЕрдзрд┐рдХрддрдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП - рд╡рд╣рд╛рдВ рдиреНрдпреВрдирддрдо рд╣реИред рдФрд░ рд╕рд┐рд╕реНрдЯрдо рдПрдХ рдордирдорд╛рдирд╛ рд╕рдордиреНрд╡рдп рдЪреБрди рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рдХреЗ рдЕрдиреБрд░реВрдк рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП, рдПрдХ рджрд╣рд▓реАрдЬ рдкреНрд░рдгрд╛рд▓реА рд╣реИред nArr рдореВрд╡рд┐рдВрдЧ рдПрд╡рд░реЗрдЬ рдореЗрдВ рдФрд╕рдд рдХреА рд╕рдВрдЦреНрдпрд╛ рд╣реИред рдпрд╣ рдЬрд┐рддрдирд╛ рдмрдбрд╝рд╛ рд╣реЛрддрд╛ рд╣реИ, рд╕рдВрдХреНрд░рдордг рдХреЛ рд╕реБрдЪрд╛рд░реВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХрддрд╛ рдЦреЛ рдЬрд╛рддреА рд╣реИ (рдПрдХ рд╕рдордп рдмрджрд▓рд╛рд╡ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ)ред рд╢реЗрд╖ рдЪрд░ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХреЛ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рдХреЛ рдмрд┐рдирд╛ рдЙрджрд╛рд╣рд░рдг рдХреЗ рдирд╣реАрдВ рд╕рдордЭрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд╕рд┐рдЧреНрдорд╛рдЗрдВрдЯ рдкреНрд░рднрд╛рд╡
. , , . тАФ .



рд╕рд┐рдЧреНрдорд╛рдУрдк рдкреНрд░рднрд╛рд╡
.



рдкреНрд░рднрд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
- . ┬л┬╗ ┬л ┬╗ .



рдкреНрд░рдпреЛрдЧреЛрдВ


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреБрдЫ рдкреНрд░рдпреЛрдЧ рд╣реИрдВред

рдЦреБрд▓реА рдЦрд┐рдбрд╝рдХреА


рдЦрд┐рдбрд╝рдХреА рд╕реЗ рд╕реЗрдВрд╕рд░ рдмрд┐рд╕реНрддрд░ рдкрд░ рдмрд┐рдЦрд░реЗ рд╣реБрдП рд╣реИрдВред рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рдЦрд┐рдбрд╝рдХреА рдЦреБрд▓рддреА рд╣реИ рдФрд░ рдмрдВрдж рд╣реЛ рдЬрд╛рддреА рд╣реИред рд░рд┐рд╢реНрддреЗрджрд╛рд░ (рдмрд╛рдПрдВ) рдФрд░ рдкреВрд░реНрдг (рджрд╛рдПрдВ) рдореЛрдб рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХрд╛ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдкрд╣рд▓реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛, рд╡рд┐рддрд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рдФрд░ рджреВрд╕рд░рд╛, рдардВрдб рдХреИрд╕реЗ рд╡рд┐рддрд░рд┐рдд рдХреА рдЬрд╛рддреА рд╣реИ рдпрд╛ рдЧрд░реНрдореА рдмрд╣рд╛рд▓ рдХреА рдЬрд╛рддреА рд╣реИред



рдЦрд┐рдбрд╝рдХреА


рд╕реЗрдВрд╕рд░ рд╡рд┐рдВрдбреЛ рдХреЗ рд╕рд╛рде рд╕реНрдерд┐рдд рд╣реИрдВред рд╡рд┐рдВрдбреЛ рдЦреБрд▓рддреА рд╣реИ - рдкреНрд░реЛрдлрд╝рд╛рдЗрд▓ рдмрджрд▓рддреА рд╣реИред рд╕рдмрд╕реЗ рдардВрдбреЗ рдФрд░ рдЧрд░реНрдо рдХреНрд╖реЗрддреНрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВред



рдХреНрдпрд╛ рдпрд╣ рд╢реАрд░реНрд╖ рдкрд░ рдЧрд░реНрдо рд╣реИ?


рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╢реАрд░реНрд╖ рдЧрд░реНрдо рд╣реИред рдпрд╣ рдкреНрд░рдпреЛрдЧ рдЗрд╕ рдмрд╛рдд рдХреА рдкреВрд░реНрдг рдкреБрд╖реНрдЯрд┐ рд╣реИред 10 рд╡реЗрдВ рд╕реЗрдХрдВрдб рдореЗрдВ, рдЦрд┐рдбрд╝рдХреА рдЦреБрд▓рддреА рд╣реИ, 30 рд╡реЗрдВ рдкрд░ - рдпрд╣ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред



рдирд┐рд╖реНрдХрд░реНрд╖


рдРрд╕реА рдпреЛрдЬрдирд╛ рдПрдХ рдкреВрд░реНрдг рдерд░реНрдорд▓ рдЗрдореЗрдЬрд░ рдХреА рдЬрдЧрд╣ рдирд╣реАрдВ рд▓реЗрдЧреАред рд▓реЗрдХрд┐рди рд╡рд╣ рд╣рд╡рд╛рдИ рдЬрдирддрд╛ рдХреЗ рдкреНрд░рд╕рд╛рд░ рдХреЛ рджреЗрдЦрдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рдФрд░ рдПрдХ рдХреАрдордд рдкрд░ рдпрд╣ рдбрд┐рдЬрд╛рдЗрди рдЕрддреБрд▓рдиреАрдп рд░реВрдк рд╕реЗ рдХрдо рд╣реИред рдЖрдк рдЗрд╕рдореЗрдВ рдПрдХ рдЕрд▓рдЧ рдХрд▓рд░ рдореИрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЖрдк рдЧрд╛рдКрд╕реА рдХреЗ рдмрдЬрд╛рдп рдЕрдиреНрдп рдХрд╛рд░реНрдп рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рддреБрдо рднреА рдирд┐рд░реНрдорд╛рдг рдХреЗ рдХрд╛рдиреВрдиреЛрдВ рдХреЛ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╛ рдЧрддрд┐ рдФрд░ рд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП OpenCV + рдХреНрдпреВрдЯреА рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ред рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЬреЛ рдХрд▓реНрдкрдирд╛ рдХреА рд╣реИ, рд╡рд╣ рдореИрдВрдиреЗ рд╣рд╛рд╕рд┐рд▓ рдХреА рд╣реИред рдЬрд╕реНрдЯ рдЬрд╕реНрдЯ рдлреЙрд░ рдлрди ред

Source: https://habr.com/ru/post/hi390985/


All Articles