Pages

mardi 28 janvier 2020

Utilisation basique de Thunkable pour créer une appli Android ou iOs

Le site internet Thunkable permet, à l'instar de AppInventor2, de créer des applications mobiles. Son usage est très légèrement différent mais iOs est pris en charge. L'exécution des applications sur l'appareil mobile peut se faire via une appli tierce. On retrouve le codage façon "Scratch" déjà vu au collège.



Pour se connecter à un compte existant ou créer un compte, c'est ici :

Il est possible de se connecter directement avec un compte google.
Pour se connecter, cliquer sur LogIn et vous obtenez cet écran :
Si vous voulez tester sur iOs ET Android, choisissez le bouton bleu...

On obtient ceci :

Pas besoin de créer un compte si vous avec une boite mail Gmail et/ou un compte Google...
Ici, on prend le cas de Google :

Il vous reste à vous connecter avec votre compte Google….

Vous êtes connecté et vous arrivez sur cet écran :

Ici, vous pouvez créer une nouvelle application, ouvrir une application existante ou encore voir des exemples.

Cliquons sur "Create New App" et nommons notre projet :
On clique sur "Create"



Encore une fois, une vidéo vaut de longs discours :


On voit bien la structure de notre IHM :
Maintenant, la partie codage :

Et maintenant ?

On va tester notre application sur notre smartphone préféré ! Pour cela, cliquer sur Live Test (procédure à ne faire qu'une fois par smartphone)

Important : au premier lancement de l'appli, il faut s'identifier avec le même compte que sur Thunkable. Cela permet de synchroniser les projets. Par la suite, l'appli ouvre le dernier projet en date.

Démonstration sur un Android :


Démonstration sur iOs :


Bon, ben....ça fonctionne !!!

Cerise sur le gâteau, si vous avez l'appli toujours ouverte et que vous modifiez une propriété dans votre projet, cette modification est visible en temps réel. 

Installation sur les appareils (détaillées plus tard)

Android :

 iOs :
La même appli sur deux OS différents !!!


dimanche 15 décembre 2019

Utilisation basique de draw.io

Cet article fait suite à un ancien article présentant rapidement draw.io.
Ici nous allons utiliser les fonctions basiques d'ouverture, d'enregistrement et d'export en image. Les fonctions avancées seront expliquées lors d'un prochain article...

1.Allons sur draw.io...

2.Choix de la langue et du support d'enregistrement... 
 
Choix de la langue :

 Choix du support d'enregistrement (ici, on enregistre sur le réseau ou sur clé USB):
 3.Création d'un nouveau document...


 4.Les outils et les modules supplémentaires...
Les outils de base peuvent suffire mais il est possible d'importer des modules supplémentaires :

 On choisit les modules à insérer et on clique sur Appliquer
Par exemple, les Clipart on été ajoutés :
5.Enregistrement d'un document... 
Tout au long de l'édition d'un document, draw.io propose de l'enregistrer 
 Et voici ce que donne un clic sur la ligne rose :

Enregistrer un document revient à le télécharger..... le fichier sera au format .drawio

6.Ouverture d'un document sur un autre poste ou à la maison ou depuis un autre support...
Ouvrir un document ne se fait pas naturellement par double clic de souris, ce n'est pas si simple. Il faut aller sur le site draw.io et suivre une des deux procédures suivantes :

Procédure 1 : on se connecte au site pour une nouvelle cession
On choisi le fichier et le travail apparaît...




Procédure 2 : via le menu Fichier


 ou bien

Si un document est déjà ouvert, ce message apparaît :

Choisir l'option qui vous convient....
Si je choisis la deuxième, une nouvelle page de navigateur s'ouvre :

7.Exporter un document sous forme d'image (pour communiquer facilement par exemple)...

 

Et après :

Et voilà !

Des questions ? Même procédure : le formulaire de contact....
 

mardi 26 novembre 2019

Création d'un télémètre simple avec Blockly-Arduino

En préambule, si vous n'avez pas Blockly-Arduino, vous pouvez le télécharger ici : https://github.com/technologiescollege/arduino .

Décompresser l'archive téléchargée et exécuter le fichier entouré :

Une fois l'IDE Arduino ouvert, suivre cette procédure compliquée :

C'est fait, vous avez ouvert Blockly !

Choisir la bonne carte ici :

Dans notre article, on travaille sur une UNO...

Blockly nous offre la possibilité de personnaliser les blocs afin de ne pas surcharger l'affichage. Il suffit de cliquer sur "Configurer les blocs". L'écran suivant apparait et on choisi les bonnes rubriques. Attention !!!! Arduino n'est pas sélectionné par défaut, il faut aussi le cocher ! 


Maintenant, cette vidéo va montrer un usage de Blockly afin de réaliser un télémètre sur console série :
 

Pas trop compliqué n'est-ce pas ? Nous sommes toujours dans l'esprit Scratch, Mblock, Ardublock....

Nous venons de passer une étape : la réalisation du croquis de cet article.
Qu'allons-nous en faire ?

 →On va simuler le programme dans Tinkercad ! Pour ceux qui ne savent pas ou plus réaliser un circuit sur cette plateforme, retourner voir cet article

Regarder cette vidéo et reproduire le circuit :

Vous allez obtenir ceci :
Bon..... et là ? 
Sélectionner le croquis ainsi :

Et le copier dans Tinkercad pour voir la magie faire son effet :

Voilà comment passer de Blockly à Tinkercad Circuit simplement....

mercredi 20 novembre 2019

Utilisation basique de Tinkercad Circuit

Cet article va présenter les fonction basique de Tinkercad Circuit de Autodesk.

Attention, il faudra créer un compte Autodesk et se munir d'un téléphone portable pour recevoir un code d'identification. Certes, c'est contraignant mais c'est le prix à payer pour utiliser les produits de cet éditeur. Rappelons que celui-ci nous fournit Maya, Autocad, Fusion360 et Eagle, en autres et que la sécurité sur le cloud est de mise.

Présentation de Tinkercad Circuit :

Si vous n'avez pas de compte, cliquer sur "S'inscrire", sinon, sur "connexion".

Écran de travail : 


et en détail :



Opérations de base :
Créer un nouveau fichier :

Placer des composants : 

Ajuster et câbler les composants placés :

Modifier un programme existant et le simuler :

Vidéo agrandie de la modification du programme :
 

La suite sera d'importer un croquis Arduino et de placer les bons composants afin d'effectuer une simulation un peu plus "sérieuse"....

dimanche 3 novembre 2019

Utilisation du lecteur RFID RDM6300

Cet article va présenter le lecteur RFID RDM6300. Les billets le concernant sont pléthoriques, je sais, mais bon, j'en refais un, à ma façon...

Schéma de câblage du test :
Le lecteur est alimenté entre 0 et 5V et le TX du module est sur la broche D2 de la UNO.

Fonctionnement de ce lecteur de badge :

Ce lecteur lit les badges 125 kHz et exclusivement ce type de badges.


Ces badges comportent 14 blocs de données sous forme d'un octet par bloc. Je ne rentre pas dans le détail des blocs dans cet article....

Pour faire simple, l'octet de départ est 0x02 qui donne STX en ASCII et l'octet de fin vaut 0x03 soit ETX.
Les 12 autres octets sont des caractères hexadécimaux entre 0 et F codés en ASCII.
Exemple d'une trame :


Vu la simplicité de la trame, il suffit simplement de lire les données sur le port série et hop, on a le badge !
En fait, pas si simple.....
Si vous faites cela, vous risquez d'obtenir des résultats bizarres, des rebonds, comme pour un bouton poussoir.
Exemple :

Ces trames sont obtenues en laissant un bref instant le badge au dessus de l'antenne. A peine une demie-seconde. Oui, le lecteur croit que le badge est toujours présent... Donc pas simple si on veut obtenir une belle chaîne en sortie et surtout faire de l'identification...c'est le but !

Passons au programme principal : Je ne pense pas que sois obligé de tout réexpliquer, les commentaires doivent être suffisants....



//nécessaire pour ouvrir un port série logiciel
#include <SoftwareSerial.h> 

SoftwareSerial RFID(2,3);//déclaration du port série logiciel

/*tag bleu :  180026AA52C6
tag rouge : 01001BCEC81C
tag jaune : 0000A38D5678*/

char caractere=0;//variable contenant un caractère
//variable contenant la chaine de lecture du badge présenté
String chaine_badge = "";
//variable drapeau correspondantes aux états des badges
boolean tag=false,etat_bleu=false,etat_rouge=false,etat_jaune=false;
//variables d'identification des badges
String bleu="180026AA52C6",rouge="01001BCEC81C",jaune="0000A38D5678";

void setup() 
{
RFID.begin(9600);//démarrage du port logiciel
Serial.begin(9600);//démarrage du port série
pinMode(13,OUTPUT);//broche 13 en sortie
}

void loop() 
{
    digitalWrite(130);
    chaine_badge = "";//on vide la chaine de réception
    Serial.println("attente badge");
    //si des données sont présentes sur le port logiciel...alors...
    if (RFID.available())
    {
      for (int count = 0; count < 14; count++)
      {//on boucle 14 fois car il y a 14 caractères
        //la variable caractère prend l'octet présent sur le port série
        caractere=RFID.read();
        //concaténation de la chaine et du caractère
        chaine_badge = String(chaine_badge) + caractere;
      }
    /*on ferme le port logiciel pour éviter 
    les rebonds et les fausses informations*/
    RFID.end();
    delay(50);
    tag=true;//un badge a été présenté et lu
    }

    if(tag==true)//si un badge a été présenté et lu...alors...
    {
    Serial.println("tag reçu !!!!!");
    digitalWrite(131);//on allume la LED
    //on affiche la chaine sur le port série
    Serial.println(chaine_badge);
    /*on appelle un sous programme
    qui va vérifier le badge et son état*/
    test();
    delay(5000);
    digitalWrite(130);//on éteint la LED
    }
    tag=false;//on remet l'état du badge à faux
    RFID.listen();//on écoute à npuveau le port série
    delay(100);//petite attente de sécurité
}

Ici, l'astuce pour éviter les fausses informations est l'utilisation de  la commande "RFID.end()". Celle-ci ferme le port série, ainsi, il n'y a plus de données parasites à traiter 👍
Bien entendu, il existe d'autre solutions mais je trouve celle-ci très efficace et facile à mettre en œuvre.

Maintenant, la partie test et identification :

void test()
{
    //extraction de la partie intéressante de la chaîne
    //on retire le stx et le etx
    String chaine_test=chaine_badge.substring(113);
    if(chaine_test==bleu)
    {
        Serial.println("bleu !!!!!!");
        //on regarde l'état antérieur du badge mais inversé
        if(!etat_bleu)Serial.println("bleu sorti");
        else Serial.println("bleu rentré");
        etat_bleu=!etat_bleu;//on change l'état du badge
        return;
    }
    else if(chaine_test==rouge)
    {
        Serial.println("rouge !!!!!!");
        if(!etat_rouge)Serial.println("rouge sorti");
        else Serial.println("rouge rentré");
        etat_rouge=!etat_rouge;
        return;
    }
    else if(chaine_test==jaune)
    {
        Serial.println("jaune !!!!!!");
        if(!etat_jaune)Serial.println("jaune sorti");
        else Serial.println("jaune rentré");
        etat_jaune=!etat_jaune;
        return;
    }
    else Serial.println("rien ................");
}

note : désolé pour les sauts de lignes, c'est le copier-coller de VScode qui veut cela....😕 mais sinon, c'est joli....😁

Je vous laisse tester et me contacter au cas où...

La prochaine fois, on complétera par une sauvegarde en EEPROM et un affichage sur écran OLED !


Thonny, un ami de Python qui vous veut du bien !

Ceux qui programment en Python le savent, il y a beaucoup, beaucoup, beaucoup trop d'éditeurs !
Entre les simplistes (ce n'est pas péjoratif), les complexes, les professionnels.... bref, on y perd son Pascal !

Dans le milieu scolaire, un éditeur son épingle du jeu, c'est Thonny : https://thonny.org/

 Pourquoi Thonny ????

Tout d'abord, il est simple à mettre en œuvre, il est sobre (trop peut-être) et il a une fonction pas-à-pas excellente ! C'est cette dernière qui va nous intéresser dans cet article...

Exemple en fonctionnement normal :

Classique me direz-vous ? oui, c'est vrai !

 ⛛
 Cependant, l'affichage des variables est bien pratique et rappelle celui de Spyder par exemple.

Mais là où Thonny prend toute son importance, c'est le mode pas-à-pas (d'autres éditeurs l'ont certainement mais je ne les connais pas tous....(mea culpa maxima)) 

Une vidéo vaut toutes les explications : La mise en surbrillance des pas et des affectations est juste géniale et permet de mieux comprendre le fonctionnement...


Les plus attentifs auront remarqué que j'ai simplifié le script pour ne pas avoir à saisir les valeurs au clavier....(et les meilleurs auront corrigé la coquille dans le print 😂😂😂😂😂😂)

Prochain exemple : la récursivité avec Thonny !