UcgLogo.lua 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169
  1. local disp
  2. -- setup SPI and connect display
  3. local function init_spi_display()
  4. -- Hardware SPI CLK = GPIO14
  5. -- Hardware SPI MOSI = GPIO13
  6. -- Hardware SPI MISO = GPIO12 (not used)
  7. -- Hardware SPI /CS = GPIO15 (not used)
  8. -- CS, D/C, and RES can be assigned freely to available GPIOs
  9. local cs = 8 -- GPIO15, pull-down 10k to GND
  10. local dc = 4 -- GPIO2
  11. local res = 0 -- GPIO16
  12. local bus = 1
  13. spi.setup(bus, spi.MASTER, spi.CPOL_LOW, spi.CPHA_LOW, 8, 8)
  14. -- we won't be using the HSPI /CS line, so disable it again
  15. gpio.mode(8, gpio.INPUT, gpio.PULLUP)
  16. -- initialize the matching driver for your display
  17. -- see app/include/ucg_config.h
  18. --disp = ucg.ili9341_18x240x320_hw_spi(bus, cs, dc, res)
  19. disp = ucg.st7735_18x128x160_hw_spi(bus, cs, dc, res)
  20. end
  21. local function upper_pin(x, y)
  22. local w = 7
  23. local h = 6
  24. disp:setColor(0, 212, 212, 212)
  25. disp:setColor(1, 200, 200, 200)
  26. disp:setColor(2, 200, 200, 200)
  27. disp:setColor(3, 188, 188, 188)
  28. disp:drawGradientBox(x, y, w, h)
  29. --disp:drawVLine(x+w, y+1, len)
  30. disp:setColor(0, 220, 220, 220)
  31. disp:setColor(1, 232, 232, 232)
  32. disp:drawGradientLine(x+w, y, h, 1)
  33. end
  34. local function lower_pin(x, y)
  35. local w = 7
  36. local h = 5
  37. disp:setColor(0, 212, 212, 212)
  38. disp:setColor(1, 200, 200, 200)
  39. disp:setColor(2, 200, 200, 200)
  40. disp:setColor(3, 188, 188, 188)
  41. disp:drawGradientBox(x, y, w, h)
  42. --disp:drawVLine(x+w, y+1, len)
  43. disp:setColor(0, 220, 220, 220)
  44. disp:setColor(1, 232, 232, 232)
  45. disp:drawGradientLine(x+w, y, h, 1)
  46. disp:setColor(0, 220, 220, 220)
  47. disp:setColor(1, 232, 232, 232)
  48. disp:drawGradientLine(x, y+h, w, 0)
  49. disp:setColor(0, 240, 240, 240)
  50. disp:drawPixel(x+w, y+h)
  51. end
  52. local function ic_body(x, y)
  53. local w = 4*14+4
  54. local h = 31
  55. disp:setColor(0, 60, 60, 60)
  56. disp:setColor(1, 40, 40, 40)
  57. disp:setColor(2, 48, 48, 48)
  58. disp:setColor(3, 30, 30, 30)
  59. disp:drawGradientBox(x, y, w, h)
  60. disp:setColor(0, 255, 168, 0)
  61. --disp:setColor(0, 225, 168, 30)
  62. disp:drawDisc(x+w-1, y+h/2-1, 7, bit.bor(ucg.DRAW_UPPER_LEFT, ucg.DRAW_LOWER_LEFT))
  63. disp:setColor(0, 60, 30, 0)
  64. --disp:drawDisc(x+w-1, y+h/2+1, 7, bit.bor(ucg.DRAW_UPPER_LEFT, ucg.DRAW_LOWER_LEFT))
  65. disp:setColor(0, 50, 50, 50)
  66. disp:setColor(0, 25, 25, 25)
  67. disp:drawDisc(x+w-1, y+h/2+1, 7, bit.bor(ucg.DRAW_UPPER_LEFT, ucg.DRAW_LOWER_LEFT))
  68. end
  69. local function draw_ucg_logo()
  70. local a, b
  71. --ucg_Init(ucg, ucg_sdl_dev_cb, ucg_ext_none, (ucg_com_fnptr)0)
  72. disp:setFont(ucg.font_ncenB24_tr)
  73. --disp:setRotate270()
  74. --disp:setClipRange(10,5,40,20)
  75. a = 2
  76. b = 3
  77. disp:setColor(0, 135*a/b,206*a/b,250*a/b)
  78. disp:setColor(1, 176*a/b,226*a/b,255*a/b)
  79. disp:setColor(2, 25*a/b,25*a/b,112*a/b)
  80. disp:setColor(3, 85*a/b,26*a/b,139*a/b)
  81. disp:drawGradientBox(0, 0, disp:getWidth()/4, disp:getHeight())
  82. disp:setColor(1, 135*a/b,206*a/b,250*a/b)
  83. disp:setColor(0, 176*a/b,226*a/b,255*a/b)
  84. disp:setColor(3, 25*a/b,25*a/b,112*a/b)
  85. disp:setColor(2, 85*a/b,26*a/b,139*a/b)
  86. disp:drawGradientBox(disp:getWidth()/4, 0, disp:getWidth()/4, disp:getHeight())
  87. disp:setColor(0, 135*a/b,206*a/b,250*a/b)
  88. disp:setColor(1, 176*a/b,226*a/b,255*a/b)
  89. disp:setColor(2, 25*a/b,25*a/b,112*a/b)
  90. disp:setColor(3, 85*a/b,26*a/b,139*a/b)
  91. disp:drawGradientBox(disp:getWidth()*2/4, 0, disp:getWidth()/4, disp:getHeight())
  92. disp:setColor(1, 135*a/b,206*a/b,250*a/b)
  93. disp:setColor(0, 176*a/b,226*a/b,255*a/b)
  94. disp:setColor(3, 25*a/b,25*a/b,112*a/b)
  95. disp:setColor(2, 85*a/b,26*a/b,139*a/b)
  96. disp:drawGradientBox(disp:getWidth()*3/4, 0, disp:getWidth()/4, disp:getHeight())
  97. upper_pin(7+0*14, 4)
  98. upper_pin(7+1*14, 4)
  99. upper_pin(7+2*14, 4)
  100. upper_pin(7+3*14, 4)
  101. ic_body(2, 10)
  102. lower_pin(7+0*14, 41)
  103. lower_pin(7+1*14, 41)
  104. lower_pin(7+2*14, 41)
  105. lower_pin(7+3*14, 41)
  106. disp:setColor(0, 135*a/b, 206*a/b, 250*a/b)
  107. disp:drawString(63+1, 33+1, 0, "glib")
  108. disp:setColor(0, 255, 168, 0)
  109. disp:drawGlyph(26, 38, 0, 'U')
  110. disp:drawString(63, 33, 0, "glib")
  111. disp:setColor(0, 135*a/b, 206*a/b, 250*a/b)
  112. disp:setColor(1, 135*a/b, 206*a/b, 250*a/b)
  113. disp:setColor(2, 135*a/b, 206*a/b, 250*a/b)
  114. disp:setColor(3, 135*a/b, 206*a/b, 250*a/b)
  115. disp:drawGradientBox(84+1, 42+1-6, 42, 4)
  116. disp:setColor(0, 255, 180, 40)
  117. disp:setColor(1, 235, 148, 0)
  118. --disp:drawGradientLine(79, 42, 20, 0)
  119. disp:setColor(2, 245, 158, 0)
  120. disp:setColor(3, 220, 138, 0)
  121. disp:drawGradientBox(84, 42-6, 42, 4)
  122. disp:setColor(0, 255, 168, 0)
  123. --disp:setFont(ucg.font_5x8_tr)
  124. disp:setFont(ucg.font_7x13B_tr)
  125. --disp:setFont(ucg.font_courB08_tr)
  126. --disp:setFont(ucg.font_timR08_tr)
  127. disp:drawString(2, 54+5, 0, "http://github.com")
  128. disp:drawString(2, 61+10, 0, "/olikraus/ucglib")
  129. --disp:drawString(1, 61, 0, "code.google.com/p/ucglib/")
  130. end
  131. do
  132. init_spi_display()
  133. disp:begin(ucg.FONT_MODE_TRANSPARENT)
  134. disp:clearScreen()
  135. disp:setRotate180()
  136. draw_ucg_logo()
  137. end