İçindekiler:

TV Çıkışlı Arduino Basic PC: 5 Adım (Resimli)
TV Çıkışlı Arduino Basic PC: 5 Adım (Resimli)

Video: TV Çıkışlı Arduino Basic PC: 5 Adım (Resimli)

Video: TV Çıkışlı Arduino Basic PC: 5 Adım (Resimli)
Video: DIY Radar With Ultrasonic Sensor And Chat-GPT Generated Arduino Code | Coders Cafe 2024, Haziran
Anonim
Image
Image
TV Çıkışlı Arduino Basic PC
TV Çıkışlı Arduino Basic PC
TV Çıkışlı Arduino Basic PC
TV Çıkışlı Arduino Basic PC
TV Çıkışlı Arduino Basic PC
TV Çıkışlı Arduino Basic PC

Bu Instructables'da, iki Arduino ve birkaç diğer bileşen aracılığıyla BASIC çalıştıran retro 8 bitlik bir bilgisayarın nasıl oluşturulacağını göstereceğim.

Değişkenleri ve BASIC programını bir PS2 klavyeyle girebilirsiniz ve çıktı, Commodore 64'e benzer veya daha iyi bir çözünürlükte, 47 sütun x 29 satır 8x8 piksel karakterden (S&B) metin içeren bir monitörde gösterilir. 40 x 25 karakter.

Üst videoda çalışırken görebilirsiniz.

Program daha sonra Arduino EEPROM'a kaydedilebilir ve yine de I/O pinlerini doğrudan Temel özel komutlarla kontrol edebilirsiniz.

Bir Arduino "ustadır" ve Tiny Basic'in bir C uygulaması olan Tiny Basic Plus'ı çalıştırır ve Arduino desteğine odaklanır. Ayrıca bir PS2 klavyesini de kontrol eder. Çıktı daha sonra seri port üzerinden awsome MRETV kütüphanesi sayesinde video çıktısını üreten ikinci Arduino'ya gönderilir.

Bir veya daha fazla Arduino'yu bir Basic lehçesi çalıştıran eski tarz bir PC oluşturmak için kullanma fikri yeni değil, ancak şu ana kadar çıktı çözünürlüğünde bazı güçlü sınırlamaların olduğu yerlerde. İnternette bulunan bazı projelerde insanlar LCD ekranlar kullanırken, bazılarında monitör kullanımına izin vermek için çok daha düşük çözünürlüğe sahip TVout kütüphanesi kullanılmıştır. Ayrıca bu projelerin çoğunda özel kalkanlar veya donanımlar inşa edilmelidir.

Burada, yukarıdaki resimde gösterildiği gibi sadece iki Arduino, birkaç diyot, birkaç direnç ve PS2 klavyesi ve monitör için konektöre ihtiyacınız var.

Adım 1: TinyBasic ve PS2 Klavye ile Arduino Master'ı Oluşturun

TinyBasic Plus ve MRETV, yaşlı ve farklı Arduino IDE için çalışır.

İlk önce Arduino resmi web sayfasından IDE 1.6.4'ü indirin. PC'nizde daha yeni sürümler varsa, en iyisi onu.zip formatında indirmek ve PC'nizde sıkıştırmasını açmaktır. Windows sürümünü indirmek için bu bağlantıya tıklayın.

O zaman PS2keyboard kitaplığına ihtiyacınız var. Bu sayfanın alt kısmında bulabilirsiniz. Sadece sıkıştırın ve PS2keyboard klasörünü şuraya kopyalayın: arduino-1.6.4\libraries

Son olarak, bu sayfada dosyayı indirin: TinyBasicPlus_PS2.ino, sıkıştırın ve Arduino'nuza yükleyin.

Bu, standart TinyBasic Plus'ın bir çeşididir ve burada PS2 kitaplığını ekledim ve kodu, viariable'ı kabul edecek şekilde değiştirdim.

TiniBasic Plus ve öğreticiler hakkında daha fazla ayrıntı bu bağlantıda bulunabilir.

Herhangi bir sorun ve uyumluluk sorunu yoksa Tiny Basic zaten çalışıyordur. PC'nizdeki bir seri monitör aracılığıyla test edebilirsiniz. Bu amaçla PuTTY kullanıyorum, ancak başka birçok program mevcut.

Doğru COM bağlantı noktasını (Arduino IDE'de bulduğunuzla aynıdır) ve baud hızı = 2400'ü ayarlamanız gerekir.

Burada bazı programları zaten PC klavyenizle yazarak Basic'te test edebilirsiniz (Not daha sonra PS2 klavyesini doğrudan Arduino'ya nasıl bağlayacağımı göstereceğim).

Örneğin deneyin:

10 BASKI "Merhaba Dünya!"

20 GOTO 10

ÇALIŞTIRMAK

Daha sonra sadece ctrl+c yazarak sonsuz döngüyü durdurabilirsiniz. Bu kombinasyonun PS2 klavyesi için çalışmayacağını unutmayın.

Bir sonraki adımda PS2 klavyesini Arduino'ya nasıl bağlayacağımı göstereceğim.

Adım 2: PS2 Klavyesini Master Arduino'ya bağlayın

PS2 Klavyesini Master Arduino'ya bağlayın
PS2 Klavyesini Master Arduino'ya bağlayın

Tüm bilgileri ve kütüphaneyi bu Eğitilebilir Dosyadan aldım.

Esasen aşağıdaki dört pimi bağlamanız gerekir:

  • Arduino pin 8'e klavye Verileri,
  • Arduino pin 3'e klavye IRQ'su (saat);
  • tabii ki GND ve +5V'u da bağlamanız gerekiyor.

Kırık bir PC anakartından eski bir PS2 dişi konnektör aldım. Bir ısı tabancasıyla satabilirsiniz.

Bu adımda gösterilen resimde, PS2 konektörünün gerekli pinlerinin işlevini bulabilirsiniz.

Adım 3: MRETV Kitaplığını İkinci Arduino'ya Yükleyin ve Her Şeyi Bir Araya Getirin

MRETV Kütüphanesini İkinci Arduino'ya Yükleyin ve Her Şeyi Bir Araya Getirin
MRETV Kütüphanesini İkinci Arduino'ya Yükleyin ve Her Şeyi Bir Araya Getirin

Bu projenin kilit noktası, harika MRETV kütüphanesinin varlığıdır. Ayrıntılı olarak açıklandığı özel bir Eğitilebilirlik vardır.

Tam ekran video oluşturmak için yalnızca iki direnç ve iki diyot kullanır, metin çözünürlüğü 47 x 29 8x8 karakterdir. Girişte yazdığı gibi, "video üretimi daha önce yapıldı ama böyle değil. FULL DUPLEX serisi video oluştururken hala mevcut". Bu, "ana" Arduino'dan veri almayı ve bunları monitörde göstermeyi sağlar. Pratikte bu ikinci "köle" Arduino, bir grafik arayüz olarak kullanılır!

MRETV, IDE 1.6.6 için çalıştığı için Arduino resmi web sayfasından indirin. Yine, en iyisi onu.zip formatında indirmek ve bunları PC'nizde açmaktır. Windows sürümünü indirmek için bu bağlantıya tıklayın.

Daha sonra bu bağlantıdan MRETV kitaplığını indirin.

Sıkıştırılmış dosyayı açın ve "MRETV" klasörünü şuraya kaydedin: arduino-1.6.6\libraries

Son olarak bu sayfanın altındaki TVtext_slave.rar dosyasını indirin, sıkıştırın ve Arduino kölenize yükleyin.

Hata mesajı yoksa, RCA konektörünü bağlayabilirsiniz. Bu sayfadaki şemada gösterildiği gibi, iki diyota ve 1 kOhm ve 300 Ohm'luk dirençlere ihtiyacınız var.

Bu noktada her şeyi birbirine bağlayabilirsiniz.

Malzemelerin tam listesi:

  • iki Arduino Uno Rev. 3 veya iki Arduino Nano 3.x (ATmega328)
  • iki direnç 1 kOhm
  • bir direnç 300 Ohm
  • iki diyot 1n4148 (x2) veya benzeri silikon anahtarlama diyotu
  • iki RCA fiş dişi (biri video için, biri - isteğe bağlı - ses için)
  • bir PS2 dişi konnektör
  • bir breadboard ve teller

Master Arduino, verileri turuncu kablo aracılığıyla slave'e, yani master pin 1'den (Tx) slave pin 2'ye (Rx) gönderir. Bazı kodları yeniden yüklemeniz gerekirse, önce bu kabloyu çıkarmalısınız.

Ardından bağımlı arduino'yu 5V güç kaynağına, RCA kablosunu TV'ye ve klavyeyi PS2'ye bağlayın ve şimdi kodu TV'nizde görmelisiniz!

Bu Temel lehçenin işlevleri ana sayfasında ayrıntılı olarak açıklanmıştır (2. adımdaki bağlantıya bakın). "esave" ve "eload" komutları ile EEPROM'a bir Temel program kaydedebilirsiniz. Bu program, ana Arduino'yu her sıfırladığınızda varsayılan olarak çalıştırılır. Silmek için "eformat" komutunu kullanabilirsiniz.

Bu programın en önemli özelliklerinden biri, ana Arduino I/O'yu aşağıdaki gibi özel Temel komutlarla sürdürebilmenizdir.

  • DWRITE pini, değer - bir değere sahip pin seti (HIGH, HI, LOW, LO)
  • AWRITE pin, değer - analog değere sahip pin seti (pwm) 0..255
  • DREAD(pin) - pinin değerini al
  • AREAD(analogPin) - analog pinin değerini al

Böylece Basic'te bazı donanımları çalıştıran bir program yazabilir, EEPROM'a kaydedebilir ve ardından Arduino'yu sıfırlayarak otomatik olarak çalıştırabilirsiniz.

Adım 4: İsteğe bağlı: PCB kullanma

İsteğe bağlı: PCB kullanma
İsteğe bağlı: PCB kullanma
İsteğe bağlı: PCB kullanma
İsteğe bağlı: PCB kullanma
İsteğe bağlı: PCB kullanma
İsteğe bağlı: PCB kullanma

Bu Temel PC'yi küçük bir PCB kullanarak da oluşturabilirsiniz. Bu adımda resimlerden ilham alabilir hatta panonuzu yazdırabilirsiniz.

Arduino video çıkışı için 15 delikli iki dişi başlık şeridi kullanabilirsiniz, master için ise dört şerit kullanmanızı öneririm. Bu şekilde proje bileşenlerinizin kontaklarını eklemek için harici olanları kullanabilirsiniz.

Ayrıca, biri 5 V'a ve diğeri GND'ye bağlı kalan şeritlere merkeze ekledim.

Son olarak,.rar dosyasında, bakırlı bir tahtayı oymak için maskeleri bulabilirsiniz.

Adım 5: Son Yorumlar ve Teşekkür

Bu proje MRTV kütüphanesi olmadan gerçekleştirilemezdi. Bu nedenle asıl teşekkürüm, Bay E. kısaltmasını kullanan yazarına aittir.

TinyBasic Plus'ın yazarlarına da çok teşekkürler:

  • Minik Temel 68k - Gordon Brandly
  • Arduino Basic / Tiny Basic C - Michael Field
  • Minik Temel Artı - Scott Lawrence

PS2 klavyesinin bağlantısı için Instructable'ın yazarı olan "djsadeepa"ya da teşekkürler.

Bu projeyle ilgilenen tüm insanlar için: İlk bakışta göründüğü gibi inşa etmek daha kolaydır. Asıl sorunlarım Arduino IDE uyumluluklarıyla oldu. Sorun yaşarsanız, yorumlarda öneri sormaktan çekinmeyin.

Başarılı olursanız, lütfen siz de bir yorum yazın veya yaptığınız cihazın bir resmini paylaşın.

Önerilen: