# ROBO Pro Coding (FR)

# Utilisation générale



# Utilisation générale

ROBO Pro Coding est un environnement de développement pour la programmation du nouveau TXT 4.0 Controller et donc pour la programmation des modèles fischertechnik. ROBO Pro Coding est disponible pourWindows, macOS, Linux, iOS et Android et peut être récupéré sur ces sources.

[![Google_Play_Badge_DE_230x67.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-10/scaled-1680-/google-play-badge-de-230x67.png)](https://play.google.com/store/apps/details?id=eu.beemo.roboprocoding)[ ![App_Store_Badge_DE_230x67.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-10/scaled-1680-/app-store-badge-de-230x67.png)](https://apps.apple.com/us/app/robo-pro-coding/id1569643514)[ ![Microsoft_Badge_De_230x67.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-10/scaled-1680-/microsoft-badge-de-230x67.png) ](https://www.microsoft.com/de-de/p/robo-pro-coding/9mxpk52r734c?activetab=pivot:overviewtab)[![Linux_Badge.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-10/scaled-1680-/pngegg.png)](https://update.fischertechnik-cloud.com/repository/ft-roboprocoding-public/ft-roboprocoding-linux-STABLE.zip)

[![Französisch-AllgemeineBenutzung-Bild1.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/franzosisch-allgemeinebenutzung-bild1.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/franzosisch-allgemeinebenutzung-bild1.PNG)![image-1623839044249.22.21.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623839044249-22-21.png)

Le code représenté peut être utilisé pour ce modèle (gauche).L’interface web de ROBO Pro Coding a la structure suivante (les chiffres font référence aux zones marquées dans l’illustration) :

1. Voici ce qui a été programmé en blocs, en python
2. C’est le champ dans lequel les blocs sont insérés pour programmer
3. La console documente le déroulement du programme 
    - Les points d’arrêt sont utilisés pour déboguer des programmes. Vous définissez certains emplacements dans le code, le programme s’arrête en cas d’extension. Ceux-ci sont définis par l’éditeur et se composent du nom de fichier + numéro de ligne.
    - L’expression permet de visualiser le contenu des variables.
    - • La pile d’appels affiche l’imbrication des appels. C’est particulièrement utile en cas d’utilisation de fonctions.
4. Vous trouverez ici tous les blocs de programmation classés dans les catégories [actionneurs](https://docs.fischertechnik-cloud.com/books/robo-pro-coding/chapter/aktore "Actionneurs"), [capteurs](https://docs.fischertechnik-cloud.com/books/robo-pro-coding/chapter/sensoren "Capteurs") et [traitement](https://docs.fischertechnik-cloud.com/books/robo-pro-coding/chapter/verarbeitung "Traitement")
5. Cette ligne est expliquée séparément dans l’en-tête
6. On peut adapter le niveau d’apprentissage à l’utilisateur. Par exemple, selon le niveau, seuls les blocs les plus importants sont affichés.

#### Ligne d’en-tête

[![image-1623793979375.19.18.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623793979375-19-18.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623793979375-19-18.png)

L’en-tête contient (en partie) les éléments de commande pour démarrer le programme, arrêter le programme, démarrer le débogueur, appeler le test d’interface, télécharger le programme courant et se connecter au contrôleur.

##### Démarrage de programmes

Si vous souhaitez démarrer votre programme depuis ROBO Pro Coding, cliquez sur cette icône.

##### Arrêt de programmes 

Si vous voulez arrêter votre programme avant qu’il ne s’arrête tout seul, vous tapez sur ce symbole.

##### Le débogueur

Le débogueur doit faciliter la recherche des erreurs dans le programme. Le menu en haut à droite vous permet de passer le code pas à pas et de simuler ainsi un passage de programme. Le programme réagit néanmoins à l’interaction avec des capteurs, par exemple en appuyant sur un bouton-poussoir. En parcourant le programme, vous pouvez voir à gauche dans le grand champ dans quel bloc vous êtes et à droite à quel endroit dans le code python.

##### Le test d’interface

Si vous cliquez sur l’icône avec les trois boutons, cette fenêtre s’ouvre :

[![Französisch-AllgemeineBenutzung-Bild4.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/franzosisch-allgemeinebenutzung-bild4.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/franzosisch-allgemeinebenutzung-bild4.PNG)

Ici, on peut voir tous les appareils connectés. Pour les actionneurs, vous pouvez vérifier à l’aide des curseurs s’ils fonctionnent. Les capteurs indiquent la valeur mesurée (le palpeur indique par exemple un 1 parce qu’il est pressé). Le menu déroulant (petit triangle) permet d’indiquer ce qui est connecté.

##### Téléchargement de programmes

Une fois que vous avez écrit un programme et que vous souhaitez qu’il fonctionne de manière autonome sur le contrôleur, vous pouvez le télécharger sur ce symbole. Il apparaît dans les fichiers du contrôleur. Si vous tapez le nom du programme, vous finissez dans le sous-dossier du programme. Voici un fichier appelé « main.py ». Cliquez dessus et le bouton « ouvert » en bas à droite devrait s’allumer en vert. Appuyez sur le bouton « open » et un autre menu avec quatre options s’ouvre :

1. Charger : charge le programme et démarre depuis l’écran d’accueil
2. Chargement auto : le programme est automatiquement rechargé lors du prochain démarrage du contrôleur
3. Démarrage auto : le programme est automatiquement rechargé et démarré directement lors du prochain démarrage du contrôleur
4. Supprimer le projet : le programme est supprimé du contrôleur

##### Connexion avec le contrôleur 

La méthode pour se connecter au contrôleur est expliquée [ici](https://docs.fischertechnik-cloud.com/books/txt-40 "TXT 4.0").

#### Configuration du contrôleur

Pour pouvoir utiliser des composants comme des capteurs et des actionneurs dans le programme, il faut les connecter au contrôleur, non seulement physiquement, mais aussi dans le logiciel. La configuration du contrôleur est toujours ouverte automatiquement et peut être atteinte directement en haut à côté du programme principal.

À gauche, le contrôleur et tous les composants possibles pouvant être connectés au contrôleur sont affichés. Le contrôleur est glissée sur l’interface de programmation. Vous pouvez ensuite connecter les composants souhaités au contrôleur par glisser-déposer.

[![Französisch-Allgemeine Benutzung-Bild5.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/franzosisch-allgemeine-benutzung-bild5.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/franzosisch-allgemeine-benutzung-bild5.PNG)

#### Enregistrement de programmes

 Si vous souhaitez enregistrer un programme, cliquez sur les trois traits en haut à gauche du site Internet de ROBO Pro Coding. Cliquez ici sur l’option « Exporter ». Vous pouvez maintenant choisir d’enregistrer votre programme localement sur votre appareil ou sur GitLab.

Local : Après avoir saisi le nom de votre programme, cliquez simplement sur « Exporter » et le fichier de programme est sur votre appareil.

GitLab : Après avoir saisi le nom de votre programme et suivi les étapes spécifiées pour saisir le jeton d’accès personnel, cliquez simplement sur « Exporter » et le fichier de programme est enregistré dans votre compte GitLab.

# Actionneurs



# Sorties

#### Le démarrage de chaque bloc

Le **démarrage de chaque bloc** permet d’exécuter un programme si une condition est remplie. Il fonctionne donc comme une distinction de cas, non seulement une fois, mais chaque fois que la condition est remplie, tout au long du programme. Le **démarrage de chaque bloc** :

[![Französisch-Ausgänge-Bild1.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/franzosisch-ausgange-bild1.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/franzosisch-ausgange-bild1.PNG)

Est une abréviation de la construction suivante :

[![Französisch-Ausgänge-Bild2.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/franzosisch-ausgange-bild2.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/franzosisch-ausgange-bild2.PNG)

On peut insérer dans le **démarrage chaque bloc** de la catégorie Sorties toutes les conditions de cette même catégorie.

**Remarque : La section du programme à l’intérieur du démarrage de chaque bloc doit être courte et ne pas comporter d’appels bloqués ou de boucles de fin de session, afin que cette partie du programme puisse être traitée rapidement.**

#### LED

[![image-1623745844016.42.50.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623745844016-42-50.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623745844016-42-50.png)

##### Configurer

Les blocs **Configurer LED ...** et **Configurer luminosité LED ...** , il est possible d’allumer et d’éteindre la LED ou de régler sa luminosité sur une valeur définie (de 0 à 512).

##### Afficher

Le bloc **Récupérer la luminosité LED** permet de consulter la luminosité d'une LED et de la traiter comme une valeur.

##### Interroger

Les blocs **LED ...**  et **Luminosité de la LED ...** permettent d’utiliser l’activité ou la luminosité d'une LED comme condition. Dans l’exemple, nous réglons la luminosité de la LED à 512, si elle n’a pas déjà cette luminosité.

[![Französisch-Ausgänge-Bild4.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/franzosisch-ausgange-bild4.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/franzosisch-ausgange-bild4.PNG)

#### Moteurs 

Le symbole figurant sur les blocs moteurs représente tous les moteurs autres que les codeurs ou les servomoteurs.

##### Configurer

Le bloc **Définir la vitesse moteur à \[\] ...** permet de fixer la vitesse d’un moteur à une valeur donnée (de 0 à 512).

##### Afficher

Le bloc **Récupérer la vitesse du moteur** permet de consulter la vitesse d'un moteur et de la traiter comme une valeur.

##### Interroger

Avec les blocs **Fonctionnement du moteur**  et **Vitesse du moteur ...** il est possible d’utiliser l’activité ou la vitesse d'un moteur comme condition.

##### Arrêter

Le bloc **Arrêt moteur …** permet d’arrêter un moteur.

#### Compresseur

[![image-1623746227574.40.52.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623746227574-40-52.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623746227574-40-52.png)

##### Configurer

Le bloc **Définir compresseur \[\]**  permet d’allumer ou d’éteindre le compresseur.

##### Interroger

Le bloc **Compresseur \[\]  permet d’utiliser l’activité d’un compresseur comme condition.

#### Électrovanne

[![image-1623746259058.41.19.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623746259058-41-19.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623746259058-41-19.png)

##### Configurer

Le bloc **Définir électrovanne \[\]**  permet d’allumer ou d’éteindre l'électrovanne. Ici, « marche » signifie que la valve est ouverte et « arrêt » signifie que la valve est fermée.

##### Interroger

Le bloc **Electrovanne \[\]  permet d’utiliser l’activité d’une électrovanne comme condition.

# Son

Skip to main content Logo ROBO Pro Coding Search Shelves Books Settings Admin Admin Son Formats Source code

Le TXT 4.0 Controller est équipée d’un haut-parleur intégré et permet de jouer des sons.

#### Le démarrage de chaque bloc

Le **démarrage de chaque bloc** permet d’exécuter un programme si une condition est remplie. Il fonctionne donc comme une distinction de cas, non seulement une fois, mais chaque fois que la condition est remplie, tout au long du programme. Le **démarrage de chaque bloc** :

[![Französisch-Sound-Bild1.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/franzosisch-sound-bild1.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/franzosisch-sound-bild1.PNG)

Est une abréviation de la construction suivante :

[![Französisch-Sound-Bild2.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/franzosisch-sound-bild2.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/franzosisch-sound-bild2.PNG)

On peut insérer dans le **démarrage chaque bloc** de la catégorie Son toutes les conditions de cette même catégorie.

**Remarque : La section du programme à l’intérieur du démarrage de chaque bloc doit être courte et ne pas comporter d’appels bloqués ou de boucles de fin de session, afin que cette partie du programme puisse être traitée rapidement.**

#### Lire

##### Fichiers audio préinstallés

Le bloc suivant permet de lire l’un des 29 sons préinstallés. Le fichier audio souhaité peut être sélectionné dans le menu déroulant (petit triangle). Il est également possible de jouer le son en boucle. Pour cela, il faut cocher la case derrière le symbole de boucle.

[![Französisch-Sound-Bild3.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/franzosisch-sound-bild3.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/franzosisch-sound-bild3.PNG)

##### Fichiers audios propres

Si vous voulez jouer votre propre son, vous pouvez utiliser le bloc

[![Französisch-Sound-Bild4.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/franzosisch-sound-bild4.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/franzosisch-sound-bild4.PNG)

Pour intégrer son propre son dans le bloc, il faut :

1. Être connecté au contrôleur
2. Saisir l’adresse IP du contrôleur dans le navigateur (il faut sélectionner l’IP qui a également été utilisé pour se connecter au contrôleur)
3. Saisir USER : ft, PASSWORD : fischertechnik sur la page appelée
4. Ouvrir le dossier audio et y charger le fichier audio souhaité sur le contrôleur à l’aide du Plus (important : le fichier audio doit être au format wav)
5. Dans le bloc ROBO Pro Coding, saisir le chemin « ./dateiname.wav »

Ici aussi, il est possible de lire le son en boucle.

#### Interroger

Pour demander si un fichier audio doit être lu, il faut utiliser le bloc **Restituer le son**. Il peut être utilisé comme condition dans le programme.

#### Arrêter

Pour arrêter un son, il suffit d’utiliser le bloc **Arrêt Lecture du son** dans le programme.

OkCancel

# Affichage

Les blocs de la catégorie Affichage permettent de configurer et d’utiliser l’écran du contrôleur TXT 4.0. Cela se fait en deux étapes :

1. Configurer, c’est-à-dire 
    - • Ouvrir un nouveau fichier de la catégorie Affichage, via l’icône de page avec le Plus en haut à gauche
    - Faire glisser les éléments souhaités sur la zone encadrée (elle représente la partie configurable de l’écran)
    - Adapter les spécifications si nécessaire.
2. La programmation, c’est-à-dire 
    - Programmer l’effet de l’interaction avec l’écran dans le programme principal avec les blocs de la catégorie Affichage.

### Blocs

#### Demande d'évènement

Le bloc **Evénement \[\]** appelle l’évaluation rétrospective d’un élément. Ce bloc ne peut être utilisé que dans les programmes d’événements. Dans ces programmes d’événements, le bloc fait automatiquement référence à l’événement dans le programme duquel il est utilisé. Le type approprié pour l’évaluation rétrospective peut être sélectionné par le menu déroulant (petit triangle) :

[![Bild1.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/jIObild1.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/jIObild1.PNG)

#### Champ d'étiquetage

L’élément Champ d’étiquetage permet de placer un texte sur l’écran. L’icône du configurateur d’affichage est l’étiquette. Si vous faites glisser cette icône dans la zone tramée, une fenêtre s’ouvre à droite. Ici, sous l’autorité de l’inspecteur, il est possible de définir

- la taille du champ d’étiquette en pixels
- la position en pixels du champ d'étiquette (au point indiqué se trouve le coin supérieur gauche de la zone de texte),
- le nom du champ d’étiquette et
- le contenu du champ d'étiquette (ce texte est représenté au démarrage de l’écran)

Le bloc **Définir le champ d’étiquette Texte ...** permet de modifier le texte affiché pendant le fonctionnement du programme.

#### Saisies

L’élément **Saisie** permet aux utilisateurs/utilisatrices de saisir du texte via le contrôleur. Le symbole associé dans le configurateur d’affichage est le caractère « T ». Si vous faites glisser cette icône dans la zone tramée, une fenêtre s’ouvre à droite. Ici, sous l’autorité de l’inspecteur, il est possible de définir

- la taille du champ d’étiquette en pixels,
- la position en pixels du champ de saisie (au point indiqué se trouve le coin supérieur gauche du champ de saisie),
- le nom du champ de saisie et
- le contenu du champ de saisie (ce texte est représenté au démarrage de l’écran)

Le bloc **Définir le champ de saisie Texte ...** permet de modifier le texte affiché pendant le fonctionnement du programme.

##### Programme de saisie

Le programme de saisie s'exécute lorsqu’une saisie est terminée. Il est rédigé séparément du programme principal. Les variables fonctionnent globalement sur les deux programmes. Le programme de saisie s'exécute dans le bloc **lorsqu’une saisie est terminée**. Le bloc **Evénement \[\]** est défini sur « texte » dans le programme de saisie. Dans cet exemple, le **nom**  de la variable est placé sur le texte saisi, puis utilisé dans le programme principal pour éditer le texte saisi  :

[![Bild2.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/NZcbild2.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/NZcbild2.PNG)

#### Instrument de mesure 

La fonction de l’instrument de mesure peut représenter des valeurs (pas de valeurs inférieures à 1). Le symbole associé dans le configurateur d’écran est l’échelle. Si vous faites glisser cette icône dans la zone tramée, une fenêtre s’ouvre à droite. Ici, sous l’autorité de l’inspecteur, il est possible de définir

- la taille de l’instrument de mesure en pixels,
- la position en pixels de l’instrument de mesure (au point indiqué se trouve le coin supérieur gauche de l’instrument de mesure),
- le nom de l’instrument de mesure,
- l’orientation de l’instrument de mesure
- la plage de valeurs que représente l’instrument de mesure, et
- la valeur de l’instrument de mesure affiché au démarrage de l’écran

Le bloc **Définir l’instrument de mesure sur la valeur ...** , il est possible de définir l’instrument de mesure sur la valeur saisie. Cette valeur doit se situer dans la plage de valeurs prédéfinie. Si la valeur est en dehors de la plage de valeurs, l’une des limites de la plage de valeurs est affichée, selon que la valeur est trop grande ou trop petite.

#### Affichage de l'état

L’indicateur d’état indique l’activité de quelque chose. Selon le statut, il s'allume (« actif ») ou ne s’allume pas (« inactif »). Le symbole du configurateur d’affichage est une diode lumineuse. Si vous faites glisser cette icône dans la zone tramée, une fenêtre s’ouvre à droite. Ici, sous l’autorité de l’inspecteur, il est possible de définir

- la taille de l'affichage de l’état en pixels,
- la position en pixels de l’affichage de l’état (au point indiqué se trouve le coin supérieur gauche de l’affichage de l'état),
- le nom de l’affichage de l’état,
- la couleur de l'affichage de l’état et
- si l’affichage de l’état doit être actif ou inactif au démarrage

Le bloc **Activer l’affichage de l’état \[\]**  permet d’activer ou de désactiver l’affichage de l’état. Dans le menu déroulant (petit triangle), il est possible de choisir si l’affichage de l’état doit être activé ou désactivé.

#### Curseur

Le curseur renvoie les valeurs en fonction de sa position. La position peut être modifiée par l’utilisateur/l’utilisatrice à l’aide de l’écran tactile. La valeur peut être extraite du bloc **Evénement \[\]** dès que le curseur est en pause. La valeur extraite est un nombre décimal. Pour avoir la valeur du curseur en nombre entier, il faut utiliser le bloc **rond**. Le symbole associé au curseur est le trait avec le cercle. Si vous faites glisser cette icône dans la zone tramée, une fenêtre s’ouvre à droite. Ici, sous l’autorité de l’inspecteur, il est possible de définir

- la taille du curseur en pixels,
- la position en pixels du curseur (au point indiqué se trouve le coin supérieur gauche du curseur)
- le nom du curseur,
- l'activité du curseur,
- l’orientation du curseur,
- la plage de valeurs couverte par le curseur et
- la valeur sur laquelle se trouve le régulateur au démarrage de l’écran

Le bloc **Définir la valeur du curseur ... le curseur peut être déplacé sur une autre valeur.

La fonction **Activer le curseur \[\] kann permet de modifier l'activité via le menu déroulant (petit triangle).

##### Programme du curseur

Le programme du curseur s'exécute une fois le curseur déplacé. Il est rédigé séparément du programme principal. Les variables fonctionnent globalement sur les deux programmes. Le programme du curseur s'exécute dans le bloc **lorsqu’une saisie est terminée**. Le bloc **Evénement \[\]** est défini sur « valeur » dans le programme du curseur. Dans cet exemple, la vitesse du moteur est contrôlée via le curseur. La valeur du curseur doit être arrondie car le moteur n’accepte que des nombres entiers comme régime :

[![Bild3.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/F9jbild3.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/F9jbild3.PNG)

#### Bouton

Le bouton est un champ marqué qui peut être enfoncé. Si vous appuyez sur le bouton, le programme de bouton s’arrête dès qu’il est relâché. L’icône associée au bouton est le carré marqué « OK ». Si vous faites glisser cette icône dans la zone tramée, une fenêtre s’ouvre à droite. Ici, sous l’autorité de l’inspecteur, il est possible de définir

- la taille du bouton en pixels,
- la position en pixels du bouton (au point indiqué se trouve le coin supérieur gauche du bouton),
- le nom du bouton,
- le texte affiché sur le bouton et
- l'activité du bouton

Le bloc **Activer le bouton \[\]** permet de modifier l’activité via le menu déroulant (petit triangle).

##### Programme de boutons

Le programme de boutons s'exécute dès que le bouton n’est plus enfoncé. Il est rédigé séparément du programme principal. Les variables fonctionnent globalement sur les deux programmes. Le programme de bouton s'exécute dans le bloc **lorsque le bouton est enfoncé**. Le bloc **Evénement \[\]** ne peut pas être utilisé dans le programme de boutons car le bouton n’a pas de valeur de retour. Dans cet exemple, la LED est activée une fois le bouton enfoncé.

[![Bild4.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/E44bild4.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/E44bild4.PNG)

#### Interrupteur

L’interrupteur peut adopter deux positions et se trouve toujours exactement dans l’une de ces deux positions. En fonction de la position, il retourne un signal **correct** ou **incorrect** . Le symbole associé à l’interrupteur est l’ovale avec le point. Si vous faites glisser cette icône dans la zone tramée, une fenêtre s’ouvre à droite. Ici, sous l’autorité de l’inspecteur, il est possible de modifier

- la taille de l’interrupteur en pixels,
- la position en pixels de l’interrupteur (au point indiqué se trouve le coin supérieur gauche de l’interrupteur),
- le nom de l’interrupteur,
- le texte à côté duquel se trouve l’interrupteur,
- l'activité de l’interrupteur et
- l'état dans lequel l’interrupteur doit se trouver au démarrage du programme

Le bloc

[![Bild5.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/DtZbild5.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/DtZbild5.PNG)

a deux fonctions. Vous pouvez définir l’activité (sélectionner enabled dans le menu déroulant) ou l’état (sélectionner checked dans le menu déroulant) sur **vrai** ou **faux**.

##### Programme d'interrupteur

Le programme d'interrupteur s'exécute à chaque fois que l’interrupteur est déplacé. Il est rédigé séparément du programme principal. Les variables fonctionnent globalement sur les deux programmes. Le programme de l’interrupteur s'exécute dans le bloc **lorsque l’interrupteur est commuté**. Le bloc **EvénemENT \[\]**est défini sur « checked » dans le programme d'interrupteur, il retourne un signal **vrai** ou **faux**. Cet exemple de programme allume la LED lorsque l’interrupteur est commuté, sinon la LED est éteinte :

[![Bild6.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/2TAbild6.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/2TAbild6.PNG)

#### Case à cocher

La case à cocher peut adopter deux positions et se trouve toujours exactement dans l’une de ces deux positions. En fonction de la position, elle retourne un signal **vrai** ou **faux** . Le symbole de la case à cocher est le carré avec la coche. Si vous faites glisser cette icône dans la zone tramée, une fenêtre s’ouvre à droite. Ici, sous l’autorité de l’inspecteur, il est possible de définir

- la taille de la case à cocher en pixels,
- la position en pixels de la case à cocher (au point indiqué se trouve le coin supérieur gauche de la case à cocher),
- le nom de la case à cocher,
- le texte à côté duquel se trouve la case à cocher,
- l'activité de la case à cocher et
- l'état dans lequel la case à cocher doit se trouver au démarrage du programme

Le bloc suivant a deux fonctions. Le menu déroulant (petit triangle) permet d’indiquer celui qui est utilisé. Vous pouvez définir l’activité (sélectionner enabled dans le menu déroulant) ou l’état (sélectionner checked dans le menu déroulant) sur **vrai** ou **faux**.

[![Bild7.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/c90bild7.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/c90bild7.PNG)

##### Programme de case à cocher

Le programme de case à cocher s'exécute à chaque fois que la case à cocher est actionnée. Il est rédigé séparément du programme principal. Les variables fonctionnent globalement sur les deux programmes. Le programme de la case à cocher s'exécute dans le bloc **lorsque la case à cocher est commutée**. Le bloc **EvénemENT \[\]**est défini sur « checked » dans le programme d'interrupteur, il retourne un signal **vrai** ou **faux**. Cet exemple de programme allume la LED lorsque la case est cochée, sinon la LED est éteinte.

[![Bild8.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/rLqbild8.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/rLqbild8.PNG)

# Moteur

#### Le démarrage de chaque bloc

Le **démarrage de chaque bloc** permet d’exécuter un programme si une condition est remplie. Il fonctionne donc comme une distinction de cas, non seulement une fois, mais chaque fois que la condition est remplie, tout au long du programme. Le **démarrage de chaque bloc** :

[![Bild1.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/tWkbild1.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/tWkbild1.PNG)

Est une abréviation de la construction suivante :

[![Bild2.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/sX7bild2.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/sX7bild2.PNG)

On peut insérer dans le **démarrage chaque bloc** de la catégorie Moteur toutes les conditions de cette même catégorie.

**Remarque : La section du programme à l’intérieur du démarrage de chaque bloc doit être courte et ne pas comporter d’appels bloqués ou de boucles de fin de session, afin que cette partie du programme puisse être traitée rapidement.**

#### Moteur 

Le symbole figurant sur les blocs moteurs représente tous les moteurs autres que les codeurs ou les servomoteurs.

##### Configurer

Le bloc **Définir la vitesse moteur à \[\] ...** permet de fixer la vitesse d’un moteur à une valeur donnée (de 0 à 512). Le menu déroulant (petit triangle) permet de choisir le sens de rotation.

##### Afficher

Le bloc **Récupérer la vitesse du moteur** permet de consulter la vitesse d'un moteur et de la traiter comme une valeur.

##### Interroger

Avec les blocs **Fonctionnement du moteur**  et **Vitesse du moteur ...** il est possible d’utiliser l’activité ou la vitesse d'un moteur comme condition.

##### Arrêter

Le bloc **Arrêt moteur …** permet d’arrêter un moteur. Le bloc **Arrêt moteur \[\]** permet d’arrêter un moteur directement ou à échéance. L’option souhaitée peut être sélectionnée dans le menu déroulant (petit triangle).

[![Bild3.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/aXSbild3.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/aXSbild3.PNG)

#### Servomoteur

[![image-1623746331741.42.25.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623746331741-42-25.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623746331741-42-25.png)

##### Configurer

Le bloc **Définir la position sur ...** permet de définir la position d'un servomoteur sur une valeur spécifique (de 0 à 512). 0 et 512 sont les valeurs de déviation maximale à droite et à gauche. Pour la valeur 256, le servomoteur est placé au centre.

##### Afficher

Le bloc **Récupérer la position**permet de consulter la position d'un servomoteur et de la traiter comme une valeur.

#### Moteur encodeur

[![image-1623746341213.40.14.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623746341213-40-14.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623746341213-40-14.png)

Le moteur encodeur a les mêmes fonctions qu’un moteur normal, mais il permet en outre de compter les rotations et de faire fonctionner plusieurs moteurs de façon synchronisée. Un tour est divisé en ~64 pas.

##### Configurer

Avec le bloc

[![Bild6.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/UQxbild6.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/UQxbild6.PNG)

il est possible de définir la vitesse d'un moteur sur une valeur spécifique (de 0 à 512). Le menu déroulant (petit triangle) permet de choisir le sens de rotation. On peut également saisir le nombre de pas que le moteur doit parcourir. Dans cet exemple, le moteur tourne à 100 pas, soit un et un tiers de tour. Comme on peut le voir par exemple, ce bloc a un signe plus permettant de faire fonctionner plusieurs moteurs de façon synchronisée. Il est possible de synchroniser les moteurs sur le maître ou sur une extension, une synchronisation croisée par exemple entre les moteurs du maître et une extension est impossible.

**Remarque : Des appels de synchronisation se succédant rapidement, tels qu’ils sont possibles par une boucle (voir exemple), peuvent nuire à la synchronisation, voire l’empêcher complètement.**

##### Arrêter

Le bloc **Arrêt moteur …** permet d’arrêter un moteur. Si vous voulez arrêter plusieurs moteurs en même temps, vous pouvez ajouter jusqu’à trois moteurs en plus à gauche du bloc.

[![Bild7.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/Qyybild7.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/Qyybild7.PNG)

##### Interroger

Le bloc **a atteint sa position** et est utilisé comme une condition pour atteindre sa position. Par position, on entend ici la position finale d’un moteur encodeur à pas complet.

# Capteurs



# Saisies

#### Le démarrage de chaque bloc

Le **démarrage de chaque bloc** permet d’exécuter un programme si une condition est remplie. Il fonctionne donc comme une distinction de cas, non seulement une fois, mais chaque fois que la condition est remplie, tout au long du programme. Le **démarrage de chaque bloc** :

[![Bild1.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/jcIbild1.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/jcIbild1.PNG)

Est une abréviation de la construction suivante :

[![Bild2.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/eYObild2.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/eYObild2.PNG)

On peut insérer dans le **Démarrage de chaque bloc** de la catégorie Saisies toutes les conditions de cette même catégorie.

**Remarque : La section du programme à l’intérieur du démarrage de chaque bloc doit être courte et ne pas comporter d’appels bloqués ou de boucles de fin de session, afin que cette partie du programme puisse être traitée rapidement.**

#### Touche de palpage

[![image-1623679995498.03.59.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623679995498-03-59.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623679995498-03-59.png)

La touche de palpage est un capteur numérique qui distingue les états « Le courant circule » et « Le courant ne circule pas ». Le flux de courant dépend à la fois du câblage et du fait que la touche de palpage soit enfoncée. On peut donc utiliser le bouton de deux façons différentes :

[![image-1623592536466.48.54.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/embedded-image-dlwxkak0.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623592536466-48-54.png)

Comme « fermeture » :  
les contacts 1 et 3 sont raccordés.

Touche de palpage enfoncée : Le courant circule. Touche de palpage non enfoncée : Le courant ne circule pas

<div id="bkmrk-comme-%C2%AB%C2%A0ouverture%C2%A0%C2%BB-"><div><div>Comme « ouverture » :</div></div></div>Les contacts 1 et 2 sont raccordés.

Touche de palpage enfoncée : Le courant ne circule pas. Touche de palpage non enfoncée : Le courant circule.

##### Afficher

Avec **Récupérer le statut de la mini touche de palpage**, on obtient des informations sur le fait que du courant circule dans la touche de palpage ou non. Si du courant circule, le signal **1** est retourné, en l’absence de courant, le signal est de 0.

##### Interroger

Pour vérifier si le bouton est dans un état donné, le bloc **Bouton …** est utilisé. Le menu déroulant (petit triangle) permet d’indiquer l'état interrogé. Ce bloc peut être utilisé comme une condition.

#### Capteur à ultrasons

[![image-1623680004750.04.35.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/embedded-image-1q47t1wc.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623680004750-04-35.png)

Le capteur à ultrasons est utilisé pour mesurer des distances.

##### Afficher

Avec **Récupérer la distance du capteur à ultrasons**, on obtient des informations sur la distance entre le capteur et l’objet le plus proche. La distance est retournée en cm.

##### Interroger

Pour déterminer si le capteur est situé à une certaine distance de l'objet le plus proche, le bloc **Distance du capteur à ultrasons …** est utilisé. Le menu déroulant (petit triangle) permet de sélectionner comment comparer la distance mesurée à une valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;). La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la distance mesurée est inférieure à 2 cm.

[![Bild6.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/zEgbild6.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/zEgbild6.PNG)

#### Capteur de couleurs

[![image-1623680014794.04.56.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623680014794-04-56.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623680014794-04-56.png)

Le capteur de couleur émet de la lumière rouge et mesure la quantité de lumière réfléchie. En fonction de l’intensité de la réflexion, le capteur de couleur renvoie des valeurs de 0 à 2000. Il convient parfaitement pour reconnaître les couleurs préalablement calibrées.

##### Afficher

La fonction **Récupérer la valeur du capteur de couleur** permet d’obtenir des informations sur l’intensité de réflexion de la lumière par une surface.

##### Interroger

Pour déterminer si le capteur a une certaine couleur devant lui, le bloc **Valeur du capteur de couleurs …** est utilisé. Le menu déroulant (petit triangle) permet de sélectionner comment comparer la valeur de couleur mesurée à une valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;). La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la valeur de couleur mesurée est inférieure à 1000.

[![Bild8.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/gIsbild8.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/gIsbild8.PNG)

#### Détecteur de piste infrarouge

[![image-1623680023473.04.45.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623680023473-04-45.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623680023473-04-45.png)

Le détecteur de piste infrarouge est un détecteur numérique qui détecte une piste noire sur un fond blanc et qui fonctionne à une distance de 5 à 30 mm d’un capteur à l’autre.

##### Afficher

Avec **Récupérer le statut du détecteur de piste infrarouge**  on obtient 0 si le capteur ne détecte pas de piste. Si le capteur détecte une piste, 1 est retourné.

##### Interroger

Pour savoir si le détecteur de piste infrarouge détecte une piste, il faut comparer l’état actuel de la piste à 0 ou 1. Le bloc **Statut du détecteur de piste infrarouge \[\] ... convient pour cela** . Le menu déroulant (petit triangle) permet de sélectionner comment comparer la valeur de piste mesurée à une valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;). La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la valeur de piste est à 0.

[![Bild10.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/Igwbild10.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/Igwbild10.PNG)

#### Phototransistor

[![image-1623680417014.17.52.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623680417014-17-52.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623680417014-17-52.png)

Le phototransistor est un capteur numérique qui distingue le clair du foncé.

##### Afficher

Avec **Récupérer le statut du phototransistor** on obtient 0 si le capteur ne détecte pas de lumière. Si le capteur détecte une lumière, 1 est retourné..

##### Interroger

Pour savoir si le phototransistor détecte du clair ou du foncé, il faut comparer l’état de luminosité à 0 ou 1. Le bloc **Statut du phototransistor \[\].** convient pour cela Le menu déroulant (petit triangle) permet de spécifier s'il faut interroger le clair ou le foncé.

![image-1623844705358.57.11.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623844705358-57-11.png)

Une utilisation possible d'un phototransistor est une barrière lumineuse, comme ce modèle.

#### Photorésistance

[![image-1623680434602.04.18.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623680434602-04-18.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623680434602-04-18.png)

La résistance de la photorésistance diminue si elle est exposée à une luminosité plus importante. La valeur de la photorésistance est donc une mesure de la luminosité.

##### Afficher

La fonction **Récupérer la valeur de la photorésistance permet de savoir à quel point la luminosité est importante. Plus la valeur émise est faible, plus elle est claire.

##### Interroger

Pour savoir si la photorésistance mesure une valeur de luminosité spécifique, le bloc **Valeur de photorésistance \[\] ...** est utilisé. Le menu déroulant (petit triangle) permet de sélectionner comment comparer la valeur de luminosité avec la valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;). La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la valeur de luminosité mesurée est inférieure à 3000.

[![Bild14.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/lahbild14.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/lahbild14.PNG)

#### Résistance NTC

[![image-1623680448576.05.31.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/embedded-image-mjoye6rm.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623680448576-05-31.png)

La résistance NTC est un capteur de température non binaire. Sa résistance électrique diminue lorsque la température augmente, ce qui en fait une mesure de la température.

##### Afficher

La fonction **Récupérer la résistance NTC \[\]** permet d’obtenir une valeur de résistance ou la température déduite. Vous pouvez sélectionner ce qui doit être retourné en utilisant le menu déroulant (petit triangle).

##### Interroger

Pour savoir si la résistance NTC mesure une certaine valeur, le bloc **Résistance NTC \[\] \[\] ...** est utilisé Les menus déroulants (petit triangle) permettent de sélectionner ce que vous souhaitez comparer et avec quel opérateur de comparaison. La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la température est inférieure à 20.

[![Bild16.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/Az7bild16.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/Az7bild16.PNG)

# Compteur

[![image-1623684174534.40.14.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623684174534-40-14.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623684174534-40-14.png)

Le moteur encodeur peut être utilisécomme compteur. Le nombre de tours est compté, non seulement lorsqu’il tourne en tant que moteur, mais aussi lorsqu’il est entraîné mécaniquement de l’extérieur.

#### Le démarrage de chaque bloc

Le **démarrage de chaque bloc** permet d’exécuter un programme si une condition est remplie. Il fonctionne donc comme une distinction de cas, non seulement une fois, mais chaque fois que la condition est remplie, tout au long du programme. Le **démarrage de chaque bloc** :

[![Bild2.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/XPmbild2.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/XPmbild2.PNG)

Est une abréviation de la construction suivante :

[![Bild3.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/ZPJbild3.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/ZPJbild3.PNG)

On peut insérer dans le **démarrage chaque bloc** de la catégorie Compteur toutes les conditions de cette même catégorie.

**Remarque : La section du programme à l’intérieur du démarrage de chaque bloc doit être courte et ne pas comporter d’appels bloqués ou de boucles de fin de session, afin que cette partie du programme puisse être traitée rapidement.**

##### Afficher

La fonction **Récupérer la valeur du compteur** permet d’obtenir la valeur comptée par le compteur.

##### Interroger

Pour vérifier si le compteur a compté une certaine valeur, ce bloc est

[![Bild4.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/UBtbild4.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/UBtbild4.PNG)

utilisé. Le menu déroulant (petit triangle) permet de sélectionner comment comparer la valeur comptée à une valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;).

##### Réinitialiser

Le compteur recommence à zéro lorsque le bloc **Réinitialiser le compteur** est exécuté.

# I2C

Les capteurs I2C décrits dans ce chapitre sont reliés au contrôleur TXT 4.0 par un câble plat approprié.

#### Le démarrage de chaque bloc

Le **démarrage de chaque bloc** permet d’exécuter un programme si une condition est remplie. Il fonctionne donc comme une distinction de cas, non seulement une fois, mais chaque fois que la condition est remplie, tout au long du programme. Le **démarrage de chaque bloc** :

[![Bild1.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/ic8bild1.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/ic8bild1.PNG)

Est une abréviation de la construction suivante :

[![Bild2.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/iK0bild2.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/iK0bild2.PNG)

On peut insérer dans le **démarrage chaque bloc** de la catégorie I2C toutes les conditions de cette même catégorie.

**Remarque : La section du programme à l’intérieur du démarrage de chaque bloc doit être courte et ne pas comporter d’appels bloqués ou de boucles de fin de session, afin que cette partie du programme puisse être traitée rapidement.**

### Capteur combiné

[![image-1623698066081.05.44.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623698066081-05-44.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623698066081-05-44.png)

Le capteur combiné combine trois fonctions en un seul élément : le capteur d’accélération, le gyroscope et le capteur de compas.

#### Capteur d’accélération

##### Afficher

La fonction **Récupérer l'accélération du capteur combiné dans \[\]**  permet d'obtenir l’accélération dans les directions. La direction souhaitée peut être sélectionnée dans le menu déroulant (petit triangle). L’accélération est indiquée en g.

##### Interroger

Pour savoir si l’on mesure une certaine accélération, le bloc **Capteur combinéAccélération dans \[\] \[\] ...** est utilisé. Les menus déroulants (petit triangle) permettent de sélectionner la manière de comparer l’accélération à la valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;), ainsi que la direction à explorer. La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque l'accélération dans la direction x est supérieure à 10.

[![Bild4.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/wxXbild4.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/wxXbild4.PNG)

#### Gyroscope

##### Afficher

La fonction **Récupérer la rotation du capteur combiné dans \[\]**  permet d'obtenir la rotation dans une direction. La direction souhaitée peut être sélectionnée dans le menu déroulant (petit triangle). La rotation est indiquée en °/s.

##### Interroger

Pour savoir si l’on mesure une certaine vitesse d'angle, le bloc **Capteur combinéRotation dans \[\] \[\] ...** est utilisé. Les menus déroulants (petit triangle) permettent de sélectionner la manière de comparer la rotation à la valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;), ainsi que la direction à explorer. La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la rotation dans la direction x est supérieure à 10.

[![Bild5.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/LjKbild5.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/LjKbild5.PNG)

#### Capteur à compas

##### Afficher

La fonction **Récupérer le flux magnétique du capteur combiné dans \[\]**  permet d'obtenir le flux magnétique dans une direction. La direction souhaitée peut être sélectionnée dans le menu déroulant (petit triangle). Le flux magnétique est indiqué en μT.

##### Interroger

Pour savoir si l’on mesure un certain flux magnétique, le bloc **Capteur combiné Flux magnétiquedans \[\] \[\] ...** est utilisé. Les menus déroulants (petit triangle) permettent de sélectionner la manière de comparer le flux magnétique à la valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;), ainsi que la direction à explorer. La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque le flux magnétique dans la direction x est supérieure à 10.

[![Bild6.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/n6ubild6.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/n6ubild6.PNG)

### Capteur environnemental

[![image-1623698078892.05.11.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623698078892-05-11.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623698078892-05-11.png)

Le capteur environnemental combine en un seul élément les quatre fonctions suivantes : capteur de qualité de l’air, capteur d’humidité de l’air, baromètre et thermomètre.

#### Capteur de la qualité de l'air

##### Afficher

Avec le bloc **Récupérer la qualité de l’air du capteur environnemental comme \[\]** , on peut mesurer la qualité de l’air. Le menu déroulant (petit triangle) permet de choisir si la qualité de l’air doit être restituée en tant que valeur numérique (de 0 à 500) ou en tant que texte.

##### Interroger

Pour savoir si l’on mesure une certaine qualité de l'air, le bloc **Capteur environnemental qualité de l'air\[\] ...** est utilisé. Le menu déroulant (petit triangle) permet de sélectionner comment comparer la qualité de l’air à la valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;). La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la qualité de l'air est supérieure à 10.

[![Bild8.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/L5Ebild8.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/L5Ebild8.PNG)

##### Baromètre

##### Afficher

Avec le bloc **Récupérer la pression de l’air du capteur environnemental**, on peut mesurer la pression de l’air.

##### Interroger

Pour savoir si l’on mesure une certaine pression de l'air, le bloc **Capteur environnemental pression de l'air\[\] ...** est utilisé. Le menu déroulant (petit triangle) permet de sélectionner comment comparer la pression de l’air à la valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;). La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la pression de l'air est supérieure à 10.

[![Bild9.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/CTibild9.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/CTibild9.PNG)

##### Thermomètre

##### Afficher

Avec le bloc **Récupérer la température du capteur environnemental**, on peut mesurer la pression de l’air.

##### Interroger

Pour savoir si l’on mesure une certaine température, le bloc **Capteur environnemental température\[\] ...** est utilisé. Le menu déroulant (petit triangle) permet de sélectionner comment comparer la température à la valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;). La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la température est supérieure à 10.

[![Bild10.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/GFlbild10.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/GFlbild10.PNG)

##### Capteur d’humidité de l’air

##### Afficher

Avec le bloc **Récupérer l’humidité de l’air du capteur environnemental**, on peut mesurer l’humidité de l’air.

##### Interroger

Pour savoir si l’on mesure une certaine température, le bloc **Capteur environnemental humidité de l'air\[\] ...** est utilisé. Le menu déroulant (petit triangle) permet de sélectionner comment comparer l’humidité de l’air à la valeur saisie (&lt;, ≤, =, ≠, ≥, &gt;). La valeur de comparaison est saisie dans le champ numérique à la fin du bloc. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque l’humidité de l'air est supérieure à 10.

[![Bild11.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/uYObild11.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/uYObild11.PNG)

# USB

Le port USB permet de connecter la caméra au microphone intégré. La caméra et le microphone sont ici observés séparément. Pour utiliser les fonctions de la caméra, il faut d'abord les configurer dans l’outil de configuration de la caméra. La méthode d'accès à l’outil de configuration de la caméra est expliquée [ici](https://docs.fischertechnik-cloud.com/books/robo-pro-coding/page/allgemeine-benutzung "Utilisation générale").

### Caméra

![](https://docs.fischertechnik-cloud.com/loading.gif)

La caméra peut notamment servir de détecteur de mouvement, de détecteur de couleur, de détecteur de balle et de détecteur de ligne.

#### Détecteur de mouvement

Pour utiliser la caméra comme détecteur de mouvement, il faut faire glisser le symbole de bonhomme dans la surface encadrée dans le configurateur de la caméra, puis une fenêtre s’ouvre à droite, dans laquelle sous l’inspecteur

- on peut définir la zone de pixels dans laquelle les mouvements sont contrôlés
- la position de cette zone (au point indiqué se trouve le coin supérieur gauche de la zone),
- le nom du détecteur de mouvement et
- la tolérance

##### Programme du détecteur de mouvement

Le programme du détecteur de mouvement s'exécute lorsqu’un mouvement est détecté. Il est rédigé séparément du programme principal. Les variables fonctionnent globalement sur les deux programmes. Le programme de saisie s'exécute dans le bloc **lorsqu’un mouvement est détecté**.

#### Détecteur de couleur

Pour utiliser la caméra comme détecteur de couleur, il faut faire glisser le symbole de bonhomme dans la surface encadrée dans le configurateur de la caméra, puis une fenêtre s’ouvre à droite, dans laquelle sous l’inspecteur

- on peut définir la zone de pixels dans laquelle la couleur est contrôlée,
- la position en pixels de cette zone (au point indiqué se trouve le coin supérieur gauche de la zone),
- le nom du détecteur de couleur et
- le contraste

##### Afficher

Avec **Récupérer la couleur comme \[\]** , on obtient la couleur détectée en hexadécimal ou au format RGB. Le format peut être défini dans le menu déroulant (petit triangle).

##### Interroger

Pour déterminer si le détecteur a détecté une certaine couleur, le bloc **Couleur détectée …** est utilisé. Ce bloc peut être utilisé comme une condition.

Pour vérifier si le détecteur détecte une certaine couleur, ce bloc est

[![Bild1.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/5j5bild1.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/5j5bild1.PNG)

utilisé. Le bloc permet de comparer la couleur perçue avec une couleur saisie. Le menu déroulant (petit triangle) permet de choisir si la couleur sélectionnée doit être égale ou non à la couleur filmée. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la couleur détectée est rouge.

[![Bild2.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/o9lbild2.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/o9lbild2.PNG)

##### Programme du détecteur de couleur

Le programme de détection de couleur s'exécute lorsqu’une couleur est détectée. Il est rédigé séparément du programme principal. Les variables fonctionnent globalement sur les deux programmes. Le programme de saisie s'exécute dans le bloc **lorsqu’une couleur est détectée**.

#### Détecteur de balle 

Pour utiliser la caméra comme détecteur de balle, il faut faire glisser le symbole de bonhomme dans la surface encadrée dans le configurateur de la caméra, puis une fenêtre s’ouvre à droite, dans laquelle sous l’inspecteur

- on peut définir la zone de pixels dans laquelle la balle est contrôlée,
- la position en pixels de cette zone (au point indiqué se trouve le coin supérieur gauche de la zone),
- le nom du détecteur de balle,
- la zone dans laquelle se situe le diamètre de la balle,
- la zone de l’axe x,
- la couleur de la balle et
- la tolérance de couleur

##### Afficher

Avec **Récupérer la balle \[\]** , on obtient la position x, la position y, le rayon ou le diamètre de la balle.

##### Interroger

Pour déterminer si le détecteur a détecté une balle, le bloc **Balle détectée …** est utilisé. Ce bloc peut être utilisé comme une condition.

Pour savoir si le détecteur détecte une balle avec une position x, une position y, un rayon ou un diamètre, ce bloc est

[![Bild3.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/Czqbild3.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/Czqbild3.PNG)

utilisé. Le bloc permet de comparer les spécifications de la balle détectée avec une valeur saisie. Les menus déroulants (petit triangle) permettent de sélectionner ce que vous souhaitez comparer et avec quel opérateur de comparaison. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque le diamètre de la balle détectée est de 5.

[![Bild4.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/R4pbild4.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/R4pbild4.PNG)

##### Programme de détecteur de balle

Le programme de détecteur de balle s'exécute lorsqu’une couleur est détectée. Il est rédigé séparément du programme principal. Les variables fonctionnent globalement sur les deux programmes. Le programme de saisie s'exécute dans le bloc **lorsqu’une balle est détectée**.

#### Détecteur de lignes

Pour utiliser la caméra comme détecteur de lignes, il faut faire glisser le symbole avec les points sur une ligne dans la zone encadrée dans le configurateur de la caméra, puis une fenêtre s’ouvre à droite, dans laquelle sous l’inspecteur

- on peut définir la zone de pixels dans laquelle les lignes sont contrôlées,
- la position de cette zone (au point indiqué se trouve le coin supérieur gauche de la zone),
- le nom du détecteur de lignes,
- le nombre de lignes à détecter, et
- la zone dans laquelle la largeur des lignes se trouve

##### Afficher

Avec **Récupérer \[\] la ligne \[\]**  on obtient la position ou la largeur d’une des cinq lignes au maximum.

Aec **Récupérer la couleur de la ligne \[\] comme \[\]** , on obtient la couleur d'une ligne en hexadécimal ou au format RGB. Le format peut être défini dans le menu déroulant (petit triangle).

##### Interroger

Pour déterminer si le détecteur a détecté une ligne, le bloc **Ligne détectée …** est utilisé. Ce bloc peut être utilisé comme une condition.

Pour savoir si le détecteur détecte une ligne avec une position ou une largeur définie, ce bloc est

[![Bild5.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/mmnbild5.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/mmnbild5.PNG)

utilisé. Le bloc permet de comparer les spécifications de la ligne détectée avec une valeur saisie. Les menus déroulants (petit triangle) permettent de sélectionner ce que vous souhaitez comparer et avec quel opérateur de comparaison. Ce bloc peut être utilisé comme une condition. Dans l’exemple, le moteur est arrêté lorsque la largeur de la ligne perçue est inférieure à 2.

[![Bild6.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/JCqbild6.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/JCqbild6.PNG)

Pour savoir si le détecteur détecte une ligne avec une couleur définie, ce bloc est

[![Bild7.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/Ll1bild7.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/Ll1bild7.PNG)

utilisé. Le bloc permet de comparer la couleur de la ligne perçue avec une couleur saisie. Le menu déroulant (petit triangle) permet de choisir si la couleur sélectionnée doit être égale ou non à la couleur filmée. Ce bloc peut être utilisé comme une condition.

##### Programme de détecteur de ligne

Le programme de détecteur de ligne s'exécute lorsqu’une ou plusieurs lignes sont détectées. Il est rédigé séparément du programme principal. Les variables fonctionnent globalement sur les deux programmes. Le programme de saisie s'exécute dans le bloc **lorsqu’une ligne est détectée**.

### Microphone

Le microphone intégré à la caméra peut être utilisé comme détecteur de volume.

#### Le démarrage de chaque bloc

Le **démarrage de chaque bloc** permet d’exécuter un programme si une condition est remplie. Il fonctionne donc comme une distinction de cas, non seulement une fois, mais chaque fois que la condition est remplie, tout au long du programme. Le **démarrage de chaque bloc** :

[![Bild8.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/ycmbild8.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/ycmbild8.PNG)

Est une abréviation de la construction suivante :

[![Bild9.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/cXXbild9.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/cXXbild9.PNG)

<div id="bkmrk--9"></div>On peut insérer dans le **démarrage chaque bloc** de la catégorie Microphone toutes les conditions de cette même catégorie.

**Remarque : La section du programme à l’intérieur du démarrage de chaque bloc doit être courte et ne pas comporter d’appels bloqués ou de boucles de fin de session, afin que cette partie du programme puisse être traitée rapidement.**

#### Détecteur de volume

##### Afficher

Avec **Microphone Volume on obtient le volume en décibels.

##### Interroger

Pour vérifier si le détecteur de volume détecte un certain volume, ce bloc est

[![Bild10.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/scaled-1680-/ggqbild10.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-11/ggqbild10.PNG)

utilisé. Le bloc permet de comparer le volume perçu avec un volume saisi. Le menu déroulant (petit triangle) permet de sélectionner ce que vous souhaitez comparer et avec quel opérateur de comparaison. Ce bloc peut être utilisé comme une condition.

# Traitement



# Logique

### Instructions conditionnelles

Les instructions conditionnelles sont essentielles pour la programmation. Elles permettent de formuler des distinctions de cas telles que :

- S’il y a un moyen de tourner à gauche, rotation à gauche.
- Si le score = 100, imprimer « Bien joué ! ».

#### Blocs **si**

La condition la plus simple est un bloc **si** :

[![Bild1_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/scaled-1680-/bild1-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/bild1-f.PNG)

Lorsqu’il est exécuté, la valeur de la variable **x** est comparée à 100. Si elle est supérieure, « Quel grand nombre ! » est édité. Sinon, il ne se passe rien.

#### Blocs **si-sinon**

Il est également possible d’indiquer que quelque chose doit se produire si la condition n’est pas vraie, comme dans cet exemple :

[![Bild2_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/scaled-1680-/bild2-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/bild2-f.PNG)

Comme pour le bloc précédent, « Quel grand nombre ! » est émis lorsque **x** &gt; 100. Dans le cas contraire, « Ce n’est pas très grand » est édité.

Un bloc **si** peut avoir une section **sinon**,mais pas plus d'une.

#### Blocs **si-sinon-si**

Il est également possible de tester plusieurs conditions avec un seul bloc **si** en ajoutant des clauses **sinon**-**si** :

[![Bild3_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/scaled-1680-/bild3-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/bild3-f.PNG)

Le bloc vérifie d'abord si **x** &gt; 100 et émet « Quel grand nombre ! » si c’est le cas. Si ce n’est pas le cas, il continue à vérifier si **x** = 42. Si oui, il édite « C’est mon chiffre porte-bonheur ! ». Sinon, il ne se passe rien.

Un bloc **si** peut avoir un nombre quelconque de sections **sinon**-**si**. Les conditions sont évaluées de haut en bas jusqu’à ce qu’une condition soit remplie ou jusqu’à ce qu’il ne reste plus aucune condition.

#### Blocs **si-sinon-si-sinon**

Les blocs **si** peuvent comporter aussi bien des sections **sinon**-**si** que des sections **sinon** :

[![Bild4_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/scaled-1680-/bild4-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/bild4-f.PNG)

La section **sinon** garantit qu’une action sera exécutée même si aucune des conditions précédentes n’est vraie.

Une autre section **sinon** peut se produire après n’importe quel nombre de sections **sinon**-**si**, y compris zéro, pour obtenir un bloc **si**-**sinon** normal.

#### Modification de bloc

La barre d’outils affiche uniquement le bloc **si** simple et le bloc **si**-**sinon** :

[![image.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2024-11/scaled-1680-/image.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2024-11/image.png)

Pour ajouter des clauses **si**-**sinon** et **sinon**, cliquez sur l’icône (+). L’icône (-) permet de supprimer à nouveau les clauses **sinon**-**si** :

[![Bild6_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/scaled-1680-/bild6-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2022-01/bild6-f.PNG)

Remarquez que les formes des blocs permettent d’ajouter un nombre quelconque de sous-blocs **sinon**-**si**, mais seulement jusqu’à un bloc **si**.

### Logique booléenne

La logique booléenne est un système mathématique simple qui a deux valeurs :

- **vrai**
- **faux**

Les blocs logiques dans ROBO Pro Coding sont généralement destinés à contrôler les conditions et les boucles.

Voici un exemple :

[![Bild1_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild1-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild1-f.PNG)

Si la valeur de la variable x est supérieure à 100, la condition est vraie et le texte « Quel grand nombre ! » est édité. Si la valeur de x n’est pas supérieure à 100, la condition est fausse et « Ce n’est pas très grand » est édité. Les valeurs booléennes peuvent également être stockées dans des variables et transmises à des fonctions, de même que les nombres, le texte et les valeurs de liste.

Si un bloc attend une valeur booléenne comme entrée, une entrée manquante est interprétée comme **incorrecte**. Les valeurs non booléennes ne peuvent pas être insérées directement là où des valeurs booléennes sont attendues, bien qu’il soit possible (mais non conseillé) d’enregistrer une valeur non booléenne dans une variable et de l’insérer ensuite dans l’entrée de condition. Cette méthode n’est pas recommandée et son comportement peut changer dans les versions futures de ROBO Pro Coding.

#### Valeurs

Un seul bloc avec une liste déroulante indiquant soit **vrai**, soit **faux** peut être utilisé pour extraire une valeur booléenne :

#### Opérateurs de comparaison

Il y a six opérateurs de comparaison. Deux entrées (normalement deux nombres) sont transmises à chacune et l’opérateur de comparaison renvoie **vrai** ou **faux**, selon la manière dont les entrées sont comparées.

[![image-1623518116706.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518116706.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116706.png)[![image-1623518117182.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518117182.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518117182.png)

[![image-1623518116894.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518116894.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116894.png)[![image-1623518116802.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518116802.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116802.png)

[![image-1623518116985.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518116985.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518116985.png)[![image-1623518166030.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623518166030.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518166030.png)

Les six opérateurs sont : égal, non égal, inférieur, supérieur, inférieur ou égal, supérieur ou égal.

#### Opérateurs logiques

Le bloc **et** transmet alors et seulement alors le signal **vrai** si ses deux valeurs d’entrée sont vraies.

[![Bild8.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/TzMbild8.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/TzMbild8.PNG)

Le bloc **ou** transmet le signal **vrai** si au moins une de ses deux valeurs d’entrée est vraie.

[![Bild9.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/s6nbild9.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/s6nbild9.PNG)

#### pas

Le bloc **pas** transforme une saisie booléenne en sa contrepartie. Par exemple, le résultat de :

[![Bild10_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild10-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild10-f.PNG)

**faux**.

En l’absence de saisie, la valeur **vraie** est enregistrée, de sorte que le bloc suivant génère la valeur **faux** :

[![Bild11_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild11-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild11-f.PNG)

Toutefois, il n’est pas recommandé de laisser une entrée vide.

#### Triple opérateur

Le triple opérateur se comporte comme un bloc **si-sinon** miniature. Il prend trois valeurs d’entrée, la première valeur d’entrée étant la condition booléenne à tester, la deuxième valeur d’entrée étant la valeur à restituer si le test est **vrai**, la troisième valeur d’entrée étant la valeur à restituer, si le test est faux. Dans l’exemple suivant, la variable **Couleur** est définie sur le rouge si la variable **x** est inférieure à 10, sinon la variable **Couleur** est définie sur le vert.

[![Bild12_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild12-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild12-f.PNG)

Un bloc triple peut toujours être remplacé par un bloc **si-sinon**. Les deux exemples suivants sont exactement identiques.[ ](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623518306106.png)

[![Bild13_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild13-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild13-f.PNG)

[![Bild14_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild14-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild14-f.PNG)

# Boucles

La zone « Commande » contient des blocs qui contrôlent si d’autres blocs placés à l’intérieur de celle-ci sont exécutés. Il y a deux types de blocs de contrôle : les blocs [**si-sinon**-Blöcke](https://docs.fischertechnik-cloud.com/books/robo-pro-coding/page/bedingungen "Conditions") (décrits sur une page) et les blocs qui contrôlent le nombre de fois où leur intérieur est exécuté. Ces derniers sont appelés boucles, car leur intérieur, également appelé corps ou corps de boucle, est répété (éventuellement) plusieurs fois. Chaque passage d’une boucle est appelé itération.

### Blocs pour créer des boucles

#### **Répétition permanente**

Le bloc **Répétition permanente** exécute le code dans son corps jusqu’à la fin du programme.

#### **Répéter**

Le bloc **Répétition** exécute le code dans son corps autant de fois que prévu, par exemple dix fois « Bonjour ! ». Le bloc suivant émet par exemple dix fois « Salut ! » :

[![Bild1_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/5hfbild1-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/5hfbild1-f.PNG)

#### **Répétition tant que**

Imaginez un jeu où un joueur lance un dé et additionne toutes les valeurs lancées tant que la somme est inférieure à 30. Les blocs suivants exécutent cette partie :

1. Une variable nommée **total** obtient une valeur initiale de 0.
2. 2. La boucle commence par vérifier si le **total** est inférieur à 30. Si c’est le cas, les blocs passent dans le corps.
3. 3. Un nombre aléatoire compris entre 1 et 6 est généré (pour simuler un lancer de dé) et stocké dans une variable nommée **dés**.
4. Le nombre en dés est édité.
5. La variable **totale** est augmentée de la valeur **en dés**.
6. Une fois la fin de la boucle atteinte, le contrôleur revient à l’étape 2.

[![Bild2_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild2-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild2-f.PNG)

Après la fin de la boucle, tous les blocs suivants (non représentés) sont passés. Dans l’exemple, le passage en boucle se termine après qu’un certain nombre de nombres aléatoires se situent dans la plage de 1 à 6, et la variable **total** a alors comme valeur la somme de ces nombres qui est d’au moins 30.

#### **Répétition jusqu’à**

Les boucles **Répétition tant que** répètent leur corps, **tant que** une condition est remplie. Les boucles **Répétition jusqu’à** sont similaires, à la différence qu’elles répétent leur corps **jusqu’à** ce qu’une condition définie soit remplie. Les blocs suivants sont équivalents à l’exemple précédent, car la boucle est exécutée jusqu’à ce que le **total** soit supérieur ou égal à 30.

[![Bild3_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild3-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild3-f.PNG)

#### **Compter-de-à**

La boucle **Compter-de-à**augmente la valeur d'une variable en commençant par une première valeur, se terminant par une deuxième valeur et par incréments d’une troisième valeur, le corps étant exécuté une fois pour chaque valeur de la variable. Le programme suivant donne par exemple les chiffres 1, 3 et 5.

[![Bild4_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild4-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild4-f.PNG)

Comme le montrent les deux boucles suivantes, qui émettent respectivement les nombres 5, 3 et 1, cette première valeur peut être supérieure à la seconde. Le comportement est le même, que le montant incrémental (troisième valeur) soit positif ou négatif.

[![Bild5_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild5-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild5-f.PNG)

[![Bild6_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild6-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild6-f.PNG)

#### **Pour chacun**

Le bloc **pour chacun** est similaire à celui de la boucle **Compter-de-à**, sauf qu’il utilise les valeurs d’une liste à la place de la variable de boucle dans un ordre numérique. Le programme suivant expose chaque élément de la liste « alpha », « bêta », « gamma » :

[![Bild7_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild7-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild7-f.PNG)

### Blocs de rupture de boucles

La plupart des boucles sont exécutées jusqu’à ce que la condition d’interruption soit satisfaite (pour les blocs **Répéter**) ou jusqu’à ce que toutes les valeurs de la variable de boucle soient acceptées (pour les boucles **Compter avec** et pour les boucles **pour chacun**). Deux blocs rarement nécessaires mais parfois utiles offrent des possibilités supplémentaires de contrôle du comportement de la boucle. Ils peuvent être utilisés pour n’importe quel type de boucle, même si les exemples suivants montrent leur utilisation pour les boucles **pour chacun**.

#### **Poursuivre avec la prochaine itération**

La boucle **Poursuivre avec la prochaine itération** permet de passer les blocs restants dans le corps de boucle et de commencer l’itération suivante de la boucle.

Le programme suivant donne « alpha » à la première itération de la boucle. Lors de la deuxième itération, le bloc **continue avec la prochaine intégration**, ce qui fait sauter la sortie de « beta ». Lors de la dernière itération, « gamma » est imprimé.

[![Bild8_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild8-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild8-f.PNG)

#### Rupture de boucle

Le bloc **Rupture de boucle** permet une sortie prématurée d’une boucle. Le programme suivant donne « alpha » à la première itération et interrompt la boucle à la seconde itération si la variable de boucle est égale à « beta ». Le troisième point de la liste n’est jamais atteint.

[![Bild9_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild9-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild9-f.PNG)

# Mathématiques

Les blocs de la catégorie Mathématiques sont utilisés pour effectuer des calculs. Les résultats des calculs peuvent, par exemple, être utilisés comme valeurs pour les variables. La plupart des blocs mathématiques font référence à des calculs mathématiques généraux et devraient être explicites.

### Blocs

#### Chiffres

Utilisez le bloc Chiffres pour ajouter n’importe quel nombre à votre programme ou pour assigner ce nombre à une variable en tant que valeur. Ce programme attribue le chiffre 12 à la variable **Âge** :

[![Bild1_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/ReRbild1-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/ReRbild1-f.PNG)

#### Calculs simples

Ce bloc a une structure valeur-opérateur-valeur. Les modes de calcul **+**, **-**, **÷**, **×** et **^** sont disponibles comme opérateurs. L’opérateur peut être sélectionné à l’aide du menu déroulant. Il peut être appliqué directement à des nombres ou à des valeurs de variables. Exemple :

[![Bild2.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/wVMbild2.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/wVMbild2.PNG)

Ce bloc donne le résultat 144 (12^2).

#### Calculs spéciaux

Ce bloc applique le type de calcul sélectionné dans le menu déroulant au nombre placé en arrière ou à la valeur de la variable placée en arrière. Les opérations de calcul disponibles sont les suivantes :

- racine carrée,
- montant,
- logarithme naturel,
- logarithme décadique,
- fonction exponentielle avec la base e (e^1, e^2,...),
- fonction exponentielle avec la base 10 (10^1, 10^2,...),
- changement de signe (multiplication par -1).

e est le nombre d’Euler. Ce bloc extrait la racine carrée de 16 et place la variable **i**  sur le résultat.

[![Bild3_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/it1bild3-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/it1bild3-f.PNG)

#### Fonctions trigonométriques

Ce bloc fonctionne comme le bloc décrit ci-dessus, sauf que les opérations de calcul sont les fonctions trigonométriques sinus, cosinus, tangens et leurs fonctions inverses. Le nombre spécifié ou la valeur de la variable spécifiée est alors inséré dans la fonction sélectionnée dans le menu déroulant et le résultat peut être traité dans le programme. Il y a en plus le bloc  **arctan2 of X: ... Y: ...**, qui permet, à l’aide de deux nombres réels (à utiliser comme X et Y), d’obtenir une valeur de fonction de l’arctan2 dans la plage de 360°.

#### Constantes fréquemment utilisées

Ce bloc fonctionne de la même manière que le bloc de chiffres, mais on n’y indique pas le chiffre lui-même. Les constantes fréquemment utilisées (par exemple π) sont sauvegardées. La constante peut être sélectionnée à l’aide du menu déroulant.

#### Reste d’une division

Le bloc **Reste de ...** est utilisé pour distribuer le reste d’une division. Ce programme attribue la variable **Reste** à la division 3:2, soit 1 :

[![Bild4_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/1iqbild4-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/1iqbild4-f.PNG)

#### Arrondir

Le bloc **Arrondir ...** permet d’arrondir un nombre décimal spécifié ou la valeur d’une variable spécifiée à un nombre entier. Trois options sont disponibles dans le menu déroulant :

- arrondi commercial avec « arrondi » (par exemple 4,5 à 5)
- arrondi vers le haut avec « arrondi supérieur » (par exemple 5,1 à 6)
- arrondi vers le bas avec « arrondi inférieur » (par exemple 5,9 à 5).

#### Evaluation de listes

Le bloc **... Liste** permet d'éditer

- Avec « Somme », la somme de toutes les valeurs d'une liste,
- Avec « min », la plus petite valeur d'une liste,
- Avec « max », la plus grande valeur d'une liste,
- Avec « Valeur moyenne », la valeur moyenne de toutes les valeurs d'une liste,
- Avec « Médiane », la valeur médiane d'une liste,
- Avec « Valeur modale », la valeur la plus fréquente d’une liste,
- Avec « Ecart type », l'écart type de toutes les valeurs d'une liste,
- Avec « Valeur aléatoire », une valeur aléatoire d'une liste

. Toutes ces options peuvent être sélectionnées dans le menu déroulant du bloc :

[![Bild5_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/yymbild5-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/yymbild5-f.PNG)

#### Limiter les valeurs d’entrée

Le bloc **Restriction... de... À...** permet de restreindre les valeurs d’entrée à un intervalle défini. Avant de traiter une valeur d’entrée, on teste si elle se situe dans l’intervalle spécifié. Il y a trois options pour traiter une valeur saisie :

- La valeur est dans l’intervalle, donc elle est transmise telle quelle.
- La valeur est inférieure à la limite inférieure de l’intervalle, donc cette limite inférieure est transmise.
- La valeur est supérieure à la limite supérieure de l’intervalle, donc cette limite supérieure est transmise.

Dans cet exemple, le bloc est utilisé pour limiter la valeur de la variable **Vitesse** aux régimes supportés par le moteur :

[![Bild6_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/ud6bild6-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/ud6bild6-f.PNG)

#### Générer des valeurs aléatoires

Les deux blocs, **un nombre aléatoire de ...à ...** et **un nombre aléatoire** donnent une valeur aléatoire. Le bloc **nombre aléatoire de ... à ... donne ainsi**  un nombre de l’intervalle défini. Le bloc **nombre aléatoire** donne au contraire une valeur entre 0,0 (inclus) et 1,0 (exclus).

# Textes

Voici quelques exemples de textes :

« Objet 1 »  
 « 12 mars 2010 »  
 «» (texte vide)  
Le texte peut contenir des lettres (en minuscules ou en majuscules), des chiffres, des signes de ponctuation, d’autres symboles et des espaces.

### Blocs

#### Création de texte

Le bloc suivant génère le texte « Bonjour » et l’enregistre dans la variable intitulée **Salutations :** :

**[![Bild1_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/3IIbild1-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/3IIbild1-f.PNG)**

Le bloc **Générer du texte à partir de** combine la valeur de la variable **Salutations** et le nouveau texte « Monde » avec le texte « Bonjour le monde ». Notez qu’il n’y a pas d’espace entre les deux textes, car il n’y en avait pas dans les deux textes originaux.

[![Bild2_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/c5Ebild2-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/c5Ebild2-f.PNG)

Pour augmenter le nombre de saisies de texte, cliquez sur l’icône (+). Pour supprimer la dernière édition, cliquez sur l’icône (-).

#### Modification du texte

Le bloc **Joindre à ...**  ajoute le texte indiqué à la variable spécifiée. Dans cet exemple, il change la valeur de la variable **Salutations** de « Bonjour » en « Bonjour à vous ! » :

[![Bild4_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/qytbild4-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/qytbild4-f.PNG)

#### Longueur du texte

Le bloc **Longueur de** compte le nombre de caractères (lettres, chiffres, etc.) qui sont contenus dans un texte. La longueur de « Nous sommes #1 ! » est 12 et la longueur du texte vide est 0.

[![Bild5_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/x03bild5-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/x03bild5-f.PNG)

[![Bild6_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/KbAbild6-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/KbAbild6-f.PNG)

#### Vérifier si le texte est vide

Le module **Vide** vérifie si le texte spécifié est vide (la longueur est de 0). Le résultat est **vrai** dans le premier exemple et **faux** dans le second.

[![Bild7_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/SRWbild7-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/SRWbild7-f.PNG)

[![Bild8_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/At0bild8-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/At0bild8-f.PNG)

#### Recherche de texte

Ces blocs peuvent être utilisés pour vérifier si un texte est présent dans un autre texte et, dans l’affirmative, où il est présent. Par exemple, on demande la première apparition de « a » dans « Salut », et le résultat est 2 :

[![Bild9_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/nWCbild9-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/nWCbild9-f.PNG)

Ceci pose la question de la dernière apparition de « a » dans « Salut », ce qui fait également 2 :

[![Bild10_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/btObild10-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/btObild10-f.PNG)

Que la première ou la dernière occurrence soit sélectionnée, ce bloc renvoie le résultat 0, car « Salut » ne contient pas de « z ».

[![Bild11_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/sHnbild11-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/sHnbild11-f.PNG)

#### Extraction de texte

##### Extraction d’un caractère unique

Ceci renvoie « b », la deuxième lettre dans « abcde » :

[![Bild12_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/1Qbbild12-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/1Qbbild12-f.PNG)

Ceci renvoie « d », l’avant-dernière lettre de « abcde » :

[![Bild13_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/YBWbild13-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/YBWbild13-f.PNG)

Ceci renvoie « a », la deuxième lettre dans « abcde » :

[![Bild14_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Kgibild14-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Kgibild14-f.PNG)

Ceci obtient « e », la dernière lettre dans « abcde » :

[![Bild15_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild15-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild15-f.PNG)

Ceci obtient chacune des 5 lettres « abcde » avec la même probabilité :

[![Bild16_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild16-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild16-f.PNG)

Aucun d’eux ne modifie le texte extrait.

#### Extraction d’une zone de texte

Le bloc **dans le texte ... Fournit la chaîne de caractères** permet d’extraire une zone de texte qui commence avec :

- Lettre #
- Lettre # de la fin
- Première lettre

et termine par :

- Lettre #
- Lettre # de la fin
- Dernière lettre

Dans l’exemple suivant, « abc » est extrait :

[![Bild17_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild17-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild17-f.PNG)

#### Mise en majuscules/minuscules du texte

Ce bloc génère une version du texte d’entrée qui est soit

- en MAJUSCULES (toutes les lettres en majuscules) ou
- en minuscules (toutes les lettres en minuscules) ou
- Substantive (première lettre en majuscule, les autres lettres en minuscules).

Le résultat du bloc suivant est « BONJOUR ».

[![Bild18_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild18-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild18-f.PNG)

Les caractères non alphabétiques ne sont pas concernés. Remarquez que ce bloc ne fonctionne pas sur des textes dans des langues sans majuscules et minuscules, comme le chinois par exemple.

#### Ajuster (supprimer) les espaces

Supprimer le bloc suivant, en fonction de ce qui est paramétré dans le menu déroulant (petit triangle), espaces :

- au début du texte
- à la fin du texte
- des deux côtés du texte

Le résultat du bloc suivant est « Bonjour vous ».

[![Bild19_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild19-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild19-f.PNG)

Les espaces au milieu du texte ne sont pas concernés.

#### Éditer du texte

Le bloc **Editer** a pour effet d'éditer la valeur de saisie dans la fenêtre de la console :

[![Bild20_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild20-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild20-f.PNG)

En aucun cas, il ne sera envoyé à l’imprimante, comme son nom le laisse supposer.

#### Éditer du texte avec formatage

Le bloc **Formater le texte** permet d’éditer des sorties de texte formatées avec un contenu variable. Tous les caractères de remplacement **{}** dans le texte sont remplacés par le contenu des variables jointes après le texte. Un formatage peut être donné entre parenthèses. Le formatage **{:.1f}** ne donne par exemple que la première décimale du nombre de virgules dans la variable **t**.

[![image-1638883272283.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/image-1638883272283.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/image-1638883272283.png)

# Listes

Comme dans le langage courant, ROBO Pro Coding contient une liste d’éléments ordonnés, tels qu’une liste « à faire » ou une liste d’achats. Les éléments d’une liste peuvent être de n’importe quel type et la même valeur peut apparaître plusieurs fois dans une liste.

### Création d’une liste

#### **Créer une liste avec**

Le bloc **Créer une liste avec** permet de saisir les valeurs initiales dans une nouvelle liste. Dans cet exemple, une liste de mots est créée et stockée dans une variable appelée **lettres** :

[![Bild1_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/2ATbild1-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/2ATbild1-f.PNG)

Nous appelons cette liste \[« alpha », « bêta », « gamma »\].

Ceci montre la création d’une liste de **chiffres** :

[![Bild2_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/4tPbild2-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/4tPbild2-f.PNG)

Pour créer une liste de **couleurs** :

[![Bild3_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/F66bild3-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/F66bild3-f.PNG)

Il est moins courant, mais il est possible de dresser une liste de valeurs de différents types :

[![Bild4_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/iI6bild4-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/iI6bild4-f.PNG)

#### Modifier le nombre d’entrées

Pour modifier le nombre d’entrées, cliquez ou appuyez sur l’icône de la roue dentée. Ceci ouvre une nouvelle fenêtre. Vous pouvez faire glisser des sous-blocs d’éléments du côté gauche de la fenêtre vers le bloc de liste du côté droit pour ajouter une nouvelle entrée. :

Si le nouvel élément a été ajouté dans cet exemple, il peut être ajouté n’importe où. De même, les sous-blocs d’éléments indésirables peuvent être tirés vers la gauche à partir du bloc de liste.

#### Créer une liste d’éléments

Le bloc **Créer une liste avec un élément** permet de créer une liste contenant le nombre indiqué de copies d’un élément. Par exemple, les blocs suivants ajoutent des **mots** à la liste \[« très », « très », « très »\].

[![Bild5_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/4rSbild5-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/4rSbild5-f.PNG)

### Contrôle de la longueur d’une liste

#### **Vide**

La valeur d’un bloc **vide** est **vraie** si sa saisie est la liste vide et **fausse** si c’est autre chose. Cette entrée est-elle **vraie** ? La valeur du bloc suivant serait **fausse** car la variable Couleurs n’est pas vide : elle comporte trois éléments.

[![Bild6_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/tSsbild6-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/tSsbild6-f.PNG)

Notez la similitude avec le bloc **vide** pour le texte.

#### **Longueur de**

La valeur du bloc **Longueur de** est le nombre d’éléments de la liste utilisée comme entrée. La valeur du bloc suivant serait par exemple 3, car la**couleur** comporte trois éléments :

[![Bild7_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/CTKbild7-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/CTKbild7-f.PNG)

Notez que le bloc **Longueur de** indique le nombre d’éléments contenus dans la liste et non le nombre d’éléments différents contenus dans la liste. Par exemple, ce qui suit la valeur 3, bien que les **mots** soient composés de trois copies du même texte :

[![Bild8_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/hADbild8-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/hADbild8-f.PNG)

Notez la similitude avec le bloc **Longueur de** pour le texte.

### Recherche d’éléments dans une liste

Ces blocs trouvent la position d’un élément dans une liste. L’exemple suivant a la valeur 1 parce que la première occurrence de "très" figure en tête de la liste de mots (\[« très », « très », « très »\]).

[![Bild9_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Rr9bild9-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Rr9bild9-f.PNG)

Le résultat de ce qui suit est 3, parce que la dernière occurrence de « très » en **mots** est en position 3.

[![Bild10_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Icdbild10-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Icdbild10-f.PNG)

Si l’élément n’apparaît nulle part dans la liste, le résultat est 0, comme dans cet exemple :

[![Bild11_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/rpDbild11-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/rpDbild11-f.PNG)

Ces blocs se comportent de la même manière que les blocs permettant de trouver des lettres dans le texte.

### Récupération d’éléments d’une liste

#### Récupération d’un élément unique

Rappelez-vous de la définition de la liste **Couleurs** :

[![image-1623519862088.png](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/scaled-1680-/image-1623519862088.png)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-06/image-1623519862088.png)

Le bloc suivant reçoit la couleur bleu parce qu’il est le deuxième élément de la liste (compté à partir de la gauche) :

[![Bild13_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Qd6bild13-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Qd6bild13-f.PNG)

Celui-ci reçoit du vert parce qu’il est le deuxième élément (compté depuis l’extrémité droite) :

[![Bild14_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/62Lbild14-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/62Lbild14-f.PNG)

Celui-ci reçoit le premier élément, rouge :

[![Bild15_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/qXybild15-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/qXybild15-f.PNG)

Celui-ci reçoit le dernier élément, jaune :

[![Bild16_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/b7Kbild16-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/b7Kbild16-f.PNG)

Ceci sélectionne au hasard un élément de la liste en renvoyant avec la même probabilité l’un des éléments rouge, bleu, vert ou jaune.

[![Bild17_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/TXBbild17-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/TXBbild17-f.PNG)

#### Récupération et suppression d’un élément

Le menu déroulant permet de modifier le bloc **Récupérer dans la liste ...** dans le bloc **Récupérer dans la liste ...** **et supprimer** qui fournit le même résultat, mais modifie également la liste :

[![Bild18_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/o57bild18-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/o57bild18-f.PNG)

Cet exemple place la variable **Première lettre** sur « alpha » et laisse les lettres restantes (\[« beta », « gamma »\]) dans la liste.

[![Bild19_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/Fqhbild19-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/Fqhbild19-f.PNG)

#### Supprimer une entrée

Si vous sélectionnez **Supprimer** dans le menu déroulant, le nez disparaît du bloc à gauche :

[![Bild20_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/RQhbild20-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/RQhbild20-f.PNG)

Cela supprime le premier élément des **lettres**.

#### Afficher une sous-liste

Le boc **Dans la liste ... Afficher la sous-liste** ressemble au bloc **Récupérer dans la liste ...** à la différence qu’il extrait une sous-liste et pas un élément individuel. Il existe plusieurs options pour indiquer le début et la fin de la sous-liste :

[![Bild21_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild21-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild21-f.PNG)

Dans cet exemple, une nouvelle liste de **première lettre** est établie. Cette nouvelle liste comporte deux éléments : \[« alpha », « bêta »\].

[![Bild23_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild23-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild23-f.PNG)

Remarquez que ce bloc ne change pas la liste d’origine.

### Ajout d’éléments à une liste

#### Remplacer les éléments dans une liste

Le bloc **Remplacer dans la liste ...** remplace l'élément à un emplacement défini d'une liste par un autre élément.

[![Bild24_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild24-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild24-f.PNG)

Vous trouverez dans la section précédente la signification des différentes options de menu déroulant.

L’exemple suivant fait deux choses :

1. La liste **mots** est composée de 3 éléments : \[« très », « très », « très »\].
2. Le troisième élément de la liste est remplacé par « bien ». La nouvelle valeur des **mots** est \[« très », « très », « bien »\]

[![Bild25_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild25-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild25-f.PNG)

#### Insérer des éléments à un emplacement donné dans une liste

Le bloc **Ajouter dans la liste ... pour** est affiché via le menu déroulant du bloc **Remplacer dans la liste ...** :

[![Bild26_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild26-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild26-f.PNG)

Il insère un nouvel élément dans la liste à l’emplacement indiqué, devant l’élément précédemment présent à cet emplacement. L’exemple suivant (tiré d’un précédent exemple) fait trois choses :

1. La liste **mots** est composée de 3 éléments : \[« très », « très », « très »\].
2. Le troisième élément de la liste est remplacé par « bien ». La nouvelle valeur des **mots** est donc \[« très », « très », « bien »\].
3. Le mot « être » est ajouté au début de la liste. La valeur finale des **mots** est donc \[« être », « très », « très », « bien »\].

[![Bild27_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild27-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild27-f.PNG)

### Diviser les chaînes et fusionner les listes

#### Créer une liste à partir d’un texte

Le module **Créer une liste à partir de texte** décompose le texte spécifié en parties à l’aide d’un caractère de délimitation :

[![Bild28_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild28-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild28-f.PNG)

Dans l’exemple ci-dessus, une nouvelle liste contenant trois morceaux de texte est renvoyée : « 311 », « 555 » et « 2368 ».

#### Créer un texte à partir d’une liste

Le module **Créer un texte à partir d'une liste** fusionne une liste en un seul texte à l'aide d'un séparateur :

[![Bild29_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild29-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild29-f.PNG)

Dans l’exemple ci-dessus, un nouveau texte est renvoyé avec la valeur : « 311-555-2368 ».

### Blocs apparentés

#### Impression d'une liste

Le module **Imprimer** de la catégorie Texte peut émettre des listes. Le résultat du programme suivant est l'édition de console représentée :

[![Bild30_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild30-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild30-f.PNG)

[![Konsole_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/konsole-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/konsole-f.PNG)

#### Exécuter quelque chose pour chaque élément dans une liste

Le bloc **pour chacun** dans la catégorie Commande exécute une opération pour chaque élément dans une liste. Par exemple, ce bloc imprime individuellement chaque élément de la liste :

[![Bild31_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/bild31-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/bild31-f.PNG)

Ceci ne supprime pas les éléments de la liste d’origine.

Voir aussi les exemples pour les [blocs de rupture de boucle](https://docs.fischertechnik-cloud.com/books/robo-pro-coding/page/schleifen "Ponçage").

# Utilisation

La catégorie Utilisation comprend, dans ROBO Pro Coding, les blocs suivants :

- Sélection de couleur
- Attendre
- Code Python
- Démarrer
- Exécution fonctionnelle

#### Sélection de couleur

Ce bloc sert de valeur d’entrée si une couleur est demandée (par exemple, lors de l’ajustement des couleurs par la caméra). En cliquant ou en appuyant sur la couleur, il est possible de sélectionner l’une des 70 couleurs parmi une palette de couleurs.

#### Attendre

##### Attendre que le temps soit écoulé

Le bloc **Attendre\[\] ...**  empêche le programme de continuer pendant le temps d’attente spécifié. Le menu déroulant (petit triangle) permet de sélectionner l’unité de temps et la longueur de pause souhaitée dans le champ de saisie derrière.

##### Attendre avec une condition

Pour le bloc **Attendre jusqu’à**, la pause n’est pas liée au temps, mais à la satisfaction d’une condition (par exemple, si un bouton-poussoir est enfoncé). La condition est ajoutée au bloc **Attendre** **jusqu’à**.

#### Code Python

Si vous souhaitez intégrer le code python existant dans le ROBO Pro Coding, vous pouvez l’insérer dans le bloc de **code python**. Le programme exécutera tout ce qui a été écrit dans le bloc dans Python.

#### Démarrer

Le bloc **Démarrer si** est associé à une condition. Ce n’est que lorsque cette condition est remplie que le programme se trouvant dans le bloc démarre.

#### Exécution fonctionnelle

La **fonction exécutée dans un fil** permet d’exécuter la fonction sélectionnée dans un fil séparé. Cette mesure peut, dans certains cas, permettre à un programme de continuer à répondre aux demandes et d’être exécuté plus rapidement.

# Variables

Nous utilisons le terme variable tel qu’il est utilisé en mathématiques et dans d’autres langages de programmation : une valeur nommée qui peut être modifiée (variée). Les variables peuvent être produites de différentes manières.

- Certains blocs comme **Compter avec** et **Pour chacun** utilisent une variable et définissent leurs valeurs. Un terme informatique traditionnel pour ces variables est une variable de boucle.
- Des fonctions définies par l’utilisateur (également appelées « procédures ») peuvent définir des entrées, générant ainsi des variables qui ne peuvent être utilisées que dans cette fonction. Ces variables sont traditionnellement appelées « paramètres » ou « arguments ».
- Les utilisateurs peuvent à tout moment modifier des variables avec le bloc **Définir**. Celles-ci sont traditionnellement appelées « variables globales ». Ils sont utilisables partout dans le code de ROBO Pro Coding.

#### Menu déroulant

Lorsque vous cliquez sur l’icône de menu déroulant (petit triangle) d’une variable, le menu suivant s’affiche :

[![Bild1_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/JMkbild1-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/JMkbild1-f.PNG)

Le menu propose les options suivantes.

- L’affichage des noms de toutes les variables existantes définies dans le programme.
- « Renommer la variable... », c’est-à-dire changer le nom de cette variable à chaque fois qu’elle apparaît dans le programme (la sélection de cette option ouvre une requête pour le nouveau nom)
- « Supprimer la variable ... », c’est-à-dire supprimer tous les blocs qui font référence à cette variable à l’endroit où elle apparaît dans le programme.

### Blocs

#### Définir

Le bloc **Définir** assigne une valeur à une variable et définit la variable si elle n’existe pas encore. Par exemple, la valeur de la variable **âge** est fixée à 12 :

[![Bild2_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/0FKbild2-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/0FKbild2-f.PNG)

#### Afficher

Le bloc **Afficher à partir de** renvoie la valeur stockée dans une variable sans la modifier :

[![Bild3.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/yAVbild3.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/yAVbild3.PNG)

Il est possible, mais ce n’est pas une bonne idée, d’écrire un programme dans lequel un bloc **Afficher à partir de** se produit sans un bloc Définir précédent correspondant.

#### Modifier

Le bloc **Modifier** ajoute un nombre à une variable.

[![Bild4_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/wwnbild4-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/wwnbild4-f.PNG)

Le bloc **Modifier** est une abréviation pour la structure suivante :

[![Bild5_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/tyYbild5-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/tyYbild5-f.PNG)

#### Exemple

Regardez l’exemple de code suivant :

[![Bild6_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/7eXbild6-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/7eXbild6-f.PNG)

La première série de blocs génère une variable appelée **Âge** et **définit**sa valeur initiale au nombre 12. La seconde série de blocs **appelle** la valeur 12 **à partir de**, y ajoute 1 et enregistre la somme (13) dans la variable. Sur la dernière ligne, le message suivant est édité : « Félicitations ! Vous avez 13 ans à présent ».

# Fonctions

Les fonctions servent à rendre des parties du code réutilisables et donc à structurer le code dans son ensemble. Si vous remplissez un bloc de fonctions, un nouveau bloc, portant le même nom que ce bloc de fonctions, apparaît dans le menu des fonctions. Il est désormais possible de n’insérer dans le programme principal que le bloc avec le nom de la fonction. Lorsque le programme est exécuté, ce bloc passe au code dans la fonction du même nom et le traite.

#### Fonction simple

Le bloc de fonction simple permet de générer une fonction qui porte le nom saisi dans la zone de texte. La fonction peut contenir autant de variables que vous le souhaitez qui peuvent être ajoutées par l’icône de la roue dentée. Cette fonction **Vieillissement** ajoute 1 à la variable **Âge** :

[![Bild1_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/La2bild1-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/La2bild1-f.PNG)

La fonction peut alors être utilisée dans le programme principal :

[![Bild2_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/9KZbild2-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/9KZbild2-f.PNG)

#### Fonction avec valeur de retour

Ce bloc permet de créer une fonction avec valeur de retour. Cette valeur peut ensuite être réutilisée dans le programme principal. Voici un exemple :

[![Bild3_f.PNG](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/scaled-1680-/vPhbild3-f.PNG)](https://docs.fischertechnik-cloud.com/uploads/images/gallery/2021-12/vPhbild3-f.PNG)