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
mehmet
28 Nisan 2015 at 15:08
Paylaşım için teşekkürler. Bu uygulama mdk 5’te çalışmıyor. Mdk 5 için paylaşım yapmanız mümkün mü?
Bilal Kaya
28 Nisan 2015 at 20:46
Mehmet Bey,güzel dilekleriniz için teşekkür ederiz.MDK4 te yazıldı program.Ne hatası veriyor?
Mehmet
29 Nisan 2015 at 06:06
Aşağıdaki hataları veriyor. Bir çok driveri tanımıyor. Kodlara göre programı mdk 5e dönüştürmeye çalıştım ama timer sorunu çıkıyor. bir türlü çözemedim.
—————————————————————
..\CMSIS\core_cm4.h(171): error: #5: cannot open source input file “core_cm4_simd.h”: No such file or directory
#include /* Compiler specific SIMD Intrinsics */
..\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_usart.c: 0 warnings, 1 error
compiling stm32f4xx_spi.c…
..\CMSIS\core_cm4.h(171): error: #5: cannot open source input file “core_cm4_simd.h”: No such file or directory
#include /* Compiler specific SIMD Intrinsics */
..\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_spi.c: 0 warnings, 1 error
compiling stm32f4xx_adc.c…
..\CMSIS\core_cm4.h(171): error: #5: cannot open source input file “core_cm4_simd.h”: No such file or directory
#include /* Compiler specific SIMD Intrinsics */
..\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_adc.c: 0 warnings, 1 error
compiling main.c…
..\CMSIS\core_cm4.h(171): error: #5: cannot open source input file “core_cm4_simd.h”: No such file or directory
#include /* Compiler specific SIMD Intrinsics */
..\User\main.c: 0 warnings, 1 error
compiling stm32f4xx_it.c…
..\CMSIS\core_cm4.h(171): error: #5: cannot open source input file “core_cm4_simd.h”: No such file or directory
#include /* Compiler specific SIMD Intrinsics */
..\User\stm32f4xx_it.c: 0 warnings, 1 error
compiling tm_stm32f4_delay.c…
..\User\defines.h(9): warning: #1-D: last line of file ends without a newline
#define HCSR04_ECHO_PIN GPIO_Pin_3
..\CMSIS\core_cm4.h(171): error: #5: cannot open source input file “core_cm4_simd.h”: No such file or directory
#include /* Compiler specific SIMD Intrinsics */
..\User\tm_stm32f4_delay.c: 1 warning, 1 error
compiling tm_stm32f4_hcsr04.c…
..\CMSIS\core_cm4.h(171): error: #5: cannot open source input file “core_cm4_simd.h”: No such file or directory
#include /* Compiler specific SIMD Intrinsics */
..\User\tm_stm32f4_hcsr04.c: 0 warnings, 1 error
“.\project.axf” – 11 Error(s), 1 Warning(s).
Bilal Kaya
29 Nisan 2015 at 08:34
Keil 5 ile çok çalışmıyorum.Genellikle 4 ile yazdığım için bu problemlere sık rastlamıyorum.Şunu önerebilirim.Yukarıda hata aldığınız kütüphanelere tekrar yol atayabilir misiniz?Çünkü hata muhtemelen hedefle alakalı bir durum.
Ahenk Vural
26 Aralık 2015 at 12:38
Merhabalar,bende aynı hataları alıyorum,keil v5 ile çalışıyorum. stm32f4xx_rcc.h yi bulamıyor. Bu header fileı eklersem çözülecek sanırım. Siz problemi çözebildiniz mi?
Bilal Kaya
26 Aralık 2015 at 15:40
Merhabalar,mail adresinizi belirtirseniz size keil5 ile yapılmış bir örnek göndereyim.Sizde ondan yararlanarak problemi çözebilirsiniz.
Ahenk Vural
28 Aralık 2015 at 13:31
ahenkvural@gmail.com
Teşekkürler
Bilal Kaya
28 Aralık 2015 at 15:00
Mail adresinize gönderilmiştir.İyi Çalışmalar 🙂
vahit
3 Aralık 2016 at 01:47
bağlantı şemasını ve nasıl yükleyeceğim hakkında döküman varsa onuda atarmısın
rukiye
9 Mayıs 2019 at 23:10
BAGLANTI ŞEMASINI PAYLAŞABİLİR MİSİNİZ