Doel:€250.00
Donaties:€65.00

Per saldo:€-185.00

Steun ons nu!

Laatst bijgewerkt
op 17-03-2020
Algemeen

De stichting

Recente berichten

Proxxon soldeerbrander en andere merken door roadster36
Vandaag om 03:02:40
Update: baan in de tropen door Hans Grasmaijer
Vandaag om 02:53:30
BNLS Werkspoor - Mesu models NS 2000 door roadster36
Vandaag om 02:46:52
De fabriek - Spoor 0 door roadster36
Vandaag om 02:39:03
NTM goederenwagens in Spoor-0 door roadster36
Vandaag om 02:28:41
Treinongeval Rijnstrecke door Thom
Vandaag om 01:33:52
Probleem: ramen 'beslaan' door Duikeend
Vandaag om 01:13:13
[H0] De Spoorstraat door Joren
Vandaag om 01:02:00
Mijn eerste H0-modeltreinbaan in aanbouw door Wim Vink
Vandaag om 00:04:19
BMB-Module: "Blackwater Goods Yard" door sdz1976
Vandaag om 00:00:31
Bouwen van modellen bestaande uit gips door MOVisser
02 april 2020, 23:53:40
Havenbaantje, Duitse havenstad, periode 2e wereldoorlog. door AndréDev
02 april 2020, 23:50:03
M.s.v. De Percee bouwt aan nieuwe clubbaan door J. Moors
02 april 2020, 23:32:04
Rivarossi Panoramarijtuig, door MTE, wordt niet geproduceerd. door Silvolde
02 april 2020, 23:18:31
Frans loodsje et cetera door Piet Groot
02 april 2020, 23:14:47
Projekt 083-338 door 44
02 april 2020, 23:13:59
Wie levert schroefterminals, voor op printplaten? door dennie
02 april 2020, 23:12:09
Old England door sdz1976
02 april 2020, 23:05:20
Mallnitzer Tauernbahnstrecke ÖBB N Spoor door Schachbrett
02 april 2020, 22:35:04
MB-module: "Charleroi Route de Mons" door St00mboy
02 april 2020, 22:32:11
Kellerstein; een nieuwe baan in H0 door Romavami
02 april 2020, 22:31:00
De bouw van mijn modelbaan in Thailand door bosje77
02 april 2020, 22:22:17
Tram valt stil op wissel door Marc tramt
02 april 2020, 22:02:11
Doornvliet door cor_b
02 april 2020, 22:01:52
Digikeijs DR4018, bij schakelen valt spanning op baan weg, knippert verlichting door GertW
02 april 2020, 21:49:46
Schwarzburg-Neuffen-Bahn door jerrytrein
02 april 2020, 21:31:27
Waar kan ik een geluidsbestand vinden voor de Brawa 0201 / E 95 ? door Sandopie
02 april 2020, 21:25:40
Toon hier je nieuwe (model-) spooraanwinst(en)... door MathynK
02 april 2020, 21:20:18
Fleischmann Profi Engels wissel problemen door 72sonett
02 april 2020, 21:19:51
BRAWA 0210 /E 95.02 ombouw naar digitaal door Gerard
02 april 2020, 21:15:40
  

Auteur Topic: Zonder fouten een Arduino programmeren  (gelezen 3196 keer)

meino

  • Offline Offline
  • Berichten: 636
Re: Zonder fouten een Arduino programmeren
« Reactie #15 Gepost op: 28 februari 2020, 23:40:13 »
Dag Bas

Een puik stuk werk, mijn complimenten (y). Ik zie dat Timo al gereageerd heeft, dus daar ga ik verder niks aan toevoegen  ;).
Een paar punten, over de spellingfouten, die maak je, zeker als je een groot stuk schrijft. Als anderen zich daar aan storen, jammer dan. Die kun je altijd nog later corrigeren zolang ze maar door gegeven worden.
Over de kritiek op de z.g. "Engelse ziekte", dat vind ik zelf een moeilijk punt. In zekere zin ben ik het er wel mee eens dat je moet proberen om dat te vermijden, zeker als het stuk bestemd is voor niet IT mensen. Aan de andere kant het is niet altijd mogelijk om een Engels begrip in een enkel Nederlands woord te vangen, probeer maar eens de begrippen "input" en "output" in een enkel  Nederlands woord te vangen. Verder de doelgroep voor dit werk zijn toch mensen die met programmeren willen beginnen en als je alles in het Nederlands zou willen vertalen, dan ontstaat er later een probleem, omdat alle andere informatie op het Internet toch weer in het Engels is. en men dan niet weet waar ze op moet zoeken. Ik word er nog wel eens bijgehaald als iemand in de omgeving een probleem met zijn PC heeft, die natuurlijk in het Nederlands ingesteld staat, en dan heb ik altijd moeite om een link te leggen tussen de informatie op het internet en de instellingen op die PC.

Het enige waar ik zelf wat moeite mee heb is je uitleg van de "class" (niet classe, dat zou klasse moeten zijn) als een uitbreiding van de struct. Dat vindt ik zelf wel erg kort door de bocht, omdat juist door het gebruik van "class" en de daarvan afgeleide objecten, de taal C++ fundamenteel onderscheiden is van C. Maar ik besef te goed, dat dat binnen het kader van dit stuk bijna niet te uit te leggen is. Daar voor  zou je een apart verhaal moeten hebben over Object georienteerde programmering, dat is n.l. een echte "Paradigma shift" in het het programmeren en ontwerpen.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg

Paul_V

  • Offline Offline
  • Berichten: 33
Re: Zonder fouten een Arduino programmeren
« Reactie #16 Gepost op: 29 februari 2020, 00:27:54 »
Meino, de Engelse ziekte is niet het onnodig (!) gebruik van de Engelse taal, maar het gebruik van teveel spaties. Ofwel het los schrijven van woorden die aan elkaar horen. Twee zelfstandige naamwoorden, waarvan het eerste iets zegt over het tweede (boekenkast en niet boeken kast). In het Engels worden dit soort woorden niet aaneen geschreven. Vandaar de naam Engelse ziekte als dit in het Nederlands wordt overgenomen.

MvrGr,
Paul

meino

  • Offline Offline
  • Berichten: 636
Re: Zonder fouten een Arduino programmeren
« Reactie #17 Gepost op: 29 februari 2020, 00:40:43 »
Paul

dat wist ik niet. Als iemand die zelf ruim 35 jaar veel in het Engels geschreven heeft, weet ik dat ik me zelf daar ook vaak aan bezondig (woorden los knippen) en dat ik soms moeite moet doen om dat te onderdrukken. Ik zelf denk, dat we dat in het Nederlands langzaamvan het Engels aan het overnemen zijn.

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg

72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1517
    • El Carrilet
Re: Zonder fouten een Arduino programmeren
« Reactie #18 Gepost op: 29 februari 2020, 00:51:24 »
...  Engelse ziekte is niet het onnodig (!) gebruik van de Engelse taal, maar het gebruik van teveel spaties.
... zolang ze maar door gegeven worden.

Citaat
...de begrippen "input" en "output"
Invoer en uitvoer.

Je kunt niet voor beginnende én gevorderde programmeurs in het Nederlands en in een jip-en-janneketaal schrijven.
Kies één doelgroep en pas daar je stijl en inhoud op aan. Je begint nu al vrij snel over structs en pointers, de beginner haakt dan al af en pas tegen het eind begin je over basisdingen als if then else en do while, dat zou andersom moeten zijn. In deel 2 kun je dan voor een doelgroep schrijven met een hoger beginniveau.

Schrijf objectief en laat ook je tekst proeflezen door iemand uit je doelgroep vóórdat je de tekst publiceert.
« Laatst bewerkt op: 03 maart 2020, 10:45:05 door 72sonett »
El Carrilet

Not sent from my Pocketline Swing 380, Xperia Z2, iPhone, C5503, ALE-L21 or SM-G900F using Tapatalk.

MH

Martin Hornis

  • Offline Offline
  • Berichten: 1048
Re: Zonder fouten een Arduino programmeren
« Reactie #19 Gepost op: 29 februari 2020, 00:58:27 »
[off topic] Een 3e vorm van Engelse ziekte is de zinsdeelvolgorde. Vertaling door een Nederlander van zijn Engelse zinnen levert bijvoorbeeld dit op: "Dit systeem wordt gebruikt bij vrijwel alle objecten. Meer logisch lijkt mij: "Dit systeem wordt bij vrijwel alle objecten gebruikt." -> (ont-)koppeling van hulpwerkwoord en voltooid deelwoord [/on topic]
Märklin K-rails met boogstralen > 500 mm; NS-lichtseinen met cijferbak: 4, 6 en 8 in één bak; iTrain; Intellibox I; OC32; eigen treindetectiesysteem aangesloten op OC32; controleprogramma's voor iTrain en OC32.

bask185

  • Offline Offline
  • Berichten: 422
Re: Zonder fouten een Arduino programmeren
« Reactie #20 Gepost op: 02 maart 2020, 10:43:24 »
Het enige waar ik zelf wat moeite mee heb is je uitleg van de "class" (niet classe, dat zou klasse moeten zijn) als een uitbreiding van de struct. Dat vindt ik zelf wel erg kort door de bocht...
Dat mag misschien zo zijn, maar geloof mij.. op private variabele en een beetje syntax verschillen na, zijn ze onderhuids nauwelijks verschillend.

Je begint nu al vrij snel over structs en pointers, de beginner haakt dan al af en pas tegen het eind begin je over basisdingen als if then else en do while, dat zou andersom moeten zijn.
!!!
Citaat van:  mijzelf
P.S.
Mocht iemand het niet eens zijn over hoe ik sommige dingen uitleg, schrijf dan je eigen tekst  ;D.
Maar for real. Structs en arrays hebben wel een eigen hoofdstuk genaamd 'geavanceerde datatypes'. En voor de eerste pointer uitleg staat specifiek deze zin: "Pointers zijn voor beginnelingen erg moeilijk te behappen dus als je dit nog niet snap, kan je het negeren.".

Ik kom ook met het meest praktische voorbeeld mogelijk. Ik snapte jaren lang ook niets van pointers. Ik snap ze pas sinds een jaar of twee. Bij alle uitleg wat ik had, snapte ik nooit het 'voordeel'. Het standaard voorbeeld is het klassieke swap voorbeeld, waarbij je in een functie de waardes van 2 variabelen moet uitwisselen. Dat kan je ook doen met een 'normale' lokale variabele, dus ja waarom moeilijk doen met een pointer?

Bij het passing by reference stukje, leg ik specifiek de noodzaak uit. Ik leg uit dat een functie op de standaard manier slechts een waarde kan retourneren. En dat je dat alleen kan oplossen door pointers. Dit was ook het voorbeeld waardoor ik het ging snappen. Ik heb ook getracht om het zo duidelijk en simpel als mogelijk te houden. Pointers zijn nu eenmaal een payne op sommige momenten.

Citaat
Je kunt niet voor beginnende én gevorderde programmeurs in het Nederlands en in een jip-en-janneketaal schrijven.
Hoezo niet? Deel 1 is trouwens ook voornamelijk voor beginnenden. Als gevorderde zou ik slechts even kijken of er iets in staat wat ik nog niet wist. Bitfields ken ik ook pas sinds een maand of zes. Ik heb ook uitgelegd:
Citaat
"In dit eerste deel, leg ik slechts de meeste relevante elementen van de programmeertaal uit. Ik geloof namelijk dat je als nieuweling al veel fouten kan verkomen als je simpelweg weet wat je aan het doen bent."
Deel 2 gaat voornamelijk over state machines, daarbij begin ik simpel met zo'n switch-case en ik breid het steeds verder en verder uit zodat het telkens overzichtelijker en makkelijker wordt. Uiteindelijk werk ik m'n weg naar een structuur waar ik een zevental macro's in heb verwerkt. Op dat moment is het voor sommige gevorderden ook wel interessant om even een kiekje te nemen.

Bas



72sonett

  • Team encyclopedie
  • Offline Offline
  • Berichten: 1517
    • El Carrilet
Re: Zonder fouten een Arduino programmeren
« Reactie #21 Gepost op: 02 maart 2020, 11:40:09 »
Pointers gebruik je om een geschakelde lijst van records ('structs') te maken, of een stapel, of een wachtrij, of een boom, of andere structuren waarbij je van te voren niet weet hoeveel elementen er zijn (hoeveel ruimte je nodig hebt).
« Laatst bewerkt op: 02 maart 2020, 12:13:42 door 72sonett »
El Carrilet

Not sent from my Pocketline Swing 380, Xperia Z2, iPhone, C5503, ALE-L21 or SM-G900F using Tapatalk.

MH

meino

  • Offline Offline
  • Berichten: 636
Re: Zonder fouten een Arduino programmeren
« Reactie #22 Gepost op: 02 maart 2020, 12:02:26 »
Dag Bas

Toch even een kleine reactie. Daar zal ik het bij laten, omdat dit eigenlijk niet thuis hoort op dit forum.

Dat mag misschien zo zijn, maar geloof mij.. op private variabele en een beetje syntax verschillen na, zijn ze onderhuids nauwelijks verschillend.

Ik had het over te kort door de bocht. Je hebt gelijk als je het puur fysiek bekijkt, je kunt een "class" als een "struct" met functies zien. Maar! op het moment dat je werkelijk begrijpt wat je met Klassen en hun objecten kunt doen, dan ga je fundamenteel anders ontwerpen en programmeren. Dat bedoelde ik met "Paradigme shift".
Ik weet niet of je ooit van de "Gang Of Four" gehoord hebt, maar hun boek over "Design Patterns" bevat nuttige informatie. 

Groet Meino
A clean desk is a sign of an empty mind

Kranenberg

PaulRoman

  • Offline Offline
  • Berichten: 102
Re: Zonder fouten een Arduino programmeren
« Reactie #23 Gepost op: 02 maart 2020, 14:45:10 »
Hallo Bas,

Als eerste wil ik je zeggen dat ik het een heel loffelijk streven vind om mensen voor wat programmeerwerk enthousiast te maken. Met wat basiskennis kun je zo al snel leuke dingen doen met bijvoorbeeld een Arduino. Rudy Boer doet wat dat betreft heel leuk werk, ook op dit forum.
Ik heb je document - waar je volgens mij heel veel werk in hebt gestoken - snel doorgelezen.Ik ben het wel met eerdere reacties eens dat je je doelgroep goed in het oog moet houden. Je schiet al snel je doel voorbij door teveel en te ingewikkeld te willen uitleggen. Ik ben bang dat een hoop "beginners" snel afhaken.

Dan nog even dit, omdat er in dit draadje regelmatig op wordt teruggekomen, niet omdat je hiermee "beginners" zou moeten plagen.
Mag ik je erop wijzen dat in C++ het "passing by reference" mechanisme iets anders is dan het mechanisme dat jij beschrijft. Dat kan worden gezien als "passing by pointer". Wat je nl. in dit laatste geval doet is een pointer als functie argument gebruiken. Deze pointer zelf wordt gewoon "by value" doorgegeven. Je kunt in de functie dan ook de pointer zelf niet veranderen. Wat wel kan is de inhoud van de locatie waar de pointer naar verwijst veranderen. En dat was altijd de gebruikte methode. Passing by reference is iets anders in C++. Zie de m.i. goede uitleg die je hier vindt.
https://www.geeksforgeeks.org/passing-by-pointer-vs-passing-by-reference-in-c/

Succes met je werk, maar houd het vooral eenvoudig als je voor beginners schrijft.

Paul
« Laatst bewerkt op: 02 maart 2020, 14:47:20 door PaulRoman. Reden: taalfout »
Schäßburg an der Kokel

bask185

  • Offline Offline
  • Berichten: 422
Re: Zonder fouten een Arduino programmeren
« Reactie #24 Gepost op: 03 maart 2020, 09:03:32 »
Paul,

Bedankt voor je input. Ik moet zeggen.... weer wat nieuws geleerd  (y). Ik denk dat de simpelste oplossing is om het woord 'reference' door 'pointer' te vervangen. Dat volstaat voor deze context.

Vind je trouwens echt dat ik ingewikkeld uitleg? Ik probeer het simpel te vertellen, alleen sommige dingen zijn nu eenmaal iets minder simpel dan andere dingen. Ik heb het stukje 'structs' nog eens doorgelezen, maar de uitleg lijkt mij enigszins duidelijk voor beginners. De uitleg is in ieder geval compleet. Ik kan natuurlijk niet voor een beginner spreken. Maar tot en met de functies moet het toch duidelijk zijn  ???

Deel 2 zal in ieder geval simpeler (en korter zijn) en daarin komen ook heel weinig nieuwe dingen naar voren.

mvg,

Bas

Ad Cleijsen

  • Offline Offline
  • Berichten: 560
Re: Zonder fouten een Arduino programmeren
« Reactie #25 Gepost op: 03 maart 2020, 09:36:09 »
Bas en overige heren,

Met plezier lees ik dit en had het handboekje dan ook al uitgeprint om eerst maar eens snel door te bladeren. Op basis van de inspanningen van Bas om het zo zorgvuldig mogelijk te doen, zal ik de komende week versie 2 dan maar uitprinten en 1 krijgt een tweede leven.

Qua mijntrein-projecten past het prima. HDL krijg ik langzaam onder de knie, Arcomora begin ik te snappen en met Arduino maak ik ook al vorderingen.

Dit helpt me verder op weg. Dank voor de input en wat mij betreft volgt er nog meer.

Groeten Ad
« Laatst bewerkt op: 03 maart 2020, 09:40:26 door Ad Cleijsen »

PaulRoman

  • Offline Offline
  • Berichten: 102
Re: Zonder fouten een Arduino programmeren
« Reactie #26 Gepost op: 03 maart 2020, 09:53:56 »
Hallo Bas,

Als ik wat meer tijd heb zal ik je document wat nauwkeuriger doorlezen, en proberen wat meer gedetailleerde feedback te geven.
Mijn eerste indruk was dat je op een aantal plaatsen al kennis veronderstelt die een beginner nog niet heeft. Maar dat is een bekende valkuil als je zelf die kennis al wel hebt.
Mijn opmerking over "pass by reference" was vooral bedoeld om mensen niet op het verkeerde spoor te zetten. Als je nl. als beginner wat meer informatie gaat zoeken raak je helemaal in de knoop als je denkt dat het zgn. "pass by pointer" hetzelfde is. En de materie met pointers is in het begin toch wat weerbarstig.
Overigens is "pass by reference"  in C++ wel de aanbevolen methode om functieargumenten te wijzigen. En als je ze niet wilt kunnen wijzigen "pass by constant reference ". En conceptueel simpeler dan het hele pointer verhaal.

Groet,

Paul
Schäßburg an der Kokel

Eric B

  • Offline Offline
  • Berichten: 3730
  • NS tijdperk III b/c
    • Obdam in H0 op Facebook
Re: Zonder fouten een Arduino programmeren
« Reactie #27 Gepost op: 03 maart 2020, 10:12:26 »
Bas,

Hierin moet ik Paul gelijk geven:
Citaat
Mijn eerste indruk was dat je op een aantal plaatsen al kennis veronderstelt die een beginner nog niet heeft.
Echte beginners ben je vrees ik na een paar alinea's al helemaal kwijt.
Als je echt iets voor een volledige beginner gaat maken, begin dan eerst eens met het uitleggen en verklaren van alle Engelstalige termen, functies en begrippen, voor je er, logischerwijze, kwistig mee rond ga strooien.

Zelf heb ik in een ver verleden aan een groep die totaal geen basiskennis had de mappenstructuur van een harde schijf met 3 partities als volgt uitgelegd:

De schijf is een kast, een kast met 3 deuren (de partities), op deze deuren staan letters (C:, D: en E:), achter elke deur zit een aantal laden voor hangmappen (de hoofdmappen) met een eigen naam, de hangmappen kunnen per lade in groepen verdeeld zijn (de submappen) ook weer met namen; en in elke hangmap kunnen tabbladen geplaatst zijn (de sub sub mappen en verder).

Als je de echte beginner wilt bereiken zal je m.i. daarmee moeten gaan beginnen.
Fotodijk(je)
Obdam
Als alles meeloopt hebben we morgen een optocht.

Ronald1974

  • Offline Offline
  • Berichten: 842
Re: Zonder fouten een Arduino programmeren
« Reactie #28 Gepost op: 03 maart 2020, 10:56:10 »
Hoi Bas,

Vind je trouwens echt dat ik ingewikkeld uitleg? Ik probeer het simpel te vertellen, alleen sommige dingen zijn nu eenmaal iets minder simpel dan andere dingen. Ik heb het stukje 'structs' nog eens doorgelezen, maar de uitleg lijkt mij enigszins duidelijk voor beginners. De uitleg is in ieder geval compleet. Ik kan natuurlijk niet voor een beginner spreken. Maar tot en met de functies moet het toch duidelijk zijn  ???

Als eerste waardeer ik het heel erg dat je de tijd en de moeite neemt tot het opzetten van het document  (y) (y).
Verder is het heel lastig van wie is nu een beginner en wie is een gevorderde programmeur.
Het gaat er om dat je binnen onze hobby een Adruino kan toepassen voor de meest uiteenlopende toepassingen.
Als beginner zal je je moeten verdiepen in de materie, en als gevorderde zal meer moeten focussen op hobby gerelateerde toepassing in plaats van het schrijven van het ultieme perfecte code.

Voor wat betreft het document, maak het zoals jij het wil maken.
Het is makkelijker als je het hele document klaar hebt (deel 1 t/m deel ...) om alles nog eens rustig door te lezen.
Dan zin en spelling aan te passen of verbeteren, onderwerpen/hoofdstukken verplaatsen zodat het beter aansluit in het document.

Het zal altijd lastig blijven om iets te schrijven wat bij iedereen aansluit.
Ik denk dat het met de inspanning die je in het document steekt een mooi document krijg wat je als referentie bij het schrijven van je code voor je project kan gebruiken.

Ben benieuwd naar deel 2 en de rest wat nog gaat volgen.

Mvg Ronald Hofmeester.

RICROO

  • Offline Offline
  • Berichten: 561
Re: Zonder fouten een Arduino programmeren
« Reactie #29 Gepost op: 03 maart 2020, 14:31:12 »
Bas,

Mooi stukje werk. Ik ben zelf ook al weer behoorlijke tijd bezig met Arduino. Is leuk om mee te werken en niet echt ingewikkeld. Echter weet iedereen die zelf code krast dat er zo nu en dan wel eens fouten in de listing voor kunnen komen en dan is het nalopen ervan best lastig. Zeker als het programma (sketch) enige omvang heeft. Er is wat mij betreft geen eenduidige manier om fouten op te sporen en te verbeteren.

En waarom ben ik van mening dat jou bijdrage zinvol is? Omdat iedereen er wel wat van kan leren. Ik werk ook vaak met XOD (xod.io) en het leuke daaraan is dat je in schema vorm je programma kunt opbouwen. Aan het eind van het werk komt er dan een sketch tevoorschijn waar je "u" tegen zegt. Dat klinkt leuk, maar omdat ik die sketch niet zelf heb geschreven is het lastig om te begrijpen waarom voor bepaalde oplossingen is gekozen. En in het zeldzame geval dat er toch een fout in zit, is die zo goed als niet terug te vinden.

Gezien de opmerkingen op Beneluxspoor zijn er mensen die enige tekortkomingen hebben geconstateerd en daar over berichten. Draagt alleen maar bij aan de kwaliteit van het product en zullen we allemaal ons voordeel ermee kunnen doen. Dus ga lekker door en in blijde verwachting van de andere delen wens ik je succes en wijsheid.

Richard