commodore.gen.tr

Genel Kategori => Proje => Konuyu başlatan: i_r_on üzerinde Ekim 30, 2015, 02:07:25 ÖÖ



Konu Başlığı: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 30, 2015, 02:07:25 ÖÖ
Aslında bunu yapmak çok da çetrefilli bir iş değil bildiğim kadarıyla. Arduino içinde hali hazırda matrix şeklinde düzenlenmiş klavyeleri okuyabilmek için kütüphane var. Ben yine de kendim uğraşayım dedim. 8 input pin'i yerine 3 input pin'i ile okuma yapabilmek için 74165 parallel input, serial output shift register kullandım. Amacım board'u arızalı ancak kasası sağlam bir c64'ün klavyesinin arduino'ya input imkanı kazandırması ve arduino'yu da mini bir bilgisayar olarak kullanmak.

Bunun üstüne spi kullanan bir ekran, sd kart modülü ekleyip basitçe bir screen editor yazdığımda minik arduino'yu faydalı işler için kullanabilirim. Hatta daha önce sid player için yaptığım c64 ekranına öykünen görüntü ile enteresan bir havası olur.

(http://www.commodore.gen.tr/forum/index.php?action=dlattach;topic=11344.0;attach=13452;image)

Iv0XeUkuBKs

FqaEyQlLZns

Sketch'i şu şekilde. Şimdilik sırf çalışsın diye yalap şap yazdım (çok optimize edilecek yeri var). Shift tuşları / ghosting / blocking gibi mevzulara girilmemiş hali. (Forum yazılımı sapıttığı için attachment olarak ekledim son versiyonu, cbm ve shift tuşlarını da ayıklıyor)




Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: ibeser (Ayak Takımı) üzerinde Ekim 30, 2015, 11:14:24 ÖÖ
Eline sağlık. Başarılar dilerim.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: LW3D üzerinde Ekim 30, 2015, 11:23:55 ÖÖ
Daha önce forumda konusu geçmişti... Ama öylece kalmıştı...El atman yerinde olmuş... tebrikler


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: Simon (Özay Turay) üzerinde Ekim 30, 2015, 12:18:47 ÖS
Kötü haberi veren ben olmak istemezdim ama bu sandığınız gibi Arduino'yu arabirim yaparak PC'ye bağlantı sağlamıyor yalnız. Sadece klavyeyi Arduino'ya bağlayıp Arduino'yu kontrol etme projesi. :D


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 30, 2015, 12:24:15 ÖS
Kötü haberi veren ben olmak istemezdim ama bu sandığınız gibi Arduino'yu arabirim yaparak PC'ye bağlantı sağlamıyor yalnız. Sadece klavyeyi Arduino'ya bağlayıp Arduino'yu kontrol etme projesi. :D

O da kolay aslında ancak bana sempatik gelmediği için (VICE içinde kullanmanın dışında) o işe girmeyi düşünmüyorum.

Dediğin iş de arduino leonardo yahut v-usb kullanılarak halledilebilir. Yapılmış örnekler de var aslında.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: wizofwor üzerinde Ekim 30, 2015, 21:27:11 ÖS
Kötü haberi veren ben olmak istemezdim ama bu sandığınız gibi Arduino'yu arabirim yaparak PC'ye bağlantı sağlamıyor yalnız. Sadece klavyeyi Arduino'ya bağlayıp Arduino'yu kontrol etme projesi. :D

O da kolay aslında ancak bana sempatik gelmediği için (VICE içinde kullanmanın dışında) o işe girmeyi düşünmüyorum.

Dediğin iş de arduino leonardo yahut v-usb kullanılarak halledilebilir. Yapılmış örnekler de var aslında.

Aslında benim sadece VICE ile kullanmak için bir klavyeye ihtiyacım var. :D Şu Lenardo'yu araştırayım biraz.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 30, 2015, 21:35:53 ÖS
Leonardonun ucuz yollusu pro micro. Speclere uygun olmasa da diger butun atmel islemciler icin v-usb de var. Ben de simdi onu arastiriyordum. Vice'ın gerçek bir c64 klavyesi olarak görmesi için ne yapmak gerekir diye. Aslinda klavye gerçek ama vice usbden pc klavye bekleyeceği için nasıl olur bilemedim. Keyrah diye bir nane vardı, onun için destek veriyordur belki vice.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 30, 2015, 21:47:16 ÖS
@wizofwor: Bu arada arduino üstünde klavyeye 8 bit output verecek 8 bit de input alacak kadar i/o pin'i var. Benim durumumda ben daha bu devreye Real time clock, LCD display ve sd kart modül ekleyeceğim için 5 i/o pin'ini kurtarmak gerçekten işe yarayacak. Hatta belki yine sipariş verdiğim kenarda duran accelerometer'leri bile kullanabilirim.

İşin usb kısmına kendini adayacak birinin çıkması iyi oldu :) Elimde fazla pro micro var, istersen gönderebilirim.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: AmigaFUN üzerinde Ekim 30, 2015, 21:48:25 ÖS
Şöyle bir şey var:
http://wiki.icomp.de/wiki/Keyrah_V2 (http://wiki.icomp.de/wiki/Keyrah_V2)
30€
(http://wiki.icomp.de/w/images/1/17/Keyrah_v2_birdseye.jpg)


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: commander64 üzerinde Ekim 30, 2015, 22:03:12 ÖS
2 pinle'de 8*8=64 tuşlu klavye matrisi bağlanabilir 2 adet 74165 (sanırım buydu tam ismini hatırlamıyorum) entegre ile olur diye biliyorum.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 30, 2015, 22:14:54 ÖS
2 pinle'de 8*8=64 tuşlu klavye matrisi bağlanabilir 2 adet 74165 (sanırım buydu tam ismini hatırlamıyorum) entegre ile olur diye biliyorum.

İlk mesajı okumamışsın sanırım :)
2 pinle olmaz yalnız o, Ortak latch ve Ortak clock sinyali de gerekiyor. Ha yine olmaz zira 8 pin'den output, 8 pin'den de input alman lazım. Input için 74165 ok, output için serial input paralel output yapabilen bir latch lazım.

Totalde min 6 pin ile olur.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: wizofwor üzerinde Ekim 30, 2015, 22:16:19 ÖS
@AmigaFUN: Keyrah'dan haberim var. Ancak yaptığı işe göre fazla pahalı olduğunu düşünüyorum.

@i_r_on: Teklifin için teşekkürler ancak bende pro micro var galiba. Sorun şu ki evi taşıdık. Her şeyim kutuların içinde ve halen yerleşemediğim için nerde ne var bilemiyorum. Şu sıralar donanım projeleri benim için sıkıntılı. Sen klavye matrisini tarama kısmını hallersen ilerde devamıyla (usb tarafıyla) ilgilenmek hoş olurdu.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 30, 2015, 22:29:52 ÖS
@AmigaFUN: Keyrah'dan haberim var. Ancak yaptığı işe göre fazla pahalı olduğunu düşünüyorum.

@i_r_on: Teklifin için teşekkürler ancak bende pro micro var galiba. Sorun şu ki evi taşıdık. Her şeyim kutuların içinde ve halen yerleşemediğim için nerde ne var bilemiyorum. Şu sıralar donanım projeleri benim için sıkıntılı. Sen klavye matrisini tarama kısmını hallersen ilerde devamıyla (usb tarafıyla) ilgilenmek hoş olurdu.

Keyrah ile ilgili benim düşüncem de aynı. Keşke c64'e özel bir tane yapıp biraz daha ucuza yapsalardı.

Temel keyboard scanning kısmı ok, şu an 64 tuşun hepsini tarayabiliyorum. Restore tuşunu ben kullanmadım, bunun için bir pin ayırmak gerekir. Sırada yapılması gereken commodore ve shift tuşu ile eş zamanlı diğer tuşların basımını ayırtetmek. Müzik işlerinde kullanılmadığı sürece çok da büyük ince işçiliğe (yazılım anlamında) gerek yok bence.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: eins üzerinde Ekim 30, 2015, 22:43:26 ÖS
Kolay gelsin i_r_on. Sormak istedigim birsey var. Bu matrise standart ps2 klavye controlor chipi taksan nasil olur? Sadece clock data ile cozersin isi. Chip bulamam dersen 5tl ye satilan ucuz klavyelerin bile chipi kullanilabilir?


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: commander64 üzerinde Ekim 30, 2015, 22:47:43 ÖS
o zaman Real time clock, LCD display, sd kart modül ve klavye input için SPI uyumlu parçalar bulursanız pin sayısı yeter sanırım 7-8 pinle kurtarırsınız :)


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 30, 2015, 23:24:15 ÖS
Kolay gelsin i_r_on. Sormak istedigim birsey var. Bu matrise standart ps2 klavye controlor chipi taksan nasil olur? Sadece clock data ile cozersin isi. Chip bulamam dersen 5tl ye satilan ucuz klavyelerin bile chipi kullanilabilir?

I/O pin sayısının azalması şu an benim için handikap değil. SPI kullanacağım için zaten boşa bıraktığım 11, 12, 13 pin'leri spi için ortak olacak. Sd için bir CS (9), Ekran için bir CS (10) lazım. RTC I2C kullanıyor onun için arduino üstünde ayrı iki pin var zaten. Geriye 2-3 tane daha analog pin kalıyor istersem kullanacağım.

Yani maceraya girmeye gerek yok :) Başka ne bağlayabilirim diye düşündüğümde misal elimde bir de ses kayıt devresi var. Onu bağlayabilirim.

Yaptığım şey basit cpu gücü istemeyen işler yapacak. Otantik bir organizer gibi bir şey olacak. Tabii uğraşıp da yazılımını yazabilirsem ve terkedilmiş projeler kervanına katılmaz ise :)

Başlangıçta bir kaç özellik koyarım içine, zamanla da geliştirim.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: Simon (Özay Turay) üzerinde Ekim 30, 2015, 23:39:35 ÖS
Tabii uğraşıp da yazılımını yazabilirsem ve terkedilmiş projeler kervanına katılmaz ise :)
Dikkat et de bitmemiş projelerin hayaleti dadanmasın sana da. :D

_7Qtk_5x8bI


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 31, 2015, 00:23:09 ÖÖ
Feature set'i bir yerde kesmek lazım yoksa her proje bitmemeye aday :)

Bu arada ilk mesajı güncelledim. Koda cbm ve shift tuşlarını tanıma ekledim. LCD bağlama kısmına geçebilirim ben. Lanet olası level shifting olayı var. İlk fırsatta shield haline getirmem lazım bunu.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: commander64 üzerinde Ekim 31, 2015, 02:31:37 ÖÖ
Bildiğin spi rtc var mı? lazım da :)


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 31, 2015, 10:16:58 ÖÖ
Bildiğin spi rtc var mı? lazım da :)

Aliexpress'te rtc module spi diye aratırsan sonuç getiriyor. Ben alırken i2c yahut spi şeklinde tercih yapmamıştım. Rtc konusunda siftahı yeni yapacağım bu arada.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: Simon (Özay Turay) üzerinde Ekim 31, 2015, 13:49:48 ÖS
Yeni videoyu linklemeyi unutmuşsun. :D

TZ-3Nzxs2Ag


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 31, 2015, 14:42:22 ÖS
Yola çıktığım için link atıp yazamadım. Artık akşam rtc'yi entegre edip işe yarar bir şeyler yaptıktan sonra detaylı yazarım.

Soru işareti kısmı ekrani c64 kasasına zarar vermeden nasıl monte edeceğim.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: ibo1973 üzerinde Ekim 31, 2015, 15:01:32 ÖS
Yola çıktığım için link atıp yazamadım. Artık akşam rtc'yi entegre edip işe yarar bir şeyler yaptıktan sonra detaylı yazarım.

Soru işareti kısmı ekrani c64 kasasına zarar vermeden nasıl monte edeceğim.

Şunun benzeri çift taraflı bantlarla geçici çözüm olabilir

http://www.avansas.com/scotch-cift-tarafli-tekrar-kullanilabilen-seffaf-kareler-18-adet-25mmx25m.html?utm_source=google-shopping&utm_medium=cpc&utm_campaign=shopping-maskeleme-ve-cift-tarafli-bantlar (http://www.avansas.com/scotch-cift-tarafli-tekrar-kullanilabilen-seffaf-kareler-18-adet-25mmx25m.html?utm_source=google-shopping&utm_medium=cpc&utm_campaign=shopping-maskeleme-ve-cift-tarafli-bantlar)


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Ekim 31, 2015, 21:28:47 ÖS
Evet ekranı bir case tarzı bir şey içinde paketleyebilirsem yapıştırma iş görebilir. Kablosunu da içeride board olmayacağı için görüntü yahut serial tarafından sallarım içeriye.

Hatta kasanın içi bomboş olacağı için breadboard hali ile bile sallarım devreyi içeriye :)


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Kasım 01, 2015, 00:15:18 ÖÖ
Bu arada devreyi kullanmamda temel bir hata farkettim. Nasıl farkettim? Shift / Control / Cbm tuşları ile beraber bir tuş basılması ile ilgili geliştirmeyi yaptığımda baktım bu tuşlarla aynı sütunda olan tuşlara basıldığında iki tuş bir arada algılanamıyor. Önce çözemedim durumu ancak sonra farkettim.

Ben Output port'unu hep output modunda tutup ilgilenmediğim satırları HIGH, ilgilendiğim satırı LOW ile sürüyordum. Aynı sütundaki iki tuşa denk gelince matriste hangisi üstte ise o satır seçilmemiş olmasa da devreyi tamamladığı için matriste altta olan tuş algılanmıyordu. C64 kod örneklerinde dikkatimden kaçan bir nokta aklıma geldi. Veri yön register'ını da kullanıyordu örnekler. Ben de aynı şekilde arduino'da satır okurken sadece o satır ile ilgili output pin'ini LOW olarak sürüyorum, diğer satırlar için olan pin'leri ise pull-up direnci ile okuma modunda bırakıyorum.

Kodu bu hale getirdiğimde canavar gibi çalıştı :)


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Kasım 01, 2015, 17:19:51 ÖS
Sıçtık :)

A4 ve A5 I2C sinyalleri için kullanılıyormuş :) Ben dedike ayrı pin'ler olduğunu sanıyordum. TFT için SPI pin'leri haricinde DS ve RESET için iki output'a daha ihtiyaç oldu. Ya seri bağlantıdan vazgeçip 0 ve 1 pin'lerini de kullanacağım ya da klavye okuma işini i2c cihaz gibi davranacak ayrı bir arduino ile halledeceğim. Elimde 16kb flash'lı pro mini'ler vardı onlardan kullanabilirim. Seri bağlantı debug vesaire için işe yarıyor o yüzden bundan vazgeçmek çok mantıklı gelmiyor.

Bu zorunluluğun şöyle bir avantajı olacak, klavye okumaya dedike ettiğim bir arduino olduğu için 74165 ve yanında kullandığım pull-up'lara gerek olmayacak ancak çalışan şeye dokunma prensibi gereğince şimdilik ellemeyeceğim. Klavye okuyan kısım kapalı kutu haline geldiği için bunu başka yerlerde de kullanma imkanım olacak ayrıyeten.

İşin zor kısmı, şimdi kurduğum devreyi dağıtıp tekrar kurmak.

Bu arada rtc'yi denedim, sıkıntı yok. A4 hattında TFT'nin reset sinyali vardı, o dağıldı sadece :)


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: commander64 üzerinde Kasım 02, 2015, 08:32:01 ÖÖ
Sıçtık :)

A4 ve A5 I2C sinyalleri için kullanılıyormuş :) Ben dedike ayrı pin'ler olduğunu sanıyordum. TFT için SPI pin'leri haricinde DS ve RESET için iki output'a daha ihtiyaç oldu. Ya seri bağlantıdan vazgeçip 0 ve 1 pin'lerini de kullanacağım ya da klavye okuma işini i2c cihaz gibi davranacak ayrı bir arduino ile halledeceğim. Elimde 16kb flash'lı pro mini'ler vardı onlardan kullanabilirim. Seri bağlantı debug vesaire için işe yarıyor o yüzden bundan vazgeçmek çok mantıklı gelmiyor.

Bu zorunluluğun şöyle bir avantajı olacak, klavye okumaya dedike ettiğim bir arduino olduğu için 74165 ve yanında kullandığım pull-up'lara gerek olmayacak ancak çalışan şeye dokunma prensibi gereğince şimdilik ellemeyeceğim. Klavye okuyan kısım kapalı kutu haline geldiği için bunu başka yerlerde de kullanma imkanım olacak ayrıyeten.

İşin zor kısmı, şimdi kurduğum devreyi dağıtıp tekrar kurmak.

Bu arada rtc'yi denedim, sıkıntı yok. A4 hattında TFT'nin reset sinyali vardı, o dağıldı sadece :)
Kütüphaneden i2c pinleri değiştirilebiliyor ayrıca rx, tx pinleri de program atma haricinde giriş çıkış olarak kullanılabiliyor.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Kasım 02, 2015, 08:56:56 ÖÖ
Kütüphaneden i2c pinleri değiştirilebiliyor ayrıca rx, tx pinleri de program atma haricinde giriş çıkış olarak kullanılabiliyor.

A4 / A5'i kullanma dediğimde kullanabileceğim başka I/O pin yok zaten. RX / TX'i de normal i/o için kullanmayı tercih etmiyorum zaten.

Hali hazırda bir tane arduino nano'yu slave yaptım i2c ile okuyorum klavyeyi. Şu an RTC / TFT artı klavye okuma kısmı çalışıyor. Ekran editörünü hemen hemen bitirdim. Arduino'nun ram kısıtı dolayısıyla karakterlerin Y eksenindeki boyutunu 2 misli yaptım. Böylece 40 * 12 = 480 karakterlik bir hafızada tüm ekranı tutabiliyorum.

Bir kaç özellik ekleyip paketleyeceğim kasa içine.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: wizofwor üzerinde Kasım 02, 2015, 09:23:06 ÖÖ
İşi karmaşıklaştırmak istemem. Ancak bu tip bir bellek dar boğazı durumunda harici ram kullanamaz mıyız? 23K256 (http://www.microchip.com/wwwproducts/Devices.aspx?product=23K256) mesela? Spi üzerinden haberleşiyor.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Kasım 02, 2015, 10:14:01 ÖÖ
İşi karmaşıklaştırmak istemem. Ancak bu tip bir bellek dar boğazı durumunda harici ram kullanamaz mıyız? 23K256 (http://www.microchip.com/wwwproducts/Devices.aspx?product=23K256) mesela? Spi üzerinden haberleşiyor.

Pek tabii kullanılablir, hatta keşke elimde olsaydı bunlardan :)
Ben i2c eeprom'a niyetlendim ancak baktığımda çok ta pratik bulmadığım için vazgeçtim.

Benim durumumda karakterlerin yüksekliğini iki misline çıkarmak ekranın küçük olmasından dolayı okunabilirliği de arttırdığından şimdilik böyle devam ediyorum. Ram darboğazı yine oluşursa bu çipler düşünülebilir hakikaten. Ya da belki raspberry pi gibi daha güçlü alternatiflere de geçilebilir.

Bu arada normal şartlarda sketch içinde kalan hafıza 1536 byte falandı, 1000 byte'ını ekrana ayırsam sd kart sürmek için yeterli bellek kalmayacaktı.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Kasım 03, 2015, 21:54:26 ÖS
Devrenin son hali aşağıdaki şekilde,

BJLWR3nh8NM

Sıra geldi bunda işe yarar bir şeyler yazmaya.


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: Simon (Özay Turay) üzerinde Kasım 03, 2015, 22:02:22 ÖS
Uno yerine Nano veya Pro Mini kullanmak istersen kullanılabilir flash miktarını 30.720 byte'tan 32.256 byte'a çıkarmak için USBASP gibi bir ICSP ile Uno'nun bootloader'ını Nano veya Pro Mini'ye yükleyebiliyormuşsun. ;)

bpXUvRr2ywA


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Kasım 03, 2015, 22:25:36 ÖS
İyiymiş, günün birinde bu cihazlarad 1.5K darda kalırsam lazım olur :)

Ancak şu anda UNO kullanıyorum, sadece screen editor ve rtc özelliği ile 15k'dayım. Düşündüğüm özellikleri eklediğimde muhtemelen flash biter :)


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: Simon (Özay Turay) üzerinde Kasım 03, 2015, 22:34:49 ÖS
Hatta bootloader'ı direk iptal ederek Upload Using Programmer (Ctrl+Shift+U) diyebilir ve o son 512 byte'ı da kullanabilirsin. ;)


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Kasım 03, 2015, 22:37:34 ÖS
Bootloader candır :)

Swap yaparım sd kart ile memory arasinda yine de bootloader'ı kaldırmam :)


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: i_r_on üzerinde Kasım 11, 2015, 00:20:38 ÖÖ
Hardware kısmı ile uğraşmayı bırakmış olsam da yazılım kısmı için her gün biraz uğraşarak bir şeyler çıkarmaya çalışıyorum. Tahmin edin bakalım ikonlar ne anlama geliyor ve bittiğinde bu proje ne işe yarayacak? :)

FqaEyQlLZns


Konu Başlığı: Ynt: Arduino ile C64 klavye kullanma
Gönderen: Simon (Özay Turay) üzerinde Kasım 11, 2015, 14:58:41 ÖS
You've got mail. :)