Showing posts with label Python. Show all posts
Showing posts with label Python. Show all posts

RaspberryPi ve DC motor sürücüsü ile Araba Kontrolü

RaspberryPi ve DC motor devresi yardımıyla hızlı bir araba tasarımı ortaya çıkardım. Üzerine de basit bir usb kamera ekleyerek etrafı bilgisayarınızın başında gezebilirsiniz. Olayı anlatmadan önce aşağıdaki videoyu izleyebilirsiniz. Yazdığım soket uygulama ile bilgisayar oyunlarındaki gibi yön tuşlarıyla arabayı kontrol edebiliyorsunuz. Aşağıdaki depoda kodları bulabilrsiniz.


Depo: https://github.com/egcodes/raceCarAppForRaspberryPi3

Yapım için RaspberryPi3, DC Motor Sürücüsü(L298N), 11.5V motorlar için güç kaynağı, RaspberryPi için bir Powerbank, kamera için ise basit bir Logitech USB webcam kullandım.

Depodan server.py'i alıp RaspberryPi içine atıp çalıştırıyoruz. 3644 port'unu otomatikman dinlemeye başlar. Local bilgisayarımızdan ise client.py'i RaspberryPi'in ip adresini ilk parametre olarak verip çalıştırıyoruz. Client.py'nin çalışabilmesi için python pygame kütüphanesinin yüklü olması gerekiyor bilgisayarınızda.


Client çalışınca otomatikman server' a bağlanır ve komut göndermeye hazır hale gelir. Açılan beyaz ekrana tıklayarak yön tuşları ile arabayı yönlendirebilrsiniz. Diğer yazılan uygulamalardan farklı olarak keyUp ve keyDown olayları ile aksiyon almaktadır. Yani ileriye bastığınızda araba ilerler elinizi çektiğinizde araba durur.

RaspberryPi pin'leri ile DC motor pin'lerinin bağlanması için bayağı ayrıntı ve şema gerektiği için burada girmiyorum. Yabancı kaynaklı bloglarda ilgili anahtar kelimeleri arayarak ayrıntılı bilgilere ulaşabilirsiniz.

RaspberryPi kamera kurulumu için şu kaynak yeterli olacaktır: http://pingbin.com/2012/12/raspberry-pi-web-cam-server-motion/

Bağlantılar için özet geçmek gerekirse DC motor devresinden çıkan power ve ground kablolarını RaspberryPi'in DC güç ve Ground Pin'lerine, Dc motor devresinden çıkan yönlendirme kablolarını ise RaspberryPi Pin'lerinden (sıra numarası ile) 7,11,13,15 'e bağlanmanız gerekmektedir. Eğer farklı sıralama kullanacaksınız server.py'de ki pin numaralarını değişmeniz gerekir. 7,11,13,15 aşağıdaki şemada GPIO4, GPIO17, GPIO27, GPIO22'e denk gelmektedir. 2 ve 6 ise DC Power ve Ground'a denk gelmektedir.

Hermes - Cluster Monitoring Projesi

2010-2011 yıllarında çalıştığım bir süper bilgisayar merkezinde Cluster'lardaki her bir Node'un izlenmesi için geliştirilen bir projenin arayüz kısmını Python ve PyQt kullanarak yapmıştım.

Proje temel olarak 3 kısımdan oluşuyor.
  1. Socket programlama ile her Node'un Server programı ile haberleşmesi (C ile yazılmıştı başka bir arkadaş tarafından)
  2. Node üzerindeki cpu,ram,network vs. bilgilelerin toplanması ve MysqlDB'e kaydedilmesi (Genelde scirptler python ve bash ile başka arkadaşlar tarafından yazılmıştı)
  3. Bu DB'de ki bilgilerin gösterilmesi (PyQt ve Python ile ben yazdım)

Proje Screenshot'ları



Otomatik Arkaplan Işığını Ayarlama

Akıllı telefonlarda ekran ışığını otomatik ayarlayan programı, dizüstü bilgisayarlara nasıl aktarırım diye
düşününce aşağıdaki gibi bir program ortaya çıktı.

Tabi akıllı telefonlar bunun için etrafındaki ışığı algılayan sensörlerini kullanmakta. Benim bilgisayarımda bu teknoloji olmadığı için bunu yazılımsal olarak nasıl yapabilirim diye düşündüm. Ve en doğru yol olarak ekranda o an görünen renklerin alınması olduğuna kanaat getirdim.

Ekrandaki renkler eğer renk kodu olarak 150, 150, 150'den fazla ise parlak değil ise karanlık olarak aldım ve bunları yüzde cinsinden arka plan ışığını ayarlayan programa parametre olarak geçtim. Bu programın düzgün çalışabilmesi için, anlık tepki vermeli fakat ekranın görüntüsünü almak yüksek bir maliyet ve bir saniye kadar sürüyor. Bu ekran görüntüsünün parlak, karanlık analizide cpu'ya iyi bir yük bindiriyor.

Netice olarak kullanışlı değil ama güzel bir örnek olması açısından paylaşmak istedim.

Kullandığım paketler ve programlar
Ekran görüntüsü için: python-pyscreenshot
Arkaplan ışığı ayarlama için: xbacklight

Bu iki paketi kuduktan sonra, programı çalıştırırsanız 3 sn'de  bir ekranda bulunanlara göre ekran ışığınızı ayarlayacaktır.
Ayrıca parlaklık ile ilgili ayarlama yapmak isterseniz percent kısmını değiştirebilirsiniz.

Gist: https://gist.github.com/egcodes/96bc6d773429f0c68a16


Loading ....

Zone-h.org'da Hack'lenmiş Türkçe Sayfalar

Zone-h.org'ı çoğunuz bilirsiniz. Hacker'lar deface ettikleri sitelerin Mirror'ını (yansısını) alıp buraya
yükler ve sayfayı hacklediklerini kendi camiaları ile paylaşılar.

Ben de meraktan arada özellikle türkçe hangi siteler hacklenmiş diye takip ederim. Bu takibi kolaylaştımak için ufak bir script yazdım. Aşağıdaki script son 10 sayfadaki hacklenmiş türkçe siteleri göstermektedir.

Script'i kolaylıkla güncelleyebilirsiniz. "tr" olan kısmı değiştirerek diğer ülkeler ile ilgili hacklenmiş sayfalara erişebilirsiniz. Ya da "while pageNo < 10" kısmı ile daha geniş bir aralığı tarayabilirsiniz.

Kullanmak için python-BeautifulSoup kütüphanesi gereklidir. Script'i aşağıda bulabilirsiniz.

Depo: https://gist.github.com/egcodes/7682311


Loading ....

Ubuntu Sistemler İçin Bilgisayarınızı İzleme ve Yönetme Programı (Icarus)

Bu program ile bilgisayarınızın süreçlerini ve servislerini izleyebilir, süreçleri öldürebilir, servisleri başlat, durdur, yeniden başlat komutları ile yönetebilirsiniz.

Program beta sürümüdür henüz. Geliştirmesine katkıda bulunmak için github'da çatallayabilirsiniz.

Program python ve qt ile geliştirilmiştir.

Depo: https://github.com/egcodes/monitorLocal



FeedBack Communicator


Everything you need for work-life (Proje iptal)
We united the activities that we strived for most in our work life such as communication, file sharing, note taking and announcement in a single platform.

You can do these in a more effective manner with the easy and smart interface of FeedBack Communicator.


One-to-One and Group Communication
Meet the "Feed" concept. Contact your colleague with “Feeds” which consist of subject and body text. In addition, you can form groups and send messages and share files with multiple recipients.

Announcement
With this feature, you can publish meetings and other announcements to your company. If you want, you can send your announcement to specific departments. Also you can comment on the announcements.

Link Sharing
You can share the links you liked when surfing on the internet with your colleagues by pasting on “share a link” part. “FeedBack Communicator” will prepare necessary title, definition and image info and offer you for sharing.

File Sharing
You can share files rapidly either with one person or a group or all your colleagues.

The Same Department
Contact people who work in the same department or have the same job as you all around the world and share files with them in a single window.

Take note
You can easily itemize and take down all your notes on “Notes” part of “FeedBack Communicator”. This feature will relieve you of note papers.

Bilgisayarım Nerelere Bağlı?


Bilgisayarın hangi program neresi ile iletişim halinde görmek için Linux'da genellikle kullanılan "lsof - i -nP" komutudur.

Aşağıdaki programcık "lsof" ve "ps aux" komutlarının çıktısından yararlanarak hangi programın ne kadar kaynak kullandığını ve o programın hangi bilgisayarlar ile bağlantıda olduğunu gösterir.

Depo: https://github.com/egcodes/dugum-monitorConnections