A suggestion for Arduino designers and how to make all programming languages ​​

Une suggestion pour les concepteurs d'Arduino et comment rendre tous les langages de programmation instantanément compatible Arduino.

Une fois arrivée a un langage de haut niveau n'importe le quel qui existe, j'aurais aimé avant pour débuter rester uniquement sur des fonctions de base déjà intégré dans la IDE et justement comme écrire sur un fichier sont des fonctions déjà présent sur un IDE de tous les langages de programmation j'aurais communiqué avec des cartes électroniques de cette manière. Parce-que il aurait un deuxième programme fourni par Arduino qui lit le contenu d'un fichier en particulier et se charge d'activer des composants, mais le programme des mes rêves j'ai du le faire moi même, donc si des concepteurs d'Arduino m'écoute ils pourrait s'inspirer de mon programme et le proposer a des élèves cela rendrait tous type de langage de programmation instantanément compatible Arduino et pas uniquement utiliser des librairies externe qui est encore un autre concept a apprendre et difficilement compatible avec l'intégralité de tous les langage de programmation
avec les versions, de compatibilité, risque de virus.

Good or bad idea ?

Rien compris

Faut apprendre votre langage c’est ça que vous dites ?

Et Il y a déjà des outils de programmation par bloc capables de générer du code pour différentes cibles.

Autant apprendre le vrai langage qui vous permettra de ne peut heurter un mur et être coincé ou dépendre du bon vouloir d’un truc obscur qui fait la colle entre une abstraction et le hard...

cela rendrait tous type de langage de programmation instantanément compatible Arduino

Ce qui ne veut strictement rien dire.

Il y a un gouffre entre élaborer un vrai langage et allumer et éteindre une LED avec comme seule condition le simple contenu d'un ou deux fichiers, sans aucune grammaire.

Si c’est pour le commun des mortels, je prends mon smartphone et je lui dis “allume la télévision” ou “ferme tous les volets et mets l’alarme” ou “crée un rendez vous jeudi prochain à 10 heures avec xyz”... là c’est du langage naturel...

@Rogerxxx on n’a peut être rien compris à votre concept cependant. Comment envisagez vous de supporter LISP, Prolog, C#, Java, Swift, Objective C, Basic, Fortran, Cobol et j'en passe avec cette approche ?

Comment allez vous programmer la mesure du poids d'une ruche pour estimer le miel et envoyer cela tous les jours par transmission radio ? comment allez vous gérer l'ouverture et fermeture de la porte du poulailler en fonction de l'heure du lever et coucher de soleil local ? comment allez vous programmer le pilotage d'un robot en bluetooth ?

ce n'est pas en tapant Hello dans un fichier et en allumant une LED... donc je ne comprends pas

Bonjour merci pour vous commentaires, je cherche a détourner les fonctions d’écriture pour contrôler Arduino. Je donne l'exemple sur m'a vidéo.

Quelles fonctions d’écritures ? Quel contrôle ?

Je inverse les rôles c'est un programme Arduino qui prend l'initiative de regarder un fichier en particulier en faite, un programme qui voudrait contrôler Arduino ne le cherche pas c'est Arduino qui l’écoute.

Je ne comprends toujours pas à quoi ça sert ni ce que vous voulez en faire ni le lien avec un langage de programmation

Si Arduino écoute le moindre mots écrit et active des composants c'est pas mieux pour des enfants ils pourrait contrôler des composants en trois semaines en lisant leur premier langage de programmation on passe du virtuelle a quelques chose de visible.

Allumer ou éteindre un composant ne nécessite aucune arduino, on prend juste un interrupteur... c'est très concret.

L'enjeu de la programmation c'est d'apprendre à séquencer, enchaîner des tâches simples pour obtenir un comportement plus complexe.

Dans votre approche je ne comprends pas, comment choisissez vous un composant 1 versus un composant 2 et comment lui dire de s’activer versus se désactiver ?

Allez vous écrire dans votre fichier texte HELLO1=ALLUME ou HELLO2=ÉTEINT ? Quelle sémantique, syntaxe, grammaire proposez vous ensuite pour construire des enchaînements ? Comment on lui dit allume toi pour 2 secondes toutes les 7 secondes si la température est supérieure à la moyenne des températures 3 jours précédents ?...

et quelle différence avec digitalWrite(3, HIGH)... faut apprendre quelque chose de nouveau. Quel est son apport, sa justification ?

En pratique, votre Arduino dépend de sa connection au système de fichier, donc je suppose que vous avez un programme en plus qui tourne sur le PC (écrit en Processing on dirait). Comment allez vous faire de l'embarqué pour mettre le résultat dans un petit robot autonome ?

Ce que vous proposez est un interpréteur de commandes. ça existe déjà et Ils peuvent être plus ou moins évolués.

-> par exemple GRBL va lire du Gcode pour piloter une CNC. Pour ce faire, quelqu’un à créé et modélisé le langage GCODE (spécification fonctionnelle, syntaxe, grammaire, ...) et a écrit un interpréter de ces commande. L'arduino écoute ce qui arrive sur son port série et exécute ce que le langage décrit => ça reste quelque chose à apprendre et très ciblé dans ce qu’il peut faire (et il le fait bien).

Plus complexe, on pourrait dire que le boot loader écoute sur le port série l’arrivée d’un flux d’instructions en langage machine, à stocker en mémoire, puis lui passe la main pour exécution. Le langage de description des taches dans ce cas c’est le C ou C++, passé au travers du compilateur. C'est un langage puissant, pas forcément simple de prime abord. Mais il existe des outils plus simples/simplistes qui vont générer ce C++ pour vous, comme par exemple les outils de programmation par bloc graphique (Ardublock, Scratch, ...)

Le choix arduino est de ne pas brider les possibilités parce qu’une primitive n’a pas été pensée auparavant pour être supportée dans le langage de plus haut niveau.

Bref, pour parler cash - je ne vois pas à quoi sert votre truc qui est loin d’être abouti, ni le besoin, ni son apport à l’apprentissage, ni comment on fait quoi que ce soit de concret avec...

Le sketch présenté s'exécute sur le PC, avec Processing, donc en JAVA.
Il utilise une librairie Arduino qu'il faut bien installer.
Or rien de tout cela n'est expliqué. Si ce sujet a une vocation pédagogique cela commence mal.

Quant à copier / coller du code à partir d'une vidéo, désolé de le dire comme cela mais le moindre débutant ARDUINO aurait eu l'idée, au minimum, de le poster en pièce jointe.

et pas uniquement utiliser des librairies externe qui est encore un autre concept a apprendre et difficilement compatible avec l'intégralité de tous les langage de programmation avec les versions, de compatibilité, risque de virus.

Pour que Processing puisse piloter les entrées / sorties d'une carte ARDUINO et bien plus encore, il faudra bien coder un firmware, donc en C / C++.
De plus il faudra dériver la classe Arduino de Processing afin d'ajouter les méthodes adéquates.

Cela suppose donc de maîtriser deux langages C /C++ et JAVA.

Je ne vois pas ce qui pourrait nous dispenser d'utiliser des librairies externes côté ARDUINO. Un ARDUINO n'est pas simplement capable de piloter des entrées / sorties pour allumer une LED ou lire un bouton avec un firmware de base.

Quant aux virus, quel est le rapport avec ARDUINO ? ? ?

Dernière chose : cette solution impose donc de faire tourner un PC.
Un peu ballot non ?

Conclusion : sujet brouillon, mal présenté, sans intérêt ni technique, ni pédagogique.

Merci pour vous commentaires, je veux qu'un enfant débute en langage source qui a l'avantage d’être éternel, j'ai trop entendu des gens pleurer que leurs formation pour un logiciel n'existe plus. J'aimerais diviser par cinq le temps apprentissage avec un code source j'estime que apprendre tous les types de calculs et conditions sont assez comme apprentissage dans un premier temps pour contrôler Arduino que des enfants puisse s'amuser déjà avec. Je veux que dans sont premier programme la première fonction est d'écrire des mots sur un fichier on peu pas faire plus simple tout y est déjà, dans n’importe IDE.
A Arduino de faire le reste avec un logiciel beaucoup plus complet que le mien il cherche un fichier puis lit le contenu et fait activer des composants.
Evidemment un logiciel fourni par Arduino qui lit le contenu d'un fichier pour activer des composants aurait beaucoup d'autres conséquences cela voudrais dire que tous les logiciels qui évidemment pour fonctionner sont toujours obligé d'enregistrer quelque chose dans un fichier peuvent être systématiquement détourné de leurs fonction principal, donc rajouter un fonction indirectement, où détourner un logiciel de leurs fonction principale.

Pas besoin d’IDE un éditeur de texte suffit alors. Les langages de programmation n’ont rien à voir - vous proposez juste d’avoir un nouveau langage.

LOGO en son temps se voulait simple, sans micro. On exposait les mouvements de la tortue par exemple. Mais on pouvait faire des tests des boucles etc...

Donc reste la question du langage, sa syntaxe, sa grammaire.... Que proposez vous ?

Ce qui est difficile en programmation, ce n'est pas d'apprendre un langage (chose que les enfants font d'ailleurs bien plus vite que les adultes), mais de de concevoir un organigramme. Qui fonctionne comme attendu. Voir le nombre de demandes d'aide sur ce forum qui touchent à ce point.

Cette tâche est indépendante de tout langage de programmation. Et difficile à faire pour un enfant (et même un adulte), car très abstraite.

Bientôt la fi dans le forum. Merci encore pour vous commentaires il y avais d'autres conséquences que j'avais pas
parlé encore. Si vous regardez m'a vidéo j'ai conçu mon programme il y a deux ans maintenant donc longuement réfléchi puisque il m'apporte toujours encore d'autres avantages.
Il est discret mais et il ne fait que rajouter une fonction a n'importe quel programme et j'adore.
L'autre chose en faite pour ceux qui vont débuter en langage source qu'ils apprenne que quelques types de calculs pas tous l'addition, soustraction, multiplication, et les types de conditions cela suffit puis utiliser une fonction et lancer un programme exécutable bien sûr dans une IDE.

J'ai quelqu'un qui des le début donne des explications toujours a multiplier par dix un procédé au lieu de simplifier et donne le plus complexe possible a croire qui prêche pour sa paroisse de connaissance de programmation, ou des néophyte interpréterais comme une réalisation mystique pour avoir un résultat, moi aussi cela m'a coûté vraiment énormément en temps mais je banalise dans l'intérêt de tous en faite.

Vous avez demandé un avis, on vous le donne honnêtement.:

Good or bad idea ?

je vote Bad idea...

La magie noire qui fait qu’écrire hello allume une LED ne vous apprend rien...ni pourquoi ça fait cela, ni comment faire plus.

Votre approche c’est un peu comme si vous vouliez enseigner les échecs sans parler des pièces, de leur façon de se déplacer ni des règles du jeu... j’écris hello et hop le gambit du roi..mais comment et pourquoi jouer le Gambit Steinitz, du fou ou du cavalier... le mystère reste entier...

J’ai accompagné de nombreux apprenants de différents âges en utilisant différentes méthodes, au final je trouve que rien ne remplace un apprentissage de l’algorithmique que la pratique par le vrai code et la discipline mentale associée pour progresser rapidement en capitalisant sur des acquis et les jeunes comprennent très vite.

Désolé donc si on trouve que votre travail ne sert aucun intérêt pédagogique ni technique et que vous êtes incapable d’expliquer concrètement qu’est-ce qu’un enfant va apprendre en 3 semaines avec votre approche et ce qu’il va en faire...

Vous y avez passé du temps, çà répond à un de vos centre d’interêt et vous êtes convaincu. Je comprends que ça ne fait pas plaisir à entendre.

Cela dit Ne vous laissez pas arrêter par 3 avis, on peut avoir tort bien sûr. Essayez grandeur nature. Se frotter au concret il n’y a que ça de vrai pour se faire une opinion.

PS: On ne sait toujours pas comment faire clignoter cette LED... a moins que ce ne soit le plus complexe possible...

Tout dire je ferai comme J-M-L en effet c'est complexe. Je voudrais que Arduino au lieu de faire comme toutes les IDE de obliger de tout comprendre du mécanisme des le début ne demande seulement comme moi un exécutable qui écris sur un fichier, puis Arduino fournit un logiciel comme le mien pour activer des composants, parce que indirectement une personne non seulement va arriver a le faire en trois semaines mais va commencer enfin a faire un peu lien de comment tout le reste fonctionne.
Vous pourrez utiliser World pour l’écriture mais c'est de la triche.
Vous faites déjà votre premier en code source vous aurez déjà un début de réponse de tout le travail qu'un programme comme le mien dois faire.

Pourquoi voulez vous que ce soit Arduino qui le fasse ? Votre "machin" ce n'est pas leur vision du tout de l'apprentissage du code et de l'algorithmique.

L'avantage c'est que c'est une plateforme ouverte, donc libre à vous de proposer ce que vous voulez et faites en le marketing.

parce que indirectement une personne non seulement va arriver a le faire en trois semaines mais va commencer enfin a faire un peu lien de comment tout le reste fonctionne.

Vous répétez sans cesse cela mais ne nous avez donné aucun exemple d'à quoi ressemble le fichier qui fait clignoter une LED... ça veut dire au moins 4 notions: Allumer, éteindre, attendre, boucler.

Quand vous aurez commencé à vraiment réfléchir à ce que cela veut dire de pouvoir "activer" ou "désactiver" des modules et enchaîner des opérations, vous verrez que la complexité augmente fortement et on va vers la notion de langage. A partir de ce moment là, entre apprendre votre langage ou celui qui est utilisé partout dans l'informatique, je pense que le choix est vite fait...

Ceux qui se sont penchés sur l'apprentissage plus visuel on fait des choix plus graphiques avec des composants que l'on dépose et qui s'imbriquent les uns dans les autres. ça permet de cacher la complexité sous-jacente avec un paradigme simple à comprendre.

Voilà à quoi ressemble blink dans le cas de Ardublock

Et Pour avoir bossé avec des enfants je peux vous dire qu'ils rentrent assez vite dans la compréhension de lignes de code et des fonctions pour jouer avec un robot ou des leds.

bref - j'arrête là ma contribution à cette discussion. Votre projet n'est pas abouti et vous êtes incapable malgré plusieurs demande de nous montrer quoi que ce soit de concret qui supporte la notion de parcours d'apprentissage. Donc pas la peine de continuer plus avant, cf la conclusion de @hbachetti en #11

Merci J-M-L de vous réponses honnêtes cela m'a vraiment fait poser plein de questions sur mes exploitations j'ai énormément refait mes explications sur m'a page sur YouTube grâce a vous. J'ai beaucoup obtenu en venant ici, désolé de pas être clair je verrais avec le temps du résultat on sais jamais j'ai essayé. Bonne continuation.

Bonne continuation à vous aussi

Juste un conseil si je peux - si vous voulez parler De programmation, il faut montrer quelque chose qui enchaîne une séquence d’instructions diverses.

Ensuite on peut évaluer les mérites même de trucs qui semblent barbare au premier abord comme (defun fact(n) (if (= n 1) 1 (* n (fact (- n 1)))))