STM32F429 Discovery Park Sensörü Uygulaması By Konuk Yazar Posted on 28 Şubat 2015 10 min read 10 0 5,493 Paylaş ! Facebook Paylaş ! Twitter Paylaş ! Google+ Paylaş ! Reddit Paylaş ! Pinterest Paylaş ! Linkedin Paylaş ! Tumblr Merhabalar, Arkadaşlar sizler için STM32F429 Discovery ile yapılmamış,özgün projeler hazırlamaya devam ediyoruz.Bu yazımızda park sensörü ile yapmış olduğumuz projemizi kodlarıyla birlikte paylaşacağız. Park sensörü,sürücüler park ederken, bazen otomobillerinin çevresindeki nesneleri görmekte zorlanır. Böyle durumlarda park sensörleri işlerini kolaylaştırır. Park sensörü, otomobille yakın çevresindeki nesneler arasındaki mesafeyi hesaplayarak sürücüye bildiren bir donanımdır. Park sensörlerinin iki çeşidi vardır. Bunlardan biri ses dalgaları gönderip alarak, diğeriyse elektromanyetik alan oluşturarak çalışır. Ses dalgalarıyla çalışan park sensörleri daha yaygın olarak kullanılır. Bu sensörler ses dalgalarını gönderip alabilen aygıtlardır. Otomobilden ses dalgaları gönderilir. Otomobilin gittiği yönde bir nesne varsa bu ses dalgaları nesneye çarparak geri döner. Otomobildeki alıcılar bu ses dalgalarını algılar. Sensör, nesnenin otomobilden ne kadar uzakta olduğunu ses dalgalarının ne kadar sürede geri döndüğüne dayanarak hesaplar. Nesnenin uzaklığına bağlı olarak uyarı sinyali vermeye başlar. “Dıt dıt” diye bir ses çıkararak sürücüyü uyarmaya yarayan sinyal, otomobil nesneye aklaştıkça “dııııııt”a dönüşür. Bazı sensörler sürücüye otomobilin nesneye uzaklığının ölçüsünü de gösterir. Elektromanyetik alan kullanılan sensörler, bir manyetik alan oluşturur. Otomobil, park edilirken bir nesneye yaklaştığında yani manyetik alana bir nesne girdiğinde sensör bunu algılar. Ses dalgalarıyla çalışan park sensörlerinde olduğu gibi sesli uyarı sistemi devreye girer.Ama biz bu uygulamamızda hoparlör koymadık,bunu görsellikle sağlamaya çalıştık.Ama ilerleyen zamanlarda güncelleme yapabiliriz. Kullanılan Malzemeler -STM32F429 Discovery Board -HC-SR04 Ultrasonik Mesafe Sensörü HC-SR04 Ultrasonik Mesafe sensörü hakkında bilgi almak isterseniz,bu konu ile ilgili makalemize buradan ulaşabilirsiniz.. -Jumper Kablolar Ultrasonik Sensör-Stm32f429 Discovery Bağlantısı Trigger-PB2 Echo-PB3 Kodlar [php] #include "stm32f4xx.h" #include "stm32f4xx_spi.h" #include "defines.h" #include "tm_stm32f4_ili9341.h" #include "tm_stm32f4_fonts.h" #include "tm_stm32f4_delay.h" #include "tm_stm32f4_disco.h" #include "tm_stm32f4_hcsr04.h" #include <stdio.h> char buf[50], buf2[50]; int main(void) { int distance ; SystemInit(); TM_DELAY_Init(); TM_DISCO_LedInit(); TM_ILI9341_Init(); TM_DISCO_LedOn(LED_RED); if (!TM_HCSR04_Init()) { while (1) { TM_DISCO_LedToggle(LED_RED | LED_GREEN); Delayms(100); } } TM_ILI9341_Rotate(TM_ILI9341_Orientation_Landscape_2); TM_ILI9341_Fill(ILI9341_COLOR_BLUE); TM_ILI9341_Puts(105, 150, "PARK SENSORU", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_GREEN); TM_ILI9341_Puts(100, 190, "BY BILAL KAYA", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_WHITE); TM_ILI9341_Puts(80, 220, "www.roboturka.com", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_RED); while (1) { distance = TM_HCSR04_Read(); if (50>distance && 40<distance ) { TM_ILI9341_Puts(200, 85, "40-50 CM", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_BLUE2); TM_ILI9341_DrawFilledRectangle(50, 30,70, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(140, 30, 160, 130, ILI9341_COLOR_MAGENTA); TM_ILI9341_DrawFilledRectangle(170, 30,190, 130, ILI9341_COLOR_MAGENTA); TM_ILI9341_DrawFilledRectangle(110, 30, 130, 130, ILI9341_COLOR_MAGENTA); TM_ILI9341_DrawFilledRectangle(80, 30, 100, 130, ILI9341_COLOR_MAGENTA); TM_DISCO_LedOn(LED_RED); TM_DISCO_LedOff(LED_GREEN); } else if (40>distance && 30<distance ) { TM_ILI9341_Puts(200, 85, "30-40 CM", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_BLUE2); TM_ILI9341_DrawFilledRectangle(80, 30, 100, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(50, 30,70, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(140, 30, 160, 130, ILI9341_COLOR_MAGENTA); TM_ILI9341_DrawFilledRectangle(170, 30,190, 130, ILI9341_COLOR_MAGENTA); TM_ILI9341_DrawFilledRectangle(110, 30, 130, 130, ILI9341_COLOR_MAGENTA); TM_DISCO_LedOn(LED_GREEN); TM_DISCO_LedOff(LED_RED); } else if (30>distance && 20<distance ) { TM_ILI9341_Puts(200, 85, "20-30 CM", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_BLUE2); TM_ILI9341_DrawFilledRectangle(110, 30, 130, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(80, 30, 100, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(50, 30,70, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(140, 30, 160, 130, ILI9341_COLOR_MAGENTA); TM_ILI9341_DrawFilledRectangle(170, 30,190, 130, ILI9341_COLOR_MAGENTA); TM_DISCO_LedOn(LED_GREEN); TM_DISCO_LedOff(LED_RED); } else if (20>distance && 10<distance ) { TM_ILI9341_Puts(200, 85, "10-20 CM", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_BLUE2); TM_ILI9341_DrawFilledRectangle(140, 30, 160, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(110, 30, 130, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(80, 30, 100, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(50, 30,70, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(170, 30,190, 130, ILI9341_COLOR_RED); TM_DISCO_LedOn(LED_GREEN); TM_DISCO_LedOff(LED_RED); } else if (10>distance && 0<distance ) { TM_ILI9341_Puts(200, 85, " 0-10 CM", &TM_Font_11x18, ILI9341_COLOR_BLACK, ILI9341_COLOR_BLUE2); TM_ILI9341_DrawFilledRectangle(170, 30,190, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(140, 30, 160, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(110, 30, 130, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(80, 30, 100, 130, ILI9341_COLOR_RED); TM_ILI9341_DrawFilledRectangle(50, 30,70, 130, ILI9341_COLOR_RED); TM_DISCO_LedOn(LED_GREEN); TM_DISCO_LedOff(LED_RED); } else{ TM_ILI9341_DrawFilledRectangle(50, 30,70, 130, ILI9341_COLOR_MAGENTA); TM_ILI9341_DrawFilledRectangle(140, 30, 160, 130, ILI9341_COLOR_MAGENTA); TM_ILI9341_DrawFilledRectangle(170, 30,190, 130, ILI9341_COLOR_MAGENTA); TM_ILI9341_DrawFilledRectangle(110, 30, 130, 130, ILI9341_COLOR_MAGENTA); TM_ILI9341_DrawFilledRectangle(80, 30, 100, 130, ILI9341_COLOR_MAGENTA); } sprintf(buf2, "%02d",distance); TM_ILI9341_Puts(10, 15, buf2, &TM_Font_11x18, ILI9341_COLOR_YELLOW, 0x0000); Delayms(100); } } [/php] Proje dosyalarına buradan ulaşabilirsiniz… Çalışma Videosu