#33 PIU Prototype

Fechado
4 anos atrás foi aberto por clementinecomputing · 2 comentários

Create a working Passenger Interface Unit (PIU) prototype.

  • Accept magstripe fare media
  • Accept RFID fare media
  • Accept QR fare media
  • Communicate back to DIU (via RS232 connection)
    • Show DIU messages to rider
    • Communicate fare media back to DIU

The high level structure is:

  • "kiosk" web front end to display text and video feed
  • web front end uses a websocket connection to receive communication about message updates
  • video camera feed is processed via an OpenCV Python script to interpret QR codes (and overlay other information over the video feed) that is then pumped through ffmpeg to utilize v4l2loopback//dev/video[01]
  • motion is used to provide the video feed for the web server, taking it's feed from /dev/video1
  • magstripe credentials are read in from a USB magstripe reader that behaves as an input device but that has been corralled through a Python script to interpret it
  • RFID credentials are read through a proxmark3 sensor
  • socat bridge is used to connect the i2c input through to a virtual RS232 interface to communicate back to the DIU through
    • An Arduino is used on the a shield as in the case of the DIU
  • Credential information is deposited in /home/bus/log/credential.(rfid|magstripe|barcode) files with a format of <timestamp>: <data>
  • Credential files are scanned for, with new credentials being communicated to the communication bridge to the DIU, storing local state so credentials aren't communicated more than once
Create a working Passenger Interface Unit (PIU) prototype. * Accept magstripe fare media * Accept RFID fare media * Accept QR fare media * Communicate back to DIU (via RS232 connection) - Show DIU messages to rider - Communicate fare media back to DIU The high level structure is: * "kiosk" web front end to display text and video feed * web front end uses a websocket connection to receive communication about message updates * video camera feed is processed via an OpenCV Python script to interpret QR codes (and overlay other information over the video feed) that is then pumped through ffmpeg to utilize `v4l2loopback`/`/dev/video[01]` * `motion` is used to provide the video feed for the web server, taking it's feed from `/dev/video1` * magstripe credentials are read in from a USB magstripe reader that behaves as an input device but that has been corralled through a Python script to interpret it * RFID credentials are read through a `proxmark3` sensor * `socat` bridge is used to connect the i2c input through to a virtual RS232 interface to communicate back to the DIU through - An Arduino is used on the a shield as in the case of the DIU * Credential information is deposited in `/home/bus/log/credential.(rfid|magstripe|barcode)` files with a format of `<timestamp>: <data>` * Credential files are scanned for, with new credentials being communicated to the communication bridge to the DIU, storing local state so credentials aren't communicated more than once
clementinecomputing comentado 4 anos atrás
Proprietário

TODO:

  • clean up the "manager" scripts in the rc.local file, making the managed scripts be called directly if possible
  • setup the socat bridge on startup
  • create the communication bridge
    • test with DIU to verify PIU is receiving good messages
    • test with DIU to verify PIU can send credential information
  • create the fare monitor to detect delta credential information
  • do a full integration test to verify it's accepting fare media etc.

Lower priority TODO:

  • flip camera to have 'mirror' effect and make sure text is displayed properly
  • move log files to /home/bus/log
  • setup watchdogs on the various scripts and have a facility to restart if need be
TODO: * ~~clean up the "manager" scripts in the `rc.local` file, making the managed scripts be called directly if possible~~ * ~~setup the `socat` bridge on startup~~ * ~~create the communication bridge~~ - ~~test with DIU to verify PIU is receiving good messages~~ - ~~test with DIU to verify PIU can send credential information~~ * ~~create the fare monitor to detect delta credential information~~ * ~~do a full integration test to verify it's accepting fare media etc.~~ Lower priority TODO: * flip camera to have 'mirror' effect and make sure text is displayed properly * ~~move log files to `/home/bus/log`~~ * setup watchdogs on the various scripts and have a facility to restart if need be
clementinecomputing citou este problema em um commit 4 anos atrás
clementinecomputing comentado 4 anos atrás
Proprietário

The PIU prototype is finished.

There are some things that need to be done before this can built out:

  • Magstripe reader for both orientations (instead of one)
    • At worst, this can be two mag strip readers jammed into a single hardware with two USB outs
  • RFID reader that can read MiFare media in addition to the 125KHz
  • Watchdogs on the processes to make it more robust
  • Flip camera to give better user feedback
  • Server side and DIU side QR code infrastructure

The last point is out of scope for the prototype but is required to get the QR code functionality working. The PIU is setup to pass the QR code verbatim so is agnostic as to the content.

The PIU prototype is finished. There are some things that need to be done before this can built out: * Magstripe reader for both orientations (instead of one) - At worst, this can be two mag strip readers jammed into a single hardware with two USB outs * RFID reader that can read MiFare media in addition to the 125KHz * Watchdogs on the processes to make it more robust * Flip camera to give better user feedback * Server side and DIU side QR code infrastructure The last point is out of scope for the prototype but is required to get the QR code functionality working. The PIU is setup to pass the QR code verbatim so is agnostic as to the content.
Faça login para participar desta conversação.
Sem milestone
Não atribuída
1 participantes
Carregando...
Cancelar
Salvar
Ainda não há conteúdo.