Algemeen

Attention

This part is coming from the BureauLade section of the Pathways documentation. See there for more context.

Achtergrond

Pathways is zowel een concept, als een referentie implementatie. Ook zijn een aantal eenvoudige voorbeelden toegevoegd; bedoelt om mee te kunnen spelen. Het standaard voorbeeld is een rekenmachine. Iedereen snapt de werking hiervan; de (voorbeeld) testen zijn dus begrijpbaar, en geschikt als voorbeeld van pathways zelf.

Er zijn meerdere rekenmachines; zoals een (stand-alone) webapp en een xmlrpc-server. Al zijn de testen (deels) gelijk, de koppeling tussen het pathways-framework en het product-onder-test (PUT) zijn natuurlijk anders. Daarmee wordt de (ont)koppeling –in pathways– verduidelijkt. En het is een voorbeeld van hoe met deze gate kan maken make naar een PUT

In deze training gaan we een extra PUT aansluiten: een echte, fysieke rekenmachine. De gate moet dus de knoppen bedienen en het display lezen (met OCR!).

Doel: Een rekenmachine bedienen

Een echte rekenmachines heeft (electro-mechanische) knoppen en vaak een lcd-display (soms een 7-segment led versie) Om zo’n rekenmachines te testen moeten die knoppen bedient worden. En het display worden gelezen! Dit moet mechanische en/of via elektrische signalen en is dus heel anders dan de software-interface bij de eerdere voorbeelden. (Al zal dat voor de testen, de ATSen niets uitmaken.)

Hiervoor zijn een aantal onderdelen nodig:

  • Een robots om de knoppen te bedienen en het display te lezen.
  • Een software-lib om die robot te aan te sturen; vanuit pathways gezien is dat de gate.
  • Een aantal testen (ATSen) en/of bricks voor deze rekenmachine(s). Hierbij kunnen bestaande (shared) testen en bricks hergebruikt worden.

Het robot-onderdeel is het nieuwe en meest complexe (qua ontwikkeling) deel van de opdracht. Dat krijgt hieronder de meeste aandacht. Men mag echter niet vergeten dat het pas nuttig is als he geheel werkt!

Deze ‘robot’ bestaat weer uit (minimaal) twee hoofd delen: het DisplayLezen en de KnoppenDrukker. Beide bestaan weer uit diverse onderdelen.

Opties

Er zijn meerdere mogelijkheden om deze robot te realiseren. Het uitzoeken wat ‘het beste is’, is onderdeel van de opdracht.

Het lijkt verstandig om klein te beginnen. Dus voor één eenvoudige zakjapanner, die eenvoudig te koppelen is. Bij voorkeur moet de robot (later, eenvoudig) uit te breiden zijn voor andere/meerdere rekenmachines. Ook moet de gekozen rekenmachine alom beschikbaar zijn. (Denk aan de “speel”-voorbeeld doelstelling).

Het robotje moet (minimaal) het volgende kunnen:

  1. De knoppen (0 .. 9, +,-,*,÷ en ‘=’ (uitkomst, enter, …) bedienen. Dit mag mechanisch of door de “onderligende schakelaars” elektrische te stimuleren. Mogelijk zijn er ook andere opties.
  2. Het (lcd/led) display lezen (op commando). Waarbij de waarde als tekst-string (of getal) beschikbaar moet komen. Dit is mogelijk het lastigste om goedkoop en eenvoudig te realiseren.

Natuurlijk mogen bovenstaande functies ondersteund worden door (python) software. Deels is deze al beschikbaar; bijvoorbeeld om een getal op te breken in aparte cijfers.

Het ‘rekenen’ moet uiteraard op de rekenmachine uitgevoerd worden. Ook verder moet de rekenmachine zoveel mogelijk ‘natuurlijk’ gebruikt worden; we willen immers die rekenmachine testen. Daarom heeft ‘indrukken’ van de knoppen ook de voorkeurover elektrische aansluitingen. Anderzijds, kan deze “elektrische simulatie” de opdracht veel eenvoudiger maken; zeker voor het lezen van het display.

Omgeving

De software moet gaan werken op de raspberry-Pi (dus onder Linux). Maar het is handig (verplicht) om het ook te laten werken op een standaard PC (en de Mac); waarop ontwikkeld wordt.

Tip

Hou ‘linux’ en ‘embedded’ in gedachte bij elke keuze.

Dat ‘t werkt op jou PC is niet de opdracht; het moet werken op de Raspberry!

  • De ‘zero’ uitvoering kost slechts 5 euro. En is daarom de voorkeur van de opdracht gever

    Tip

    Kosten

    De ‘zero’ heeft geen netwerk aansluiting. De duurdere ‘B’ wel en is wellicht handiger.

    • Maakt dat iets uit? Voor wie?
    • Kun je de opdrachtgever hiervan overtuigen?
    • Als je over kosten nadenkt, denk dan ook aan ontwikkel-kosten en aantallen!

Tip

Meer tips

  • De mogelijkheden om de rekenmachine (elektrisch) te koppelen zijn sterk afhankelijk van de kosten van die calculator. Kost die ook 5 euro, dan zal solderen een optie zijn. Maar bedenkt dat, ook dan veel potentielle gebruikers hier tegen kunnen opzien. Alles dat complexer is dan een schroevendraaier kan de speel-doelstelling te moeilijk maken.
  • Wellicht kan het lezen van het display gebeuren met een webcam; zoals ingebouwd in veel laptops of telefoons. Voordeel: goedkoop beschikbaar en laagdrempelig. Nadeel: meer & complexere software nodig (beeldverwerking)
  • Een andere, soortgelijke optie is de raspberry-camera (€20,=). Dit moet verder uitgezocht worden.
  • De software moet een ruime reeks van webcams’ (kunnen) ondersteunen.
  • Voor het benodigde stukje computer-visie zal openCV en/of Tesseract gebruikt worden; tenzij er een goede reden is om hiervan af te wijken en dit besproken (en goedgekeurd) is met/door de coach.