14,90 € TTC
p. 04 Programmez vos Raspberry Pi Pico en Go !
p. 20 Pico-Clock-Green : un réveil à base de Raspberry Pi Pico
p. 28 Le récepteur de radio logicielle RSP1 : 8 MHz de bande passante pour moins de 20 euros
p. 44 NetBSD sur Pi : construisez vos paquets
p. 62 AlertBox : un boîtier d’alerte multifonctions
p. 90 Contrôlez votre pompe à chaleur selon la période tarifaire EDF
p. 108 Transformez votre vieille Game Boy en console de salon HDMI
Un puzzle n’est pas du code.
L’une des principales qualités d’un programmeur est sa capacité à transformer un concept en un ensemble de lignes d’instructions écrites dans un langage particulier. Ceci se fait en se représentant mentalement la manière d’atteindre l’objectif pour produire un algorithme plus ou moins efficace. La transition entre la structure d’un code et sa représentation sous forme de texte n’est qu’un point de détail, par rapport à la façon de manipuler une telle structure dans son esprit. Pire encore, pour établir un lien fort entre des lignes de code et la logique qu’elles implémentent, il est impératif d’entraîner l’esprit à cet exercice, au point que cela devienne naturel. C’est ainsi qu’on apprend à « programmer ». Simplement apprendre à parler le langage de la machine, c’est « coder ».
En d’autres termes, le code naît dans l’esprit bien avant d’arriver à l’écran. Et c’est précisément en cela que l’approche consistant à enseigner la programmation sous la forme de blocs n’est rien d’autre que d’utiliser un jeu de construction (ou un puzzle). Les structures comme les boucles et les conditions, sous cette forme, n’ont plus besoin d’être assimilées d’une manière qui est propre à chaque individu, elles se trouvent simplement là, à l’écran. Ce travail mental, qui doit en principe devenir instinctif chez un programmeur, est externalisé... dissimulé.
Comme l’a dit un certain Linus Torvalds (dont on peut raisonnablement supposer qu’il sache en quoi consiste la programmation) : « Les mauvais programmeurs se préoccupent du code. Les bons programmeurs se préoccupent des structures de données et de leurs relations. » Scratch, mBlock, Blockly ou encore Node-RED, peuvent avoir un intérêt (« succinct » ou « éphémère », je dirais), cependant ne vous y trompez pas, ils permettent juste d’apprendre à coder, mais certainement pas d’apprendre à programmer.
Denis Bodor
Né en 2014, Hackable est un bimestriel destiné aux professionnels et particuliers souhaitant découvrir et progresser dans les domaines de l’électronique numérique et de l’embarqué. Il fournit un contenu riche orienté vers une audience désireuse de bénéficier d'une veille technologique différente et résolument pratique. Le contenu du magazine est conçu de manière à permettre une mise en pratique directe des connaissances acquises et apprendre tout en faisant.
Le langage par excellence de l'embarqué et des microcontrôleurs est indubitablement le C, car celui-ci offre la proximité adéquate avec le matériel et permet d'atteindre des performances acceptables lorsqu'on ne souhaite pas toucher à l'assembleur. Mais le C arrive avec son lot de difficultés, inhérentes à sa nature permissive, et exige énormément de rigueur de la part du développeur. Des alternatives existent, l'une d'elles est le langage Go et il est parfaitement utilisable sur microcontrôleur.
On ne le dira jamais assez, dans l'embarqué, on ne compile jamais sur la cible. Certes avec une Raspberry Pi 4, cette affirmation est mise à mal tant les ressources et la puissance de calcul sont importantes, mais le monde n'est pas fait de Pi 4 et cette période de disette ne se prête pas réellement au fait de monopoliser une telle plateforme pour le simple plaisir d'explorer un nouvel OS. La compilation croisée est la solution et consiste à compiler/construire des binaires pour une machine X depuis une machine Y ayant une architecture différente, mais des ressources à foison.
Je ne sais pas pour vous, mais personnellement, je ne trouve aucun réveil matin adapté à mes cycles de sommeil et à mes préférences personnelles. Fort heureusement, Waveshare a eu la bonne idée de créer la Pico-Clock-Green, une base de réveil équipée de drivers de LED SPI, d'une matrice de LED (vertes), d'un buzzer et d'une RTC DS3231. Le tout devant être complété d'une Raspberry Pi Pico équipée d'un firmware adapté. L'occasion était trop belle, mais constitue aussi et surtout une magnifique opportunité de voir ce qui se passe lorsqu'on tente de s'approprier un code existant, développé avec une philosophie un peu particulière...