- Katılım
- 17 Eyl 2013
- Mesajlar
- 9,149
- Tepkime puanı
- 23,842
- Yaş
- 62
- Konum
- İstanbul
- Web sitesi
- www.sumeryamaner.com
- İlgi Alanı
- Uçak
Eveettt... Arduino tembel işi. Her şey hazır. Yazılım bile. Bir sürü kütüphane, bir sürü hazır kod... Hiç bana göre değil. Bir adım ileri gitmek gerekiyordu. Birkaç gündür tüm mesaimi bu konuya ayırdım. Önce işlemcilerdeki timer ve interruptları hatmettim. Dün sonunda makul bir yere varabildim. Deneme amacıyla Arduino üzerinde timer overflow interrupt kullanarak LED yakıp söndürdüm (yani başa döndüm!!!).
Sonra iki butonlu bir test sistemi kurup bir servo bağladım ve servoyu her iki yöne de tek tık tek tık hareket ettirdim. Ama bunu standart bir kodla yapmadım. Her 20 mS'de bir gelen interrupt sonucu tam spesifikasyonuna uygun bir PWM sinyali oluşturarak yaptım. Bildiğiniz gibi özellikle analog servolarda bu zamanlama çok önemli. Eğer 20 mS'den kısa bir darbe sıklığı olursa servoyu bozma riski var. Digital servoların bazılarında da 20 mS'den belirgin olarak uzun bir periyotta sinyal gelirse arada servonun fail safe konumuna geçme riski olabilir. Bu nedenlerle her tür servolu uygulamada zamanlama kritik. Kritik zamanlama denildiğinde ise akla ilk gelmesi gereken şey interruptlar. Kısaca bir derdim buydu...
İkinci derdim ise, bir giriş bir çıkış, iki giriş iki çıkış gibi az port gerektiren işler için koskocaman bir ATMega328 işlemciyi ve Arduino kartını heba etmek beni rahatsız ediyordu. Örneğin servo reverser, servo yavaşlatıcı, V-Tail mikser, kill switch gibi uygulamalar pekala 8 pinli bir ATTiny işlemci ile halledilebilecek uygulamalardı.
Beni yönlendiren bir örnek de görmüştüm. Eğer bulursam linkini paylaşırım. Adam bir standart kart tasarlamış. Üzerinde de bir mikrokontrolör var. Buna farklı kodlar yükleyerek alakasız işlerde kullanıyor. Örneğin çift motorlu uçaklar için bir motor stop ettiğinde diğerini rölantiye çeken emniyet sistemini yapmış. Benzer başka uygulamaları da aynı karta farklı yazılım yükleyerek yapıyor.
Bir de başımı bu derde sokan birileri "Sumerduino" fikrini ortaya attı mı?!?!
İşte proje:
Bir kart tasarlanacak. Üzerinde ATTiny85, iki buton ve dört de port olacak. Bu portların ikisi giriş ikisi çıkış şeklinde kablolanacak.
Bu şekilde;
- V-Tail mikser (iki giriş, iki çıkış). Butonlarla miks oranları değiştirilebilir.
- Servo yavaşlatıcı / reverser (bir giriş iki çıkış). Butonlarla yavaşlatma miktarı değiştirilebilir.
- Servo reverser (bir giriş bir çıkış). Butonluk bir iş yok.
- Kill switch (bir giriş, bir çıkış). Butonlarla iki OFF komutu arasındaki zaman değiştirilebilir.
- Benzinli motor rölanti emniyeti (iki giriş bir çıkış). Butonlarla sistemin devreye gireceği devir aralığı ayarlanabilir.
- Servo tester (AUX'tan pil girişi, üç çıkış, birisi reverse). Butonlarla değişik test patternleri seçilebilir.
- ...
Butonlarla ayar yapılan tüm uygulamalarda chip üzerindeki EEPROM kullanılıp son değer kalıcı olarak EEPROM'a yazılıyor bu arada.
Bu da prototip devre şeması. PCB tasarımı yapıp bunlardan bolca üretmek ve elemanları lehimleyip kenara koymak istiyorum. Sonra yukarıdakilerden hangisi gerekirse ATTiny85 chipine o programı yükleyip kullanıma sunabilirim.
[attachimg=1]
Ek: Plaket prototipi.
[attachimg=2]
İkinci derdim ise, bir giriş bir çıkış, iki giriş iki çıkış gibi az port gerektiren işler için koskocaman bir ATMega328 işlemciyi ve Arduino kartını heba etmek beni rahatsız ediyordu. Örneğin servo reverser, servo yavaşlatıcı, V-Tail mikser, kill switch gibi uygulamalar pekala 8 pinli bir ATTiny işlemci ile halledilebilecek uygulamalardı.
Beni yönlendiren bir örnek de görmüştüm. Eğer bulursam linkini paylaşırım. Adam bir standart kart tasarlamış. Üzerinde de bir mikrokontrolör var. Buna farklı kodlar yükleyerek alakasız işlerde kullanıyor. Örneğin çift motorlu uçaklar için bir motor stop ettiğinde diğerini rölantiye çeken emniyet sistemini yapmış. Benzer başka uygulamaları da aynı karta farklı yazılım yükleyerek yapıyor.
Bir de başımı bu derde sokan birileri "Sumerduino" fikrini ortaya attı mı?!?!
İşte proje:
Bir kart tasarlanacak. Üzerinde ATTiny85, iki buton ve dört de port olacak. Bu portların ikisi giriş ikisi çıkış şeklinde kablolanacak.
Bu şekilde;
- V-Tail mikser (iki giriş, iki çıkış). Butonlarla miks oranları değiştirilebilir.
- Servo yavaşlatıcı / reverser (bir giriş iki çıkış). Butonlarla yavaşlatma miktarı değiştirilebilir.
- Servo reverser (bir giriş bir çıkış). Butonluk bir iş yok.
- Kill switch (bir giriş, bir çıkış). Butonlarla iki OFF komutu arasındaki zaman değiştirilebilir.
- Benzinli motor rölanti emniyeti (iki giriş bir çıkış). Butonlarla sistemin devreye gireceği devir aralığı ayarlanabilir.
- Servo tester (AUX'tan pil girişi, üç çıkış, birisi reverse). Butonlarla değişik test patternleri seçilebilir.
- ...
Butonlarla ayar yapılan tüm uygulamalarda chip üzerindeki EEPROM kullanılıp son değer kalıcı olarak EEPROM'a yazılıyor bu arada.
Bu da prototip devre şeması. PCB tasarımı yapıp bunlardan bolca üretmek ve elemanları lehimleyip kenara koymak istiyorum. Sonra yukarıdakilerden hangisi gerekirse ATTiny85 chipine o programı yükleyip kullanıma sunabilirim.
[attachimg=1]
Ek: Plaket prototipi.
[attachimg=2]