import time, math, serial #uporabljene funkcije pomlad=0.275 #poenostavljeno pomladisce za Julijanski koledar (del kroga) elmin=10.0 #minimalna varna elevacija vrtiljaka maxracun=9999 #max stevilo racunov stracun=0 #stevec racunov casracun=25 #interval racunanja (sekunde) sirina=45.948 #zemljepisna sirina opazovalca v stopinjah (+sever) dolzina=13.634 #zemljepisna dolzina opazovalca v stopinjah (+vzhod) cs=math.cos(math.radians(sirina)) #smerni vektorji opazovalca vzhod, sever in gor ss=math.sin(math.radians(sirina)) cd=math.cos(math.radians(dolzina)) sd=math.sin(math.radians(dolzina)) ovzhod=[-sd,cd,0] osever=[-ss*cd,-ss*sd,cs] ogor=[cs*cd,cs*sd,ss] def skalar(a,b): #skalarni produkt dveh vektorjev return (a[0]*b[0])+(a[1]*b[1])+(a[2]*b[2]) #odpri comport COM1, 9600bps, 8bit, brez paritete comport=serial.Serial('COM1',9600,timeout=0.1) def vrtiljak(): #izpisi azimut in elevacijo vrtiljaka s=comport.read(99) #izprazni vmesnik comporta print 'Vrtiljak', comport.write('&*AZ=?\r') #vprasaj za azimut vrtiljaka sa=comport.read(99) comport.write('&*EL=?\r') #vprasaj za elevacijo vrtiljaka se=comport.read(99) print sa[0:9], se[0:9] #izpisi azimut in elevacijo vrtiljak() #izpisi azimut in elevacijo vrtiljaka #seznam imen, rektascenzij (stopinje) in deklinacij (stopinje) opazovanih zvezd sirius=['Sirius',101.284,-16.743] rigel=['Rigel',78.835,-8.186] betelgeuse=['Betelgeuse',89.019,7.406] aldebaran=['Aldebaran',69.221,16.539] capella=['Capella',79.482,46.011] altair=['Altair',297.900,8.916] deneb=['Deneb',310.502,45.343] sadr=['Sadr',305.708,40.313] polaris=['Polaris',43.272,89.333] sagittariusa=['Sagittarius A*',265.538,28.833] cygnusa=['Cygnus A',299.867,40.734] cassiopeiaa=['Cassiopeia A',350.850,58.815] crabnebula=['Crab Nebula',290.925,22.014] tricstiristo=['3C400',290.925,14.509] oriona=['Nebula Orion A',83.821,-5.391] seznam=[sirius,rigel,betelgeuse,aldebaran,capella,altair,deneb,sadr,polaris,sagittariusa,cygnusa,cassiopeiaa,crabnebula,tricstiristo,oriona] izbira=0 #izpisi seznam zvezd in izberi eno zvezdo while izbira<15: zvezda=seznam[izbira] print izbira,zvezda[0] izbira=izbira+1 izbira=input('Izberi zvezdo: ') zvezda=seznam[izbira] while stracunelmin: #postavi vrtiljak na azimut/elevacijo if stracun%2==0: comport.write('&*AZ='+str('%06.2f'%(azimut))+'\r') else: comport.write('&*EL='+str('%06.2f'%(elevacija))+'\r') stracun=stracun+1 #zakljucek zanke racunanja time.sleep(casracun)