Arkadaşlar bir konuda yardıma ihtiyacım var.

USB ile bilsayara bağlanan harici hard diski yazılımsal düzeyde çıkarıp takmam gerekiyor.

Yazılım sırayla şunları yapmalı: 1. Diski "güvenli çıkar" 2. Disk elektriğini kes 3. Disk elektriğini aç 4. Windows'un diskin takıldığını anlamasını sağla (eğer elektrik verilince kendiliğinden anlamazsa, ki anlar sanırım).

Yazılım yoluyla bu elektriği kesip vermek için ne kullanmalıyım? Bir devreye ihtiyacım var sanırım?

Bunu nasıl başarabilirim bir yol gösterebilecek arkadaş olursa çok sevinirim.

#akış #TeknoYardım #raspberrypi #Arduino

BeğenFavori PaylaşYorum yap
  • dx486 @dx486

    Yazdığım programda gerekli bir fonksiyon bu. Windows'un kendisinin bir süre sonra elektriği kesmesi işimi görmüyor.

  • Sercan Gündoğdu @sercangundogdu

    Bunu yapmak için 2 tane usb portu,bir arduino, bir usb seri dönüştürücü(FT232 veya CH340) ve güç kontrolü için röle veya daha iyisi MOSFET (önerilen).

    Hazırladığınız devreye usb portundan komut gönderebilecek bir sürücü yazılımı veya script (örneğin Python PySerial). Aşağıdaki bağlantıda Windows sistemde diski unmount edecek batch script örneği verilmiş. (bakınız http://superuser.com/questions/704870/mount-and-dismount-hard-drive-through-a-script-software)

    • dx486 @dx486

      Ben bir arduino alıp öğrenme arzusundaydım ve bu işi bir arduino ile çözebilir miyim acaba diye kime sorsam diye düşünüyordum ki bu yanıtı okudum ve çok sevindim. Bu parçaları ve nasıl devre oluşturacağımı araştıracağım. Teşekkürler.

    • Sercan Gündoğdu @sercangundogdu

      @dx486 Rica ederim. Arduino Pro Mini gibi küçük bir kart kullanmayacaksanız Arduino Uno alabilirsiniz. Arduino Uno'nun kendi üzerinde seri dönüştürücüsü bulunuyor yani FTD232,CH340 gibi kart veya chip'leri kullanmak zorunda kalmazsınız. Ayrıca, Arduino'nuzu programlamak için kullanacağınız Arduino IDE programı içerisinde Serial Monitor var. Arduino'ya doğrudan usb üzerinden veri gönderebilirsiniz. Arduino'yu ise serial'i dinleyip belirli bir veriyi aldığında mosfeti açıp kapatacak şekilde programlarsanız, çalışan bir prototip elde edersiniz. Ancak unmount(güvenli çıkar) olayı gerçekleşmez, yine elden yapılması gerekir.

      Usb portundan komut gönderecek programı da daha sonra yazabilir, unmount olayını da ekleyerek otomatize edebilirsiniz.

      Devre konusunda takıldığınız bir yer olursa da yardımcı olabilirim. İyi çalışmalar.

    • dx486 @dx486

      @sercangundogdu Biraz araştırınca yeni başlayanlara Uno modelinin sıklıkla önerildiğini okudum. Orjinal ve klon ayrımı varmış, orjinal alayım diyorum, daha sorunsuz olması için. Robotistan'da orjinal Uno R3 tükenmiş. Bir yakınım şu anda Tayland'da ve kısa süre sonra dönecek. Ondan rica edebilirim oradan getirebilir. Bu proje için Arduino Uno R3'e ek olarak almam gereken diğer parçalar tam olarak nelerdir ve önerebileceğiniz bir Arduino başlangıç/öğrenme seti ve doküman/kitap varsa bilgisini paylaşabilirseniz çok memnun olurum. Böylece hemen yakınıma sipariş edebilirim. -- Güvenli çıkar aşamasını yazılımla halledeceğim. Elektriği kesip vermek benim için asıl sorun ve elektronik bilgim yok, ama öğrenme hevesim var. -- Yaptığım araştırmalarda "solder primitive board (control through lpt port)" bu sorun için önerilen diğer çözüm oldu. Benim tabi böyle bir devreyi yapma bilgim de tecrübem de yok. Arduino ile elektroniğe giriş yapmak sanırım böyle bir yola girmekten daha makul olacak.

    • Sercan Gündoğdu @sercangundogdu

      @dx486 LDP Port dediğiniz sanırım parallel port. Eğer öyleyse o da Arduino ile aynı mantıkta çalışıyordur. Yani pinlere logic seviye sinyaller göndererek(0-1) Ama ben çevremde parallel port bulununan bilgisayar görmedim belki şu an kullandığınız bilgisayarlarda USB-Parallel dönüştürücüye ihtiyaç duyarsınız. Parallel port kullanmanın detayını bilmiyorum, Arduino ile başlamak daha mantıklı geliyor.

      http://www.direnc.net/Orjinal-Arduino-Uno-R3,PR-23601.html
      http://www.roboweb.net/arduino-uno-r3-rw-el-66.html

      Bu iki satıcıda da sorun yaşamadım, İstanbul'daysanız, doğrudan Kadıköy'de direnc.net mağazasından da alabilirsiniz.

      İngilizceniz varsa en iyi kaynak internet. Arduino'nun kendi sitesinde, Youtube'da ve diğer bireysel bloglarda fazlaca bilgi var. Hiç eğitim kit'i veya Türkçe kitapları kullanmadım. Yararlı olup olmadığı konusunda fikrim yok, ancak aynı bilgileri internetten rahatlıkla alabileceğiniz kanaatindeyim.

      Bu projenizde, Arduino'nun temel işlevleri yeterli oluyor. Yani pinlere bağlı bir Led'i açıp kapatan bir sketch sizin MOSFET'i açıp kapatabilir dolayısıyla HDD yi açıp kapatabilir. Bir de seri monitörden veri kontrolü var, az biraz pratikle ve internetteki örneklerle çözebilecek konular. Bence kullanılması gereken kaynak internet.

      Şimdi kullanmanız gereken parçalar kaba olarak şu şekilde:
      Orjinal Arduino Uno,
      Zayi edebileceğiniz bir USB kablosu (HDD ile Bilgisayar arasında - Siyah kablo kesilip uçlarına mosfet bağlanacak)
      Logic Level MOSFET(Logic level olması arduino ile kullanımında sorun yaşamamak için. 5Voltta tamamen açılması gerekiyor örn:IRFZ44N datasheete bakmak gerek)
      Bir iki parça direnç
      Biraz da jumper kablo
      Lehim yapmayacaksanız bir de BreadBoard

      Başka da bir şey yok gibi. Bu kadar malzemeyle çözülüyor.

      Örnek devreyi çizerek gönderebilirim.

    • dx486 @dx486

      @sercangundogdu Çok yararlı bilgiler bunlar benim için. Çok teşekkür ederim.

    • dx486 @dx486

      @dx486 @sercangundogdu bu konuda yardıma ihtiyacım var, benimle iletişim kurabilir misiniz?

  • dx486 @dx486

    @krmr-btn Aşkolsun mirim, tartışmaya girer miyim öyle bir şey için... 🙂

  • Cem KOÇ @cemkoc

    Donanımsal olmasındansa yazılımsal çözüm bence bulunabilir. Zira Linux ile bunu yapmak çok kolay. Elbet windowsda da bulunur çözüm. Onun dışında böyle bir devre için uno kullanmak büyük israf. Kendim yapacağım dersen bilemem tabi ama istersen gayet küçük bir devre ile direkt usb kontrollu (usart değil usb) olarak işini gorecek devreyi tasarlayabilirim zamanımı ayarladığım takdirde.

    • dx486 @dx486

      @cemkoc Yazılımsal çözüm mümkün olabilir mi, bunu araştırmaya devam edeceğim. Linux ile nasıl yapılabileceğine dair yol gösterebilirseniz çok memnun olurum. Sırf bunun için Uno almak israf olur haklısınız, ama benim zaten benzeri bir ürün alıp öğrenme niyetim vardı, bu bir vesile olabilir. Bu arada, bahsettiğiniz küçük devreyi çizebilirseniz bu da beni çok memnun eder. Belki o yolla bu işi hallederim. Çok teşekkürler...

    • Cem KOÇ @cemkoc

      @dx486 linux de diski unmount (güvenli çıkartmak) ettikten sonra gücünü de kesiyorum. kendi disk programı içerisinde var. alışkanlık tabi bendeki. windowsta da galiba vistadan sonra bu destek gelmiş. şurayı bi inceleyebilrsin.
      http://superuser.com/questions/715888/how-to-control-power-to-usb-ports-using-batch

      devre kısmında da aklıma PIC kullanmak geldi. usb desteği olan en küçük 18 pinli bi mikrodenetleyici var. arduino gibi programlanabilir bir entegre bu da.

  • Sercan Gündoğdu @sercangundogdu

    AVR yerine hardware usb PIC kullanma fikri gözlerimi yaşarttı. Bundan sonraki fikir veya projelerde "ben yaparım sana da muhakkak bir iki parça veririm" cilere muhtaç kalmamak için nitelik kazanması fikrini israf olarak nitelendirmek gayet yakışıksız. Hardware USB desteği yalnızca PIC kontrolcülerde değil, AVR'larda ve diğer onlarca üreticinin binlerce kontrolcü ürününde vardır. Ancak programlamak ve kullanmak, yeni başlayacak kimseler için Arduino kadar zahmetsiz değildir.

    Arduino bir prototipleme ürünüdür. Bununla geliştirilen standart bir sketch ATTINY gibi minik veya XMEGA gibi büyük kontrolcülerde de çalıştırılabilir, hatta bu kontrolcüler Arduino Uno'nun kendisini ISP olarak kullanıp harici hiç bir programlayıcıya ihtiyaç duymadan programlanabilir ve hardware USB desteği olan birçok kontrolcüden daha ucuza mâl edilebilir(örn: Attiny+ch340g).

    Arduino Uno yerine ATmega32u4 gibi built-in usb desteği olan bir kontrolcü kullanan Arduino Leonardo gibi bir kart ile de öğrenmeye başlayabilirsiniz. Daha sonra yalnızca kontrolcüyü ve birkaç komponenti kullanarak Arduino kartından bağımsız çalışan bir devreyi düşük maliyelerle elde edebilirsiniz. Arduino kartınız hiç bir zaman ziyan olmaz, prototip oluşturmak ve stand-alone kontrolcüleri programlamak için her daim kullanılabilir.

    @dx486 Burada maksat daha fazla para harcatmak değil. Eğer amacınız yaptırmak değil, yapabilme niteliğini kazanmaksa 30-40 lira için israf diyerek bu fırsatı çöpe atmamanızı öneririm. Bu niteliği kazanmayıp devamlı birilerine muhtaç kalmak sizi uzun vadede daha büyük maliyetlere sokacaktır. Sayısız opsiyonunuz var, mesele kendiniz için ve bundan sonrası için en faydalı olanı seçmek. İyi çalışmalar, başarılar.

    EDIT: Eğer olur da bir gün, gücünü USB portundan değil harici 9-12Volt bir adaptörden alan 3.5inch disk ve disk kutuları için (örn: link 1) aynı sistemi kullanma ihtiyacı hasıl olursa yazılımsal olarak yapabileceğiniz pek bir şey yok. Yine donanımsal bir çözüme başvurmanız gerekebilir.

    link 1: http://www.everest.info.tr/urunler/everest-hdc-575-harici-3-5-usb-2-0-sata-harddisk-kutusu-mkpdw/

    • dx486 @dx486

      En az para ve (benim için) zaman maliyeti en düşük çözüm yukarıda @krmr-btn 'nin önerisi muhtemelen. Ama yukarıda yazdığım gibi, ben karşılaştığım bu sorunu elektronikle ilgili bir şeyler öğrenmeye bir vesile kılmaya heves duyuyorum. Soruyu ilk sorduğumda #Arduino ve #Raspberry etiketlerini kullanmamın amacı bu idi. Yeni bir şeyler öğrenebilmenin sağlayacağı yararın yanında bahsedilen tutarların bir önemi yok benim için. Ama elbette alternatif çözümleri öğrenmeye de ilgi ve merak duyarım, paylaşılırsa memnun olurum.

    • Cem KOÇ @cemkoc

      Laf bana gelmiş heralde. Sakin!

    • Sercan Gündoğdu @sercangundogdu

      @dx486 @krmr-btn arkadaşın gönderdiği ürün bu tarz bir problemi çözmek için tasarlanmış ancak sizin durumunuzda en iyi çözüm değil. Emin olun mekanik bir diskin yakınlarında devamlı elektromanyetik alan yaratan bir röle en son isteyeceğiniz şey olur.

      Bu da zaten gördüğüm kadarıyla Atmel üretimi bir kontrolcü kullanmakta aynı arduino türevleri gibi. Çözümün o olduğunu düşünüyorsanız en azından bir röleyi değil transistörü kontrol eden türevlerine bakmanızı öneririm, mosfet veya bjt. Yani @krmr-btn arkadaşın dediği gibi onun gibi bir şey ama o değil, mekanik olmayanı.

      Hepsini öğrenmenizde sakınca yok, mağduriyet yaşamamanız için tercih yapmadan önce artı ve eksilerin farkında olmanızı sağlamaya çalışıyorum elimden geldiğince. Bir defa yorum yazdım artık, bu sorumluluğu kendimde hissediyorum. Ve yine benim önerimin israf olarak nitelendirildiğini gördüğümde, neden israf olmadığını ve olmayacağını kendimce anlatmaya çalıştım.