Interview de Tom Igoe, Arduino team

Voici une interview traduite de Tom Igoe, membre de la team Arduino réalisé par computerworld.
  • ComputerWorld : Qu'est ce qui a poussé au développement de l'Arduino ?
Tom Igoe: Il y avait une poignée d'écoles enseignant les micro-contrôleurs à des non-technologues en utilisant une méthode que nous avons appelé le calcul physique (physical computing). Nous avons tous besoin d'outils pour enseigner qui soit plus simple que les outils d'ingénierie existant sur le marché. Le Basic Stamp, et plus tard le BX-24 de NetMedia, étaient correct mais ne correspond pas réellement non plus aux outils que nous utilisions pour enseigner la programmation (Hypercard, Director, et ensuite Processing). Puis, à Ivrea en 2002, ont alors été créés Programa2003, Wiring, puis enfin Arduino.
  • L'équipe de développement d'Arduino était alors composée de Massimo Banzi, David Cuartielles, Gianluca Martino, David Mellis, Nicholas Zambetti - qui furent les pionniers - et vous-même. Quel rôle avez vous joué dans ce projet ?
Massimo à développé l'environnement Programa2003 pour micro-contrôleurs PIC, un outils simple de développement sous MacOs (la plupart des étudiants d'Ivrea étant des Mac users). L'outil a facilité l'enseignement de la programmation sur micro-contrôleurs. Cela, combiné avec l'IDE Processing (open source) a servi d'exemple à d'Hernando Barragán pour développer la platine Wiring ainsi que son environnement. Rapidement, Massimo (professeur à Ivrea), David Cuatielles (chercheur à Ivrea), et Gianluca Martino (ingénieur, recruté pour développer du matériel pour les projets des élèves) ont développé une plus petite, et moins coûteux platine, la platine Arduino. C'est avec Mellis et Zambetti (étudiants à Ivrea à l'époque), qu'ils ont amélioré la base du Wiring, et élaboré une platine et son IDE utilisable en dehors de l'université. Je les ai rejoint en 2005, contribuant aux bêta tests avec une autre école, ITP (ayant une population étudiante plus importante qu'Ivrea), et plus tard, en aidant à la rédaction de la documentation. J'ai également présenté l'équipe à certains distributeurs aux États-Unis afin que nous puissions créer un marché ici, ainsi qu'en Europe. Aujourd'hui, Gianluca et Massimo s'occupent de l'essentiel de la conception matériel, Mellis Dave coordonne ou écrit la plupart des logiciels, David Cuartielles travaille sur des logiciels ainsi que des tests sur Linux et gère le site Internet, et je travaille sur la documentation ainsi que des tests, à un degré moindre. Nous travaillons tous ensemble sur la direction du projet, les relations avec les fabricants et les nouveaux développements. Gianluca gère l'ensemble des distributeurs ainsi que son entreprise, Smart Projects, fabricant principal de la board. Zambetti a quitté l'équipe , mais reste un collaborateur occasionnel lorsque sa vie professionnelle le permet.
  • En étiez-vous à essayer de résoudre un problème en particulier ?
Nous voulions un outil pour enseigner l'informatique physique, particulièrement la programmation de micro-contrôleurs, aux artistes et designers, ceux à qui nous enseignons. Les aprioris de ceux qui viennent d'un milieu autre que les sciences informatiques ou en génie électrique sont très différentes, et nous voulions des outils qui correspondent à cette diversité.
  • D'où vient le nom Arduino?
Arduino a été le premier roi de la région dans laquelle est situé Ivrea, nom également employé par un bar local où les étudiants et les professeurs d'Ivrea se rassemblaient.
  • Y at-il eu des difficultés particulières, voire frustrantes à surmonter dans le développement de l'Arduino?
Le plus grand défi n'a pas réellement été un choix technique, mais plutôt un choix culturel. La plupart des gens en informatique ou en génie électriques que j'ai rencontrés ont une image bien forgée sur la façon d'apprendre le développement autour d'un micro-contrôleurs : apprendre en un premier temps la loi d'Ohm et la loi de Thévenin, etc. Viennent alors les circuits à transistors et des amplificateurs opérationnels, enfin les circuits intégrés les plus simples (IC). Parfois vous apprendrez à utiliser un oscilloscope ou un multimètre, si cela est nécessaire. Ont vous présente alors enfin les micro-contrôleurs, à commencer par la structure interne et les registres de mémoire. Ensuite, vous découvrez le langage assembleur, et d'ici là, «bien sûr», vous connaissez le C et l'environnement en ligne de commande, si vous êtes prêt pour, disons, CCS C (sur PIC) ou AVR Studio. Et 90% de cela est fait sous Windows, parce que 90% du monde fonctionne sous Windows, il est donc logique d'y développer dessus. De nos jours, un grand nombre de personnes amené à coder sur des micro-contrôleurs ne viennent pas de ce contexte. Ils ont grandi en considérant que l'interface graphique de l'ordinateur était son interface principale. Ils supposent aussi que vous pouvez apprendre en copiant et modifiant le code, un peu comme ce qu'offre le navigateur internet avec le 'view source'. La plupart d'entre eux ne veulent pas réellement être des programmeurs, ils veulent juste "utiliser" la programmation et les circuits pour arriver à leur fins. J'entends par là créer une œuvre d'art, alimenter automatiquement la gamelle son chat, ou concevoir un nouveau dispositif d'ergothérapie. Ces gens ne sont pas officiellement formé comme des ingénieurs, mais veulent construire des choses. Nous enseignons à des étudiants. C'est en accord avec leur façon de penser que nous avons conçu l'Arduino.
  • Qu'auriez vous fait différemment dans le développement de l'Arduino, si vous aviez eu la possibilité?
Je pense que le principal changement que nous aurions pu faire aurait été d'uniformiser l'espace entre les pins 7 et 8! Nous avons pas mal d'ennuis à cause de cette erreur, mais nous avons maintenu le non-espacement standard pour maintenir la compatibilité ascendante des boards (NDLR : et leur shield). Cependant, d'une manière générale, je ne pense pas qu'il y ait une réponse à "Que feriez-vous différemment", car lorsque nous rencontrons quelque chose que nous aurions du faire différemment, nous le faisons différemment. Les changements sont plus délicat, maintenant que nous avons beaucoup d'utilisateurs, mais restent encore possibles.
  • Pourquoi avoir choisi respectivement 'Wiring' et 'Processing' comme bases pour le langage Arduino et son environnement ?
Car ils avaient déjà leur place à Ivrea (et ITP) à l'époque, et parce qu'ils étaient de meilleurs dispositifs d'enseignement pour nos étudiants comparés aux autres disponibles à l'époque. Processing en particulier apportait de gros changement au sein des écoles d'art et de design enseignant la programmation, car les étudiants "y arrivaient". Il était donc logique d'offrir un environnement de développement (IDE) basé sur celui-ci. Programa2003, Wiring, et Arduino ont tous grandi à partir de Processing en succession rapide.
  • Comment comparer l'Arduino aux BASIC Stamp, PICS, etc. ? Qu'est-ce qui en fait un meilleur choix ?
Il existe un certain nombre de choses que nous avons essayé d'améliorer. Le langage Arduino est un ensemble de méthodes en C / C + + qui le rend plus facile à comprendre pour les débutants. Contrairement au Stamp PBASIC, l'Arduino possède toutes les fonctions puissantes de C (passage de paramètres, variables locales, et ainsi de suite) conscrites dans une syntaxe lisible. PBASIC était lisible et facile pour les débutants, mais il était si limitée que même les débutants atteignaient rapidement ses limites L'expérience utilisateur de l'Arduino est plus proche de l'utilisateur "consommateur". Il n'est pas nécessaire de s'attarder sur un programmeur hardware (contrairement aux environnements PIC), il se branche directement au port USB (contrairement au STAMP). La compilation et l'upload du nouveau code à votre contrôleur est réalisé en un seul clic. Les noms de méthodes sont "verbeux", et plus proche dans l'esprit à la langue de tous les jours que le C, l'assembleur, ou tout autre langages de bas niveau. Idéalement, l'expérience utilisateur est conçue pour minimiser le temps entre l'idée et la conception sur la board, tout en maintenant la puissance et la souplesse des composantes sous-jacentes autant que possible. Arduino incarne ce que j'appelle "glass box encapsulation". Cela signifie que vous n'avez pas besoin de regarder le code de bas niveau qui comprend les bibliothèques si vous ne voulez pas le faire, mais vous pouvez si vous le souhaitez. NDLR: c'est un peu ici l'esprit du langage python, ou plus généralement même des frameworks OS. Les bibliothèques sont compilées uniquement lorsque vous compilez votre sketch final. Donc, si vous voulez les modifier, vous le pouvez. Si vous souhaitez inclure du C "non-Arduino-style" dans votre code, vous le pouvez. Si vous voulez inclure du code assembleur brut, vous le pouvez.  L'"encapsulation box" est toujours là, mais vous pouvez voir à travers si vous le voulez. Les contrôleurs de niveau comme le STAMP n'inclus pas cela. Et les environnements de niveau inférieur ne réalisent pas l'abstraction au même niveau que nous le faisons. La board comprend un serial bootloader sur le micro-contrôleur, et un adaptateur USB/série, vous n'avez donc pas à vous préoccuper de l'interfaçage ou de la compatibilité ordinateur/micro-contrôleur. La board possède également un prise d'alimentation jack et switch automatiquement entre l'alimentation USB et l'alimentation externe, toujours dans le but de simplifier le passage ordinateur / fonctionnement stand-alone. NDLR : il est également possible d'alimenter la board via les pins GND et + 5V (alimentation non régulée). Le prix de la board reste raisonnable (moins cher qu'une board STAMP) et le logiciel est gratuit. Nous voulons que les gens pense développement, plutôt que de voir leur contrôleur comme une seule unité qu'ils ne peuvent pas se permettre de dupliquer. Le tout est open source, afin que vous puissiez faire votre propre version de celui-ci si vous avez envie de faire. Le nombre de fork nous montre que la platine est réellement utile à certains de nos utilisateurs. La continuité des ventes de la platine officielle, elle, nous indique que d'autres ont aussi la valeur de la commodité. Dès le début, le logiciel a été multi-plateformes. Enseigner dans les écoles où les élèves sont à 90% sous Mac, à été une énorme amélioration pour nous. À ITP, nous avons réussi à "libérer" un laboratoire du support du logiciel propriétaire (Windows-only) que nous utilisions alors pour le PIC. Les étudiants apprécient de pouvoir utiliser des outils sur n'importe quel système d'exploitation avec lesquels ils sont familiers.
  • Quel impact pensez-vous que cette décision a-t-elle eu?
Nous pensons que l'ouverture est bénéfique à l'innovation. Le caractère open source de celui-ci a eu un impact énorme sur sa propagation, je pense. Il y a des tonnes de clones sur le marché. Beaucoup d'entre eux ne cherchent même pas une clientèle au-delà de leurs amis, étudiants, etc. Mais il y a une grande valeur d'apprentissage à faire votre propre version d'un outil que vous utilisez. Je pense que beaucoup de personnes font un clone tout simplement parce qu'ils le peuvent, et qu'ils pensent que ça va être fun. Dans le processus, ils apprennent quelque chose, et ils deviennent vite accroc à en apprendre plus. Cela n'arriverait pas si la plate-forme était fermée.
  • Nous avons entendu les développeurs ont exprimé le souhait que le nom "Arduino" (ou dérivé) soit exclusif au produit officiel et ne puisse pas être utilisés pour des travaux dérivés sans autorisation. Est-ce exact et si oui, pourquoi prendre cette mesure ?
C'est vrai, nous avons déposé la marque. Il est assez fréquent de le faire en open source. Si vous prenez par exemple Linux, MySQL, Apache, ou Ubuntu, par exemple, ils sont tous des marques déposés, bien qu'open-source. Ainsi, ces derniers sont nos modèles. Il y a certaines raisons pour lesquelles nous avons choisi pour ce faire. Premièrement, le nom porte la responsabilité. Alors que nous sommes ravi que des gens utilisent les fichiers typons ou le code que nous avons créé, nous pensons que nommer une chose devrait rester unique. Quand une personne achète une Arduino, elle devrait pouvoir compter sur le constructeur derrière elle. Nous l'avons fait, pour les fabricants à qui nous avons autorisées le nom, car nous travaillons étroitement avec eux pour assurer un niveau de qualité et de facilité d'utilisation dont nous sommes fiers. Si, d'autre part, quelqu'un achète une board appelée Arduino auprès d'un constructeur avec lequel nous n'avons aucun contact, et l'envoie ensuite à nous ou l'un de nos fabricants pour réparation ou remplacement, nous, ou le fabricant, ne pourraient assurer un service correct. Nous ne pouvons pas garantir un niveau de qualité avec quelqu'un qui ne travail pas avec nous. Deuxièmement, les noms de produit fonctionnent un peu comme les noms de personnes: Si j'écris un article et je "cite" Trevor Clarke, vous seriez probablement satisfait, mais si j'écris et "signe" Trevor Clarke, vous n'apprécieriez probablement pas. Vous n'auriez aucun moyen de s'assurer que l'article était factuellement exacte, ou représentait vos opinions. Mais il y a votre nom dessus. Nous ressentons la même chose concernant la platine et son IDE. Si vous voulez utiliser les typons Arduino ou le code source pour faire votre propre board (en citant simplement le projet) c'est parfait. Si vous voulez l'appeler "Arduino-compatibles", c'est très bien aussi. Mais nous préférons vous voire attribuer à votre propre board son propre nom. Enfin, il y a une raison financière au maintient de la marque. Le hardware rend l'entreprise commercialement autonome, mais le software (non monétisé) ne se suffit pas à lui même. Nous facturons des frais de licence à des fabricants sous licence pour chaque board qu'ils vendent. Cet argent sert à financer la maintenance et le développement du logiciel et du site Web. Il permet à chacun de nous de prendre quelques heures par semaine, hors de nos autres emplois, à maintenir les éléments du système Arduino qui ne peuvent se suffirent à eux même. Vous pouvez faire des travaux dérivés sans autorisation, c'est juste le nom qui est une marque déposée. La plupart des clones n'ont pas demandé notre permission, pas plus qu'ils en ont besoin, tant qu'ils ne sont pas appelés «Arduino». Il y a des tonnes de *duinos qui sont très bien [..].
  • Vous-même, avez vous utilisé l'Arduino pour un projet ?
Je l'utilise tout le temps. Le premier usage que j'en ai eu s'est fait avec le reste de l'équipe, le développement d'un prototype pour une entreprise d'éclairage en Italie. Ce projet m'a montré à quel point cette plateforme pouvait être utile. Je l'utilise également dans mon enseignement.  C'est la première plateforme hardware qui puisse servir à l'enseignement des étudiants et au milieu professionnel en même temps. Dans mes projets personnels, j'ai développé une nouvelle version de mon "horloge e-mail" (une horloge qui fait tic tac à chaque nouveau message reçu) utilisant l'Arduino. J'ai également conçu une litière à chat qui m'envoie un e-mail avec une photo du chat; un outils de mesure de la qualité de l'air.. [..] et plus encore. Je l'utilise en classe à peu près tous les jours.
  • Avez-vous déjà vu l'Arduino utilisé d'une manière que vous n'auriez pas souhaité ?
Eh bien, l'Arduino est destinée à être déployée dans une grande variété de cas, donc pas vraiment. J'estime que la seule chose pour laquelle je ne souhaite pas qu'il soit utilisé soit pour faire mal aux gens ou de causer des dommages. J'espère ne jamais la voir utilisé en ce sens.
  • Avez-vous des conseils pour les "up-and-coming hardware hackers"?
Patience. Persistance. Et douches fréquentes. Je résous la plupart de mes problèmes dans la douche. (NDLR : euhh.. erreur de traduction ?)
  • Enfin, y'a-t-il autre chose que vous aimeriez ajouter?
Merci à tous ceux qui ont utilisé Arduino! Nous avons beaucoup de plaisir à travailler sur ce projet, et il est incroyablement gratifiant de voir les choses réalisées par les utilisateurs, qu'on ne pensait pas être possible grâce au fruit de notre travail. interview original (en)

Ajouter votre commentaire

facultatif

facultatif

Anti-spam :

Haut de page