[Tuto] Mode sommeil sur Trinket

Les modes sommeil permettent de réduire énormément la consommation des cartes électroniques. Sur le Trinket d’Adafruit, il est souvent recommandé de passer par les librairies Adafruit_sleepydog dans cet exemple nous allons passer par l’utilisation d’une librairie plus bas niveau.

 

Le cœur de l’Adafruit Trinket est un microcontrôleur Attiny 85. Celui-ci est basé sur une architecture de type AVR. Nous allons donc passer dans notre cas par les librairies pour Arduino avr/sleep.h et avr/interrupt.h

Pour faire nos essais, nous allons nous baser sur le sketch exemple « Button » inclue dans l’IDE Arduino. Après quelques modifications de pinout, il est compatible avec le Trinket:

const int buttonPin = 0;     // the number of the pushbutton pin
const int ledPin =  1;      // the number of the LED pin</em></p>
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
   // initialize the LED pin as an output:
   pinMode(ledPin, OUTPUT);
   // initialize the pushbutton pin as an input:
   pinMode(buttonPin, INPUT);
}

void loop() {
   // read the state of the pushbutton value:
   buttonState = digitalRead(buttonPin);
// check if the pushbutton is pressed. If it is, the buttonState is HIGH:
   if (buttonState == HIGH) {
     // turn LED on:
     digitalWrite(ledPin, HIGH);
   } else {
     // turn LED off:
     digitalWrite(ledPin, LOW);
   }
 }

Le mode sleep va fonctionner comme ceci:

  • Lorsque le bouton n’est pas pressé
  • La LED s’allume 3 secondes
  • Le mode sleep s’enclenche avec la LED qui reste allumée
  • Lors de l’appuie sur le bouton le Trinket sort du mode sleep

Voici le code que cela donne:

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT_PULLUP);
}

void sleep() {

    GIMSK |= _BV(PCIE);                     // Enable Pin Change Interrupts
    PCMSK |= _BV(PCINT0);                   // Use PB0 as interrupt pin 0
    ADCSRA &= ~_BV(ADEN);                   // ADC off
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);    // replaces above statement

    sleep_enable();                         // Sets the Sleep Enable bit in the MCUCR Register (SE BIT)
    sei();                                  // Enable interrupts
    sleep_cpu();                            // sleep

    cli();                                  // Disable interrupts
    PCMSK &= ~_BV(PCINT0);                  // Turn off PB0 as interrupt pin
    sleep_disable();                        // Clear SE bit
    ADCSRA |= _BV(ADEN);                    // ADC on

    sei();                                  // Enable interrupts
    } // sleep

ISR(PCINT0_vect) {
    // This is called when the interrupt occurs, but I don't need to do anything in it
    }

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
    delay(3000);
    sleep();
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}

A titre de comparaison, sans le mode sleep LED allumée le Trinket consomme 22mA sous 12V avec le mode sleep cela tombe à 13mA soit une économie de 9mA

[Tuto] Dépannage station de soudure à air chaud

Les stations de soudure à air chaud sont devenues un indispensable pour assembler des composants CMS. Parmi les nombreuses références disponibles sur le marché des modèles entrée de gamme à 700/800W sont très présents sur le marché. Aujourd’hui nous vous expliquons comment les dépanner.

Les symptômes de pannes sont généralement au niveau du pistolet:

  • Non démarrage lors du retrait du socle
  • Problème de chauffe
  • Problème de flux d’air

Les modèles étant assez variés dans les connexions entre pistolet et station, voici la démarche que nous suivons pour le dépannage de nos modèles (YOUYUE 8586 et SAIKE 898D):

  • Ouvrir le pistolet
  • Réaliser le mapping
Sur le YOUYUE 8586:
1Temp sensor
2Commun sensor
3Capteur reed
4Masse
5GND fan
6VCC fan
7Blanc cartouche chauffe
8Rouge cartouche de chauffe
  • Remplacer le composant défectueux
  • Remonter le tout

[TUTO] Update Firmware SIM8XX

Il existe plusieurs modules GSM de la série SIM800 de chez SIMCOM possédant chacun des spécificités propres : taille, interfaces, fonctions supplémentaires (GNSS, Bluetooth)… etc. Les firmwares de ces modules sont souvent mis à jour, intégrant alors de nouvelles fonctionnalités (ajout de nouvelles commandes, fix de bugs…). Cet article vous présente comment mettre à jour vos modules SIMCOM de la série SIM8XX et ainsi exploiter tout le potentiel de votre matériel.

Ce tutoriel utilise un flashage du firmware par la liaison série du module (RX / TX). Un Arduino en MultiSerial ou convertisseur UART – USB peuvent être utilisés afin d’interfacer le module avec votre ordinateur.

Le module utilisé pour la démonstration est un SIM800L de chez SIMCOM.

Téléchargement de l’outil :

Télécharger la dernière version du firmware du module sur le site officiel de SIMCOM : http://simcom.ee/documents/?dir

Lancer l’exécutable :

Entrer les configurations de la carte :

  • Target : type de carte utilisé (ici un SIM800L)
  • PortType : type de transfert, via liaison USB ou UART (RX / TX)
  • Com : port COM utilisé
  • Baud rate : vitesse de transmission (souvent 9600 ou 115200 par défaut)
  • Image Folder : sélection du firmware à flasher dans le module

Cliquer sur Image Folder afin de sélectionner le .cfg du firmware à flasher :

Vérifier que le module est bien ETEINT puis cliquer sur Start Download. Le module doit être éteint afin que le logiciel puisse flasher le module avant son démarrage complet. Une indication (waiting) apparait, attendant le démarrage du module.

Allumer le module. La barre de téléchargement doit alors se lancer.

Une fois le download correctement effectué, une fenêtre apparaît indiquant le bon déroulement du processus.

Sources d’erreurs possibles :

  • Mauvais port COM sélectionné
  • Erreur de branchement des signaux RX/TX
  • Ordre d’allumage du module
  • Mauvais firmware

nb : pour le cas du SIM800L, deux versions de firmwares existent. Selon la version du module il faut choisir l’une ou l’autre. La commande AT+GMR retourne la version du firmware dans le module :
1308B0XSIM800L16 = mettre la version de firmware disponible sur le site SIMCOM
1418B0XSIM800L24 = mettre la version de firmware suivante : 1418B05SIM800L24

[Tuto] Le capteur Pulse Sensor

Dans ce tutoriel, je vais vous expliquer comment mettre facilement en place votre capteur Pulse Sensor.

Matériel nécessaires:
– 1 Arduino Uno
– 1 Capteur Pulse Sensor
– Du scotch occultant

1. Branchement

20160921_163044

Branchez:
– Le fil marron (+) sur la pin +5v de l’arduino.
– Le fil noir (-) sur la pin gnd.
– Le fil rouge (data) sur la pin A0.

Si tout a bien été fait, la led du capteur devrait s’allumer en vert.

2. Mise en place Logiciel

Téléchargez le logiciel du capteur ICI.

Démarrez Arduino et lancez le programme  » PulseSensorAmped_Arduino_1dot4.ino ».

Afin d’avoir quelque chose de cohérent dans notre moniteur Serial il vous faudra modifier la ligne 30 du programme:  » static boolean serialVisual = false;  » en  » static boolean serialVisual = true; « .

Afin d’activer la visualisation ASCII (comme le mentionne le commentaire).

Téléversez le programme dans votre Arduino.

3. Tests

Placez votre pouce sur le capteur à l’aide du scotch occultant afin que la led puisse mesurer correctement.

20160921_174047

N’oubliez pas de paramétrer votre moniteur Serial en 115200 Bauds.

Voici le résultat :

untitled-3

4. Bonus

Il est possible d’avoir un retour graphique !

Pour cela, téléchargez :
Le logiciel Processing
Le programme PulseSensor pour Processing

Il vous faudra aussi reprogrammer votre Arduino en changeant la ligne 30 à nouveau :  » static boolean serialVisual = true;  » en  » static boolean serialVisual = false;

Lancez Processing.

Ouvrez le programme PulseSensor pour Processing que vous avez téléchargé précédemment ( » PulseSensorAmpd_Processing_1dot4.pde « ) via Fichier > Ouvrir.

Lancez le programme grâce au bouton Play en haut à gauche.

untitled-2

Le logiciel vous demandera alors  quel port com il doit analyser.

untitled-3

Il ne reste plus qu’a admirer votre poux !

untitled-5

[Tuto] Commander une led via l’application Blynk

Dans ce tutoriel je vais vous introduire le fonctionnement de l’application Blynk. Ici, je vais vous montrer comment commander une led via son smartphone en toute simplicité.

Matériel nécessaire :
– 1 Arduino YUN
– 1 LED
– 1 Smartphone avec l’application Blynk

1. Mise en place de l’application

screenshot_20160919-145605

Tout d’abord, allez télécharger l’application Blynk sur le store de votre smartphone.

Démarrez l’application et créez-vous un compte :

screenshot_20160919-144235

Créez un nouveau projet:

screenshot_20160919-144409

Choisissez un nom de projet (ici: « Led Blinkin »), le modèle de microcontrôleur utilisé (ici: Arduino Yun) et envoyez-vous par e-mail le token généré, il sera utile pour la liaison entre l’arduino et votre smartphone.

screenshot_20160919-144440

Ici nous voulons interagir sur une Pin de l’arduino afin d’allumer ou non une LED. Il nous faut donc ajouter un bouton qui simulera l’état de sortie de la Pin en question. Pour cela, cliquez sur le petit « + » encerclé, cela vous donnera accès à une multitude de widgets. Nous choisirons dans notre cas le bouton du haut.

screenshot_20160919-144449
screenshot_20160919-144520

Le voilà maintenant placé ! Nous allons le configurer : cliquez dessus.

screenshot_20160919-144534

Donnez lui le nom que vous voulez (ici: Led Button) avec une couleur associée. Ensuite il nous faut choisir la pin sur laquelle l’application va interagir (ici: D13). Nous voulons que le bouton se comporte comme un switch et vous pouvez également personnaliser le message affiché en fonction de l’état du bouton (ici: Light ON/Light OFF).

screenshot_20160919-144635
screenshot_20160919-144645

Nous voilà prêt du côté smartphone. Allons maintenant du côté Arduino.

2. Mise en place du montage Arduino

Dans mon cas je vais utiliser un Arduino YUN connecté en WIFI. Nous allons également utiliser la pin 13 de l’arduino. Branchez la LED entre la pin 13 et le GND.

20160919_144739

Installez la librairie « Blynk » (lien de téléchargement) dans l’IDE Arduino (Tuto disponible ICI). Une fois fait, il va falloir programmé l’Arduino Yun avec le programme dédié trouvable dans les exemples de la librairie.

untitled-2

Dans le programme veillez bien à remplacer à la ligne 28, le « YourAuthToken » par celui que vous vous êtes envoyé par mail auparavant. Téléversez le programme dans l’Arduino et c’est parti !

3. Test

Allez dans votre application Blynk et démarrez votre projet « Led Blinkin » en appuyant sur le bouton start (représenté par une flèche) en haut à droite.

Un message s’affichera en bas, dans le cas ou votre Arduino n’est pas connecté à un réseau.

screenshot_20160919-144534

Si vous appuyer sur le bouton la LED s’allume, si vous appuyez à nouveau la LED s’éteint !

untitled-3

Maintenant c’est à vous. Laissez libre cours à votre imagination !

[Tuto] Programmation d’un Attiny84 avec Arduino

Dans ce tutoriel je vais vous expliquer comment programmer un Attiny84 grâce à un Arduino Uno.

Matériel nécessaire :
– 1 Arduino UNO 
– 1 Attiny84
– 6 jumpers mâle-mâle
– 1 condensateur 1µF
– 1 breadboard

1. Arduino as ISP

Nous allons utiliser l’Arduino Uno comme intermédiaire entre le PC et l’attiny84. Pour pouvoir utiliser de tel manière il faut le programmer pour, grâce au programme « ArduinoISP » (disponible dans Fichiers / Exemples). Uploader le dans votre Arduino grâce au bouton téléverser.

1
Exemple
2
Programmation

2. Installation de la board

Pour pouvoir programmer un Attiny84 il faut que le logiciel puisse interpreter le code pour celui ci. C’est pourquoi il faut installer la « board » correspondante à l’Attiny84.

Allez dans Fichier > Préférences et cliquez sur le bouton entouré en rouge ci dessous.

Préférences
Préférences

Une fenêtre va s’ouvrir. Collez  » http://drazzy.com/package_drazzy.com_index.json  » puis cliquez  sur « OK » et fermer la fenêtre des préférences en cliquant sur « OK » à nouveau.

Json importation
Json importation

Redémarrez le logiciel pour que les modifications soient prises en comptes.

Allez ensuite dans Outils > Boards > Boards Manager…
Tappez « attiny » dans la barre de recherche et normalement deux résultats devraient apparaître. Installez la premiere grâce au bouton « install ». Une barre de progression vous indiquera l’avancement de l’installation.

Redémarrez votre logiciel.

Board manager
Board manager
Installation
Installation

3. Câblage

Suivez simplement le schéma ci-dessous. N’oubliez pas le condensateur de 10µF entre le reset et le gnd de l’arduino afin d’empêcher le reset automatique lors de la programmation de l’attiny84.

Schéma de branchement
Schéma de branchement

4. Programmation

Tout d’abord prenez votre programme. Configurez maintenant l’IDE afin qu’il comprenne qu’il doit programmer un Attiny84 comme ci dessous.

untitled-12

Téléversez votre programme grâce à la petite flèche et le tour est joué !

Voilà ! Vous pouvez maintenant programmer votre Attiny !

[Tuto] Soudure au fer à souder et pistolet à air chaud

Cette fois ci nous vous proposons une vidéo. Plus claire qu’un long texte, elle vous expliquera la marche à suivre pour souder :

[Tuto] Le capteur de température DS18B20

Dans ce tutoriel, je vais vous montrer la marche à suivre afin de faire fonctionner le capteur de température DS18B20.

Matériel nécessaire :
– 1 arduino UNO 
– 1 capteur de température DS18B20
– 3 jumpers mâle-mâle
1 résistance de 4,7kOhm
1 breadboard

Commençons par le montage :

DS18B20
Pins DS18B20
Branchements
Branchements

Il vous faudra câbler les différents composants de la même manière que l’image ci-dessus.

C’est à dire :

  • Vcc & GND du capteur –> Le GND de l’Arduino
  • Signal du capteur (pin du milieu) –> Pin 2 de l’arduino
  • La résistance de 4,7K entre la pin 2 du capteur et le 5V

Le code maintenant :

#include <OneWire.h> //Librairie du bus OneWire
#include <DallasTemperature.h> //Librairie du capteur

OneWire oneWire(2); //Bus One Wire sur la pin 2 de l'arduino
DallasTemperature sensors(&oneWire); //Utilistion du bus Onewire pour les capteurs
DeviceAddress sensorDeviceAddress; //Vérifie la compatibilité des capteurs avec la librairie

void setup(void){
 Serial.begin(9600); //Permet la communication en serial
 sensors.begin(); //Activation des capteurs
 sensors.getAddress(sensorDeviceAddress, 0); //Demande l'adresse du capteur à l'index 0 du bus
 sensors.setResolution(sensorDeviceAddress, 12); //Résolutions possibles: 9,10,11,12
}

void loop(void){
 sensors.requestTemperatures(); //Demande la température aux capteurs
 Serial.print("La température est: ");
 Serial.print(sensors.getTempCByIndex(0)); //Récupération de la température en celsius du capteur n°0
 Serial.println(" C°");
}

La librairie « DallasTemperature.h » à été spécialement conçue pour ce capteur et nous propose donc des fonctions simplifiées. Ce qui permet de simplifier au maximum le code.

Envoyez ce code sur votre arduino et ouvrez l’écran serial de L’IDE, si tout est bon vous devriez avoir la température qui s’affiche comme ci-dessous.

témperature
Température en serial

A vous de jouer !