4 Kasım 2013 Pazartesi

add a function in to a class / klasa fonksiyon ekleme


>>> class c:pass

>>> def a(self):print "deneme"

>>> c.a=a
>>> g=c()
>>> g.a
<bound method c.a of <__main__.c instance at 0x9c5ff0c>>
>>> g.a()
deneme
>>> 

3 Kasım 2013 Pazar

read pixel data continuously


from ctypes import windll
import time
import win32api
import win32gui
import threading



class gecoo(threading.Thread):
    def __init__(self):      
        threading.Thread.__init__(self)
        self.x=0
        self.y=0
    def get_coor(self):
        self.x, self.y = win32api.GetCursorPos()
        return self.x,self.y
     
   


class gecolo(threading.Thread):
    def __init__(self):
        threading.Thread.__init__(self)
        self.i_desktop_window_id = win32gui.GetDesktopWindow()
        self.i_desktop_window_dc = win32gui.GetWindowDC(self.i_desktop_window_id)
    def get_pixel_colour(self,i_x, i_y):       
        long_colour = win32gui.GetPixel(self.i_desktop_window_dc, i_x, i_y)
        i_colour = int(long_colour)
        return (i_colour & 0xff), ((i_colour >> 8) & 0xff), ((i_colour >> 16) & 0xff)


if __name__ == "__main__":
    fo=gecoo()
    fg=gecolo()
    while 1:
        print fg.get_pixel_colour(fo.get_coor()[0],fo.get_coor()[1])

31 Ekim 2013 Perşembe

sys.argv nedir? ne işe yarar ?

sys.argv  boş haliyle sizin yazdığınız scriptin adını döndürür(sys.argv[0]).
Bir program betiği yazdınız ve onun başlangıçta bazı opsiyonlarla çalıştırılmasını istiyorsunuz.
Bunun için:
>>> python example.py -u -o diye bir program çalıştıralım.
Burada programın içine:
if len(sys.argv) > 1: #demekki birden fazla argüman tanımlanmış:
    //argümanlar iterasyonu//
    "-f" ise dosya çıktısı olmayacak
    "-u" Grafiksel arayüz olmayacak
    ....
Şayet argüman verilmeden scriptinizin  çalışması demek tüm beceri ve kabiliyetlerin kullanılacağına işaret etmektedir.
Bu argümanlar bazen bir data,url,liste, veri tabanı vs aklınıza gelecek her şey olabilir.

Örnek win32 :
cmd>> ping debian.org -t //-t parametresi paket sayısının ve zamanının bir kısıtlama olmadan sonsuz olacağını işaret etmektedir. Bu parametreyi yazmazsanız ping.exe 4 paket gönderip size ortalama süreyi hesaplıyacaktır.

14 Ekim 2013 Pazartesi

Python, Basit bir rs232 örneği (unix/linux)

import serial
import time

ser=serial.Serial("/dev/ttyS0",9600)

def write():
    for i in range(10):
        a= ("%3d"%i) +" _ "+ ("%5d"%(i*i))+"\n"
        ser.write(a)
    time.sleep(0.5)
   

write()

Python, Ses kartından direk çıktı almak

Bir ara ses kartına sinyal göndererek acaba "özlediğim şimdi çok uzaklarda" şarkısını çalabilirmiyim diye deneme yaptım fakat döngü tek tek yazdığı için melodi zor seçiliyor. Bu betik sadece unix/linux sistemlerde çalışabilir. Şayet win32 de çalıştıracaksanız ses kartınıza direk erişiminiz olup olmadığını kontrol ediniz.

import time

"""
Do     261,6
Re     293,7
Mi     329,6
Fa     349,2
Sol     392,0
La     440,0
Si     493,9
Do     523,5
"""
nota = 261,293,329,349,392,440,493,523
pat="do","re","mi","fa","so","la","si","do"
muz="mimimimifamimimimilamirerereremirerereremiredodo"

def beep(frequency, amplitude, duration):
    sample = 8000
    half_period = int(sample/frequency/0.3)
    beep = chr(amplitude)*half_period+chr(0)*half_period
    beep *= int(duration*frequency)
    print beep
    audio = file('/dev/audio', 'wb')
   
    audio.write(beep)
    audio.close()


for i in range(0,len(muz),2):
    print pat.index(muz[i:(i+2)]),muz[i:(i+2)]
    deep =nota[pat.index(muz[i:(i+2)])]
    print deep
    beep(deep,50,0.05)

Python, adresten koordinat bıulma

# -*- coding: utf-8 -*-
from pygeocoder import Geocoder
import Pysolar as solar
import datetime
import time

results = Geocoder.geocode("mahmudiye mh., nil sok.,inegöl turkey")
print(results[0].coordinates)
print(results[0])

d = datetime.datetime.utcnow()
print solar.GetAltitude((results[0].coordinates)[0],\
                        (results[0].coordinates)[1], d)
print solar.GetAzimuth((results[0].coordinates)[0],\
                        (results[0].coordinates)[1], d)

print "_"*20
ts= time.localtime()
print ts[0]
print solar.GetAzimuth((results[0].coordinates)[0],\
                        (results[0].coordinates)[1],d)

Python, bir text dosyasında belli bir bölümü silme

# -*- coding: utf-8 -*-

def sil_beni(dosya,nerden=0,nereye=-1):
    """ Değişken nerden=0 Varsayılan değer (ilk satır)dosyanın başlanıç noktası
                 nereye=-1 Varsayılan değer (son satır)dosyanın bitiş noktası
            *** Şayet argüman olarak sade dosya adını verirseniz. Dosyanın
                tamamını siler. Ayrıca "nerden" değeri dosyanızdaki satır sayısından
                büyük olamaz.(0 ve 1 i kafanıza göre yazın)

            Kullanımı sil_beni("dosya adı","başlama satırı(integer olacak)","bitiş  satırı(integer olacak)")
                şeklindedir."""
    try:
        dosyam = open(dosya,"r")
        okunan=dosyam.readlines()[nerden:nereye]
        dosyam.close()
        yeni=open(dosya,"w")
        for satir in okunan: yeni.write(satir)
        yeni.close()
           
    except Exception,e:
        print u"Bunu yapamadık ahanda sebebi : %s" % e


11 Ekim 2013 Cuma

pneumatic xor scheme pnömatik XOR devresi

ABOut
000
011
101
110


How to make a  XOR logic with using pneumatic equipments.
XOR kapısı pnömatik ekipmanlarla nasıl yapılır.



 Please leave a feedback if not work (i am not tested yet)
Lütfen çalışıp çalışmadığı konusunda yorum yapınız.

10 Ekim 2013 Perşembe

Elektrikli sobamın odanın sıcaklığına göre çalışması

Bir adet gazlı termostat alınır (5-10 TL)  ve ısıtıcının faz ucu üzerinden geçirilerek ısıtıcıya bağlanır. Dikkat edilmesi gereken bir husus gazlı termostatın  gerçek ısı değeriyle birebir örtüşmeyebilir bunun için herhangi bir civalı termostatla ayarlanması gerekir. Termostatın çift kontaklı olması işinizi kolaylaştırır. İlave bir zamanlayıcı ile günün belirli saatlerinde çalışmasıda sağlanabilir.

Analog Sinyaller Ve Digital Sinayaller hakkında

Dijital sinyaller genliği olan (bir kalıp) ve ikili sistemde (binary) olan sinyallerdir.
Analog sinyaller dijitalin tam tersine belli bir kalıp, konum, frekans sahip olmayan sinyallerdir.
Analog sinyaller iki guruba ayrılır, voltaj bazlı veya akım bazlı sinyaller.

Sadece Potansiyometre ile Ses Kontrol Olur Mu?

Tabiki olur çıkış gücünüzü 100 wat kabul edersek  sizin 100 watlık bir potansiyometre (reosta) kullanmanız gerekmektedir
Önemli olan çıkış gücüdür. Kulaklık için pot uygundur ama güçlü hoparlör için reosta kullanmanız zorunludur.
İlave parçalar ile (transistör vs)  sorunsuz çalışır.

6 Ekim 2013 Pazar

Tübitak'tan müthiş buluş en son haber

 Tübitak'tan müthiş buluş en son haber!

Acaba ROHS belgesi almadan kendi ülke vatandaşları üzerinde çalıştıracaklar.
18 milyon dolar biber gazına para ödüyen bir devlet sadece birkaç gerizekalı yönetici için şifreli telefon yada abidik gubidik icatlar peşindeler.
Kamu yararına olmayan herşey gün gelir onu bulanın , kullananın elinde patlar.

5 Ekim 2013 Cumartesi

LCD monitörü araçda çalıştırma

Normal şartlar altında ve kendi inverter devresi ile bu işlemi yapmak hem meşakatli hemde maliyet açısından yüksektir. Bunun yerine elinizdeki monitörü kullanmak için bir adaptör yaklaşık 30-40 dolar arasında fiyatı olan bir ekipman kullanmanız gerekecektir.
Kendi iç besleme devresi bir ara voltajda çalışır . Sizin inverterinizin (LCD ekranın içinde) besleme voltajını herhangi bir 12V to XX.V çeviriciyle dönüştürüp LCD ekranınızı çalıştırabilirsiniz.

10 kanallı rf alternatifi

10 kanallı rf yerine standart bir wifi alıcı verici kullanmanız daha mantıklıdır.
(Şayet mesafeniz yetiyorsa). İleride data aktarımı kamera vs işlemleri için de kullanabilirsiniz. Hem istediğiniz kadar kanal (10K-100K(10.000-100.000))  hem de ileride başka amaçlar içinde kullanabilirsiniz.
Bunu uygulamak için bir ARM yada AVR yada ATMEL türevi bir denetleyiciye ihtiyacınız olacaktır.

Omron PLC device error

When put a new program to plc you never forget download I/O tables content.
After uploading any program need be read I/O table from plc.
Some time  you can't rewrite omron plc memory area.
Only need a master reset for related errors.
Master reset is :
*Remove all additional modules.
*Put a blank program.
*Write a test program.
*Check all modules identify of I/O tables.

Uzak birim kontrolü

Bir PLC yada mikro işlemciyi uzaktan kontrol edebilmeniz için onu ağınıza dahil etmeniz ve bilgisayarınızda ve/veya servisinizde erişim apisi yazmanız gerekmektedir. Bu parçalar Network Enable diye tabir edilir. Yerli üretim Mitatek tavsiye edebilirim...
When installing any pci DAQ device first step you need check your driver installing properly other wise you can't acces DAQ.
Some examples will be not work , cos your hardware id and communication id set  randomly.
Learn  what is bus address your DAQ card !