Talk:Freerunner LightSaber

From Openmoko

(Difference between revisions)
Jump to: navigation, search
 
(2 intermediate revisions by one user not shown)
Line 1: Line 1:
<nowiki>
+
I'm running SHR-T de_DE localized as described here: http://wiki.openmoko.org/wiki/Configure_SHR_for_German-speaking_use
 +
 
 +
After <pre>tar -xvf ko-lightsaber.tar -C /</pre> I was able to run the application and heard light saber switched on but no sound when swinging around my Openmoko Freerunner. Any suggestions?
 +
 
 +
--ChrisPZV 18:19, 20 June 2010 (UTC)
 +
 
 +
<pre>
 
#!/usr/bin/python
 
#!/usr/bin/python
 
import struct
 
import struct
Line 157: Line 163:
 
     gtk.main()
 
     gtk.main()
 
     gtk.gdk.threads_leave()
 
     gtk.gdk.threads_leave()
</nowiki>
+
</pre>

Latest revision as of 19:19, 20 June 2010

I'm running SHR-T de_DE localized as described here: http://wiki.openmoko.org/wiki/Configure_SHR_for_German-speaking_use

After
tar -xvf ko-lightsaber.tar -C /
I was able to run the application and heard light saber switched on but no sound when swinging around my Openmoko Freerunner. Any suggestions?

--ChrisPZV 18:19, 20 June 2010 (UTC)

#!/usr/bin/python
import struct
from math import sqrt
import pygame.mixer 
import os
import threading
import gtk
import time

#Created by Kris Occhipinti
#www.filmsbykris.com
#Jan. 16 2009
#Copyright 2009 Kris Occhipinti
#Some changes by tomix
#program is distributed under the terms of the GNU GPL

#    This program is free software: you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation, either version 3 of the License, or
#    (at your option) any later version.

#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.

#    You should have received a copy of the GNU General Public License
#    along with this program.  If not, see <http://www.gnu.org/licenses/>.


saberoff="/usr/share/ko-lightsaber/saberoff.ogg"

pygame.mixer.init() 
soff=pygame.mixer.Sound(saberoff) 



ledon="echo '1'> /sys/devices/platform/gta02-led.0/leds\:gta02-power\:blue/brightness"
ledoff="echo '0'> /sys/devices/platform/gta02-led.0/leds\:gta02-power\:blue/brightness"


class MyThread ( threading.Thread ):
    def run (self):
	self.hum="/usr/share/ko-lightsaber/hum.ogg"
	self.saberon="/usr/share/ko-lightsaber/saberon.ogg"
	self.crash="/usr/share/ko-lightsaber/crash1.ogg"
	self.swing="/usr/share/ko-lightsaber/swing1.ogg"

	self.on=pygame.mixer.Sound(self.saberon) 
	self.on.play()

	self.sound = pygame.mixer.Sound(self.hum) 
	self.sound.play(loops=-1, maxtime=0, fade_ms=0)

	self.swingsound=pygame.mixer.Sound(self.swing)
	self.crashsound=pygame.mixer.Sound(self.crash)


	self.q = 0
	self.x = 0
	self.y = 0
	self.z = 0
	self.secondsensorfile = "/dev/input/event3"
	#int, int, short, short, int
	fmt = 'iihhi'
	#open file in binary mode
	in_file = open(self.secondsensorfile,"rb")
	event = in_file.read(16)
	while event:
        	(time1,time2, type, code, value) = \
                	struct.unpack(fmt,event)
        	#timea = time1 + time2 / 1000.0
		timea = time2 / 1000.0

	        #if type == 2:
		if type == 2 or type == 3:
        	        if code == 0:
                	        self.x = value
	                if code == 1:
        	                self.y = value
                	if code == 2:
	                        self.z = value
	        if type == 0 and code == 0:
        	        sum = int(sqrt(self.x*self.x + self.y*self.y + self.z*self.z))
                	print timea, self.x, self.y, self.z, sum
                	if self.y < 0:
                        	if self.q == 0:
					self.swingsound.play()
                                	print "LEFT"
                                	self.q = 1

                	if self.y > 0:
                        	if self.q == 1:
					self.crashsound.play()
					os.system(ledon)
				        os.system("echo '255' > /sys/class/leds/neo1973\:vibrator/brightness")
					#time.sleep(.1)
				        os.system("echo '0' > /sys/class/leds/neo1973\:vibrator/brightness")
					os.system(ledoff)
                                	print "RIGHT"
                                	self.q = 0

        	event = in_file.read(16)
	in_file.close()

gtk.gdk.threads_init()
class ImageClick(object):

    def __init__(self):

	MyThread().start()

        self.window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        self.window.connect('destroy', lambda w: gtk.main_quit())
        self.window.set_title("KO-Lightsaber by: Kris Occhipinti")
	self.window.set_border_width(10)
        #get the curront path

#create the table
        self.box = gtk.VBox()
	self.window.add(self.box)
        self.box.show()
########################
	self.label1 = gtk.Label("KO-Lightsaber by: Kris Occhipinti")
        self.box.pack_start(self.label1, False, False, 0)
        self.label1.show()
#########################
	button = gtk.Button("Exit")
        button.connect("clicked", self.destroy)
        self.box.pack_start(button)
        button.show()
#########################

        self.window.show()


    def destroy(self, widget, data=None):
	soff.play()
	time.sleep(2)
	os.system("echo '0'> /sys/devices/platform/gta02-led.0/leds\:gta02-power\:blue/brightness")
        os.system("echo '0' > /sys/class/leds/neo1973\:vibrator/brightness")
        t2 = os.getpid()
        print t2
        os.system("kill " + str(t2))
        print "EXIT"
        gtk.main_quit()

    def main(self):
            gtk.main()

if __name__ == "__main__":
    image_click = ImageClick()
    image_click.main()

    gtk.gdk.threads_enter()
    gtk.main()
    gtk.gdk.threads_leave()
Personal tools

#!/usr/bin/python import struct from math import sqrt import pygame.mixer import os import threading import gtk import time #Created by Kris Occhipinti #www.filmsbykris.com #Jan. 16 2009 #Copyright 2009 Kris Occhipinti #Some changes by tomix #program is distributed under the terms of the GNU GPL # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. saberoff="/usr/share/ko-lightsaber/saberoff.ogg" pygame.mixer.init() soff=pygame.mixer.Sound(saberoff) ledon="echo '1'> /sys/devices/platform/gta02-led.0/leds\:gta02-power\:blue/brightness" ledoff="echo '0'> /sys/devices/platform/gta02-led.0/leds\:gta02-power\:blue/brightness" class MyThread ( threading.Thread ): def run (self): self.hum="/usr/share/ko-lightsaber/hum.ogg" self.saberon="/usr/share/ko-lightsaber/saberon.ogg" self.crash="/usr/share/ko-lightsaber/crash1.ogg" self.swing="/usr/share/ko-lightsaber/swing1.ogg" self.on=pygame.mixer.Sound(self.saberon) self.on.play() self.sound = pygame.mixer.Sound(self.hum) self.sound.play(loops=-1, maxtime=0, fade_ms=0) self.swingsound=pygame.mixer.Sound(self.swing) self.crashsound=pygame.mixer.Sound(self.crash) self.q = 0 self.x = 0 self.y = 0 self.z = 0 self.secondsensorfile = "/dev/input/event3" #int, int, short, short, int fmt = 'iihhi' #open file in binary mode in_file = open(self.secondsensorfile,"rb") event = in_file.read(16) while event: (time1,time2, type, code, value) = \ struct.unpack(fmt,event) #timea = time1 + time2 / 1000.0 timea = time2 / 1000.0 #if type == 2: if type == 2 or type == 3: if code == 0: self.x = value if code == 1: self.y = value if code == 2: self.z = value if type == 0 and code == 0: sum = int(sqrt(self.x*self.x + self.y*self.y + self.z*self.z)) print timea, self.x, self.y, self.z, sum if self.y < 0: if self.q == 0: self.swingsound.play() print "LEFT" self.q = 1 if self.y > 0: if self.q == 1: self.crashsound.play() os.system(ledon) os.system("echo '255' > /sys/class/leds/neo1973\:vibrator/brightness") #time.sleep(.1) os.system("echo '0' > /sys/class/leds/neo1973\:vibrator/brightness") os.system(ledoff) print "RIGHT" self.q = 0 event = in_file.read(16) in_file.close() gtk.gdk.threads_init() class ImageClick(object): def __init__(self): MyThread().start() self.window = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window.connect('destroy', lambda w: gtk.main_quit()) self.window.set_title("KO-Lightsaber by: Kris Occhipinti") self.window.set_border_width(10) #get the curront path #create the table self.box = gtk.VBox() self.window.add(self.box) self.box.show() ######################## self.label1 = gtk.Label("KO-Lightsaber by: Kris Occhipinti") self.box.pack_start(self.label1, False, False, 0) self.label1.show() ######################### button = gtk.Button("Exit") button.connect("clicked", self.destroy) self.box.pack_start(button) button.show() ######################### self.window.show() def destroy(self, widget, data=None): soff.play() time.sleep(2) os.system("echo '0'> /sys/devices/platform/gta02-led.0/leds\:gta02-power\:blue/brightness") os.system("echo '0' > /sys/class/leds/neo1973\:vibrator/brightness") t2 = os.getpid() print t2 os.system("kill " + str(t2)) print "EXIT" gtk.main_quit() def main(self): gtk.main() if __name__ == "__main__": image_click = ImageClick() image_click.main() gtk.gdk.threads_enter() gtk.main() gtk.gdk.threads_leave()