Bannière liberation Rennes 2.jpg

A l'occasion des 80 ans de la libération de Rennes, (re)découvrez l'ensemble des
contributions autour de la Seconde Guerre mondiale et de la libération sur Wiki-Rennes.

« Programmation d'une cabine téléphonique anglaise - cabine de témoignages » : différence entre les versions

De WikiRennes
Aller à la navigationAller à la recherche
(Page créée avec « Cette page documente l'expérience de programmation d'une carte raspberry pi dans le cadre du projet de fabrication d'une cabine téléphonique anglaise. '''30/05/2024 - Initiation à la programmation en C# sur .Net''' »)
 
Aucun résumé des modifications
Ligne 1 : Ligne 1 :
Cette page documente l'expérience de programmation d'une carte raspberry pi dans le cadre du projet de [[fabrication d'une cabine téléphonique anglaise]].
Cette page documente l'expérience de programmation d'une carte raspberry pi dans le cadre du projet de [[fabrication d'une cabine téléphonique anglaise]].


'''30/05/2024 - Initiation à la programmation en C# sur .Net'''
'''30/05/2024 - Initiation à la programmation en C# sur .Net'''
==== Installation du logiciel ====
La première étape est d'installer l'environnement, sur un ordinateur (et non pas sur le raspberry).
Télécharger et installer visual studio 2022 community https://visualstudio.microsoft.com/fr/vs/community/
C'est un IDE, donc il y a plein de possibilités : lors de l'installation, il faut sélectionner ASP.NET pour la charge de travail Web, et vérifier que dans les composants individuels on a bien .NET8 sélectionné.
==== Découverte d'un premier programme ====
On suit le tuto d'initiation de Microsoft : recherche google pour aller chercher "C# raspberry pi blink a led" https://learn.microsoft.com/fr-fr/dotnet/iot/tutorials/blink-led
Sur cette page, dans la partie "Créer l’application", on va au numéro 3 et on trouve ce code : <syntaxhighlight lang="c#" line="1">
using System;
using System.Device.Gpio;
using System.Threading;
Console.WriteLine("Blinking LED. Press Ctrl+C to end.");
int pin = 18;
using var controller = new GpioController();
controller.OpenPin(pin, PinMode.Output);
bool ledOn = true;
while (true)
{
    controller.Write(pin, ((ledOn) ? PinValue.High : PinValue.Low));
    Thread.Sleep(1000);
    ledOn = !ledOn;
}
</syntaxhighlight>Les 3 première lignes, sont les déclarations d'utilisation ("using"). C'est la même chose que "include" qu'on connaît bien parcequ'on a beaucoup utilisé ça sur Arduino.
Ensuite  le 2ème morceau (jusqu'avant le while) c'est la déclaration pour le programme. :
* int pin = 18; -> on déclare une variable qui va s'appeler "pin" et qui prend la valeur 18.
* using var controller... -> ce n'est pas un using de déclaration, c'est un using de sécurité. On s'assure que la variable sera supprimée à la fin du programme =  on libère la mémoire qui est utilisée par la variable.
* "var" c'est aussi une déclaration de variable, mais une variable non typée (contrairement au mot "int" qui déclare une variable de nombre entier)
* controller.OpenPin(pin, PinMode.Output); -> on dit à notre controller qu'on déclare en mode sortie le pin 18 (="pin", c'est marqué plus haut, faut suivre)
* bool ledOn = true; -> une variable booléenne qui s'appelle ledOn. Elle pourra avoir seulement 2 valeurs, true ou false.
Puis la fin, c'est la boucle du programme (while) c'est une boucle infinie.
* controller.Write(pin, ((ledOn) ? PinValue.High : PinValue.Low)); -> on envoie dans le port "pin" (=18) : si la variable ledOn est sur High, on envoie du 5Volts, sinon on envoie du 0 Volts.
* Thread.Sleep(1000); -> Ensuite on attend 1000 millisecondes
* ledOn = !ledOn; -> On inverse la valeur de ledOn : si c'est true on passe à false, si c'est false on passe à true.

Version du 30 mai 2024 à 18:35

Cette page documente l'expérience de programmation d'une carte raspberry pi dans le cadre du projet de fabrication d'une cabine téléphonique anglaise.


30/05/2024 - Initiation à la programmation en C# sur .Net

Installation du logiciel

La première étape est d'installer l'environnement, sur un ordinateur (et non pas sur le raspberry).

Télécharger et installer visual studio 2022 community https://visualstudio.microsoft.com/fr/vs/community/

C'est un IDE, donc il y a plein de possibilités : lors de l'installation, il faut sélectionner ASP.NET pour la charge de travail Web, et vérifier que dans les composants individuels on a bien .NET8 sélectionné.

Découverte d'un premier programme

On suit le tuto d'initiation de Microsoft : recherche google pour aller chercher "C# raspberry pi blink a led" https://learn.microsoft.com/fr-fr/dotnet/iot/tutorials/blink-led

Sur cette page, dans la partie "Créer l’application", on va au numéro 3 et on trouve ce code :

using System;
using System.Device.Gpio;
using System.Threading;

Console.WriteLine("Blinking LED. Press Ctrl+C to end.");
int pin = 18;
using var controller = new GpioController();
controller.OpenPin(pin, PinMode.Output);
bool ledOn = true;
while (true)
{
    controller.Write(pin, ((ledOn) ? PinValue.High : PinValue.Low));
    Thread.Sleep(1000);
    ledOn = !ledOn;
}

Les 3 première lignes, sont les déclarations d'utilisation ("using"). C'est la même chose que "include" qu'on connaît bien parcequ'on a beaucoup utilisé ça sur Arduino.

Ensuite le 2ème morceau (jusqu'avant le while) c'est la déclaration pour le programme. :

  • int pin = 18; -> on déclare une variable qui va s'appeler "pin" et qui prend la valeur 18.
  • using var controller... -> ce n'est pas un using de déclaration, c'est un using de sécurité. On s'assure que la variable sera supprimée à la fin du programme = on libère la mémoire qui est utilisée par la variable.
  • "var" c'est aussi une déclaration de variable, mais une variable non typée (contrairement au mot "int" qui déclare une variable de nombre entier)
  • controller.OpenPin(pin, PinMode.Output); -> on dit à notre controller qu'on déclare en mode sortie le pin 18 (="pin", c'est marqué plus haut, faut suivre)
  • bool ledOn = true; -> une variable booléenne qui s'appelle ledOn. Elle pourra avoir seulement 2 valeurs, true ou false.

Puis la fin, c'est la boucle du programme (while) c'est une boucle infinie.

  • controller.Write(pin, ((ledOn) ? PinValue.High : PinValue.Low)); -> on envoie dans le port "pin" (=18) : si la variable ledOn est sur High, on envoie du 5Volts, sinon on envoie du 0 Volts.
  • Thread.Sleep(1000); -> Ensuite on attend 1000 millisecondes
  • ledOn = !ledOn; -> On inverse la valeur de ledOn : si c'est true on passe à false, si c'est false on passe à true.