Skip to content
Snippets Groups Projects
Select Git revision
  • fa0c047f9b1468ad4925a1a16996eebf081c5e56
  • master default protected
  • backslash
  • nickname-match-configs
  • genofire/leds_rgb_get_state
  • genofire/rockets-state
  • genofire/ble-follow-py
  • plaetzchen/ios-workaround
  • blinkisync-as-preload
  • genofire/haule-ble-fs-deactive
  • schneider/max30001-pycardium
  • schneider/max30001-epicaridum
  • schneider/max30001
  • schneider/stream-locks
  • ios-workarounds
  • schneider/fundamental-test
  • schneider/ble-buffers
  • schneider/maxim-sdk-update
  • ch3/splashscreen
  • koalo/bhi160-works-but-dirty
  • koalo/wip/i2c-for-python
  • v1.9
  • v1.8
  • v1.7
  • v1.6
  • v1.5
  • v1.4
  • v1.3
  • v1.2
  • v1.1
  • v1.0
  • release-1
  • bootloader-v1
  • v0.0
34 results

bhi160.py

Blame
  • Forked from card10 / firmware
    Source project has a limited visibility.
    demo_sparabo.py 863 B
    import event
    import hardware
    from synth import tinysynth
    import math
    
    def xy_from_polar(r,deg):
    	#rad = deg/180*math.pi
    	
    	return( (
    		r * math.sin(deg), #x
    		r * math.cos(deg)  #y
    	)  )
    
    ctx = hardware.get_ctx()
    ctx.text_align = ctx.CENTER
    ctx.text_baseline = ctx.MIDDLE
    
    synth = tinysynth(440,1)
    synth.decay(25)
    
    popcorn = [9,7,9,5,0,5,-3,999]
    
    def on_step(data):
    	note = popcorn[data["step"]]
    	if note != 999:
    		synth.tone(note)
    		synth.start()
    	
    	
    	ctx.rgb(1,1,0).rectangle(-120,-120,240,240).fill()
    	(x,y) = xy_from_polar(90,-2*math.pi/8*data["step"]+math.pi)
    	size=180
    	ctx.rgb(0.8,0.8,0)
    	ctx.round_rectangle(
    			x-size/2,
    			y-size/2,
    			size,size,size//2
    	).fill()
    	ctx.move_to(x,y).rgb(0.5,0.5,0).text("{}".format(data["step"]))
    	hardware.display_update()
    	
    	
    	
    	
    event.Sequence(bpm=160, steps=8, action=on_step, loop=True)
    event.the_engine.eventloop()