Talk:Freerunner LightSaber

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(New page: #!/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...)
 
 
(3 intermediate revisions by one user not shown)
Line 1: Line 1:
 +
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 156: Line 163:
 
     gtk.main()
 
     gtk.main()
 
     gtk.gdk.threads_leave()
 
     gtk.gdk.threads_leave()
 +
</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
  1. !/usr/bin/python

import struct from math import sqrt import pygame.mixer import os import threading import gtk import time

  1. Created by Kris Occhipinti
  2. www.filmsbykris.com
  3. Jan. 16 2009
  4. Copyright 2009 Kris Occhipinti
  5. Some changes by tomix
  6. program is distributed under the terms of the GNU GPL
  1. This program is free software: you can redistribute it and/or modify
  2. it under the terms of the GNU General Public License as published by
  3. the Free Software Foundation, either version 3 of the License, or
  4. (at your option) any later version.
  1. This program is distributed in the hope that it will be useful,
  2. but WITHOUT ANY WARRANTY; without even the implied warranty of
  3. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  4. GNU General Public License for more details.
  1. You should have received a copy of the GNU General Public License
  2. 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
  1. 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()