Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
It is amazing what you
can do with 128 pixels
Xavier Orduña
Python Meetup BCN
26th November
(Using Telegram as an Interfac...
Back to the Origin
(2.560 x 1.600 pixels)(84 x 47 pixels) (160 x 144 pixels)
The Challenge
The Screen
A lot of wiring!!
128 px
128px
80 cm
80cm
About 1000 EUR in electronics!
Architecture
Telegram Bot
Redis DB (Model)
Amazon S3 (Images)
Flask API
Celery (tasks)
HDMI + LED Controller
GPIO Header
Telegram Bot
•  API: https://core.telegram.org/bots/api
•  Python Library:
https://github.com/leandrotoledo/python-
telegr...
Telegram Bot
(here goes the logic with the messages)
Telegram Bot
(gets a photo or text and posts it to our API)
Telegram Bot
(Send a message to the user)
(Send a keyboard to the user)
Model in Redis
•  The most easy and FUN database
•  You can represent complex models (
http://redis.io/topics/twitter-clon...
Model in Redis
•  walls_list list	
  of	
  wall	
  id’s	
  
•  wall_ids	
  counter	
  with	
  last	
  wall	
  id	
  
•  po...
Model in Redis
API (Flask)
•  Its easy and well documented
•  Almost everything included (jinja2,
sessions, cookies, request, …)
•  Very ...
API (Flask)
API (Flask)
API (Flask)
Celery Task Mngt
•  Task manager easy to use!
•  It can use Redis as a Backend and Broker
•  But also MongoDB or RabbitMQ
Celery Task Mngt
Convert to image
Fonts from: www.dafont.com
Convert to image
a3er	
  a	
  couple	
  of	
  hours	
  trying	
  to	
  resize	
  an	
  image,	
  
	
  I	
  decied	
  to	
 ...
Amazon S3
•  Easy place to store images
•  Organized in buckets
•  Best library is “boto”
•  You should create new keys fo...
Amazon S3
LED Matrix
Available at: http://www.adafruit.com/products/1484 (40 USD)
LED Wall
Tutorial here: https://learn.adafruit.com/adafruit-diy-led-video-wall/overview
It is fun to build it, but you can...
RaspberryPI
•  Last version: Raspberry PI 2 Model B
•  Less than 40 USD
•  1 Gb RAM
•  To speedup development share the ho...
RaspberryPI
LED	
  GPIO	
  HAT	
  available	
  at	
  Adafruit,	
  it	
  can	
  manage	
  up	
  to	
  4	
  32x32	
  LED	
  ...
RaspberryPI
Chinese LED wall controller.
Input is DVI and it maps W x H pixels to LED wall (300 USD)
RaspberryPI
Framebuffer
•  PyGame enables us to access the
framebuffer directly
•  We can show images or sprites
•  Programs to modify...
Framebuffer
The Result
Thank you!
code:
xavier.orduna@gmail.com
Upcoming SlideShare
Loading in …5
×

Using Telegram to interact with an LED Matrix

837 views

Published on

In this presentation I will show you how to interact with an LED Matrix using Telegram and a Raspberrypi

Published in: Devices & Hardware
  • Be the first to comment

  • Be the first to like this

Using Telegram to interact with an LED Matrix

  1. 1. It is amazing what you can do with 128 pixels Xavier Orduña Python Meetup BCN 26th November (Using Telegram as an Interface for an LED wall)
  2. 2. Back to the Origin (2.560 x 1.600 pixels)(84 x 47 pixels) (160 x 144 pixels)
  3. 3. The Challenge
  4. 4. The Screen A lot of wiring!! 128 px 128px 80 cm 80cm About 1000 EUR in electronics!
  5. 5. Architecture Telegram Bot Redis DB (Model) Amazon S3 (Images) Flask API Celery (tasks) HDMI + LED Controller GPIO Header
  6. 6. Telegram Bot •  API: https://core.telegram.org/bots/api •  Python Library: https://github.com/leandrotoledo/python- telegram-bot •  New bot token: @BotFather •  Bot name: walledbot
  7. 7. Telegram Bot (here goes the logic with the messages)
  8. 8. Telegram Bot (gets a photo or text and posts it to our API)
  9. 9. Telegram Bot (Send a message to the user) (Send a keyboard to the user)
  10. 10. Model in Redis •  The most easy and FUN database •  You can represent complex models ( http://redis.io/topics/twitter-clone) •  Key, value storage with steroids (sets, lists, hashes) •  All operations are atomic •  You can use Redis Desktop Manager (linux, mac, windows)
  11. 11. Model in Redis •  walls_list list  of  wall  id’s   •  wall_ids  counter  with  last  wall  id   •  posts_ids  counter  with  last  post  id   •  walls:  list  with  wall  ids   •  walls:WALL_ID  hash  with  wall  data   •  posts:POST_ID  hash  with  post  data   •  walls_posts:WALL_ID  list  with  posts  id’s      
  12. 12. Model in Redis
  13. 13. API (Flask) •  Its easy and well documented •  Almost everything included (jinja2, sessions, cookies, request, …) •  Very similar to bottle •  Can be deployed using uWSGI or run standalone •  API and Web app all in one!
  14. 14. API (Flask)
  15. 15. API (Flask)
  16. 16. API (Flask)
  17. 17. Celery Task Mngt •  Task manager easy to use! •  It can use Redis as a Backend and Broker •  But also MongoDB or RabbitMQ
  18. 18. Celery Task Mngt
  19. 19. Convert to image Fonts from: www.dafont.com
  20. 20. Convert to image a3er  a  couple  of  hours  trying  to  resize  an  image,    I  decied  to  use  a  script  found  in  somewhere:  h;ps://gist.github.com/sigilioso/2957026    
  21. 21. Amazon S3 •  Easy place to store images •  Organized in buckets •  Best library is “boto” •  You should create new keys for your application •  The AWS backend is sometimes confusing
  22. 22. Amazon S3
  23. 23. LED Matrix Available at: http://www.adafruit.com/products/1484 (40 USD)
  24. 24. LED Wall Tutorial here: https://learn.adafruit.com/adafruit-diy-led-video-wall/overview It is fun to build it, but you can find it already mounted and ready to go!
  25. 25. RaspberryPI •  Last version: Raspberry PI 2 Model B •  Less than 40 USD •  1 Gb RAM •  To speedup development share the home folder using samba •  If you plan to play with it, get a keyboard and a screen.
  26. 26. RaspberryPI LED  GPIO  HAT  available  at  Adafruit,  it  can  manage  up  to  4  32x32  LED  Matrix  
  27. 27. RaspberryPI Chinese LED wall controller. Input is DVI and it maps W x H pixels to LED wall (300 USD)
  28. 28. RaspberryPI
  29. 29. Framebuffer •  PyGame enables us to access the framebuffer directly •  We can show images or sprites •  Programs to modify framebuffer must run with sudo
  30. 30. Framebuffer
  31. 31. The Result
  32. 32. Thank you! code: xavier.orduna@gmail.com

×