Non classé

1 2 3 21

Dernière mise à jour le 02/02/2019

Présentation



Le montage électronique proposé ici, permet de créer un sortie numérique (tout ou rien) basé sur un MOSFET type BS170 et une diode infrarouge.
Lorsque la rayon infrarouge traverse la diode émettrice nous nous retrouvons avec un “1” logique, et lorsque le rayon infrarouge est coupé, nous nous retrouvons avec un “0” logique.
Ce montage est simple puisque nous allons utiliser que des composants standards (résistances et mosfet) tout simplement.
 
J’ai utilisé ce montage électronique pour des trains miniatures à l’échelle N. Le but était de contrôler une barrière de passage à niveau, lorsque le train passait devant la cellule celle-ci se levais et lorsqu’il passait devant le 2ème cellule infrarouge la barrière descendais.

Remarque

Je me sert d’une tension d’alimentation de 5V, car ce montage a été utilisé pour les entrées d’un PIC 16F628A. l’alimentation du PIC était sous 5V, je me suis dis pourquoi pas en faire de même sur le détecteur IR.

Schémas


Fonctionnement
Le schéma à gaucheest la partie emettrice (diode IR infrarouge émettrice), et le schéma côté droit la partie réceptrice, attention à ne pas inverser le brochage des diodes IR cas contraire le montage ne sera pas fonctionnel!!


Diode emettrice

Comme vous pouvez le constater rien de bien compliquer. Le schéma à gauche permet d’alimenter une diode emmetrice IR avec sa résistance de limitations de courant de 330 ohms.
Pour le calcul, on prend la tension d’alimentation qu’on soustrait à la chute de tension aux bornes de la diode IR, et qu’on divise par son courant nominal.


Diode réceptrice
Le schéma à droite quant à lui permet d’alimenter le diode réceptrice sous 5V. Le transistor MOSFET BS170 sera piloté par la diode qui n’est pas représentée sur le schéma (comme la diode emettrice d’ailleurs !!) à vous de faire attention au brochage avec l’anode sur la broche numéro 2 du connecteur J3, et la cathode reliée sur la broche numéro 1 du connecteur J3. En ce qui concerne la résistance R2, elle aussi est uniquement présente pour limiter le courant qui va parcourir la diode réceptrice. Le calcul est identioque au précédent à vous de bien regarde ce que consomme votre diode réceptrice niveau courant et regarde sa chute de tension aux bornes de l’anode et de la cathode.

 

 

MOSFET BS170

Son fonctionnement est basé sur la différence de tension qui est située entre G = gate et S = source. Lorsque lefaisceau IR est “braqué” sur la diode réceptrice, celle-ci se voit passant, et la chute de tension à ces bornes est autour de 0,7V. Dans cette situation le transistor mosfet se retrouve avec une tension entre Gate et la source de 0,7V et qui va le rendre bloqué (ouvert entre son drain et sa source). Il en résulte que tout le courant va se diriger sur la broche numéro 2 du connecteur J5 et la tension sur la broche numéro 2 sera à 5V (“1″ logique”).
En ce qui concerne le courant celui-ci est limiter à 5mA si la broche est relié directement à l’entrée du PIC 16F628A comme énoncé ci-dessus dans la remarque de la présentation (attention!! courant admissible en entrée du PIC16F628A 20mA max!!).
 
Que va t’il se passer lorsque le faisceau n’est plus “braquer” sur la diode émettrice? il va se produire que la diode émettrice n’est plus passante et toute la tension va se retrouvé située aux bornes de Vgs (5V). Dans cette situation le transistor mosfet va être 100% saturé donc passant et la chute de tension aux bornes du drain et de la source sera aux alentour de 0V soit un “0” logique”.
Et bien nous voila avec un signal en tout ou rien sur la broche numéro 2 du connecteur J5!!!.

Prototype


Quelques petits essais, avec la présence de la diode émettrice dans sont boitier opaque, et réceptrice dans sont boitier transparent, quelques fils de liaisons et le transistor mosfet BS170 d’ailleurs on remarque le PIC16F628A et la led RA0 allumée ou non si je positionne mon index pour couper le faisceau infrarouge.
   

   
[…..]

Circuit(s) imprimé(s)


Je vous laisse le typhon si toutefois….


Typon au format PDF

Historiques


02/02/2019
-1er mise à disposition

Présentation


Nous allons maintenant comment exploiter le processeur afin de faire une détection de couleur. Pour cela nous allons voir comment faire un réglage de seuil au niveau de l’image que nous désirons détecter, régler cette image, et ensuite demander à la caméra qu’elle encadre l’image dès que celle-ci est captée.

Création d’une image


Afin de faire cette expérience nous allons ouvrir “paint” sous Windows et dessiner un rond de fond rouge et cadrer l’image comme ceci (peu importe la grosseur):

Ensuite,une fois dessiné, nous allons enregistrer ce « dessin » sur le disque au format (.png). Pour cela débrancher et rebrancher vos Caméra, et vous devez retrouver le disque  comme cela: (pour ma part il s’agit du disque “G:\”)

Une fois enregistré, il suffit de retourner dans l’application OpenMV IDE Afin de vous rendre dans l’éditeur de seuil:

Une fois validé, vous devriez obtenir cette fenêtre:

La fenêtre indique “Tampon trame” c’est à dire l’image qui est située dans le tampon de trame (image filmé) soit “Fichier image” c’est à dire une l’image située sur votre ordinateur ou bien dans le disque de la caméra.
Puisque nous avons enregistré le fameux “rond à fond rouge” dans le disque de la caméra, nous allons donc cliquer sur “Fichier image” afin de l’ouvrir.

Déterminer le seuil des couleurs


Si tout a été respecté jusqu’à ici vous devez obtenir ceci:


Nous nous retrouvons désormais dans le seuil des couleurs qui contient 5 curseurs. le but est “simple” je dis “simple” car vous allez devoir jouer avec ces 5 curseurs pour obtenir un fond noir avec un rond de fond blanc. En effet, les pixels blanc sont les couleurs suivis par la caméra, il en résulte numériquement que l’image va être converti en un fichier binaire il va donc mettre la couleur blanche (pixel blanc) au niveau logique « 1 » et la couleur noir (pixel noir) au niveau logique « 0 ». Il en résulte que seul le niveau logique « 1 » sera pris en compte par la caméra.
Afin de retrouver l’image en noir et blanc, je procède ainsi, tout les curseurs à droite je les passent à gauche, et vice versa ce qui donne:

Programmation



(Clique pour agrandir)

Détails programmation
Niveau programmation, nous allons voir ça de plus près, n’ayez pas peur surtout!!.

– import sensor => Permet d’importer le module sensor (module de caméra pour pouvoir filmer)
– sensor.reset() => Vous l’avez devinez j’en suis sûr!!
– sensor.set_pixformat(sensor.RGB565) => ici nous allons agir sur le réglage des pixel de la caméra en l’occurrence les pixels qui seront en couleur RGB (Red/Green/Blue)=Rouge/Vert/Bleu
– sensor.set_framesize(sensor.QQVGA) => Permet de régler la résolution de la caméra en 600×480
– img = sensor.snapshot() => On capture l’image “réelle” qui sera mis dans une variable.
– for blobs in img.find_blobs([Color_Red], merge=False, margin=5): => Tout le travail est là!!


Commençon par la fonction à regarder la fonction “img.find_blobs([Color_Red], merge=False, margin=5):

« img » correspond à la variable qui récupère ce que la caméra film (déclaré en début du programme). Ensuite nous allons lui ajouter « .find.blobs » qui est une routine qui permet de trouver (find= trouver) un « objet » situé dans son environnement filmé !
Afin de pouvoir retrouver l’objet, nous allons rentrer des paramètres entres ces parenthèses et commencer par “[color_red]”, qui correspond à la couleur que nous voulons détecter via la caméra.

Attention !!! “[color_red]” est situé entre crochet ([]) et il faut impérativement respecter ce procédé, car il s’agit d’un tuple et ce tuple doit être situé entre ces deux crochets!
La valeur du tuple correspond aux réglages des seuils de couleurs que nous avons déterminés et réglés précédemment. Valeur = (34,77,82,2,57,17).
Si tous ces éléments ont été respectés la caméra détectera la couleur rouge situé sur l’écran de votre ordinateur, et encadrera cette couleur par un rectangle vert (voir capture ci-dessus à droite)

Remarque
fimg.find_blobs([Color_Red], merge=False, margin=5): peut-être remplacé par: fimg.find_blobs([(34, 77, 82, 2, 57, 17)], merge=False, margin=5):

Historiques


– 18/01/19
Première mise à disposition.

Allumer des leds pour débuter


Dans cet exemple “simple” nous allons voir comme faire clignoter la led qui est présente sur la carte OpenMV Cam M7. Celle-ci est située à cet endroit (voir entourage rouge)



il s’agit ici d’une led « intelligente » puisque celle-ci peut prendre 3 couleurs différentes qui sont :

– Rouge (Red) = 1 (numéro d’appel pour cette couleur)
– Vert (Green) = 2 (numéro d’appel pour cette couleur)
– Bleu (Blue) = 3 (numéro d’appel pour cette couleur)
– Infrarouge (2 leds IR) = 4 (non pris en compte dans l’exemple pour commencer !

En ce qui concerne le niveau programmation, nous allons faire appel au module « pyb ». ce module permet d’intégrer l’allumage des différentes leds (Rouge/vert/bleu/ et IR), mais permet aussi d’avoir accès aux modules comme :
– CAN
– DAC
– I2C
– SPI
– UART
– etc..

Programmation – 3 leds allumées en même temps!!


La programmation qui va suivre ne fait uniquement allumer les led rouge vert bleu en même temps. le module “pyb” permet d’avoir acces au terme “LED” (bien respecter les majuscules et les espaces). L’inconvénient avec python c’est que nous devons à tout pris respecter les espaces!! je vous laisse voir comment est écrit le programme ci-dessous ainsi que les espaces.

# Allumer des leds - Electronique71.com
 
import pyb  #Importer le module pyb 
 
Led_Red = pyb.LED(1)  # Variable qui correspond à la Led Rouge
Led_Green = pyb.LED(2) # Variable qui correspond à la Led Vert 
Led_Blue = pyb.LED(3) # Variable qui correspond à la Led Bleu 
 
while(True): # On réalise une boucle pour l'exécution du programme 
 
    Led_Red.on()
    Led_Green.on()# on allumes  3 leds en même temps   
    Led_Blue.on()
 

Clignotant


Nous allons voir comment maintenant faire clignoter une seule led (rouge). afin de maitriser le temps, j’ai importer un nouveau module qui est “time” celui-ci permet d’avoir accès au temps qui est exprimé en milliseconde (1sec = 1000ms) .

Ensuite plutot que d’uitliser des variables nommées “Led_Red”, “Led_Green” et “Led_Blue”, j’ai appelé directement la led rouge par “pyb.LED(1).on()”. Si je voulais appeler la LED bleu j’aurais écrit “pyb.LED(3).on()”, et pour la diode IR (que nous ne verrons pas s’allumée puisqu’il s’agit d’une led infrarouge sera “pyb.LED(4).on()”).
Pour éteindre comment faire? et bien tout simplement remplacer “on()” par “off()”

# Clignotant led rouge - Electronique71.com
 
import pyb,time  #Importer module time pour gérer le temps 
 
 
while(True): # On réalise une boucle pour l'exécution du programme, en permanence! 
 
    pyb.LED(1).on() # On allume la LED rouge
    time.sleep(1000) # On attend 1sec 
    pyb.LED(1).off() # On éteint la LED rouge
    time.sleep(1000) # On attend 1sec avant de recommencer

Historiques


– 18/01/19
Première mise à disposition.

21/09/18
– [Microcontrôleur] Mise à jour Interface UsbHid – communication PC -> PIC
– [Microcontrôleur] Mise à jour Interface UsbHid – communication PIC -> PC

07/09/18
– [Programmations Python] Mise à jour Programmations Python

– [Programmations Python] Mise à jour Mes premiers pas en lignes de commande


– [Logiciels] Mise à jour Logiciels

– [Logiciels] Mise à jour Interface UsbHid PC -> PIC
 
16/04/18
– [Microcontrôleur] Mise à jour Afficheur 7 segments – CD4094 avec PIC 12F675
 
09/04/18
– [Logiciels] Mise à jour Logiciels
 
27/03/18
– [Microcontrôleur] Mise à jour Configuration port USB – VID/PID
 
17/03/18
– [Microcontrôleur] Mise à jour Configuration port USB – VID/PID
– [Microcontrôleur] Mise à jour Interface UsbHid – communication PC -> PIC
– [Microcontrôleur] Mise à jour Interface USB – PIC32 – Sorties numériques
 
25/02/18
– [Microcontrôleur] Mise à jour Clignotant 001 avec PIC 16F88
– [Microcontrôleur] Mise à jour Chenillard 001 avec PIC 12F675
 
18/02/18
– [Microcontrôleur] Mise à jour Afficheur 002
– [Microcontrôleur] Mise à jour Afficheur 003
– [Microcontrôleur] Mise à jour Afficheur 7 segments – CD4094 avec PIC 12F675
 
14/02/18
– [Microcontrôleur] Mise à jour Afficheur 001 avec PIC16F88
 
13/02/18
– [Microcontrôleur] Mise à jour EasyPic7
– [Microcontrôleur] Mise à jour La simulation et R&D (Recherche et Développement) c’est quoi?
 
10/02/18
– [Microcontrôleur] Mise à jour Configurations entrées/sorties (I/O) => MikroC disponible
– [Microcontrôleur] Mise à jour Configurations entrées analogiques (A/N) => MikroC disponible
– [Microcontrôleur] Mise à jour Les interruptions – Timer1 => MikroC disponible
– [Microcontrôleur] Mise à jour Les interruptions – Timer2/Timer3 => MikroC disponible
– [Microcontrôleur] Mise à jour Capture d’un signal en entrée (Input Capture)  => MikroC disponible
– [Microcontrôleur] Mise à jour Présentation et réglage Mini-32 (PIC32)
 
03/02/18
– [PIC 32] Mise à jour PIC 32
– [Microcontrôleur] Mise à jour Configurations entrées/sorties (I/O)
– [Microcontrôleur] Mise à jour Configurations entrées analogiques (A/N)
– [Microcontrôleur] Mise à jour Les interruptions
– [Microcontrôleur] Mise à jour Les interruptions – Timer1
– [Microcontrôleur] Mise à jour Les interruptions – Timer2/Timer3
– [Microcontrôleur] Mise à jour Capture d’un signal en entrée (Input Capture) 
– [Microcontrôleur] Mise à jour Sortie de comparaison (Output Compare) – PWM 

Dernière mise à jour le 07/09/18

Présentation de la fenêtre de commande Python


Dans cet exemple nous allons tester des lignes de commandes via l’interface Python. L’interface python est en définitive une console de commande identique à la commande d’invitation (CMD) que vous avez dans le menu démarrer de votre ordinateur.

Hello World!


Nous allons commencer par le strict minimum, c’est-à-dire d’afficher le fameux Hello World sur l’affichage d’une console.
Pour cela, il vous suffit de taper dans la ligne de commande et de faire entrer:
print("Hello World!")

Une fois ceci réalisé il suffit de taper sur la touche entrer, et vous devez voir ceci

Vous pouvez bien entendu mettre ce que vous désirez à l’intérieur des guillemets, mais l’écriture (la chaîne de caractères) doit toujours être situés entre les guillemets.
 
Vous pouvez aussi ecrire du texte dans un variable et que cette variable soit lue ce qui donne:
Variable = "Hello World!"
print(variable)

Dans ce cas la variable na pas besoin de guillemet puisque dans cette variable “Hello World!” est déja entre guillemet

 

 
Créer un dossier sur le bureau


Nous allons voir maintenant comment créer un dossier sur le bureau avec un terminal. Pour cela il suffit de faire:
import os
path = "C:/Users/Julien/Desktop/Dossier_Python"
os.mkdir(path)
 
Ainsi, si vous retrouné sur votre bureau vous devriez voir le dossier nommé “Dossier_Python”

Supprimer un dossier sur le bureau


Nous avons vu comment créer un dossier, maintenant nous allons voir comment le supprimer. Pour cela il suffit de faire:
import os
path = "C:/Users/Julien/Desktop/Dossier_Python"
os.rmdir(path)
 
Ainsi, le dossier nommé “Dossier_Python” est supprimé de l’ordinateur

Renommer un dossier sur le bureau


Nous allons renommer le dossier qui a été crée précédemment.
import os
OldFodler = "C:/Users/Julien/Desktop/Dossier_Python"
NewFolder = "C:/Users/Julien/Desktop/Nouveau_Dossier_Python"
os.rename(OldFodler,NewFolder)
 
Ainsi, le dossier nommé “Dossier_Python” est passé en “Nouveau_Dossier_Python

Créer un bloc note dans un dossier sous le bureau


On va créer une dossier, et ensuite créer un bloc note dans ce dossier:
import os
Folder = "C:/Users/Julien/Desktop/Dossier_Python"
NewFile = "C:/Users/Julien/Desktop/Dossier_Python/Fichier_Python.txt"
os.mkdir(Folder)
File = open(NewFile,"x")
File.close()
 
Ainsi, vous trouverez dans le dossier “Dossier_Python” un bloc note nommé “Fichier_Python.txt”.

Créer un bloc note dans un dossier sous le bureau et écrire dedans


Nous allons maintenant créer un dossier, créer un bloc note, et écrire dans ce bloc note ce qui nous donne:
import os
Folder = "C:/Users/Julien/Desktop/Dossier_Python"
NewFile = "C:/Users/Julien/Desktop/Dossier_Python/Fichier_Python.txt"
os.mkdir(Folder)
File = open(NewFile,"x")
File.close()
WriteFile = open(NewFile,"w")
WriteFile.write("Ceci est une ligne\n")
WriteFile.write("Ceci est une 2eme ligne\n")
WriteFile.close()

Lire un bloc note situé dans un dossier


Nous allons lire le bloc note situé dans le dossier.
import os
NewFile = "C:/Users/Julien/Desktop/Dossier_Python/Fichier_Python.txt"
ReadFile = open(NewFile,"r")
print(ReadFile.read())

Plus d’informations


r => pour une ouverture en lecture (READ).
w => pour une ouverture en écriture (WRITE), à chaque ouverture le contenu du fichier est écrasé. Si le fichier n’existe pas python le crée.
a => pour une ouverture en mode ajout à la fin du fichier (APPEND). Si le fichier n’existe pas python le crée.
b => pour une ouverture en mode binaire.
t => pour une ouverture en mode texte.
x => crée un nouveau fichier et l’ouvre pour écriture

Dernière mise à jour le 28/04/18

Présentation


En quelques ligne, cette interface, vous permettra d’observer si la communication entre le PIC et le PC est bien établie.
 




 
Fonctionnement
Oh!! vous savez rien de bien compliqué!! L’interface proposée ici, permet de piloter par une liaison USB n’importe quel PIC (PIC18/PIC24/PIC32/…). Bien entendu!!! il faut que ces PIC puissent communiquer avec les données USB (D+/D-).

Lorsque le logiciel Interface UsbHid est ouvert, il suffit de cliquer sur le bouton « Connection » afin d’établir une première connection entre le port USB de votre ordinateur et le PIC. Pour le reste il suffit de visualiser les indicateurs qui vous permettra de voir si les données via le PIC sont bien transmises.

Attention!!
L’interface fonctionne si le PIC que vous utilisé est configuré avec un PID = 1234 et VID = 0001, merci de vous basé sur ce numéro de produit et son numéro d’identification pour le bon fonctionnement si vous ne savez plus comment créer le PID/VID je vous laisse consulter l’article
Configuration port USB – VID/PID

PIC18F4550


Vous utilisé un PIC de la famille 18F comme le célèbre 18F4550 ou bien le 18F2455 ou encore le 18F2550 voir même le 18F4455 ?

Je vous laisse le programme à télécharger en MikroC et en MikroPascal afin de tester la connection entre le port USB et le PIC18F4550, et aussi de vous permettre à avoir une première approche sur les lignes de programmation utilisé pour faire fonctionner votre PIC 18F4550 grâçe à l’interface UsbHid.
 
Pour les plus pressés je vous laisse le fichier Fichier HEX afin de le flasher directement dans le PIC18F4550. Ensuite il vous suffira d’utiliser l’interface UsbHid.

Logiciel


InterfaceUSB

Problèmes rencontrés


  • 1) Vous rencontrés des problèmes lors de la connection ? Vous vous êtes assuré d’avoir créé le VID/PID ? Dans ce cas je vous laisse regarder les manipulations dans cet article Configuration port USB – VID/PID

 

  • 2) Pour le fonctionnement merci d’utiliser PID = 1234 et VID =0001, si vous ne le fait pas dans ce cas l’interface UsbHid ne fonctionnera pas !! En effet, celui-ci a été conçu avec un PID = 1234 et VID = 0001 – je sais c’est sa petite faiblesse on fera mieux la prochaine fois 😉

Historiques


28/04/18
– Première mise à disposition

Dernière mise à jour le 17/03/18

Présentation



En quelques ligne, cette interface, vous permettra en cliquant sur les boutons prévus à cet effet d’allumer ou d’éteindre les leds qui sont reliées à votre PIC, afin d’observer si la communication entre le PC et le PIC est bien établie.
 




 
Fonctionnement
Oh!! vous savez rien de bien compliqué!! L’interface proposée ici, permet de piloter par une liaison USB n’importe quel PIC (PIC18/PIC24/PIC32/…). Bien entendu!!! il faut que ces PIC puissent communiquer avec les données USB (D+/D-).
 
Lorsque le logiciel Interface UsbHid est ouvert, il suffit de cliquer sur le bouton « Connection » afin d’établir une première connection entre le port USB de votre ordinateur et le PIC. Pour le reste il suffit d’appuyer sur chaque bouton prévu à cet effet afin de pouvoir allumer ou éteindre les leds.
 
Je vous laisse un exemple Interface USB – PIC32 – Sorties numériques à cette adresse ou j’utilise le Mini-32 (PIC32).

 
Attention!!
L’interface fonctionne si le PIC que vous utilisé est configuré avec un PID = 1234 et VID = 0001, merci de vous basé sur ce numéro de produit et son numéro d’identification pour le bon fonctionnement si vous ne savez plus comment créer le PID/VID je vous laisse consulter l’article
Configuration port USB – VID/PID

PIC18F4550


Vous utilisé un PIC de la famille 18F comme le célèbre 18F4550 ou bien le 18F2455 ou encore le 18F2550 voir même le 18F4455 ?

Je vous laisse le programme à télécharger en MikroC et en MikroPascal afin de tester la connection entre le port USB et le PIC18F4550, et aussi de vous permettre à avoir une première approche sur les lignes de programmation utilisé pour faire fonctionner votre PIC 18F4550 grâçe à l’interface UsbHid.
Pour les plus pressé je vous laisse le fichier Fichier HEX afin de le flasher directement dans le PIC18F4550. Ensuite il vous suffira d’utiliser l’interface UsbHid.

Logiciel


Interface UsbHid

Problèmes rencontrés


  • 1) Vous rencontrés des problèmes lors de la connection ? Vous vous êtes assuré d’avoir créé le VID/PID ? Dans ce cas je vous laisse regarder les manipulations dans cet article Configuration port USB – VID/PID

 

  • 2) Pour le fonctionnement merci d’utiliser PID = 1234 et VID =0001, si vous ne le fait pas dans ce cas l’interface UsbHid ne fonctionnera pas !! En effet, celui-ci a été conçu avec un PID = 1234 et VID = 0001 – je sais c’est sa petite faiblesse on fera mieux la prochaine fois 😉

Historiques


17/03/18
– Première mise à disposition

Dernière mise à jour le 17/03/18

Présentation



Nous allons voir pour ce montage électronique comment “piloter” les 8 bits de sorties du Mini-32 (composé du PIC32MX534F064H) en utilisant le port USB.
Pour assurer le pilotage des 8 bits de sorties, un petit logiciel sans prétention a été conçu et que vous pouvez télécharger sur mon site à cet adresse Interface UsbHid – communication PC -> PIC

Schéma



Fonctionnement
Pour que ce montage électronique fonctionne, il faut avant tout faire une Configuration port USB – VID/PID. Si vous utilisé l’interface UsbHid, merci de bien mettre un VID = 1234 et un PID = 0001 afin que la communication PC vers PIC se fasse correctement.
 
Une fois tout ces réglages réalisés, il suffira d’insérer ces ligne dans votre comparateur,de compiler, puis de flasher votre Mini-32.

 




 

Logiciel du PIC


Ici vous trouverez le langage en MikroC et en MikroPascal et enfin le Fichier HEX prêt à être flashé dans le PIC32 (Mini-32)

Prototype en vidéo



Une connection par USB et une interface on peu encore imaginer plein de choses ….

Historiques


– 17/03/18
Première mise à disposition.

 

Dernière mise à jour le 27/03/18

Présentation


Dans ce présent article nous allons voir comment réaliser ou bien plutôt créer un numéro d’identification du périphérique, afin de pouvoir relier un PIC à l’ordinateur via le port USB.
 
Nous allons voir en détails les manipulations à effectuer et comment rattacher le numéro d’identification à votre programme.

 

 

VID/PID


Le VID est le nom court pour Numéro d’identification du Vendeur et PID Numéro d’identification du produit. En général, le VID, PID de périphérique est composé d’une série de caractères comme VID_05A9&PID_2800. La valeur concrète est affichée derrière «-». La valeur de VID, PID est en fait le numéro d’identification unique du périphérique de USB connecté au système Windows. Le numéro d’identification peut être utilisé comme l’information de périphérique, et le pilote pour un périphérique, qui est relié à l’ordinateur via USB dépend de ce numéro.

Afin de créer ce numéro d’identification je vous laisse lire les présentation ci-dessous

Création du VID et PID


Une fois le logiciel MikroC ou MikroPascal ouvert cliquer afin de créer un nouveau projet

Ensuite il faudra choisir l’emplacement du répertoire la ou vous voulez enregistrer votre projet.


Ensuite faire “Next” jusqu’à ce que vous obtenez la figure ci-dessous (Dans l’exemple il s’agit de MikroPascal, mais cela ne change rien en MikroC vous faites exactement les même manipulation)

Maintenant que vous êtes arrivé jusqu’ici, j’ai récupérer dans l’aide de MikroPascal (et MikroC) un morceau de code il suffit juste de le copier et de le coller dans la page la ou vous êtes situé. Vous avez le choix en MikroPascal et en MikroC (je tiens aussi à préciser que ces 2 programmes sont utilisés pour les PIC de la famille 32F (Mini-32 de chez MikroElectronika).
Une fois votre programme copié et collé dans la page du code, il suffit de faire “CTRL + F9” simultanément afin de pouvoir compiler votre programme, et normalement vous dévirez obtenir ces erreurs

Pas d’inquiétude c’est tout à fait normal!! c’est ici que nous allons voir comment créer VID/PID. Pour cela il suffit de cliquer sur “tools” et de sélectionner “HID terminal”

Lorsque la fenêtre est ouverte, je vous ai encadrés les parties que vous devez remplir. A vous de mettre les valeurs que vous voulez mais attention!!! il ne faut pas que ces valeurs soient identiques avec un de vos périphériques qui sont déjà connectés à votre ordinateur!!

Une fois terminé, il suffit de sauvegarder en cliquant sur “save descriptor” dans le répertoire ou se trouve votre projet, et normalement si vous n’avez pas changer le nom du fichier,vous devriez retrouvez ce fichier la:

Je vous promet!! c’est bientôt terminé maintenant il suffit de l’ajouter à votre projet pour cela faite ceci cliquer sur “projet” et ensuite “add file to projet”et recherche le fichier (pour ceux qui utilise MikroC il faut recherche le fichier nommé USBdsc.c)

Ajouter le fichier identifié précédemment

il ne reste plus qu’à faire “CTRL + F9” et le tour est joué!!!

Pour le PIC32 (Mini-32) Réglage dans “Edit Project”


Vous allez me dire que rien ne fonctionne!! Oui c’est sur!! nous avons créer uniquement le VID/PID, mais il reste une chose importante encore c’est de régler l’horloge. Je vous laisse vérifier si les capture écran sont en adéquation avec vos paramètres.
Remarque importante!! Les captures d’écran ci-dessous ont été réalisé sur un PIC32 (Mini-32) à vous de bien faire la différence.





Maintenant vous pouvez faire un “CTRL + F9” pour de bon!!.

Pour la familles des PIC 18F Réglages dans “Edit Project”


Je me disais pourquoi pas aussi évoquer les PIC de la famille 18F comme le 18F4550, le 18F2455, mais encore le 18F2550 et pourquoi pas finir aussi avec le 18F4455? Merci à vous de vérifier les captures écrans ci-dessous



Vérification de la connexion USB


Vous pouvez retournez dans le HID terminal et vérifier que votre PIC est bien connecté à votre ordinateur en faisant cette manipulations


Vous pouvez remarquer que cela correspond tout à fait à ce qu’on a rentré précédemment

Les tests


Pas très compliqué, il suffit d’ouvrir le HID terminal d’aller dans l’onglet “Terminal” et ensuite d’écrire dans la fenêtre de communication puis faire envoyer en cliquant sur “Send” et vous verrez en dessous votre message s’afficher instantanément. Cela veut dire que votre PIC et opérationnelt et utilise bien la liaison USB.

Historiques


– 27/03/18
Première mise à disposition.

 

Dernière mise à jour le 18/02/2018

Présentation


Comment afficher une valeur analogique en une valeur numérique et que celle-ci peut être lue sur un afficheur 7 segments multiplexé ? En voilà une de bonne question !
Le microcontrôleur qui sera utilisé pour lire une valeur analogique sera de la famille 18F plus précisement le 18F4550 qui celui-ci sera testé sur la platine EasyPic 7.

 

 
L’entrée analogique se fait sur 10 bits ce qui donne 1023 possibilités. Pour une tension maxi de 5V à ses broches, la tension analogique et convertie en une valeur numérique qui correspond pour 5V 1023, pour 0V nous avons 0, il suffit de faire le produit en croix (ou règle de trois) pour trouver la valeur numérique. Mais vous avez de la chance car cette règle est déjà intégrée dans le programme du PIC donc nul besoin de prendre de calculette.

Schéma


Fonctionnement

Le schéma électronique est une amélioration de l’Afficheur 002 puisqu’ici, nous utilisons un PIC18F4550 et nous avons 3 afficheurs qui permettent de lire 2 chiffres après la virgule.

On parle de signaux multiplexés lorsque sur un seul fil nous envoyons plusieurs données les unes à la suite des autres. L’avantage de multiplexer des informations, c’est que nous utilisons moins de fils de liaisons électriques.
La lecture de la tension est faite sur la broche RA5 du PIC. En faisant varier le potentiomètre RV1 celui-ci fera varier la tension qui est comprise entre 0 et 5V.
La broche RA0 étant configurée comme une entrée analogique, cette tension analogique (0 ..5V) sera convertie en une valeur numérique (0..1023), c’est ce qu’on appel une conversion Analogique/Numérique (A/N).

Affichage des valeurs converties

Comme son non l’indique l’afficheur permettra de donner les informations des tensions lues sur la broche RA0 du PIC 18F4550 avec 2 chiffres significatif après la virgule ce qui donne à ce montage une meilleur performance.

Réglages “EDIT PROJECT”


Merci de respecter ces captures ci-dessous pour le bon fonctionnement du programme que vous pouvez télécharger ci-dessous


Pour tout le reste il suffit de désactiver.

Logiciel du PIC


Vous allez trouver la programmation en:
MikroPascal
MikroC
– Et le Fichier.HEX afin de tester directement

Prototype



  

Utilisation d’un filtre

Au niveau de la persistance rétinienne j’ai mis du papier sur l’afficheur pour filtrer la fréquence d’allumage des afficheurs 7 segments. En effet, il est plus facile à lire les chiffres lorsqu’un filtre est présent et on arrive mieux à les distinguer l’un de l’autre. Il est aussi possible d’utiliser d’autre sorte de filtre plutôt que du papier.. Mais bon je n’avais que ça sous la mains!!

Circuit imprimé


Aucun, juste une vue en 3D pour faire jolie.

Historiques


– 18/02/17
Première mise à disposition.

1 2 3 21