def test_init(mock_controller): gpio = Mock() instance = Mock() instance.get_port = Mock() instance.get_gpio = Mock(return_value=gpio) mock_controller.side_effect = [instance] ftdi_spi(device='ftdi://dummy', bus_speed_hz=16000000, gpio_CS=3, gpio_DC=5, gpio_RST=6) mock_controller.assert_called_with(cs_count=1) instance.configure.assert_called_with('ftdi://dummy') instance.get_port.assert_called_with(cs=0, freq=16000000, mode=0) instance.get_gpio.assert_called_with() gpio.set_direction.assert_called_with(0x60, 0x60)
def get_device(args): if 'emulator' in args and args.emulator: import luma.emulator.device Device = getattr(luma.emulator.device, args.emulator) return Device(**vars(args)) else: from luma.oled.device import ssd1309 from luma.core.interface.serial import ftdi_spi return ssd1309(ftdi_spi(), **vars(args))
def test_cleanup(mock_controller): gpio = Mock() port = Mock() instance = Mock() instance.get_port = Mock(return_value=port) instance.get_gpio = Mock(return_value=gpio) mock_controller.side_effect = [instance] serial = ftdi_spi(device='ftdi://dummy', bus_speed_hz=16000000, gpio_CS=3, gpio_DC=5, gpio_RST=6) serial.cleanup() instance.terminate.assert_called_once_with()
def test_data(mock_controller): data = list(fib(100)) gpio = Mock() port = Mock() instance = Mock() instance.get_port = Mock(return_value=port) instance.get_gpio = Mock(return_value=gpio) mock_controller.side_effect = [instance] serial = ftdi_spi(device='ftdi://dummy', bus_speed_hz=16000000, gpio_CS=3, gpio_DC=5, gpio_RST=6) serial.data(data) gpio.write.assert_has_calls([call(0x00), call(0x40), call(0x60)]) port.write.assert_called_once_with(data)
def test_command(mock_controller): cmds = [3, 1, 4, 2] gpio = Mock() port = Mock() instance = Mock() instance.get_port = Mock(return_value=port) instance.get_gpio = Mock(return_value=gpio) mock_controller.side_effect = [instance] serial = ftdi_spi(device='ftdi://dummy', bus_speed_hz=16000000, gpio_CS=3, gpio_DC=5, gpio_RST=6) serial.command(*cmds) gpio.write.assert_has_calls([call(0x00), call(0x40), call(0x40)]) port.write.assert_called_once_with(cmds)
def sec_to_min(value): minute = 0 while (value >= 60): value -= 60 minute += 1 return '{:02}'.format(minute) + ':' + '{:02}'.format(value) sct = mss() visualizer = Cava() visualizer.start() serial = ftdi_spi('ftdi://ftdi:232h/1', gpio_CS=4, gpio_DC=6, gpio_RST=7) serial2 = ftdi_spi('ftdi://ftdi:232h/1', gpio_CS=3, gpio_DC=6, gpio_RST=7) device = ssd1322(serial) device2 = ssd1322(serial2) mpd = MPDClient() mpd.connect('localhost', 6600) fontMid = ImageFont.truetype('./fonts/DBSTRAIG.TTF', 12) trkFont = ImageFont.truetype('./fonts/851Gkktt_005.ttf', 12) albumFont = ImageFont.truetype('./fonts/PixelMplus12-Regular.ttf', 12) faFont = ImageFont.truetype('/usr/share/fonts/TTF/fa-solid-900.ttf', 12) gif = Image.open('./gifs/giphy.gif') #gif = Image.open('./gifs/okabe.gif')
def ftdi_spi(self): from luma.core.interface.serial import ftdi_spi return ftdi_spi(device=self.opts.ftdi_device, bus_speed_hz=self.opts.spi_bus_speed, gpio_DC=self.opts.gpio_data_command, gpio_RST=self.opts.gpio_reset)
#from luma.core.interface.serial import i2c from PIL import Image, ImageFont, ImageDraw, ImageSequence from luma.core.interface.serial import ftdi_spi from luma.core.render import canvas from luma.oled.device import ssd1322 import time # serial = i2c(port=1, address=0x3C) serial = ftdi_spi(device='ftdi://ftdi:2232h/1', gpio_DC=5, gpio_RST=6, bus_speed_hz=20000000) device = ssd1322(serial) # Box and text rendered in portrait mode #with canvas(device) as draw: # draw.rectangle(device.bounding_box, outline="white", fill="black") # draw.text((10, 40), "Hello World", fill="white") # #sleep(10) gif = Image.open('gifs/kbyd.gif') while True: for i, f in enumerate(ImageSequence.Iterator(gif)): img = Image.new('RGB', (256, 64), (0, 0, 0)) img.paste(f.resize((256, 64)), (0, 0)) time.sleep(0.005)
def ftdi_spi(self): from luma.core.interface.serial import ftdi_spi return ftdi_spi(device=self.opts['ftdi_device'], bus_speed_hz=self.opts['spi_bus_speed'], gpio_DC=self.opts['gpio_data_command'], gpio_RST=self.opts['gpio_reset'])
#from luma.core.interface.serial import i2c from luma.core.interface.serial import ftdi_spi from luma.core.render import canvas from luma.oled.device import ssd1322 from time import sleep # serial = i2c(port=1, address=0x3C) serial = ftdi_spi(device='ftdi://ftdi:2232h/1', gpio_DC=5, gpio_RST=6) device = ssd1322(serial) # Box and text rendered in portrait mode with canvas(device) as draw: draw.rectangle(device.bounding_box, outline="white", fill="black") draw.text((10, 40), "Hello World", fill="white") sleep(10)
def val_map(value, in_min, in_max, out_min, out_max): return (value - in_min) * (out_max - out_min) / (in_max - in_min) + out_min def sec_to_min(value): minute = 0 while (value >= 60): value -= 60 minute += 1 return '{:02}'.format(minute) + ':' + '{:02}'.format(value) visualizer = Cava() visualizer.start() serial = ftdi_spi(gpio_DC=5, gpio_RST=6) #serial2 = ftdi_spi(device='ftdi://ftdi:2232h/2', gpio_CS=, gpio_DC=5, gpio_RST=6) #serial2 = ftdi_spi(device='ftdi://ftdi:2232h/1', gpio_CS=4) serial2 = ftdi_spi(gpio_CS=4, gpio_DC=5, gpio_RST=6) device = ssd1322(serial) device2 = ssd1322(serial2, rotate=2) mpd = MPDClient() mpd.connect('localhost', 6600) fontMid = ImageFont.truetype('./fonts/DBSTRAIG.TTF', 12) albumFont = ImageFont.truetype('./fonts/851Gkktt_005.ttf', 14) faFont = ImageFont.truetype('/usr/share/fonts/TTF/fa-solid-900.ttf', 12) gif = Image.open('./gifs/giphy.gif')