!UIT 2012

From Frack - Hackerspace Friesland
Jump to navigationJump to search
Project: !UIT 2012
!UIT 2012 Project.jpg
Status voltooid
Betrokkenen
Afbeelding Anoniem.png Failbaitr
Failbaitr Rol: deelnemer Deskundig met: Arduino, CNC, CNC-Frezen, Canvas, Digitale Fabricatie, ENC28J60, Glasvezel lassen, HTML, Hydroponics, Javascript, LPD8806, Linux, Mercurial, Programmeren, Python, Robotica, Software, Stappenmotor Beginnend met: Elektronica Werkt aan: Geen projecten :(
,
Jildou Achter de Bar.jpg Will-Do
Jildou Achter de Bar.jpgJildou Gerritsma (Will-Do) Rol: deelnemer, persvoorlichter, alg. bestuurslid Deskundig met: Design, GnuCash, Knutselen, Open Data Werkt aan: Geen projecten :(
,
Gebruiker CrazyA.jpg CrazyA
Gebruiker CrazyA.jpgCrazyA Rol: deelnemer Deskundig met: AVR, Arduino, Blender, Elektronica, GL-Inet, LPD8806, POV-Ray, RaspberryPi Werkt aan: Geen projecten :(
,
Gebruiker Iisschots.jpg Iisschots
Gebruiker Iisschots.jpgLouwerens Jan (Iisschots) Rol: deelnemer Werkt aan: Geen projecten :(
,
Gebruiker Lijnenspel.jpg Lijnenspel
Gebruiker Lijnenspel.jpgJelle (Lijnenspel) Rol: niet-deelnemer Deskundig met: Arduino, Programmeren, Sammy Werkt aan: Geen projecten :(
,
Afbeelding Anoniem.png Fludizz
Fludizz Rol: deelnemer Deskundig met: GL-Inet, Glasvezel lassen, Iptables, Linux, Netwerken, Nftables, OpenVPN, Python, RaspberryPi, Software Beginnend met: ENC28J60 Werkt aan: Geen projecten :(
,
Afbeelding Anoniem.png FruitCake
Guido Bouman (FruitCake) Rol: niet-deelnemer Deskundig met: Javascript, Pannenkoeken, Sammy Werkt aan: Geen projecten :(
Kennisgebied(en) Elektronica, AVR, Arduino, CouchDB
, Coffeescript
, ENC28J60
Afgeleide projecten Poerbest v2
ProjectoverzichtProject toevoegen

Frack gaat op de !UIT-markt van 2012 (op 9 september 2012) de Poerbêst Button maken. Dit wordt een knop die bij elke stand op de markt geplaatst wordt. Bezoekers wordt gevraagd wanneer ze een stand leuk vinden (of om andere redenen?) op de knop te drukken. Centraal op de markt worden deze drukacties geregistreerd en gepresenteerd op het grote scherm.

Presentatie van resultaat

  • Tagcloud op het grote LED-scherm
  • Stands die een 'like' krijgen worden naar het midden van het scherm bewogen
  • Recent veelgedrukte stands worden groter afgedrukt (15 minuten 'reset' timeout)
  • Totaalteller voor het aantal stemmen, zonder individuele telling per instelling

Gerelateerde activiteiten

Naam Datum en tijd Omschrijving
!UIT Eerste werkdag 22 juli 2012 om 15:00 Eerste werkdag van het project !uit 2012. We kunnen bespreken wat we precies nodig hebben om dit project mogelijk te maken zodat het besteld kan worden
!UIT 2012 Tweede Werkdag 26 augustus 2012 om 13:37 Met nog 2 weken voor de boeg moet er flink gehacked worden om dit project tot een goed einde te brengen. DEADLINE voor definitief ontwerp en actiepunten om 15:15
!UIT 2012 Werkdag 3 28 augustus 2012 om 20:00 Avondje verder knutselen, prototype testen.
!UIT 2012 Werkdag 4 30 augustus 2012 om 20:00 Verder knutselen
!UIT 2012 Werkdag 5 2 september 2012 om 14:00 DEADLINE prototypes en testopstelling. Vandaag moeten een aantal knoppen op minimaal 1 aggregatiepunt zijn aangesloten en moet er op de PC zichtbaar zijn dat alles met elkaar wil babbelen.
!UIT 2012 Evaluatie 11 september 2012 om 20:00 Even napraten over wat er goed ging en wat beter kan

Actiepunten

Bron Actiepunt Eigenaar
!UIT 2012 Werkdag 4 Arduino POST Request werkend gekregen. Lijnenspel
!UIT 2012 Werkdag 4 Eerste opzetje frontend voor op de beamer klaar. Lijnenspel

Status tot nu toe

Er is besloten om 25 knoppen te maken van 1 meter PVC-buis, op een houten voet (all weather hout in de aanbieding) van ongeveer 25x50cm. De bovenkant van de buis komt een gewone stevige rioolpijp-dop op. Op deze dop komt een deurbel als knopje. Een aantal van deze knoppen zullen gecombineerd binnen komen op 1 microcontroller (in een kistje met 230V en ethernet). Een 5-tal Arduino's moet genoeg flexibiliteit geven om alle 25 knoppen een beetje fysiek handig te combineren. Via ethernet komen de tellertjes uiteindelijk bij een centrale pc waarop alle tellers worden bijgehouden.

Het prototype wordt op 26 augustus in elkaar gezet. Het hout voor alle palen is gekocht en op maat gezaagd (gratis, dankzij

Afbeelding Anoniem.png Failbaitr
Failbaitr Rol: deelnemer Deskundig met: Arduino, CNC, CNC-Frezen, Canvas, Digitale Fabricatie, ENC28J60, Glasvezel lassen, HTML, Hydroponics, Javascript, LPD8806, Linux, Mercurial, Programmeren, Python, Robotica, Software, Stappenmotor Beginnend met: Elektronica Werkt aan: Geen projecten :(

z'n glimlach). Er zijn Arduino's en ethernetmodules onderweg, dezelfde die

Afbeelding Anoniem.png Failbaitr
Failbaitr Rol: deelnemer Deskundig met: Arduino, CNC, CNC-Frezen, Canvas, Digitale Fabricatie, ENC28J60, Glasvezel lassen, HTML, Hydroponics, Javascript, LPD8806, Linux, Mercurial, Programmeren, Python, Robotica, Software, Stappenmotor Beginnend met: Elektronica Werkt aan: Geen projecten :(

heeft gebruikt voor z'n eigen project, dus moet snel aan de praat te krijgen zijn. De PC moet alleen nog even voorzien worden van een versie linux-install en is dan ook gereed voor actie.

Nog nodig

  • Arduino-software
  • PC-software
  • Accu's/flinke batterijen/230V -> 5V/stroomvoorziening knoppen
  • Goedkeuring definitief ontwerp knop
  • Knoppen/deurbellen
  • Beslissen over presenteren van gegevens
  • Kabelplan
  • Switches
  • wat we nog aan het vergeten zijn
  • Behuizing aggregatiepunten
    • Chinees doosjes?

Kostenraming Poerbêst Button

Knoppen

25 stuks nodig

  • Button – EUR 3,-
  • Arduino/dk-duino – EUR 13,50 (per stuk EURO 2,70)
  • SPI -> Ethernet uC - ENC28J60 – EUR 3,- (per stuk EURO 0,50)
  • Fysieke button
    • Rioolpijp – 125mm diameter bij 5m 16,- euro (per stuk EURO 3,20)
    • Einddop – EURO 2,-
    • Stukje hout – EURO 2,-
    • Klein ijzerwerk – EUR 3,-
  • Totaal per knop: EUR 16,50

Totaal: EUR ~410

Infrastructuur

Door gebruik te maken van kleine aggregatiepunten van kortsluitsignalen die daarna via Ethernet naar de centrale machine gestuurd worden kunnen we met een paar duurdere onderdelen een deel bekabeling besparen. Er is alleen stroom en netwerk nodig bij de aggretiepunten, vanaf daar kan er met feitelijk elk twee-aderig kabeltje een knop aangesloten worden op het systeem.

Grove schatting: needs work!

  • 800 meter UTP voor het netwerk van aggregatiepunten (combi van ster+daisychain)
  • 25x 5-50 meter tweeling snoer (resten telefoonsnoer, gestripte ethernetkabel, anything)

Beschikbare Kabel

  • Voor de communicatie tussen de arduino en het centrale punt is er voldoende UTP
  • Kabels die beschikbaar is voor de verbinding tussen de arduino en de knop media:Kabellengtes.ods

Technische uitwerking

Arduino's

De Arduino's zijn uitgerust met een ENC28J60 module. Dit zijn geen shields, maar met een beetje uitzoekwerk kom je er achter dat JeeNode (arduino kloon) dezelfde chip gebruikt voor hun EtherCard. Na veel spelen werkte de EtherCard library en dus ethernet op de Arduino ook. Dit hebben we nodig om de likes door te sturen naar de database door middel van een POST request naar de REST API. In de repository (projects/uitmarkt/arduino/jsonpost/jsonpost.ino) kun je de code vinden van arduino code.

CouchDB

De achterliggende database waar de 'likes' op binnenkomen is CouchDB. Dit omdat deze database een REST API heeft en ondersteuning voor de pushen van database verandering naar de frontend. Zo kunnen we de webpagina waar de teller opstaat realtime laten mee veranderen met de binnengekomen 'likes'. Ook wordt de frontend webpagina gehost in Couchdb op basis van het Couchapps principe. In de repository (projects/uitmarkt/couchapp/) staat de code voor de couchapp. Om de couchapp in de couchdb database te zetten heb je een handig tooltje nodig genaamd 'soca'. Hoe wel de couchdb in productie lokaal zal draaien, is een kleine preview te zien op een externe couchdb.

Configuratie verschillende arduino's

Alle Arduino's hebben een statisch ip adres en pinnen 0 tot 9 hebben uniek 'pollid' wat verstuurd word naar de Couchdb. Het pollid is gebasseerd op het Arduino nummer en de pin waarop de paal is aangesloten. Pin 2 op Arduino 3 is dus pollid 32.

  • 192.168.42.10 arduino 1 (pollid = pin+10)
  • 192.168.42.20 arduino 2 (pollid =pin+20)
  • 192.168.42.30 arduino 3 (pollid = pin+30)
  • 192.168.42.40 arduino 4 (pollid = pin+40)
  • 192.168.42.2 server
  • 192.168.42.3 client
  • 192.168.42.50+ laptops/pc's

FrontEnd

De frontend is volledig javascript/html5. Om de verandering van de database realtime in te zien wordt er gebruik gemaakt van jQuery.couch. Om de taartdiagram te laten zien wordt er gebruik gemaakt van Raphael.

Planning deze week

Dinsdag

  • Communicatie Arduino fixen (Lijnenspel)
  • Backend afmaken (couchdb) (Lijnenspel)
  • "Arduino-palen" voorzien van extra kabeldoorvoer en manier verzinnen binnenin te bevestigen (Fludizz)
  • Mail naar orga met vragen over weggevallen standjes

Donderdag

  • Arduino code afmaken (detecteer knop, stuur POST) (CrazyA)
  • PC/laptop klaarmaken voor backend (CrazyA/Lijnenspel)
  • Knopjes schroeven (Fludizz/Iisschots)
  • Paalbekabeling in orde maken (Fludizz/Iisschots)
  • Frontend afmaken (functioneel, ook al shiny?) (Lijnenspel/FruitCake)
  • Final check alle componenten (iedereen :) )

Vrijdag

  • Tweaking front-end
  • Extra test connectie paal naar front-end
  • Super last minute alle problemen en foutjes van de donderdag oplossen
  • Knopjes schroeven (Pepo/...)
  • Paalbekabeling in orde maken (Pepo/...)


Uitmarkt zelf + op&afbouw

Zaterdag

  • Vanaf een uur of 10 opbouwen
    • Exacte plaats bepalen Arduino's en palen
    • Arduino's "uniek" maken in code, ip-adressen instellen (192.168.42.xxx)
    • Accesspoint instellen
    • Kabels neerleggen, stukken koppelen
    • 13:00 Uitmarkt wil graag eventjes bespreken wat onze plannen zijn met de stroompunten. 13:00 uur (bij de koperen tuin, het cafe in de Prinsentuin). Afspraak met Sanne (Iisschots/Will-do/Martijn)
    • Voor de nacht groot deel van de kabels (met labels) weer even opbergen
    • Arduino's labelen van 1-4 en van bijbehorende code (in de repo) voorzien.
  • Personen die helpen met opbouw + vanaf hoe laat:
    • Jildou Achter de Bar.jpg Will-Do
      Jildou Achter de Bar.jpgJildou Gerritsma (Will-Do) Rol: deelnemer, persvoorlichter, alg. bestuurslid Deskundig met: Design, GnuCash, Knutselen, Open Data Werkt aan: Geen projecten :(
      , vanaf 10 uur tot $etenstijd oid
    • Gebruiker Lijnenspel.jpg Lijnenspel
      Gebruiker Lijnenspel.jpgJelle (Lijnenspel) Rol: niet-deelnemer Deskundig met: Arduino, Programmeren, Sammy Werkt aan: Geen projecten :(
      , van 10-13.
    • Gebruiker Iisschots.jpg Iisschots
      Gebruiker Iisschots.jpgLouwerens Jan (Iisschots) Rol: deelnemer Werkt aan: Geen projecten :(
      , van 10-hoe lang nodig

Zondag

  • Vanaf 9 uur alle kabels terugleggen
  • Palen neerzetten en aansluiten
  • Laptop/pc opzetten
  • Definitie couchapp code op server dmv. soca.
  • Infrastructuur in de lucht brengen
  • Win!
  • 17 = afsluiting, vanaf dan opruimen

Foto's


Leerpunten

  • Volgende keer duidelijk Frack standje.
  • Niet alleen aan technische gedeelte denken bij ontwikkeling, ook aan standje.
  • Beter herkenbaar promo-materiaal / shirtjes.
  • Eerder beginnen aan het hoofdproject, vanaf begin enthousiasme, we begonnen nu pas vrij laat.
    • Rekening houden met andere projecten en vakanties e.d. bij plannen van tijd
  • Opbouw/afbouw makkelijker maken door betere voorbereiding. Stekkertjes aan kabels bijvoorbeeld.
    • Hoger budget of meer tijd hiervoor nodig.
      • Volgende keer rustiger kijken naar budget, eventueel paar dagen de tijd nemen.
  • Duidelijker presenteren wat like button is, eerder foto's, contact met stand-houders.
  • We hadden nu 4 schermen met grafieken, beter zou zijn: 2 met uitleg en 2 met output van schermen.
  • Gebruikers verwachtten feedback (lampje/belletje als je drukt)
  • Beter overzicht tijdens opbouw / 1 manager oid
  • Eventueel uitbouwen tot volledig af-project zodat het ook naar andere festivals kan