JDM

Composants Spécifiques

Programmation des ATMega

Pour programmer un ATmega (328P ; 2560 etc) on peut utiliser Trois environnement différent :

AVR_Studio:

Proposer par Microchip (anciennement Atmel) permet de faire du debug au travers de la sonde JTAG mais n’accepte que les programmateur officiels

Arduino:

En utilisant le mode « Arduino as ISP. Ne permet pas de programmer autre chose que du “.ino”

AVRDUDE:

Tout en ligne de commande, mais accepte tous les programmateur (même “Arduino as ISP”

ATMega 328p-PU Pinout

_images/ATMEGA328-PU-PINOUT.jpg

Installation du programmateur USBASP sous windows 10

Liens_Web:
  • http://zadig.akeo.ie/

    # Le logiciel Zadig permet d’installer des pilotes USB # pour plusieurs programmateur différents

AVRDUDE

  1. Installation

    Liens_Web:

    /!\ Ne pas cocher la case “ajouter au path” mais ajouter les chemins manuellement

    1. Chemins à ajouter dans le path

      • C:WinAVR-20100110bin

      • C:WinAVR-20100110utilsbin

  2. Utilisation

    Liens_Web:
    1. Téléverser un programme

      avrdude -c [NOM_DU_PROGRAMATEUR] -p [NOM_DU_MICROCONTROLEUR] -v (mode verbose) -U flash:[r|w|v]:[NOM_DU_HEX_A_TELEVERSER]
      
      ex : avrdude -c usbasp -p m2560 -v -U flash:w:Marlin_witbox_2-510.hex
      
    2. Obtenir la liste des noms des microcontroleurs utilisables

      avrdude -c [NOM_DU_PROGRAMATEUR]
      
      ex : avrdude -c usbasp
      

Magnetomettre : HMC5883L

liens WEB:

Implantation HMC5883L

La sérigraphie est masqué lorsque le magnétomètre est enfiché dans une breadbord. L’implantation si dessous est donc présenter en vue de dessus (donc sérigraphie cachée)

Haut
    3v3
    DRDY
    SDA
    SCL
    GND
    VCC_+5v
Bas

Installation des librairies quick2wire et i2clibraries

  1. Préparation :

    Si ce n’est pas déjà fait, il faut installer les outils Python :

    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install i2c-tools
    sudo apt-get install python3-smbus
         # Quick2wire.i2c peut aussi être utilisé our l'i2c
    
    sudo apt-get install python3
    sudo reboot
    
  2. L’installation et configurations des librairies et outils Quick2wire

    N.B : le lignes qui suivent sont copiées telles quelles depuis la page instructables

    Se positionner à l’endroit ou l’on veut installer quick2wire
    git clone https://github.com/quick2wire/quick2wire-python-api.git
        #get quick2wire from github.com
    
        #if don't have git, try "sudo apt-get install git"
    
    mv ./quick2wire-python-api ./code
        # renaming the quick2wire library folder to code for tidiness,
        # you can skip this if you prefer keeping it original
    
    nano setup.env
        # create a setup file, basically to point out where the quick2wire library is
        # situated for your python
        # after this line, terminal will enter text editing mode, type in these lines
    
    export QUICK2WIRE_API_HOME=~/project/code
        #change the directory address if different than what i'm using
        #export PYTHONPATH=$PYTHONPATH:$QUICK2WIRE_API_HOME
    
    after that CTRL+X, Y, ENTER to quit, save and overwrite
    
    back in terminal mode
    
    . ./quick2wire.env
        # run the environment setup, run this once every time after reboot,
        # running twice will append the address directory
        # for checking, use "env |grep quick2wire",
        # address shown must be the same with the directory where
        # you install your quick2wire library
    
    cd code
        #go into the quick2wire folder, this will be where you put your python code
    
    git clone https://bitbucket.org/thinkbowl/i2clibraries.git
        #getting library files containing functions for i2c devices such as HMC5883L,
        #ITG-3205, ADXL345 and LCD
    
    Now you can shut it down with "sudo shutdown -h now" so that we can do the wiring
    

Configuration du HMC5883L

  1. la déclinaison terrestre

    Pour pouvoir être le plus précis possible, il faut recalibrer la boussole en tenant compte de notre décalage par rapport au pôle magnétique. On appel ça : « la déclinaison terrestre » Pour cela on à besoin de nos coordonnées (les coordonnées du LAB):

    • Longitude : 49° 1’22.48 »N

    • Latitude : 2° 1’50.51 »E

    se qui donne à la date du 18/08/2015 : 0° 9,24”


Motteur Pas à Pas : 28BYJ-48

N.B : se PAP doit être piloté par un driver comme le UNL2003

Spécification du PAP

angle par pas (moteur)

5.625°

Nbe de pas / tours (moteur)

64 (360/5.625)

ratio (démultiplicateur)

1/64

angle par pas (en sortie d’arbre)

0.087890625°

Nbe de pas / tour (en sortie d’arbre)

4096

Correspondance entre le driver et les GPIO

BCM (GPIO)

Sérigraphie sur UNL2003

GPIO17

N1

GPIO18

N2

GPIO27

N3

GPIO22

N4

Phases

==> CW Direction (1-2 Phase )

lead Wire color

1

2

3

4

5

6

7

8

4 orange

x

x

x

3 yelow

x

x

x

2 pink

x

x

x

1 blue

x

x

x

N.B : les 8 phases donnent 1 tour complet sur le moteur,

soit 1/64 de tour en sortie d’arbre.

Organisation des phases en python3

# Séquence de sortie
ndp = 8
phase = list(range(ndp))
phase[0] = [1,0,0,0]
phase[1] = [1,1,0,0]
phase[2] = [0,1,0,0]
phase[3] = [0,1,1,0]
phase[4] = [0,0,1,0]
phase[5] = [0,0,1,1]
phase[6] = [0,0,0,1]
phase[7] = [1,0,0,1]
N.B : la liste contenu dans chaque phase, correspond à l’état

(1 = Hight = True ; 0 = Low = False) à appliquer sur le broches du GPIO

ex  : phase[0] = [1,0,0,0]
    --> GPIO17 = 1
    --> GPIO18 = 0
    --> GPIO27 = 0
    --> GPIO22 = 0

Picamera

liens WEB:

Activation du module caméra sur le RPi

  1. se connecter au module de configuration
    * sudo raspi-config
    
#.* faire la séquence suivante
"5 Enable Camera" -> [Entré]
        --> <Enable> -> [Entré]
        --> <Finish> -> [Entré]
        --> <Oui> -> [Entré]

installation de la camera

  1. Insérer la limande dans le ports situé au niveau du port HDMI.

N.B : la partie métallique doit être en direction du port HDMI

Instalation de la librairie PiCamera

  1. Faire les mises à jour système de rigueur puis
    sudo apt-get install python3-picamera
    

utilisation avec python

import picamera

Capteur ultrason : HC-SR04

Liens Web:

Vocabulaire et définissions pour le HC-SR04

Trig:
En Sortie (haut-parleur - Trig)

# 1 impulsion est égale a 10us (0.00001)

Echo:

En Entrée (Micro - Echo)

# Attention les entrée du RPi étant en 3.3v, il faut faire un pont diviseur entre la broche « Echo » et le GND pour pouvoir se brancher sur le RPi

Vitesse du son:

Le son se déplace à une vitesse d’environ 343 m/s (à température ambiante de 20°), soit environ 34300 cm/s

Distance:
D = 17150 x time

# 17150 correspond a la vitesse du son / 2 (34300/2). On divise par 2 car seule la distance en l’obstacle et le mur nous intéresse et non la distance total parcourue par l’onde radio.

Spécification du HC-SR04

Alimentation:

5 V

porté:

2 cm à 500 cm

Résolution:

0.3 cm

Fréquence:

40 kHz


Captheur de Méthane : MQ4

Liens_Web:
INFOS:
  • Les capteurs de Type “MQx” ont besoin d’être alimentés en continue

  • Les capteurs de Type “MQx” doivent nécessite un délais de minimum 48H pour fournir des informations fiables

  • Toutes les valeurs données ici concerne uniquement le Méthane. Pour tout autre gaze détecté par le MQ4, il faut se reporter à la documentation

/attention\:
  • Sur la version PCB la résistance Rl, qui devrait être une résistance ajustable de 10 à 47k, est une résistance fixe de 1K. D’après la documentation, cette résistance devrait être étalonnée pour 5000 ppm soit à peut près 20K


Liste des gazes pouvant être détecter par le MQ4

  • GPL

  • Méthane (CH4)

  • Hydrogène (H2)

  • Monoxyde de Carbone (CO)

  • Alcool

  • Fumé de cigarette


Définition des constantes et valeurs de références

Liens_Web:
RS:

C’est la résistance mesurer mesurer par le capteur. Cette valeur est Variable.

R0:

C’est la résistance du capteur en condition de gaz normal. Cette valeur est Variable. Elle doit être calculer.