bilgisayar müh. son sınıfım tasarım projesi olarak hocamız 2 ardunio arasında kodlama ve dekodlama yapmamızı istiyor.Projede 2 ardunio kullanılacak ve ardunio aldığı .text dosyasını lazerle(ışıkla) karşı ardunioya iletecek .Mor alfabesi taktiğiyle . Hangi ardunio türünü kullanmam vede ne tür malzemeler almam gerekir bu konu hakkında fikrim yok .
* PC den TEXT i alıp Arduino'ya seri olarak iletecek program ( Processing ? ) * Arduino'da gelen karakterleri alıp mors koduna çevirip laser'i anahtarlayan program ( Arduino IDE ile ) * Arduino OUTPUT pin'lerinden komut alıp laser'i on/off yapacak donanım ( transistor, mosfet, röle, 4066.) * Laser iletim ortamı ( hava, fiber optik kablo ) * Gelen ışığı alıp digital sinyale çeviren donanım ( LDR , IR Led, FotoTransistor ? ) * Digital sinyalleri alıp karakter bilgisine çevirecek ve LCD ye yazacak program ( Arduino IDE. İnterrupt mı kullanılacak, belli zamanlarda input pinleri kontrol mu edilecek ? ) * Karakterleri gösterecek LCD bağlantısı ( 2x16 , 12864 ? )
* Herhangi bir Arduino ( Uno, Mega, Pro Mini, Due ) olur bence.
Kolay gelsin, diğer projelerden fırsat bulup yapabilirsem yazarım.
1. Arduino'nun 13. pin'i ile GND arasına laser pointer direkt bağladım. 1. program da olduğu gibi çalışıyor . ( videoda SOS göndermesi için modifiye ettim.
2. Arduino'ya bir direnç (2.2K) ve bir LDR yi gerilim bölücü şeklinde bağladım. GND-----2.2K--------LDR------+5V ..................... | ..................... | .....................A0
2. programı da biraz modifiye ettim, 1. nin gönderdiği laser sinyaline göre LED'ini yakıp söndürebiliyor. Sinyalleri harflere çevirme biraz karışık gibi, programı tam anlayamazsam sıfırdan yazmam gerekecek.
int led = 13; // LED connected to digital pin 13 int unit = 50; // duration of a pulse
char * morsecode[] = { "-----", // 0 ".----", // 1 "..---", // 2 "...--", // 3 "....-", // 4 ".....", // 5 "-....", // 6 "--...", // 7 "---..", // 8 "----.", // 9 "---...", // : "-.-.-.", // ; "", // < (there's no morse for this simbol) "-...-", // = "", // > (there's no morse for this simbol) "..--..", // ? ".--._.", // @ ".-", // A "-...", // B "-.-.", // C "-..", // D ".", // E "..-.", // F "--.", // G "....", // H "..", // I ".---", // J "-.-", // K ".-..", // L "--", // M "-.", // N "---", // O ".--.", // P "--.-", // Q ".-.", // R "...", // S "-", // T "..-", // U "...-", // V ".--", // W "-..-", // X "-.--", // Y "--.." // Z }; char * kelime = "MORS KODU GONDERICI" ;
void say_morse_word(char * msg){ int index = 0; while(msg[index]!='\0'){ // say a dash if(msg[index]=='-'){ dash(); } // say a dot if(msg[index]=='.'){ dot(); } // gap beetween simbols intragap(); index++; } }
2.2K - pulldown resistor, LDR nin tipine göre 5K , 10K denenebilir. */
int pin = 13; volatile int state = LOW; unsigned long milisec; unsigned int isikacildi , aydinliksuresi , isikkapandi , karanliksuresi ; int birim = 50 ; // gönderen programdaki birim ile aynı olmalı int noktasuresimax = birim + birim / 10 ; // bu ikisi ısıgın yanık kalma süresi int cizgisuresimax = birim*2 + birim*2 / 10 ; int noktacizgiarasimin = birim*3 + birim*3 / 10 ; // bu ucu ısıgın kapalı kalma süreleri int harfarasimin = birim*4 + birim*4 / 10 ; int kelimearasimin = birim*5 + birim*5 / 10 ; int harfarasikaranlik = birim*8 ; // yukarıdaki değerler, LDR nin ne kadar aydınlandığına göre küçük bir miktar değişiyor. Deneme yapılmalı String sembol = ""; // buffer
int led = 13; // LED connected to digital pin 13 int unit = 50; // duration of a pulse
char * morsecode[] = { "-----", // 0 ".----", // 1 "..---", // 2 "...--", // 3 "....-", // 4 ".....", // 5 "-....", // 6 "--...", // 7 "---..", // 8 "----.", // 9 "---...", // : "-.-.-.", // ; "", // < (there's no morse for this simbol) "-...-", // = "", // > (there's no morse for this simbol) "..--..", // ? ".--._.", // @ ".-", // A "-...", // B "-.-.", // C "-..", // D ".", // E "..-.", // F "--.", // G "....", // H "..", // I ".---", // J "-.-", // K ".-..", // L "--", // M "-.", // N "---", // O ".--.", // P "--.-", // Q ".-.", // R "...", // S "-", // T "..-", // U "...-", // V ".--", // W "-..-", // X "-.--", // Y "--.." // Z }; char * kelime = "MORS KODU GONDERICI" ;
void say_morse_word(char * msg){ int index = 0; while(msg[index]!='\0'){ // say a dash if(msg[index]=='-'){ dash(); } // say a dot if(msg[index]=='.'){ dot(); } // gap beetween simbols intragap(); index++; } }
2.2K - pulldown resistor, LDR nin tipine göre 5K , 10K denenebilir. */
int pin = 13; volatile int state = LOW; unsigned long milisec; unsigned int isikacildi , aydinliksuresi , isikkapandi , karanliksuresi ; int birim = 50 ; // gönderen programdaki birim ile aynı olmalı int noktasuresimax = birim + birim / 10 ; // bu ikisi ısıgın yanık kalma süresi int cizgisuresimax = birim*2 + birim*2 / 10 ; int noktacizgiarasimin = birim*3 + birim*3 / 10 ; // bu ucu ısıgın kapalı kalma süreleri int harfarasimin = birim*4 + birim*4 / 10 ; int kelimearasimin = birim*5 + birim*5 / 10 ; int harfarasikaranlik = birim*8 ; // yukarıdaki değerler, LDR nin ne kadar aydınlandığına göre küçük bir miktar değişiyor. Deneme yapılmalı String sembol = ""; // buffer
int led = 13; // LED connected to digital pin 13 int unit = 50; // duration of a pulse
char * morsecode[] = { "-----", // 0 ".----", // 1 "..---", // 2 "...--", // 3 "....-", // 4 ".....", // 5 "-....", // 6 "--...", // 7 "---..", // 8 "----.", // 9 "---...", // : "-.-.-.", // ; "", // < (there's no morse for this simbol) "-...-", // = "", // > (there's no morse for this simbol) "..--..", // ? ".--._.", // @ ".-", // A "-...", // B "-.-.", // C "-..", // D ".", // E "..-.", // F "--.", // G "....", // H "..", // I ".---", // J "-.-", // K ".-..", // L "--", // M "-.", // N "---", // O ".--.", // P "--.-", // Q ".-.", // R "...", // S "-", // T "..-", // U "...-", // V ".--", // W "-..-", // X "-.--", // Y "--.." // Z }; char * kelime = "MORS KODU GONDERICI" ;
void say_morse_word(char * msg){ int index = 0; while(msg[index]!='\0'){ // say a dash if(msg[index]=='-'){ dash(); } // say a dot if(msg[index]=='.'){ dot(); } // gap beetween simbols intragap(); index++; } }
2.2K - pulldown resistor, LDR nin tipine göre 5K , 10K denenebilir. */
int pin = 13; volatile int state = LOW; unsigned long milisec; unsigned int isikacildi , aydinliksuresi , isikkapandi , karanliksuresi ; int birim = 50 ; // gönderen programdaki birim ile aynı olmalı int noktasuresimax = birim + birim / 10 ; // bu ikisi ısıgın yanık kalma süresi int cizgisuresimax = birim*2 + birim*2 / 10 ; int noktacizgiarasimin = birim*3 + birim*3 / 10 ; // bu ucu ısıgın kapalı kalma süreleri int harfarasimin = birim*4 + birim*4 / 10 ; int kelimearasimin = birim*5 + birim*5 / 10 ; int harfarasikaranlik = birim*8 ; // yukarıdaki değerler, LDR nin ne kadar aydınlandığına göre küçük bir miktar değişiyor. Deneme yapılmalı String sembol = ""; // buffer
Yapılacaklar listeme ekledim
İlk akla gelen :
* PC den TEXT i alıp Arduino'ya seri olarak iletecek program ( Processing ? )
* Arduino'da gelen karakterleri alıp mors koduna çevirip laser'i anahtarlayan program ( Arduino IDE ile )
* Arduino OUTPUT pin'lerinden komut alıp laser'i on/off yapacak donanım ( transistor, mosfet, röle, 4066.)
* Laser iletim ortamı ( hava, fiber optik kablo )
* Gelen ışığı alıp digital sinyale çeviren donanım ( LDR , IR Led, FotoTransistor ? )
* Digital sinyalleri alıp karakter bilgisine çevirecek ve LCD ye yazacak program ( Arduino IDE. İnterrupt mı kullanılacak, belli zamanlarda input pinleri kontrol mu edilecek ? )
* Karakterleri gösterecek LCD bağlantısı ( 2x16 , 12864 ? )
* Herhangi bir Arduino ( Uno, Mega, Pro Mini, Due ) olur bence.
Kolay gelsin, diğer projelerden fırsat bulup yapabilirsem yazarım.
< Bu ileti mobil sürüm kullanılarak atıldı > Bu mesaja 1 cevap geldi. Cevapları Gizle
Bu mesaja 1 cevap geldi. Cevapları Gizle
< Bu ileti mobil sürüm kullanılarak atıldı > Bu mesaja 1 cevap geldi. Cevapları Gizle
http://youtu.be/KfUw48uZaj4
1. Arduino'nun 13. pin'i ile GND arasına laser pointer direkt bağladım.
1. program da olduğu gibi çalışıyor . ( videoda SOS göndermesi için modifiye ettim.
2. Arduino'ya bir direnç (2.2K) ve bir LDR yi gerilim bölücü şeklinde bağladım.
GND-----2.2K--------LDR------+5V
..................... |
..................... |
.....................A0
2. programı da biraz modifiye ettim, 1. nin gönderdiği laser sinyaline göre LED'ini yakıp söndürebiliyor.
Sinyalleri harflere çevirme biraz karışık gibi, programı tam anlayamazsam sıfırdan yazmam gerekecek.
< Bu ileti mini sürüm kullanılarak atıldı >
< Bu ileti mobil sürüm kullanılarak atıldı > Bu mesaja 1 cevap geldi. Cevapları Gizle
Sanırım oldu.
1. Program çok az bir ekleme ile sürekli aynı mesajı gönderiyor.
2. Program mesajı alıp seri porta mors kodunu ve karakteri yazıyor.
< Resime gitmek için tıklayın >
< Resime gitmek için tıklayın >
MorseGonderici.ino
MorseAlici.ino
< Bu mesaj bu kişi tarafından değiştirildi tecevit -- 2 Kasım 2014; 21:39:37 >
Bu mesaja 1 cevap geldi. Cevapları Gizle
ıyıye benzıyor ılk fırsatta deneyeceım
Bu mesaja 1 cevap geldi. Cevapları Gizle
ama mors alfabesı bıraz karısık