Reflectie TLE

In de afgelopen weken/maanden hebben we hard gewerkt aan ons product. Tijdens dit proces zijn een aantal dingen opvallend, die ervoor gezorgd hebben dat we nu staan waar we staan. Er zijn enkele veranderingen zichtbaar, terugkijkend op TLE1 en 2. Welke dat zijn en hoe dat invloed heeft gehad op ons en ons product, zal ik hieronder vertellen.

Hoe werkten wij in het begin vs. nu?

In het begin, bij het vinden van een probleemstelling en het uitwerken hiervan, werkten wij vrij veel samen aan hetzelfde. Ook bij het verder uitdiepen van het concept hadden we nog niet echt per teamlid onze eigen focus. Dit zorgde ervoor dat we bepaalde veranderingen, zoals de switch van hardware naar interactie, moeilijker op konden pakken. We sprongen als team van taak naar taak, i.p.v. als teamlid.

Sinds dat we met het echte ontwikkelproces begonnen, dus zeg begin TLE2, werden voor ons de onderlingen vaardigheden van ieder teamlid beter duidelijk. Ons uiteindelijke product werd ook voor ons duidelijker en we konden verder vooruit kijken. Hierdoor konden we meer taken in parallel oppakken en onderling verdelen. Zo was Carlo vaak in de werkplaats te vinden om ‘hands-on’ aan de auto te werken, was ik veel met de interface bezig en werkte Jeremy veel aan de Arduino.

Doordat we vanaf TLE2 ook weer meer met Daily Stand-Ups werkte, konden we elkaar beter op de hoogte brengen van waar we mee bezig waren, en elkaar vervolgens op beter hierin loslaten. Zo hield iedereen een breed overzicht van het project, maar had iedereen zijn eigen diepe focus van zijn onderdeel. We konden elkaar dus zeker wel helpen en van inzichten voorzien, maar iedereen wist 100% alles van zijn onderdeel. Ons project werd ook vrij snel vrij complex, met meerdere uitgediepte stukken naast elkaar, dus dan is het ook fijn om die vlakken te verdelen. Als wij alle drie alles 100% moesten weten van alle onderdelen, zouden we lang niet zo snel kunnen werken.

Het gevaar van onze projectkeuze

Wij hebben een gedurfd onderwerp gekozen, wat ook aan de rand van ons vakgebied licht. Wij vinden dit erg mooi, omdat wij zo kunnen laten zien dat je meer kan met de bestaande techniek dan dat je eerst zou denken. Wij hebben erg veel geleerd, van zowel de hardware (Raspberry Pi) als nieuwe programmeertalen (Python) en de interactie hiermee naar websites en Arduino.

Wij hebben wel meerdere keren gemerkt dat er ook keerzijdes zitten aan onze keuze. Zo miste we in het begin de nadruk op de interactie, dit kwam doordat we teveel met de hardware bezig waren, maar ook omdat we met de hardware een soort opstartfase door moesten, voordat we er iets visueels van konden maken. Achteraf hadden we dit kunnen voorzien en op kunnen vangen, maar we moesten nu snel switchen tijdens het project.

Ook omdat we het vooral erg leuk vinden om met de hardware te werken, en hier van alles aan te koppelen, wijken we soms af van het eigenlijke doel (volgens de sprint criteria). Een meer visueel gerichte oplossing, zoals een game, past nou eenmaal beter in dat plaatje, dus wij moeten daar extra goed naar kijken. Dit blijkt lastiger dan het lijkt, omdat we veel uren kwijt waren aan het werken aan ‘ondersteunende’ onderdelen, zoals de motoren, stroomtoevoer en de camera. Des te gaver als het uiteindelijk allemaal werkt, en dit houdt ons ook op de been, maar we merken wel dat het lastig is om het in het vormpje van de sprint te gieten.

Oplevering sprint 6

Wat hebben we gedaan?

  • Nieuwe interface gemaakt, die beter aansluit bij ons ontwerp.
  • Verder gewerkt aan de interactie. De interface is nu bestuurbaar vanaf het stuur, en beweegt ook mee met het stuur.
  • De auto is nu bestuurbaar met het stuur en de pedalen.
  • Informatie over de snelheid wordt op het scherm getoond.
  • De auto heeft nu een case, waar alle elektronica in zit. Dit wordt nog verder afgewerkt.
  • Sterke infraroodlampen zijn nu functioneel

 

Hier horen de user stories “Als gebruiker wil ik handsfree kunnen omgaan met het systeem, zodat ik mijn handen aan het stuur kan houden.” & “Als gebruiker wil ik realtime informatie over mijn auto op mijn scherm zien, zodat ik mijn ogen niet van de weg hoef te halen.” bij.

De nieuwe interface

De interface draagt nu veel meer uit dat het hier gaat om een futuristische auto en dat het om een toekomstplan gaat. Ook geeft de interface nu veel meer visuele feedback aan de gebruiker, zodat alle informatie uit de interface gehaald kan worden, terwijl handen op het  stuur en ogen op de weg blijven.

Waar liepen we tegenaan?

De infraroodlampen hadden een verborgen ‘easter-egg’, waardoor we er een tijdje de mist mee ingingen. Gelukkig hebben we dat nu opgelost, en kunnen we ook in het donker weer rondrijden. De lampen hadden een ingebouwde lichtsensor, dus al onze testpogingen bij daglicht vielen vanzelf in het water…

Ook was de aansluiting van de nachtcamera versleten, door na wat nu blijkt verkeerd te zijn aangesloten. De connector waar de zogenaamde ‘flat cable’ ingaat, kan je blijkbaar openklappen en de kabel erin leggen. Wij hebben deze enkele keren gewoon erin ‘gestoken’, wat zijn weerslag heeft gehad op de contactpuntjes. Dat is gelukkig gerepareerd, dus we hoeven geen extra materialen te gebruiken.

Waar gaan we aan werken?

We willen ons nu richten op de finishing touches. We gaan de auto van buiten helemaal afwerken, en voorzien van de Grutto look ‘n feel. We gaan de interactie perfectioneren, zodat alles gereed is voor de demonstratie in januari.

Struggle van de week: infrarood lamp

De struggle van deze weken was de infrarood lamp.

Wij hebben, nadat we zelf een lamp hadden gebouwd, twee sterkere lampen gekocht   en laten bezorgen uit China.

Dit zijn ledboards die op een bewakingscamera geschroefd kunnen worden. Het aansluiten was dus ook even uitzoeken, omdat wij ze gingen gebruiken voor iets waar ze eigenlijk niet voor bedoeld waren.

Na veel batterijen te hebben versleten, kregen we bij het StadsLab te horen dat deze lampen (2x 40 leds) toch wel wat meer stroom nodig hebben dan dat onze batterijen kunnen leveren, en dus zaten we dinsdagmiddag in het StadsLab achter de generator, om maar uit te vogelen wanneer onze lampen aansprongen.

Waar we achter kwamen, is dat er een couponnetje op het board was geplaatst, wat nogal gevoelig was. We wisten echter nog niet waarvoor. We merkten alleen dat wanneer we dit component een beetje heen en weer duwde, de lamp aansprong… Een losse soldering? Een scheve condensator? Wel raar dat beiden lampen hetzelfde ‘probleem’ hadden… Hé?

Terwijl Jeremy en ik druk zaten te pielen met hoge voltages en levensgevaarlijke amperes, sloeg Carlo zijn toevlucht in Google en vond zowaar iets over lichtsensors… “Is het geen lichtsensor dan?”…. Wauw, ja inderdaad, die fabrikant had zelf al bedacht dat deze lampen alleen in het donker worden gebruikt, dus gaan ze pas aan in het donker…Thanks for sharing!

Ontwikkel Proces van de Doos voor op de Bestuurbare Auto

Om de installatie van de bestuurbare auto mooi te monteren hebben we ervoor gekozen om “makercase.com” te gebruiken. Met die website is het heel makkelijk om  snel een “.svg” bestand te genereren waar een doos op maat gemaakt kan worden. De”.svg” bestand is noodzakelijk als je wilt werken met een lasersnijder. Er is ook een ander bestand formaat waarmee je kan werken maar “makercase.com” genereert alleen “.svg bestanden”. Voordat ik kon beginnen met “makercase.com” moest ik de afmetingen van de componenten die nodig zijn voor de schakeling afnemen. Ik had op 15 december de tijd genomen in het stadslab om daar voor te zorgen. Hieronder worden de afmetingen weergegeven:

Arduino 

breedte : 5,3 cm

lengte : 6,6 cm (6,8 cm met de langste uitstekende usb poort mee gerekend)

hoogte : 1,5 cm

Raspberry met plastic omhulsel eromheen

breedte : 6,3 cm

lengte : 9,2 cm (alleen de case grootte); 10,7 cm (met de uitstekende SD kaart mee gerekend)

hoogte : 2,6 cm

Breadboard 

breedte : 5,3 cm

lengte : circa 7 cm

hoogte : 1,5 cm; 3 cm (met de schakeling componenten mee gerekend dus bijvoorbeeld hoogte van de uitstekende kabels)

We hebben voor de case een 30 cm bij 60 cm plank gebruikt van 3 mm dik. We hadden een grotere oppervlakte gebruikt dan dat we nodig hadden, omdat de doos met de langste kant omhoog staat is er ruimte voor een mooie afscheiding van de componenten. Daarom had bedacht dat we in de doos verschillende etages zouden maken zodat we de componenten mooi kunnen monteren. Dit leek mij toen de beste manier om de componenten in de doos te monteren.

Wat ik hierboven vertelde is te zien in foto’s hieronder:

Nadat ik op maandag 20 december de doos had gemaakt door middel van de lasersnijder. Het lasersnijden ging redelijk snel, het was binnen 5 minuten al klaar.

Toen de doos uitgesneden was, werd het tijd om de doos in elkaar te zetten. Bij het stadslab kon ik gebruik maken van hun lijmpistool waardoor ik snel de doos kon vast lijmen.

Nadat de doos gelijmd was hadden we als team besloten om de doos toch anders te monteren. Dit was jammer voor mij maar om het project sneller te laten verlopen waardoor we niet veel tijd hoeven te besteden aan het monteren van de uitgedachte etages was voor mij toch een reden om in te stemmen met mijn team. We hadden het de keuze gemaakt om de doos als volgt te monteren op de bestuurbare auto.

 

Tenslotte hoefden we alleen nog extra gaten te maken in de doos te boren zodat we de usb kabel in de doos kunnen laten passen (de kabel loopt van de raspberry naar de arduino waardoor ze met elkaar kunnen communiceren en het functioneert voor de stroom toevoer van de arduino) . Ook hadden we twee gaten aan de voorkant van de doos gemaakt waardoor we in de toekomst de infrarood lampjes van stroom kunnen voorzien. Als laatste had ik nog aan de onderkant van de doos een gat gemaakt waardoor de kabels van de breadboard schakeling aangesloten kunnen worden.

De interface bestuurbaar maken vanaf keyboard

Ik heb vanmorgen de interface bestuurbaar gemaakt vanaf het toetsenbord. Hierdoor kunnen we straks snel de toets-codes omzetten naar die van de controller of het stuur, waardoor de demo bestuurbaar is vanaf het stuur!

Je kan nu het menu open/sluiten, hier doorheen navigeren en items selecteren d.m.v. het toetsenbord. Straks hoeft onze gebruiker zijn handen dus niet meer van het stuur af te halen, wat de verkeersveiligheid ten goede komt. Ons systeem is dan nog makkelijker te bedienen, en dit kan ook gemakkelijk worden bijgevoegd in bestaande autosturen. Deze bevatten tegenwoordig al knoppen om de radio of navigatie mee te besturen.

Oplevering sprint 5

Waar hebben we aan gewerkt?

Als gebruiker wil ik realtime informatie van mijn auto op mijn scherm kunnen zien, zodat ik altijd weet hoe mijn systeem ervoor staat.

Als gebruiker wil ik vanaf mijn stuur het systeem kunnen besturen, zodat ik zonder afleiding de controle houdt over het systeem.

Deze user stories hebben we technisch uitgewerkt, we hebben deze sprint het volgende bereikt:

  • Het aansturen van de auto vanaf de demo-interface.
  • Het versturen van informatie naar de computer van de auto.
  • Het ontvangen van informatie van de computer van de auto.
  • Het uitlezen van het Xbox stuur.

We hebben de laatste communicatie-schakel hiermee afgerond; het is nu mogelijk om vanaf de client (de demo), een realtime verbinding te hebben met de auto (de server).

We hebben de demo-interface namelijk als Node-server gehost op de Raspberry. Elk apparaat binnen hetzelfde internet-netwerk kan hiermee verbinding maken. De camera-feed wordt hier ook ingeladen.

De auto wordt aangestuurd door een Arduino. Deze staat via de seriële (USB) poort in verbinding met de Raspberry. Dus net zoals dit normaal via een PC gaat, maar nu via de Raspberry. De Node server kan deze poort direct aansturen, waardoor we geen Python scripts meer nodig hebben. Op deze manier hebben we het aantal tussenstappen in de schakeling teruggebracht, waardoor de signalen sneller verwerkt worden.

De interactie-laag in de deelproducten mist nog wel. We hebben ons gericht op het technisch werkend krijgen van de producten. We hebben wel concrete vervolgstappen voor komende sprint, waardoor we dit snel op kunnen pakken en af kunnen maken:

  • Het koppelen van knoppen uit de interface aan de output van de demo.
  • Het luisteren naar de input van het stuur, en dit als output versturen.

Het stuur en de pedalen zullen leidend worden in (de input van) de interface, het wordt dus heel tangible. Hiermee kunnen straks de lampen, richting en snelheid worden bestuurd. Ook kunnen we de interface realtime informatie van de auto en bijv. snelheid laten tonen, en met de knoppen op het stuur hier door navigeren.

Planning voor sprint 6

Tijdens sprint 5 hebben wij veel vooruitgang geboekt op technisch gebied. Door in de console een toets in te drukken kunnen wij de motoren van de auto aansturen. We moeten dit nog aanpassen zodat er geen console geopend hoeft te worden en de gebruiker direct de auto kan besturen, maar dit zal geen probleem vormen. Hiervoor hoeven we alleen een aantal functies aan te maken die de toetsen afvangen en vervolgens een signaal sturen naar de raspberry (die vervolgens weer een signaal stuurt naar de arduino om de motoren aan te sturen).

Wij kunnen inmiddels ook de signalen van het xbox-stuur afvangen, de volgende stap is om deze signalen vervolgens om te zetten naar de toetsen die de motoren zullen aansturen. Wanneer dit toegevoegd is, is de auto volledig bestuurbaar vanaf de interface die wij gemaakt hebben.

Wij zullen tijdens sprint 6 ook een begin gaan maken aan de behuizing van de auto, zodat de arduino en de raspberry goed weggewerkt kunnen worden. Wij willen dit waarschijnlijk gaan ontwerpen via www.makercase.com en vervolgens gaan uitsnijden in het stadslab met de lasersnijder. Wel moeten we hier goed rekening houden met het gewicht van de behuizing omdat de arduino motoren niet heel krachtig zijn.

Voortgang sprint 5

Tijdens de TLE van dinsdag hebben Jeremy en Carlo gewerkt aan de radio bestuurbare auto. De week daarvoor werdt de D/C Motor gemonteerd door middel van een lijm pistol van het stadslab waardoor de aandrijving van de auto wordt geregeld.

Deze week was de servo aan de beurt om gemonteerd te worden. We hebben die week daarvoor nog een kleinere versie van een servovan het stadslab gekregen. Zonder die servo van het stadslab was het onmogelijk voor ons om onze eigen servo aan de auto te monteren. Omdat we de auto weer op moesten breken of zagen om aan ruimte te komen die we nodig hadden voor de montage. Maar nu was dat niet meer nodig en konden we gelijk beginnen met monteren omdat Carlo die week daarvoor de servo al klaar had gemaakt voor de montage. Dit vergde een kleine aanpassing om het opzet stuk van de servo op maat te maken met de aandrijving van de auto.

Dus binnen enkele minuten hadden Jeremy en Carlo de servo door middel van de lijm pistol en wat hout stukjes gemonteerd.

 

Daarna hadden ze ervoor gezorgd dat de Arduino door middel van een paar console commands de auto kan besturen.

Ondertussen was Mathijs bezig met het aan de praat krijgen van een realtime connectie van de website met de Raspberry Pie. Dit had hij opgelost door de website op de Raspberry zelf te laten hosten waardoor de interactie realtime is geworden. Daarna had hij ervoor gezorgd dat je via de host van de website een functie door kan sturen via de developer console wat een reactie geeft. Wanneer dat lukte was het alleen nog maar de Arduino koppelen met de Rasdberry. Omdat we voorheen al hadden gewerkt aan de connectie tussen de Arduino en de Raspberry waren we klaar om de connectie te leggen. Het resultaat is te zien in deze video IMG_3280.

Radio Bestuurbare Speelgoed Auto

Op de maandag van week 2 van periode 2 waren we naar het stadslab gegaan en we waren opzoek naar een Radio Bestuurbare Speelgoed Auto om te lenen voor ons project. Dus nadat we goed hadden uitgelegd wat we wouden kregen we de Radio Bestuurbare Speelgoed Auto in losse stukjes aangegeven met een D/C Motor die sterker is dan onze D/C Motor die we al in bezit hadden.

Die Middag werd de Radio Bestuurbare Speelgoed Auto in elkaar gezet door Carlo. Het was niet de makkelijkste taak omdat alle onderdelen los zaten. Het was dus een soort puzzel die hij in elkaar heeft weten te zetten.