vrijdag 17 augustus 2012

Programmeren met Arduino


De Arduino microcontroller programmeer je met een gemakkelijk te leren commandotaal. De basisstructuur is gebaseerd op de programmeertaal C++.

Basisstructuur
De basisstructuur van de Arduino programmeertaal bestaat uit minimaal twee gedeeltes, ook wel functies genoemd:
  1. void setup(): dit gedeelte verzorgt de voorbereiding. Het wordt één keer aangeroepen, direct na het opstarten van het programma. Hierin worden variabelen gedeclareerd en bepaald welke pinnen ingang of uitgang worden.
  2. void loop(): dit gedeelte verzorgt de uitvoering. Het volgt na de setup functie en wordt vaak oneindig herhaalt. Het leest de inputs en laat afhankelijk daarvan bepalen wat de outputs moeten doen.
Beide functies zijn nodig om een programma te kunnen laten werken.

{} (accolade): een open accolade{ geeft het begin van een stuk code aan en een sluit accolade } het einde. Het aantal open en sluit accolades moet gelijk zijn. Als er één accolade te weinig is, kan het programma stoppen met werken

; (puntkomma): elke regel code moet eindigen met een puntkomma. Bij het ontbreken van een puntkomma zal een foutmelding verschijnen. Deze foutmelding geeft vaak een andere plek aan dan waar de puntkomma vergeten is. Dat wordt dus lastig zoeken.

// (regel commentaar): zet zoveel mogelijk commentaar bij je code met uitleg over het programma of over de code die daar staat. Dit doe je door een regel te beginnen met //. Commentaar wordt niet gelezen door het programma. Het wordt nooit mee geprogrammeerd in een microcontroller en neemt hierdoor geen geheugenruimte in beslag. Het wordt wel bewaard in het Arduino programma.

/*...*/ (blok commentaar): voor langere regels commentaar over meerdere regels, kun je gebruik maken van blok commentaar. Hiervoor zet je het commentaar tussen /* en */. Ook dit wordt allemaal niet gelezen door het programma.

Als een programma niet werkt, zoals het zou moeten werken, dan is het vaak handig om een gedeelte van het prgramma uit te schakelen door middel van regel of blok commentaar. Je kunt dan stapsgewijs onderzoeken waar de fout zit.

variabelen: met behulp van een variabele kun je een waarde bewaren voor later gebruik in het programma. De waarde van een variabele kan ook regelmatig veranderen. Er zijn ook constantes. Dat zijn variabelen die constant het zelfde blijven en dus nooit van waarde veranderen. Het beste kun je de variabelen een logische naam geven, zodat het een stuk makkelijker te lezen is.

Voordat een variabele gebruikt kan worden, moet deze eerst éénmalig gedeclareerd worden.
Er zijn verschillende types variabelen: int (integer), long (long), boolean (boolean), float (float) en char (character).

Het maken van een uitgebreid programma
Je begint altijd met het opdelen een subsystemen (bij hele uitgebreide programma's zelfs naar sub-subsystemen). Vervolgens ga je eerst per subsysteem de hardware in elkaar zetten en dan de programmering. Let erop dat je er zoveel mogelijk commentaar bijzet zodat je goed overzicht houdt van wat elk stukje code doet. Als alle subsystemen werken, neem je één subsysteem en die breidt je uit met een van de andere subsystemen. Als deze werkt voeg je nog een subsysteem toe enzovoorts tot dat je programma werkt.

TIP: er staat al heel veel op internet. Ga eerst zoeken voordat je zelf begint. Als jouw code nog niet bestaat kun je online ook altijd vragen om tips om hem te maken.

Programma werkt niet wat nu ( fouten zijn heel normaal bij Arduino):
  1. Controleer of het groene lampje brand op het board.
  2. Controleer of de hardware klopt. Een fout hierin is meestal snel te zien. Vraag zo nodig iemand anders om te controleren.
  3. Controleer heel je programma. Let vooral op de puntkomma aan het einde van een regel code. Ook hier weer laat iemand anders nakijken als je het zelf niet ziet.
  4. Je kan je probleem ook online zetten. Er zijn altijd genoeg mensen die je willen helpen en tips zijn altijd meegenomen.
  5. Ga terug naar het testen van subsystemen en volg opnieuw de stappen hierboven.
  6. Als dit allemaal niet werkt, bouw de code weer op maar begin met een ander subsysteem. Het kan zijn dat er dus een fout zit bij het combineren van de codes.
  7. Als laatste poging kan je altijd helemaal overnieuw beginnen. Heel raar maar soms voer je precies hetzelfde in en dan doet die het wel.

Hieronder een simpel voorbeeld van een dimmer van een LED:

 void setup()
{
    // initialize the serial communication
    Serial.begin(9600);
    // initialize the ledPin as an output
    pinMode(ledPin, OUTPUT);
}

void loop()
{
    byte brightness;

    // check if data has been sent from the computer
    if (Serial.available())
    {
        // read the most recent byte (which will be from 0 to 255)
        brightness = Serial.read();
        // set the brightness of the LED
       analogWrite(ledPin, brightness);
    }
}

Commentaren van leraar

Enkele van de commentaren van de leraar (W. Haak) die zijn meegenomen:
  1. Soms eerder iets tekenen dan in computer uitwerken om tijd te besparen.
  2. Altijd goed nakijken wat je hebt neergezet.
  3. Altijd letten op esthetiek, want een product kan nog goed zijn maar als het er niet uit ziet koopt niemand het.
  4. Probeer steeds meer te leren en je leercurve te verbeteren.
  5. Opmerking bij mijn energie-stroom schema dat ik niet kon sturen of versnellen.

VLS hovercraft

Hieronder staat de VLS die ik heb gemaakt zodat ik weet hoe zwaar de stuurflappen minimaal moeten zijn wil de hovercraft in evenwicht zijn.

De stuurflappen moeten minstens 0.4 kg wegen. Omdat het beter is om de hovercraft onder schuine hoek te besturen zal ik ze minstens 50% zwaarder maken, dus 0.6 kg.

donderdag 16 augustus 2012

Gekozen motoren

De motoren waarvoor ik heb gekozen zijn 2  borstelloze motoren, omdat deze vaak worden toegepast in modelbouw en er een grotere variatie mogelijk is voor dit project.

Thrustmotor:
Bij 11.1 V verbruikt die 3A en 5450 rpm

Liftmotor:
Bij 11.1 V verbruikt die 7A en 9690 rpm

De servomotor, gebruikt voor het sturen, moet minimaal 160 graden kunnen draaien: 80 graden naar links en 80 graden naar rechts. Bij 90 graden sluit je de luchtweg namelijk af.

Netiquette


Alle bestanden moesten voldoen aan onderstaande naamgeving:
“ED&I blok 4; “+ <naam document> + <Naam student> + <jjjj-mm-dd>

Hieronder een foto van wat bestanden die daar aan voldoen:


VLS opdrachten

De volgende opdrachten waren huiswerk opdrachten van meneer Mouw.



woensdag 15 augustus 2012

Berekening minimale kracht 'Lift'

http://www.discoverhover.org/infoinstructors/guide4.htm

F = P · A

A = Area = Length · Width
Area = (0.6 m)(0.6 m)
Area = 0.36 m2

P = 335 N / m2

F = 335 * 0.36 = 120.6 N

Dus de motor en ventilator moeten minstens 120.6 newton aan kracht creëren.

Prototype + Reflectie


Wat er allemaal beter aan mijn model kon:
  1. Bedrading beter weg werken
  2. Sterkere thrustmotor
  3. Grotere rok
  4. Zelf ontworpen RC receiver
  5. Netter afgewerkt (in het echte model worden de platen door machine uitgesneden)
  6. Klemming van thrustmotor moet aerodynamischer
  7. Andere materialen gebruiken, geen MDPE en PP

zondag 24 juni 2012

2D tekeningen



 Drie 2D bouwtekeningen

Wat hier nog aangevuld moet worden zijn marges die er op staan, en sommige maten, maar dit geeft wel voor de rest een goed voorbeeld voor een 2D bouwtekening

donderdag 14 juni 2012

Verbinding Platen

































De verbinding tussen de grondplaat en de onderste plaat wordt gedaan door middel van vijf houten blokjes. Deze worden verdeeld over de onderste plaat en moeten helpen bij het verspreiden van de lucht. Ze zullen worden vast gelijmd, zodat ze niet uit elkaar kunnen worden gehaald.

Verandering 24-6-2012:
Net als de andere platen gaan deze driehoeken gemaakt worden van PP.

MDPE Rok

Bemating van mijn rok gebaseerd op mijn platen.

Rok is gemaakt van MDPE omdat MDPE zakken kwalitatief hoogwaardiger zijn. Er is minder materiaal nodig om dezelfde kwaliteit te behalen als een HDPE zak. Dat vertaalt zich in minder gebruik van grondstoffen, CO2 uitstoot en opslag. MDPE zakken worden vervaardigd uit een combinatie tussen LDPE en HDPE materiaal en zijn dun te gebruiken.

De onderscheidende kenmerken van MDPE zijn:
  • Hogere scheurweerstand dan HDPE
  • Zeer goed te gebruiken om de dikte van een zak te reduceren
  • Goed alternatief voor coextrusie zakken (dubbellaags)
  • Lagere productiekosten

Ik heb er voor gekozen om de rok vervangbaar te maken, zodat mocht die scheuren je hem gewoon kan vervangen. Om dit te vergemakkelijken zit de rok boven vastgemaakt met klemring met 6 schroeven en onder door middel van tape.
Het kan een overweging zijn om meerdere rokken mee te leveren.

Bemating Platen


Door deze snelle schets te maken kan ik veel informatie delen en zien wat er nog mist voor de uitwerking.

Ik maak hiermee de vorm en opbouw van de hovercraft duidelijk aan de kanon-ontwerper. Naar aanleiding hiervan kan hij mij vragen stellen over wat hij niet begrijpt.

Ik haal hier uit wat ik nog moet doen, namelijk:
- bepalen wat voor soort schroeven gebruikt moeten worden;
- uitwerken hoe de grondplaat moet worden bevestigd aan de onderste plaat;
- vaststellen bemating van de rok.

Produceren: 2 platen als de grondplaat zonder gat. In één van de platen een gat maken en de ander uitsnijden waardoor jij gelijk klemring en onderste plaat creëert.

Voorgestelde productiemethode: Watersnijden

dinsdag 12 juni 2012

Systeem Definering Lift


Systeem Definering Sturen


Systeem Definering Thrust


Systeem Verdeling


Vision en Robotics







Vision en Robotics 2012
Op woensdag 6 juni geweest naar Vision & Robotics in Veldhoven. Dit was een beurs voor een beurs voor producten die eigenlijk vielen onder de volgende 3 onderwerpen:
1. Sensors
2. Productierobots
3. Zorgrobots

Van deze beurs was veel te leren over de verschillende soorten sensoren en hoe je deze kan gebruiken, het toekomst beeld van robots en hoe belangrijk je presentatie is. Er was te zien dat je voor een productierobot verschillende sensoren en bewegingsvrijheid nodig hebt. Ook werd ons goed duidelijk gemaakt dat je voor zo’n product zo goed als altijd je eigen software moet ontwerpen. De bedrijven die sensoren verkochten zoals voor camera in je fabriek was dat die verkochten als eigen product en de bedrijven van productierobots voor ieder bedrijf apart een robot ontwerpen. Wat ik van de zorgrobots heb gezien is dat deze vooral voor ouderen waren voor hulp in fysieke maar ook geestelijke aspecten. Deze robots proberen er ook zo veel mogelijk ongevaarlijk en mensvriendelijk uit te zien, en een glimlachend gezicht was zeker een terugkerend onderdeel.

Bij deze beurs was ook weer het belang van je presentatie te zien. Er waren veel apparaten die op elkaar leken. Afwijkende apparaten trokken dus snel de aandacht. Sommige standjes waren leeg waarschijnlijk omdat ze pauze hadden. Het lijkt mij het beste om altijd minstens één persoon daar te houden. Ook bij de robots die rond reden was er geen bestuurder of stand waar die bij hoorde te zie. Dus je kan beter presenteren bij je stand. Hoe je het presenteert er was bijvoorbeeld een productierobot die in een soort kooi stond in plaats van achter glas en dit werd aangenaam bevallen. En allerbelangrijkste dat bij presenteren opviel was wel een fransman die bijna geen Nederlands kon en eigenlijk niet goed begreep wat die nou bij zich had.

Wat we ook hebben gedaan is rondgevraagd naar tips voor onze hovercraft en hoe beginners hier nou mee kunnen experimenteren. Wat veel terug kwam was een goede webcam kopen en door middel van online gratis software experimenteren met het herkennen van verschillende vormen. Dit zullen we niet toepassen op hovercraft, maar is wel een idee om in mijn toolcase te bewaren.