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.

(MakerConf2014) Raspberry P as a Registration System

25,116 views

Published on

用 Raspberry Pi 做報到系統,結合了觸控螢幕 + NFC Reader + 熱感式印表機。本系統在 MakerConf 2014 報到時實際使用。
http://makerconf.tw

Published in: Technology

(MakerConf2014) Raspberry P as a Registration System

  1. 1. Raspberry Pi 好好玩 - 報到系統篇 台灣樹莓派 <sosorry@raspberrypi.com.tw> Aug 9, 2014 /MakerConf
  2. 2. 姓名標示 — 非商業性 — 相同方式分享 CC (Creative Commons) 姓名標示 — 你必須給予 適當表彰、提供指向本授權 條款的連結,以及 指出(本作品的原始版本)是否已 被變更。你可以任何合理方式為前述表彰,但不得以 任何方式暗示授權人為你或你的使用方式背書。 非商業性 — 你不得將本素材進行商業目的之使 用。 相同方式分享 — 若你重混、轉換本素材,或依本 素材建立新素材,你必須依本素材的授權條款來 散布你的貢獻物。
  3. 3. ● Element14 指定台灣地區 Raspberry Pi 獨家經銷商 ● 專注於 Raspberry Pi 應用與推廣 ● 舉辦 Raspberry Pi 社群聚會和工作坊 about 台灣樹莓派
  4. 4. ● Element14 指定台灣地區 Raspberry Pi 獨家經銷商 ● 專注於 Raspberry Pi 應用與推廣 ● 舉辦 Raspberry Pi 社群聚會和工作坊 ● #1 : Raspberry Pi 介紹與應用 ● #2 :深入淺出 GPIO ● #3 : Raspberry Pi Camera 使用 ● #4 :用 Pi 做自走車 ● #5 :用 Pi 學習 Linux 驅動程式 ● #6 : Java 8 on Raspberry Pi about 台灣樹莓派
  5. 5. 本場次屬「教學與教育的應用」
  6. 6. Maker = 解決問題的人
  7. 7. 2012 COSCUP 報到 http://www.plurk.com/p/h39baa
  8. 8. 2013 COSCUP 報到 https://www.flickr.com/photos/coscup/9634483039/
  9. 9. 2014 COSCUP 報到 http://www.ithome.com.tw/news/89509
  10. 10. ● 2012 年以人工開 10 個櫃台報到 (1119 人 ) ● 2013 年以平板感應 NFC 的方式 ( 約 1500 人 ) ● 2014 年在報到入口加裝感應門 ( 約 1560 人 ) ● 1 分鐘可以有 41 人報到 ● 平均一人報到時間為 1.46 秒 ● 有 197 人通過閘門但卡片感應失敗 ● 2013/2014 的 NFC 由雪爾萊克 (Sharelike) 提供 近年來 COSCUP 報到方式 http://www.ithome.com.tw/news/89509
  11. 11. ● 問題: ● 本次活動原來預估會有 300 人參加 ● 報到區需要 3 人以上
  12. 12. ● 問題: ● 本次活動原來預估會有 300 人參加 ● 報到區需要 3 人以上 ● 可能的解決方法: ● 每個人上傳照片 , 會場以人臉識別報到 ● 寫手機 App, 讓所有人安裝 , 報到用手機感應 ● 寄發 NFC 識別證 , 報到時用識別證感應
  13. 13. ● 問題: ● 本次活動原來預估會有 300 人參加 ● 報到區需要 3 人以上 ● 可能的解決方法: ● 每個人上傳照片 , 會場以人臉識別報到 ● 寫手機 App, 讓所有人安裝 , 報到用手機感應 ● 寄發 NFC 識別證 , 報到時用識別證感應 ● 考慮因素: ● 實做時間 , 價格 , 學習性
  14. 14. NFC 近場通訊
  15. 15. 15 http://blogs.ifsworld.com/2013/06/come-on-apple-nfc-is-good-for-business/ NFC 線圈
  16. 16. 16 http://us.moo.com/nfc/ http://blogs.ifsworld.com/2013/06/come-on-apple-nfc-is-good-for-business/ NFC 線圈 可做成貼紙
  17. 17. 17http://2d-code.co.uk/nfc-business-card/ http://us.moo.com/nfc/ http://blogs.ifsworld.com/2013/06/come-on-apple-nfc-is-good-for-business/ NFC 線圈 可做成貼紙 NFC 名片和手機互動的應用
  18. 18. 常用的 NFC Reader + NFC Tag : PN532 + MiFare Classic Cards https://www.adafruit.com/products/364
  19. 19. NFC Data Exchange Format (NDEF) Beginning NFC - Near Field Communication with Arduino,Android, and PhoneGap
  20. 20. ● 硬體 ● NFC Reader : PN532 ● NFC Tag : MiFare 感應白卡 ● 軟體 ● libnfc, pynfc ● 邏輯 ● 事先儲存感應白卡的 UID ● 當 reader 讀到 tag 的 UID 時做比對 實做 NFC 感應所需要的準備
  21. 21. 這樣就可以紀錄不同的識別證
  22. 22. 為這次報到系統再加一些東西吧
  23. 23. ● 能顯示報到者的資訊 ● 除了會場報到 , 工作坊報到也能使用 ● 可以列印抽獎聯或收據 ● 可雲端同步資料 ● 可擴充硬體 多加的功能與對應的硬體
  24. 24. ● 能顯示報到者的資訊 ( 螢幕顯示 ) ● 除了會場報到 , 工作坊報到也能使用 ( 資料庫 ) ● 可以列印抽獎聯或收據 ( 熱感式印表機 ) ● 可雲端同步資料 ( 無線網卡 ) ● 可擴充硬體 ( 串接 ) 多加的功能與對應的硬體
  25. 25. 熱感式印表機
  26. 26. 熱感式紙張應用
  27. 27. 熱感式紙張應用 熱感式印刷原理
  28. 28. 熱感式紙張應用 熱感式印刷原理 常見熱感式印表機
  29. 29. 熱感式紙張應用 熱感式印刷原理 常見熱感式印表機 手持式熱感式印表機
  30. 30. ● 內建 BIG-5 中文字型 ● 支援 RS-232 或 TTL 通訊介面 ● 可印圖形 / 曲線 / 文字等 ● 印刷速度 : 6 cm/s ● 解析度 : 8 點 /cm 本次選用的印表機特色與規格
  31. 31. 和印表機溝通:從 Serial 送 Raw Byte
  32. 32. 再來說說觸控螢幕吧
  33. 33. ● 觸控螢幕 = 螢幕 + 觸控 ● 螢幕 = HDMI 或 RCA 或 RGB ● 觸控 = USB 或 SPI / I2 C Raspberry Pi 的觸控螢幕選擇 chalk-elec HDMI + USB Gechic 1002 HDMI + USB Adafruit PiTFT RGB + SPI SainSmart 3.2” RGB + SPI
  34. 34. 34 如何將畫面輸出到螢幕?
  35. 35. 35 先從硬體架構講起
  36. 36. 36 LCD 和 Framebuffer 的關係 http://www.clivemaxfield.com/diycalculator/popup-h-console.shtml 不同顏色深度顯示的結果 資料透過顯示卡輸出到螢幕的示意圖 從 Framebuffer 透過 DAC 轉換後輸出到螢幕
  37. 37. 37 16-bit = 16 pin 現實是:沒有這麼多腳位可以用
  38. 38. 38 4094 - 序列轉並列 http://www.channel9.msdn.com http://www.xuan.idv.tw/wordpress/?p=1181 4094 腳位說明 4094 時序圖 序列轉並列示意圖
  39. 39. 39 ● 一個 4094 只能輸出 8bits ● 16bits 需串接兩個 4094 ● 再外接一顆 IC 做訊號同步處理 訊號同步 http://www.myu.ac.jp/~xkozima/lab/raspTutorial3.html
  40. 40. 40 電路圖 http://www.myu.ac.jp/~xkozima/lab/raspTutorial3.html
  41. 41. 41 ÷Pi – 轉換電路 - LCD http://www.myu.ac.jp/~xkozima/lab/raspTutorial3.html
  42. 42. 42 以上是顯示部份電路圖 再加上觸控的電路圖吧
  43. 43. 43 電路圖 http://ozzmaker.com/2013/05/23/raspberry-pi-with-a-3-2-tft-with-touch-control/
  44. 44. 44 再講講軟體
  45. 45. 45 http://blog.csdn.net/stefzeus/article/details/6258216 SPI / I2 C / UART / PWM GPIO (General Purpose Input/Output)
  46. 46. ● 決定是輸入還是輸出 ● 寫值到某根腳位 ● 從某根腳位讀值 ● 決定是正緣觸發還是負緣觸發 ● 等待中斷 (interrupt) 的發生 那軟體做什麼 ? 控制硬體
  47. 47. ● 直接修改 register 的值 ● 步驟 1, 看 datasheet ● 步驟 2, 查 register ● 步驟 3, 填對應的值 ● 透過 driver 進行操作 控制硬體的方法
  48. 48. 48 看 datasheet
  49. 49. BCM2835 ARM Peripherals http://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdf 共 205 頁
  50. 50. 50 查 register
  51. 51. ● Page 5
  52. 52. 存取 register = 在記憶體位置讀寫值
  53. 53. // RPI.h struct bcm2835_peripheral { unsigned long addr_p; // 指到實體記憶體位址 int mem_fd; // 開啟 /dev/mem 的 fd void *map; // memory map 的回傳 volatile unsigned int *addr; // 指到 register 的位址 }; // RPI.c struct bcm2835_peripheral gpio = {GPIO_BASE}; 先定義週邊成一個 structure
  54. 54. 1. 開啟記憶體裝置 2. 映射到實體記憶體空間 // RPI.c fd = open(“/dev/mem”, O_RDWR|O_SYNC); mmap(NULL, BLOCK_SIZE, PROT_READ, MAP_SHARED, mem_fd, addr_p);
  55. 55. 在顯示器上畫畫面 = 寫 Framebuffer
  56. 56. void fb_init (int *fb_width, int *fb_height) ● { ● fb_fd = open(“/dev/fb0”, O_RDWR); ● fb_mem = (unsigned char *) ● mmap(NULL, fb_size, PROT_READ | PROT_WRITE, MAP_SHARED, fb_fd, 0); ● } ● ● unsigned char *fb_get () ● { ● return (unsigned char *) fb_mem; ● } 開啟 Framebuffer 裝置 http://www.myu.ac.jp/~xkozima/lab/raspTutorial3.html
  57. 57. void lcd_send (unsigned char *buffer) ● { ● lcd_comdat(0x4f, 0x00, 0x00); // 繪圖開始位置(x, y) = (0, 0) ● lcd_comdat(0x4e, 0x00, 0xef); ● lcd_com(0x22); // 繪圖命令傳輸 ● spi_send_buffer(buffer); ● } ● ● void main () ● { ● lcd_init(IMAGE_SIZE); ● while (1) lcd_send(fb_get()); ● } 將 /dev/fb0 資料轉送到 GPIO http://www.myu.ac.jp/~xkozima/lab/raspTutorial3.html
  58. 58. 58 第一版:沒有觸控功能的觸控螢幕
  59. 59. 59 第二版:觸控功能接上去了
  60. 60. 最後:整合硬體並實做報到功能
  61. 61. ● Raspberry Pi Model B ● PN532 NFC Reader + NFC Tag ● 觸控螢幕 ● 熱感應印表機 ● 一堆線材和電容電阻 所需零件
  62. 62. 指揮挺組合 +UI
  63. 63. DEMO 請到報到處看
  64. 64. 結果還是有三個人在報到櫃台 - 因為要給發票和識別證吊牌 https://www.flickr.com/photos/sph999999/14718132127/in/set-72157646412879852
  65. 65. ● 以觸控螢幕說明 Linux 顯示系統 ● 從查找 datasheet 學習軟硬整合能力 ● 透過不同的硬體介面控制週邊裝置 ● 以一個簡單的系統解決實際問題 ● 合作的重要性 ... 本次實做在教學上的應用
  66. 66. 識別證加工過程 感謝辛苦的師大學弟們
  67. 67. Raspberry Pi Rocks the World Thanks

×