Created
June 8, 2018 13:49
-
-
Save waveform80/031565f37621684e73b0a83e4a67f6f0 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python3 | |
import pygame | |
from picamera import PiCamera | |
from pygame.locals import * | |
from sense_hat import SenseHat | |
from time import sleep | |
import sys | |
sys.path.append("..") | |
from mcp_utils import McpUtils | |
from norad import get_tle | |
from datetime import datetime | |
mcp = McpUtils() | |
#iss = get_tle() | |
name = "ISS (ZARYA)" | |
line1 = "1 25544U 98067A 18030.93057008 .00011045 00000-0 17452-3 0 9997" | |
line2 = "2 25544 51.6392 342.9681 0002977 45.8872 32.8379 15.54020911 97174" | |
iss = get_tle() #ephem.readtle(name, line1, line2) | |
g = [0,255,0] | |
b = [0,0,0] | |
w = [255,255,255] | |
cam_icon = [b,b,g,g,g,g,b,b, | |
b,b,g,g,g,g,b,b, | |
g,g,g,g,g,g,g,g, | |
g,g,w,w,w,w,g,g, | |
g,g,w,b,b,w,g,g, | |
g,g,w,w,w,w,g,g, | |
g,g,g,g,g,g,g,g, | |
b,b,b,b,b,b,b,b, | |
] | |
isos = [400,800] | |
awb_modes = ['auto', 'cloudy', 'shade', 'tungsten', 'horizon'] | |
exp_modes = ['night','fireworks','auto','nightpreview','antishake'] | |
pygame.init() | |
pygame.display.set_mode((320, 240)) | |
sense = SenseHat() | |
sense.set_rotation(270) | |
cam = PiCamera() | |
cam.resolution =(2592,1944) | |
sense.clear() | |
sense.set_pixels(cam_icon) | |
running = True | |
def get_latlon(): | |
iss.compute() | |
long_value = [int(i) for i in str(iss.sublong).split(":")] | |
if long_value[0] < 0: | |
long_value[0] = abs(long_value[0]) | |
cam.exif_tags['GPS.GPSLongitudeRef'] = "W" | |
else: | |
cam.exif_tags['GPS.GPSLongitudeRef'] = "E" | |
cam.exif_tags['GPS.GPSLongitude'] = '%d/1,%d/1,%d/100' % ( | |
long_value[0], long_value[1], long_value[2]) | |
lat_value = [int(i) for i in str(iss.sublat).split(":")] | |
if lat_value[0] < 0: | |
lat_value[0] = abs(lat_value[0]) | |
cam.exif_tags['GPS.GPSLatitudeRef'] = "S" | |
else: | |
cam.exif_tags['GPS.GPSLatitudeRef'] = "N" | |
cam.exif_tags['GPS.GPSLatitude'] = '%d/1,%d/1,%d/100' % ( | |
lat_value[0], lat_value[1], lat_value[2]) | |
print(iss.sublat, iss.sublong) | |
def start_capture(): | |
sense.clear() | |
file_number = 1 | |
r = 100 | |
g = 100 | |
b = 100 | |
n = 0 | |
sense.set_pixel(0, 0, r, g, b) | |
for i in isos: | |
if mcp.running: | |
cam.iso = i | |
cam.exif_tags['EXIF.ISOSpeedRatings'] = str(i) | |
for a in awb_modes: | |
if mcp.running: | |
cam.awb_mode = a | |
cam.exif_tags['EXIF.WhiteBalance'] = a | |
for e in exp_modes: | |
if mcp.running: | |
cam.exposure_mode = e | |
cam.start_preview() | |
sleep(2) | |
get_latlon() | |
filename = datetime.now().strftime("%Y%m%d-%H%M%S") | |
print(i, a, e, filename) | |
cam.capture("/home/pi/Transfer/1234_Camtest/01/%s.jpg" % filename) | |
cam.stop_preview() | |
n += 1 | |
sense.set_pixel(n // 8, n % 8, r, g, b) | |
pygame.display.quit() | |
while mcp.running: # change to mcp.running for deployment | |
for event in pygame.event.get(): | |
if event.type == KEYDOWN: | |
if event.key == K_ESCAPE: | |
mcp.running = False | |
elif event.key == K_u or event.key == K_d or event.key == K_l or event.key == K_r or event.key == K_a or vent.key == K_b : | |
sense.show_message("5........4........3.......2.......1") | |
start_capture() | |
if event.type == QUIT: | |
mcp.running = False | |
pygame.display.quit() |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment