Upload
brian-painter
View
18
Download
0
Embed Size (px)
Citation preview
Hub-ology and the Video VillageBrian Corbin & Brian Painter
Hub-ology
Equip, Educate, and Encourage Rural problem-solvers
Bloomberg Public Art Challenge
The City of Spartanburg was selected as one of four cities to participate as part of the Bloomberg Philanthropies Public Art Challenge, a new program to support temporary public art projects that celebrate creativity, enhance urban identity, encourage public-private partnerships, and drive economic development.
Seeing Spartanburg in a New Light brings nine temporary art installations to public spaces in ten neighborhoods throughout the city.
Video Village Project52 Independent projectors show videos on windows at an abandoned housing project
Highland Neighborhood Spartanburg
Videos tell stories with content curated by White Elephant Enterprises
Content WorkflowFirst videos are sourced from
interviews with the Highland community
Edited to project on selected projectors as part of a showing
One audio track is played as part of the show
Each night for a selected period the show is repeated.
We heard of something called a Raspberry Pi~Tim & Robyn Farrell 03/28/16
Amazon Web Services & Django
Use Django as the Scheduling HubInterface to upload videos and create
schedulesElastic Beanstalk makes it easy to spin
up a Django environment in AWS
DjangoBasic admin page for scheduling
DjangoBasic admin page for scheduling
DjangoStatus for all Projectors
Raspberry Pi 3Quad Core Arm Processor @1.2GhzGPU: Broadcom VideoCore IV @ 400 MHz.Memory: 1 GB LPDDR2-900 SDRAM.USB ports: 4.Network: 10/100 MBPS Ethernet, 802.11n
Wireless LAN, Bluetooth 4.0Debian Jessie Linux
Raspberry Pi Responsibilities:
Play video over HDMI connection to projector at scheduled showtime
Control projector over RS-232 USB
Download video prior to showtime
“Phone home” with current status on a regular basis
Raspberry Pi APIUse Flask to create API for
interacting with PiPlay Video, Create Schedule,
Cache Video commands
Projector ControlSerial RS232
Control to Turn on/off projector
Warm up time
Projector Controlimport serialCMD_ACK = '\x03\x14\x00\x00\x00\x14'ERROR_STATUS_CMD = '\x07\x14\x00\x05\x00\x34\x00\x00\x0C\x0D\x66'POWER_ON_CMD = '\x06\x14\x00\x04\x00\x34\x11\x00\x00\x5D'POWER_OFF_CMD = '\x06\x14\x00\x04\x00\x34\x11\x01\x00\x5E'
Projector Controlclass Projector(object):… def send(self, command): if self.serial_port: self.serial_port.write(command)
Testing and configuring the system
Trial RunToo much power for
the building
Time code synchronization
Found out that as we played videos we needed to synchronize the pi’s to play at the appropriate times.
Time code synchronization
Used NTP to sync time on Pi’s
Scheduler to run tasks each second
Software updateNo access to Pi’s after initial install
Software updateAnsible for running update script
Inside the buildingVery “rustic”
environmentHot - we sensed temp
on the Pi’s to see how hot
Lessons Learned
Tools we likedWe used Slack for asynchronous team interactions and for voice calls
Tools we likedAvoided tendency to write/do everything
from scratchSecure tunnels allowed for remote
management and troubleshootingNgrok quoted a fixed fee for duration of
project
Watch out forNot all RS232 USB cables are created equal
Watch out forBe sure to consider reboots, hardware replacement, processing stopping, etc.
Watch out forPolling for video schedules and caching helped out during periods when Internet connectivity was lost
Working together we can make a big impact
https://vimeo.com/194577420
Opening Night with the Community
Get Involvedgithub.com/hub-ology/video_village
github.com/hub-ology/video-village-pi
Get Involvedhub-ology.org