Blockly Arduino : l’esprit d’Ardublock, sans ses inconvénients !

Mise à jour du 07/09/2016

Cet article date d’il y a huit mois déjà. Il a été vu près de 6 000 fois déjà !
Depuis, Blockly Arduino a bien évolué, grâce notamment au travail remarquable de Sébastien Canet. Même cet été, il n’a pas compté ses heures pour que nous puissions commencer cette année scolaire avec un outil adapté à nos besoins. Il a mis en ligne la version 2.1 le 31/08/2016. Parmi les nouveautés, il y a la possibilité d’uploader en local le programme généré par Blockly Arduino. Le plugin Codebender n’est plus nécessaire.

Pour cette année scolaire 2016/2017 j’ai pour objectif de créer des tutoriels et des exemples utilisables en classe, que je ne manquerai pas de publier dans ce blog.
Je remercie d’avance tous ceux qui accepterons de partager leur travail sur Blockly Arduino pour aider tous ceux qui cherchent de l’aide pour utiliser cet outil. Sans le partage, Blockly Arduino n’existerait pas.
Vous pouvez me contacter à l’adresse suivante :
daniel.pers@ac-poitiers.fr

L’article qui suit n’a pas encore été mis à jour pour tenir compte des évolutions de Blockly Arduino. Merci de votre compréhension.

 

1. Une nouvelle interface graphique développée par Google

Le MIT et Google ont développé Scratch et AppInventor qui ont révolutionné l’enseignement des bases de la programmation. Ces logiciels étaient basés initialement sur une interface graphique très novatrice appelée Openblocs où on assemble des blocs pour générer du code. Openblocs est une application Java qui peut poser problème. Elle est utilisé aussi par Ardublock.

Google a ensuite développé Blockly, sorti en 2013, qui est un outil logiciel avec là encore une interface graphique pour programmer à partir de blocs et générer automatiquement du code. Blockly a été conçu pour être facilement intégrable à des logiciels pédagogiques de programmation graphique. Blockly est aussi conçu pour pouvoir être très configurable et s’adapter aux besoins pédagogiques : on peut facilement créer ses propres blocs, et définir le code qui doit être généré. Blockly est en javascript, il peut donc facilement être intégré à une application web multiplate-forme comme AppInventor 2 (en 2013).

Blockly est libre et est à l’origine aujourd’hui de nombreux logiciels de programmation graphique. Blockly est intéressant pour l’enseignement de l’algorithmie en Mathématiques conformément aux nouveaux programmes du collège comme le montre Patrick Raffinat dans son article : http://revue.sesamath.net/spip.php?article811

Pour programmer des cartes électroniques Arduino, j’utilise Ardublock depuis 2013 car c’est le logiciel qui correspondait le mieux à mes besoins en Technologie au collège mais aussi au lycée en Sciences de l’Ingénieur. Malheureusement Ardublock intègre Openblocs et non Blockly.

 

2. Intégration de Blocly avec Arduino par des enseignants

Parmi les nombreuses applications pédagogiques de Blockly, il y a Blockly Arduino développé depuis 2014 par Sébastien Canet, professeur formateur de Technologie de l’académie de Nantes. Blockly Arduino permet donc de programmer graphiquement avec des blocs et de générer du code pour Arduino, en langage C. La compilation du langage C en code exécutable par une carte Arduino est réalisée par le logiciel Arduino ou par un plugin du navigateur (CodeBender). La version actuelle de Blockly Arduino est opérationnelle et est très intéressante sur le plan pédagogique. Elle apporte de nombreux avantages par rapport à Ardublock, dont le développeur s’est inspiré.

Blockly Arduino est une application web qui ne nécessite donc aucune installation (pas besoin de droits administrateur non plus) et qui fonctionne sur toutes les plate-formes (PC, Mac, Androïd, …).

Exemple de programme simple avec Blockly Arduino utilisant un capteur de collision (logique), un capteur de vide (optique et analogique) , et un servomoteur à rotation continue. L’affichage se fait sur l’écran du PC via le câble USB.

Capteur collision ou vide + Servo rotation continue 150216.zip (version du 15/02/16)

Exemple de programme écrit avec Blockly Arduino. Il utilise un capteur de collision (logique), un capteur de vide (optique et analogique) , et un servomoteur à rotation continue (Source : Collège Jean Macé)

Exemple de programme écrit avec Blockly Arduino. Il utilise un capteur de collision (logique), un capteur de vide (optique et analogique) , et un servomoteur à rotation continue (Source : Collège Jean Macé)

5) Capteur colision ou vide + Servo rot continue 120515 (complet)

Le même programme fait avec Ardublock (Source : Collège Jean Macé)

Blockly Arduino est accessible à partir du lien suivant qu’il faut ouvrir avec Mozila Firefox (32 ou 64 bits) ou Google Chrome (32 bits uniquement) par exemple :

http://www.blockly.technologiescollege.fr/blockly@rduino/?lang=fr
Lien vers un tutoriel

Il est possible également de télécharger le site web de Blockly Arduino (moins de 10Mo) et de le lancer à partir du fichier index.html

Lien vers le logiciel pour un fonctionnement en local :

https://github.com/technologiescollege/Blockly-at-rduino

L’interface graphique de Blockly Arduino :

Menus, boîte à outils et espace de travail de Blockly Arduino (Source : Collège Jean Macé)

Menus (à gauche), boîte à outils (avec blocs “fonctions” ouverts, avec les fonctions utilisées) et l’espace de travail de Blockly Arduino avec un exemple de programme utilisant un capteur analogique et deux moteurs à courant continu. (Source : Collège Jean Macé)

Code Arduino généré par Blockly Arduino (Source : collège Jean Macé)

Code Arduino généré par Blockly Arduino (Source : collège Jean Macé)

Ne pas confondre Blockly Arduino avec Blockly Duino qui est une ancienne version.
Elle a inspiré le développement d’Ardublockly, qui est encore en version béta, mais qui devrait être intéressant également.
Voir une demo en ligne de l’interface d’Ardublockly ici : http://carlosperate.github.io/ardublockly/index.html
Pour une installation fonctionnelle (partiellement car en cours de développement) :
https://github.com/carlosperate/ardublockly
Mon premier essai d’Ardublockly m’a permis de voir notamment une fonction très intéressante, la possibilité de copier une partie d’un programme (sous forme de blocs) et de la coller dans le programme en cours. Cette fonction n’est pas visible dans la démo en ligne qui n’intègre pas les menus.

Lire la suite

La Toyota Prius II

Étude 2 : Les Transports propres

Introduction

Les activités humaines sont à l’origine de l’émission de nombreux gaz à effet de serre. Ces émissions de gaz à effet de serre contribuent de plus en plus fortement aux changements climatiques. C’est pourquoi le travail d’un ingénieur de notre époque consiste à éco-concevoir ces produits. Le secteur des transports et l’utilisation de moteurs thermiques fonctionnant avec des carburants issus d’énergies fossiles ont donc une grande importance dans l’origine des changements climatiques actuels. Des évolutions technologiques permettent de réduire les émissions de CO2, mais ces évolutions sont plus lentes dans le secteur des transports que dans les autres secteurs d’activité. Il devient donc urgent de développer des transports propres réellement compétitifs. Le changement de motorisation est une des évolutions majeures dans le domaine des transports. Les motorisations électriques correspondent aujourd’hui à la solution généralement retenue pour réduire les émissions de CO2.

Problématique

Comment un moyen de transport utilisant une motorisation électrique peut être compétitif et avoir un faible impact environnemental ?

Pour répondre à cette problématique, nous avons choisi d’étudier une voiture hybride, la Prius 2 de chez Toyota.

La Toyota Prius II hybride Source: http://abcmoteur.fr

I) Analyse du besoin

1) Comment exprimer le besoin ?

Schéma bête à corne de la Prius II Source: http://consmecapro.free.fr/Ressources/Tle/SPA11/fichiers/AnalyseFonctionnelle.pdf

Schéma bête à corne de la Prius II
Source: http://consmecapro.free.fr

2) Comment satisfaire le besoin ?

Pour satisfaire un besoin, un système est composé de plusieurs constituants, eux-mêmes constitués de composants.

Par exemple, le système qui est ici, notre Prius 2, est constitué de différents constituants comme : une motorisation, une unité de contrôle, une carrosserie, une batterie, un train avant.

xxxxx

Principaux constituants                                  Source: http://consmecapro.free.fr

 

II) Fonctionnement vu de l’utilisateur

1

Différentes phases de fonctionnement des moteurs Source: http://www.des.pf

III) Chaîne d’énergie

2

Source: http://consmecapro.free.fr

 

IV) Chaîne d’information

http://consmecapro.free.fr

http://consmecapro.free.fr

V) Un véhicule préservant l’environnement sur tous les points

En plus de préserver l’environnement lors de son utilisation, la Toyota Prius II le préserve en fin de vie. Le véhicule est à 90 % recyclable. De plus, chaque élément est clairement identifié et se démonte facilement pour simplifier et accélérer le démontage du véhicule en fin de vie.

La conception de la Prius 2 a été modifiée par rapport au processus de fabrication de la Prius 1 afin de réduire l’émission de CO2 lors de sa fabrication. Ainsi, cette modification de la fabrication de la Prius 2 a permis de faire baisser l’émission de CO2 de 31 %.

Sur l’analyse du cycle de vie (qui est un moyen d’évaluer les impacts environnementaux d’un produit), par rapport à une voiture essence de même gabarit, la Toyota Prius 2 émet 32 % de CO2 en moins.

La Toyota Prius 2 est équipée d’un système de climatisation intégralement électrique. Alors que sur une voiture classique, le système est entraîné par le moteur, dans la Prius, les éléments sont alimentés par l’inverseur à courant alternatif et l’inverseur à courant continu intégrés au système hybride. Ceci permet une réduction de 15 à 20 % de la consommation.

VI) Cahier des charges Toyota Prius 2

Cahier des charges de la Toyota Prius 2 Source: http://taaone-sti2d.fr

Cahier des charges de la Toyota Prius 2
Source: http://taaone-sti2d.fr

Diagramme pieuvre du système Prius 2 Source: http://taaone-sti2d.fr

Diagramme pieuvre du système Prius 2
Source: http://taaone-sti2d.fr

VII) Fonctionnement a l’intérieur de la Prius

 

Fonctionnement motorisation http://www.des.pf/itereva/disciplines/sti/prod/ETC/02/C021/23/hybride/hybride.html?analyse.html

Fonctionnement motorisation
http://www.des.pf/itereva/disciplines/sti/prod/ETC/02/C021/23/hybride/hybride.html?analyse.html

Schéma du fonctionnement énergétique de la motorisation http://blog.jeveux1truc.fr/wp-content/uploads/2014/04/hybride-fonctionnement2.jpg

Schéma du fonctionnement énergétique de la motorisation
http://blog.jeveux1truc.fr/wp-content/uploads/2014/04/hybride-fonctionnement2.jpg

Schéma des moteurs http://www.des.pf/itereva/disciplines/sti/prod/ETC/02/C021/23/hybride/hybride.html?analyse.html

Schéma des moteurs http://www.des.pf/itereva/disciplines/sti/prod/ETC/02/C021/23/hybride/hybride.html?analyse.html

Moteurs Toyota Prius 2 http://www.automobile-magazine.fr

Moteurs Toyota Prius 2 http://www.automobile-magazine.fr

 

VIII) Les facteurs influençant les performances

1) Comparaison des frottements aérodynamique et des frottements de roulement entre la Toyota Prius 2 et la Renault Laguna 2

Toyota Prius 2 http://images.caradisiac.com

Toyota Prius 2 http://images.caradisiac.com

11

Renault Laguna 2 http://www.motorstown.com

Lorsque la voiture roule, différentes forces s’appliquent sur celle-ci. Il y a tout d’abord la force P correspondant au poids du véhicule qui est donc lié à la gravité ainsi que la force R correspondant à la réaction de la route sur la voiture. Ces forces sont verticales pour un déplacement horizontal et donc n’ont pas d’effet énergétique sur le véhicule. En plus de ces forces il y a la force Fu correspondant à la force utile nécessaire pour maintenir constante la vitesse du véhicule. Cette force compense notamment la force Fr correspondant à la force de frottement de roulement et la force Fa qui est la force aérodynamique.

Source : lp2i EF 6

Source : lp2i EF 6

 Fa = 1/2 ρ.V2.S.Cx

Quand on regarde l’équation, on voit que la force aérodynamique (Fa en N) est liée à la masse volumique de l’air qui est constante et qui est de 1,2kg/m3 (ρ), à la vitesse au carré (V en m/s), à la surface frontale du véhicule (S en m²) et au coefficient d’efficacité aérodynamique (Cx).

 13

Un déflecteur aérodynamique est un élément de la carrosserie permettant d’orienter un flux d’air vers une direction souhaitée ou de l’en écarter.

Comme la force utile compense la force de frottement aérodynamique et la force de frottement de roulement, Fu = Fa + Fr

Donc plus Fa sera petit, plus Fu le sera aussi, et donc moins il faudra d’énergie pour compenser ces forces.

Cx

S

SCx

Prius 2

0,26

2,2m²

0,57m²

Laguna 2

0,32

2,1m²

0,67m²

g1

L’équation liée à la force de roulement est Fr = Cr . m . g où m représente la masse du véhicule, exprimé en kg. g l’accélération terrestre en m/s2 et Cr le coefficient de résistance au roulement. Alors que les constructeurs devaient faire varier la surface frontale du véhicule et sa capacité de résistance à la pénétration dans l’air pour réduire les forces de frottement aérodynamique, ils doivent, pour faire varier les forces de frottement de roulement, faire varier la masse du véhicule et faire varier les pneus (la surface de contact, la matière..).

Cr

m

Prius 2

0,012

1350kg

Laguna 2

0,012

1300kg

g2

La légère différence de force de frottement de roulement est due à la légère différence de masse des deux véhicules.

Étant donné que nous avons Fa et Fr, nous pouvons tracer Fu en fonction de la vitesse, selon les deux véhicules :

g3 g4

Nous admettons que la vitesse est constante sur une distance de 100km, nous pouvons calculer l’énergie utile aux deux voitures pour parcourir cette distance pour une vitesse donnée.

Eu = Fu . D où D en m, donc D = 100 000m ici, Fu en newton (N) et Eu en joule (j)

Pour une distance de 100km :

g5

On peut également calculer la Puissance utile nécessaire aux véhicules pour compenser les forces Fa et Fr à tout instant. Pour cela on utilise la relation Pu = 1/2 ρ.V3.S.Cx + Cr .m.g.V + m. a.V

On considère ici m.a.V = 0 car la vitesse est constante et qu’il n’y a pas de phase d’accélération.

S

Cx

Cr

m

g

ρ

Prius 2

2,2m²

0,26

0,012

1350kg

9,81m/s²

1,2 kg/m³

Laguna 2

2,1m²

0,32

0,012

1300kg

9,81m/s²

1,2 kg/m³

g6

Pour le cycle européen :

Nous admettrons le résultat du calcul réalise par Michel Kieffer dans le cas du cycle européen NEDC .

Énergie utile à fournir à un véhicule dans le cas du cycle européen NEDC, ramenée à une distance de 100 km (le cycle NEDC ne fait que 11 km) :

Eu = 19,2.S.Cx + 0,82.Cr.m + 0,011.m

Véhicule

m (kg)

S

(m2)

Cx

(sans unité)

Cr

(sans unité)

Eu

(MJ /100 km)

Eu en litres de gasoil (équivalence)

Rejets de C02 (g, kg ou tonnes)

Toyota Prius 2

1350

2,2

0,26

0,012

39,11 MJ/100km

1,09

2,8

Renault Laguna 2

1300

2,1

0,32

0,012

40 MJ/100km

1,11

2,9

2) Phase d’accélération

Pour accélérer, une voiture à besoin d’une énergie appelée énergie cinétique (Ec).

Ec = 1/2 mV²

Quand on regarde l’équation, on voit que l’énergie cinétique d’un véhicule est liée à sa masse et à sa vitesse. Les constructeurs vont donc faire varier la masse d’un véhicule pour pouvoir faire varier l’énergie nécessaire.

La masse de la Toyota Prius 2 est de 1350kg et la masse de la Renault Laguna 2 est de 1300kg.

g7

Véhicule

m (kg)

(maxi)

V (km/h)

(maxi)

V (m/s)

(maxi)

Ec (kJ, MJ, ou GJ à préciser)

Ec (équivalent en litres de gasoil)

Rejets de C02 (g, kg ou tonnes)

Petite citadine allégée

600

50

14

59kJ

0,0016

4,2g

Voiture 2 :

routière standard

1600

130

36

1,0MJ

0,028

75g

Toyota Prius 2 Hybride

1350

130

36

875kJ

0,024

62g

Renault Laguna 2

1300

130

36

845kJ

0,023

60g

IX) Comparatifs Toyota Prius 2 et Renault Laguna 2

Toyota Prius 2

Renault Laguna 2

Énergie

Hybride

Essence

Moteur thermique

4 cylindres essence 1497 cm3
Puissance max 77 ch à 5000 tr/min
Couple max 117 Nm à 4000 tr/min

4 cylindres essence 1598 cm3

Puissance max 110 ch à 5750 tr/min

Couple max 148 Nm à 3750 tr/min

Moteur électrique

Synchrone à aimant permanent
Puissance max 68 ch
Couple max 400 Nm

Performances

Vitesse maxi :170 km/h
0-100 km/h :10,9 s.

Vitesse maxi :195 km/h
0-100 km/h :11,5 s.

Consommations (L/100km)

Cycle mixte : 4,3
Cycle urbain : 5,0
Cycle extra urbain : 4,2

7,2

Emissions de CO2 (g/km)

Cycle mixte : 104

175

Masse (kg)

1350

1300

Source : lp2i

X) Protocole expérimental

Problème

On sait que lorsque un véhicule roule à vitesse constante,

Pu = 1/2 ρ.V3.S.Cx + Cr .m.g.V + m. a.V et m. a.V = 0

Ce qui est surligné en rouge correspond à la force aérodynamique.

On cherche à connaître l’effet de la variation des facteurs V, S et Cx sur l’énergie fournie au moteur.

Hypothèses

– Étant donné que V est au cube, est-ce-que lorsqu’on double la vitesse, la force aérodynamique est 8 fois plus importante ?

– Quel paramètre influence le plus l’énergie donnée au moteur, S ou Cx ?

Expérimentation

Nous allons faire varier la taille (S) et la forme (Cx) des pâles ainsi que la vitesse de rotation (V) d’une hélice fixée sur l’axe d’un moteur, afin d’observer quelles influences ces paramètres ont sur l’énergie délivrée au moteur afin de garder une vitesse constante.

Est-ce réalisable à notre échelle ?

Pour cela nous allons nous aider de la relation V=R*w qui fait le lien entre vitesse instantanée (V en m/s) et la vitesse angulaire (w en rad/s) par rapport à la distance entre le point et l’axe de rotation (R en mètres). Il faut d’abord que l’on détermine à partir de quelle vitesse la force aérodynamique n’est plus négligeable face à la force de frottement de roulement car Pu = 1/2 ρ.V3.S.Cx + Cr .m.g.V + m. a.V

On sait que m. a.V = 0 car la vitesse sera constante.

Pour déterminer cela nous avons tracé les courbes représentatives de la force aérodynamique et de la force de frottement en fonction de la vitesse. Voilà ce que l’on obtient :

Source : lp2i

Source : lp2i

 

21,52 m/s = 77km/h

Il faudrait donc que notre dispositif dépasse les 77km/h pour qu’il puisse être efficace.

V=Rw donc R=V/w

Selon le site du constructeur de notre moteur, sa vitesse max est de 90tours/min soit 1,5tour/s.

1,5tour correspond à 3Π radian.

donc R = 21,52/3Π = 2,2m

Résultat

Notre protocole expérimentale ne pourra pas être mis en place à notre échelle car il faudrait un rayon d’au moins 2,2m pour atteindre des vitesses supérieur à 77km/h.

XI) Rendement

Le rendement des moteurs est une valeur à prendre en compte car elle correspond à la quantité finale d’énergie à la sortie du moteur par rapport à l’énergie entrante. Un moteur électrique synchrone à aimant permanent peut atteindre un rendement de près de 95 % ce qui signifie qu’il n’y a qu’environ 5 % de perte sous forme de chaleur. Un moteur thermique possède quant à lui un rendement très faible d’environ 35 % et donc des pertes de 65 %. Ceci veut dire que pour avoir la même énergie en sortie de chaque moteur, il ne faudra pas la même quantité d’énergie en entrée pour chacun de ces moteurs. Il faudra 2,7 fois plus d’énergie à l’entrée d’un moteur thermique pour avoir en sortie la même quantité d’énergie que le moteur synchrone à aimant permanent. C’est pourquoi le ingénieurs favorisent cette solution technique, cela leur permet d’avoir moins de perte. De plus, étant donné qu’il y a moins de perte, cela veut dire que le moteur chauffe moins et qu’il n’a pas besoin d’un système de refroidissement important.

Moteur synchrone à aimant permanant http://www.directindustry.fr

Moteur synchrone à aimant permanant http://www.directindustry.fr

Moteur thermique http://www.moteurnature.com

Moteur thermique http://www.moteurnature.com

Conclusion

La hausse du coût des produits pétroliers ainsi que la nécessité impérieuse de réduire les émissions de co2 imposent aux ingénieurs de trouver de nouvelles solutions techniques pour les transports de demain.

Une voiture hybride contient deux sources d’énergie, l’une thermique et l’autre électrique. Le moteur thermique est utilisé lorsque les batteries sont vides, ou quand le moteur électrique ne fournit plus assez de puissance. Comme la voiture hybride consomme moins d’essence, elle est par conséquent moins polluante.

De plus, de nombreux véhicules hybrides, comme la Prius 2 de chez Toyota, grâce à différents systèmes, récupèrent l’énergie normalement perdue pour recharger la batterie du véhicule. Cette Prius 2 est protectrice de l’environnement tout au long de son cycle de vie, lors de sa fabrication, de son utilisation et de son recyclage.

La Prius 2 possède un très bon coefficient de pénétration dans l’air, ce qui va limiter sa consommation d’énergie face aux forces aérodynamiques lorsque l’on atteint des vitesses élevées. Les ingénieurs font variés ces paramètres cités dans cette étude, afin de réduire la consommation d’un véhicule et son émission de CO2, mais le véhicule doit rester performant face à la concurrence des autres produits proposés aux usagers.