Arduino ile Floppy Diskler Nasıl Okunur?

Merhaba arkadaşlar, sanal alemde dolaşırken bir Arduino uygulamasına rastladım ve sizinle paylaşma kistedim. En son lise zamanında kullandığımız floppy disklerin mevcut bilgisayarlar tarafından nasıl okunacağına dair bir Arduino Floppy Disk okuma uygulaması.

Eski bir floppy disket okuyucunuz varsa aşağıdaki pin bağlantılarını yaparak Arduino’ nuza bağlayın. Eğer isterseniz ArduinoFDC.cpp dosyasından pin atamalarını değiştirebilirsiniz.

Floppy Cable pinArduino UNO pinArduino MEGA pinNotesFunction
213423,4,5Density select signal
8747Index
104511,3Motor Enable A
12A1401,3,4Drive Select B
145501,3Drive Select A
16A0411,3,4Motor Enable B
183523Head Step Direction
202533Head Step Pulse
22946Write Data
241045Write Gate (write enable)
2611443Track 0
2812433,4Write Protect signal
308482Read Data
326493Side Select
1,3,5,…,31,33GNDGNDGND (just pick one)

Düzgün bir okuma yapabilmeniz için kütüphanenizdeki aşağıdaki ayarlamaları yapmanız gerekmektedir. Sürücü türü,  setDriveType işlevi çağrılarak ayarlanabilir.

Desteklenen türler şunlardır:

  • ArduinoFDC::DT_5_DD: Double-density disk in a 5.25″ double-density drive
  • ArduinoFDC::DT_5_DDonHD: Double-density disk in a 5.25″ high-density drive
  • ArduinoFDC::DT_5_HD: High-density disk in a 5.25″ high-density drive
  • ArduinoFDC::DT_3_DD: Double-density disk in a 3.5″ double- or high-density drive
  • ArduinoFDC::DT_3_HD: High-density disk in a 3.5″ high-density drive
ArduDos

ArduDOS, kullanıcının diskteki dosya sistemine göz atmasına ve dosyaları okumasına/yazmasına izin veren minimal bir DOS’tur. Temel işlevsellik, bazı istisnalar dışında MS-DOS üzerinde modellenmiştir:

Tüm komutlar yalnızca geçerli olarak seçili sürücüde çalışır. İki sürücü bağlıysa, sürücüleri değiştirmek için “b:” veya “a:” kullanabilrisiniz. Çalışma dizini her zaman diskin en üst düzey dizinidir. Dizini değiştirmek için “cd” komutu mevcut değildir. Bu nedenle, komutlara bağımsız değişken olarak verilen tüm yollar üst düzey dizine göre olmalıdır.

Disk değişiklikleri otomatik olarak algılanmaz. Bir diski değiştirdikten sonra, değişikliği ArduDOS’a bildirmek için mevcut sürücüyü (örn. “A:”) yeniden seçin. ArduDOS’a Arduio’nun seri monitöründen veya diğer herhangi bir seri terminalden erişim kolaydır. Bağlamadan önce monitörün veya terminalin baud hızını 115200 olarak ayarlayın. Aşağıdaki komutlar mevcuttur:

  • dir [dizin]: Belirtilen dizinin listesini gösterin (varsayılan kök dizindir).
  • type filename:  Belirtilen dosyayı ekrana yazın (metin dosyaları için en iyisi).
  • dump filename: Belirtilen dosyayı ekrana onaltılı gösterimle boşaltın (ikili dosyalar için en iyisi).
  • write filename: Kullanıcıdan satır satır metin alın ve belirtilen dosyaya yazın. Bitirmek için boş bir satır girin.
  • del filename: Belirtilen dosyayı silin.
  • mkdir foldername: Belirtilen dizini oluşturun.
  • rmdir foldername: Belirtilen dizini kaldırın.
  • disctype 0/1/2/3/4: Geçerli sürücünün sürücü türünü ayarlayın; burada 0/1/2/3/4, yukarıdaki “Desteklenen disk / sürücü türleri” bölümünde listelenen (aynı sırada) sürücü türünü ifade eder.
  • format[/ q]: Düşük seviyeli bir diski biçimlendirin ve bir FAT dosya sistemini başlatın. / Q argümanı verilmişse, hızlı bir format gerçekleştirir, yani dosya sistemini sadece düşük seviyeli format olmadan sıfırlar.
  • monitor: Düşük seviyeli disk monitörüne girin (aşağıdaki “Düşük seviyeli disk izleme” bölümüne bakın).
  • send filename: (yalnızca #define USE_XMODEM, ArduinoFDC.ino’nun üst kısmında etkinleştirilmişse kullanılabilir). Belirtilen dosyayı XModem protokolü ile gönderin. Daha fazla ayrıntı için aşağıdaki “XModem” bölümüne bakın.
  • recieve filename: (yalnızca #define USE_XMODEM, ArduinoFDC.ino’nun üst kısmında etkinleştirilmişse kullanılabilir). Belirtilen dosyayı XModem protokolü aracılığıyla alın. Daha fazla ayrıntı için aşağıdaki “XModem” bölümüne bakın.
ArduDos Ekranı
ArduDos Ekranı

Diğer detaylara için kaynak linkinden ulaşabilirsiniz.

Kaynak

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

This site uses Akismet to reduce spam. Learn how your comment data is processed.