[Mise à jour le 18/1/2019]
La carte BrainPad v1
Sources : documentation sur le site de GHI Electronics [lien]
Classes
Nom | Description | |
---|---|---|
Accelerometer | Accès à l'accéléromètre MMA8453Q de la carte. Lecture de l'accélération sur les axes X, Y et Z. | |
Button | Accès aux 4 touches de la carte par scrutation ou par événements. | |
Buzzer | Accès au buzzer (déclenchement, arrêt, génération d'une notes ou d'une fréquences, réglage du volume) | |
Color | Représente une couleur en rouge, vert et bleu. | |
DcMotor | Accès à la sortie dédiée à la commande d'un moteur à courant continu 5V 200mA. | |
Display | Contrôle de l'afficheur couleur 1.8“ (128 px par 160 px) à ST7735R (Bus SPI) Adafruit. Texte, tracé de forme géométrique etc. Ressource documentaire : Les afficheurs graphiques | |
Expansion | Définition des entrées / sorties du connecteur d'extension. | |
Image | Représente une image. | |
Legacy | Permet d'accèder aux anciennes version de la carte. | |
LightBulb | Accès à la Led RVB haute luminosité. | |
LightSensor | Accès au capteur de luminosité (LDR). | |
Peripherals | Définitions des périphériques de la carte BrainPad. | |
ServoMotor | Accès à la sortie dédiée à la commande d'un servomoteur. | |
TemperatureSensor | Accès au capteur analogique de température MCP9701. | |
TrafficLight | Accès aux 3 Leds de la carte BrainPad. | |
Wait | Offre des méthodes de temporisation (en secondes ou millisecondes). |
Champs
Syntaxe | Description | |
---|---|---|
Looping | booléen toujours vrai |
Exemple
while(BrainPad.Looping){ // Code }
Méthodes
Syntaxe | Description | |
---|---|---|
void WriteDebugMessage(string message) | Affiche un message dans la fenêtre de sortie de l'éditeur Visual Studio (Community). | |
void WriteDebugMessage(int message) | ||
void WriteDebugMessage(double message) |
Exemple
WriteDebugMessage("Température=" + temp.ToString());
Méthodes
Syntaxe | Description | |
---|---|---|
double ReadX() | Lit l'accélération sur l'axe X. (-1 à 1) | |
double ReadY() | Lit l'accélération sur l'axe y. (-1 à 1) | |
double ReadZ() | Lit l'accélération sur l'axe z. (-1 à 1) |
Exemple
using System.Threading; class Program { public void BrainPadSetup() { } public void BrainPadLoop() { BrainPad.Display.DrawText(0, 0, "X : " + BrainPad.Accelerometer.ReadX().ToString("F3"), BrainPad.Color.White); BrainPad.Display.DrawText(0, 10, "Y : " + BrainPad.Accelerometer.ReadY().ToString("F3"), BrainPad.Color.White); BrainPad.Display.DrawText(0, 20, "Z : " + BrainPad.Accelerometer.ReadZ().ToString("F3"), BrainPad.Color.White); Thread.Sleep(100); } } }
Méthodes
Syntaxe | Description | |
---|---|---|
bool IsDownPressed() | Renvoie la valeur vrai si le bouton Down a été pressé. | |
bool IsLeftPressed() | Renvoie la valeur vrai si le bouton Left a été pressé. | |
bool IsPressed() | Renvoie la valeur vrai si un des quatre boutons a été pressé. | |
bool IsRightPressed() | Renvoie la valeur vrai si le bouton Right a été pressé. | |
bool IsUpPressed() | Renvoie la valeur vrai si le bouton Up a été pressé. |
Exemple 1 : scrutation du clavier
class Program { int increment; public void BrainPadSetup() { increment = 0; } public void BrainPadLoop() { if (BrainPad.Button.IsUpPressed()) { increment = 100; } if (BrainPad.Button.IsDownPressed()) { increment = -100; } .... } }
Evènements
Syntaxe | Description | |
---|---|---|
ButtonChanged | Un événement est déclenché quand l'état d'un bouton change. | |
ButtonPressed | Un événement est déclenché quand l'état d'un bouton est appuyé. | |
ButtonReleased | Un événement est déclenché quand l'état d'un bouton est relâché. |
Enumérations
Syntaxe | Description | |
---|---|---|
DPad | Prend les valeurs : Up, Down, Left, Right | |
State | Prend les valeurs : Pressed, NotPressed |
Exemple 2 : les boutons génèrent des interruptions
class Program { public void BrainPadSetup() { BrainPad.Button.ButtonChanged += Button_ButtonChanged; } void Button_ButtonChanged(BrainPad.Button.DPad button, BrainPad.Button.State state) { if (button == BrainPad.Button.DPad.Down) { if (state == BrainPad.Button.State.Pressed) { BrainPad.TrafficLight.TurnGreenLightOn(); } else { BrainPad.TrafficLight.TurnGreenLightOff(); } } } public void BrainPadLoop() { // Declared but not used } }
Délégué
Syntaxe | Description | |
---|---|---|
void ButtonEventHandler(DPad button, State state) |
Méthodes
Syntaxe | Description | |
---|---|---|
void PlayFrequency(int Frequency) | Joue une fréquence. | |
void PlayNote(Note note) | Joue une note. | |
void SetVolume(Volume volume) | Règle le volume. | |
void Stop() | Coupe le son. |
Enumérations
Syntaxe | Description | |
---|---|---|
Note | A = 880 Hz, ASharp = 932 Hz, B = 988 Hz, C = 1047 Hz, CSharp = 1109 Hz, D = 1175 Hz, DSharp = 1244 Hz, E = 1319 Hz, F = 1397 Hz, FSharp = 1480 Hz, G = 1568 Hz, GSharp = 1661 Hz | |
Volume | Loud : volume par défaut, Quiet : plus faible |
Exemple 1
class Program { int frequency, increment; public void BrainPadSetup() { frequency = 0; increment = 0; } public void BrainPadLoop() { if (BrainPad.Button.IsUpPressed()) { increment = 100; } if (BrainPad.Button.IsDownPressed()) { increment = -100; } if (increment != 0) { frequency = frequency + increment; increment = 0; BrainPad.Buzzer.PlayFrequency(frequency); BrainPad.WriteDebugMessage(frequency); BrainPad.Wait.Seconds(0.2); BrainPad.Buzzer.Stop(); } } }
Exemple 2
using System.Threading; class Program { const int NoteC = 261; const int NoteD = 294; const int NoteE = 330; const int NoteF = 349; const int NoteG = 391; const int Whole = 1000; const int Half = Whole / 2; const int QuarterDot = Whole / 3; const int Quarter = Whole / 4; const int Eighth = Whole / 8; int[] note = { NoteE, NoteE, NoteF, NoteG, NoteG, NoteF, NoteE, NoteD, NoteC, NoteC, NoteD, NoteE, NoteE, NoteD, NoteE, NoteD, NoteC, NoteC, NoteD, NoteE, NoteD, NoteC, NoteC }; int[] duration = { Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, QuarterDot, Eighth, Half, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, Quarter, QuarterDot, Eighth,Whole }; public void BrainPadSetup() { } public void BrainPadLoop() { for (int i = 0; i < note.Length; i++) { BrainPad.Buzzer.Stop(); BrainPad.Buzzer.PlayFrequency(note[i]); Thread.Sleep(duration[i]); } Thread.Sleep(100); } }
Constructeur
Syntaxe | Description | |
---|---|---|
Color() | Construit une nouvelle instance de la classe couleur. | |
Color(byte red, byte green, byte blue) | Construit une nouvelle instance de la classe couleur en précisant le niveau de rouge, de vert et de bleu. |
Propriétés
Syntaxe | Description | |
---|---|---|
As565 | Précise la couleur au format 565. | |
B | Niveau de bleu sur un octet. | |
G | Niveau de vert sur un octet. | |
R | Niveau de rouge sur un octet. |
Champs
Syntaxe | Description | |
---|---|---|
Black | Couleur prédéfinie. (Color) | |
Blue | Couleur prédéfinie. (Color) | |
Cyan | Couleur prédéfinie. (Color) | |
Green | Couleur prédéfinie. (Color) | |
Magenta | Couleur prédéfinie. (Color) | |
Red | Couleur prédéfinie. (Color) | |
White | Couleur prédéfinie. (Color) | |
Yellow | Couleur prédéfinie. (Color) |
Méthodes
Syntaxe | Description | |
---|---|---|
void SetSpeed(double speed) | Règle la fréquence de rotation du moteur (0 à 1) | |
void Stop() | Arrête le moteur. |
Ressource documentaire : Les afficheurs graphiques
Méthodes
Syntaxe | Description | |
---|---|---|
void Clear() | Efface l'écran. | |
void DrawCircle(int x, int y, int r, Color color) | Dessine un cercle de rayon r à la position (x,y) dans la couleur color. | |
void DrawExtraLargeLetter(int x, int y, char letter, Color color) | Ecrit une lettre letter de très grande taille à la position (x,y) dans la couleur color. | |
void DrawExtraLargeNumber(int x, int y, double nb, Color color) | Ecrit un nombre nb de très grande taille à la position (x,y) dans la couleur color. Surchargée : long nb | |
void DrawExtraLargeText(int x, int y, string text, Color color) | Ecrit un texte text de très grande taille à la position (x,y) dans la couleur color. | |
void DrawFilledRectangle(int x, int y, int width, int height, Color color) | Dessine un rectangle plein (width par height) à la position (x,y) dans la couleur color. | |
void DrawImage(byte[] data) | Dessine une image décrite par un tableau d'octets data. Surchargée : int x, int y, Image image | |
void DrawLargeLetter(int x, int y, char letter, Color color) | Ecrit une lettre de grande taille à la position (x,y) dans la couleur color. | |
void DrawLargeNumber(int x, int y, double nb, Color color) | Ecrit un nombre de grande taille à la position (x,y) dans la couleur color. Surchargée : long nb | |
void DrawLargeText(int x, int y, string text, Color color) | Ecrit un texte de grande taille à la position (x,y) dans la couleur color. | |
void DrawLetter(int x, int y, char letter, Color color) | Ecrit une lettre à la position (x,y) dans la couleur color. | |
void DrawLine(int x0, int y0, int x1, int y1, Color color) | Dessine une ligne entre les points de coordonnées (x0,y0) et (x1,y1) dans la couleur color. | |
void DrawNumber(int x, int y, double nb, Color color) | Ecrit un nombre à la position (x,y) dans la couleur color. Surchargée : long nb | |
void DrawRectangle(int x, int y, int width, int height, Color color) | Dessine un rectangle (width par height) à la position (x,y) dans la couleur color. | |
void DrawText(int x, int y, string text, Color color) | Ecrit un texte à la position (x,y) dans la couleur color. | |
void SetPixel(int x, int y, Color color) | Dessine un point à la position (x,y) dans la couleur color. | |
void TurnOff() | Eteint le rétroéclairage. | |
void TurnOn() | Active le rétroéclairage. |
Classes imbriquées
Nom | Champs | |
---|---|---|
AnalogInput | PA2, PA3, PA6, PA7, PC3 | |
Gpio | PA10,PA2, PA3, PA6, PA7, PA9, PB3, PB4, PB5, PC3 | |
PwmOutput | PA10,PA2, PA3, PA9 |
Propriétés
Syntaxe | Description | |
---|---|---|
Height | Hauteur de l'image (int) | |
Pixels | Tableau de pixels (byte[]) | |
Width | argeur de l'image (int) |
Constructeur
Syntaxe | Description | |
---|---|---|
Image(int width, int height) | Construit une image width par height. |
Méthodes
Syntaxe | Description | |
---|---|---|
void SetPixel(int x, int y, Color color) | Fixe le pixel en (x,y) à la couleur color. |
Classes imbriquées
Nom | Champs | |
---|---|---|
AnalogInput | E1, E10, E, E2, E3, E9 | |
Gpio | E1, E10, E11, E12, E2, E3, E4, E5, E6, E9 | |
PwmOutput | E10, E11, E12, E9 |
Méthodes
Syntaxe | Description | |
---|---|---|
void SetColor(Color color) | Fixe la couleur color de la led haute luminosité. Surchargée : double R, double G, double B | |
void TurnOff() | Désactive la Led. | |
void TurnOn() | Active la Led. |
Méthodes
Syntaxe | Description | |
---|---|---|
double ReadLightLevel() | Lit la luminosité ambiante (0 à 1). |
Exemple
class Program { double level; public void BrainPadSetup() { level = 0; } public void BrainPadLoop() { level = BrainPad.LightSensor.ReadLightLevel(); BrainPad.WriteDebugMessage(level); if (level<0.5) { BrainPad.LightBulb.TurnOn(); } else { BrainPad.LightBulb.TurnOff(); } } }
Champs
Syntaxe | Description | |
---|---|---|
Buzzer | Sortie PWM pour la commande du buzzer. | |
BuzzerVolumeController | Sortie PWM pour la commande du volume du buzzer. | |
DcMotor | Sortie PWM pour la commande d'un moteur à CC (5V - 200mA max). | |
LightSensor | Lecture du capteur de luminosité (Entrée analogique). | |
ServoMotorGras | Sortie PWM pour la commande d'un servomoteur. | |
TemperatureSensor | Lecture du capteur de température (entrée analogique). |
Classes imbriquées
Nom | Champs | |
---|---|---|
Button | Down, Left, Right, Up | |
DisplayGras | BackLight, ChipSelect, Control, Reset, SpiModule | |
LightBulb | Blue, Red | |
TouchPad | Left, Middle, Right | |
TrafficLight | Green, Red, Yellow |
Méthodes
Syntaxe | Description | |
---|---|---|
void SetPosition(int position) | Règle la position angulaire d'un servomoteur. | |
void Start() | Active le signal de commande du servomoteur. | |
void Stop() | Désactive le signal de commande du servomoteur. |
Méthodes
Syntaxe | Description | |
---|---|---|
double ReadTemperature() | Lit la valeur de température. |
Exemple
using System.Threading; class Program { public void BrainPadSetup() { } public void BrainPadLoop() { double tempC = BrainPad.TemperatureSensor.ReadTemperature(); BrainPad.Display.DrawText(0, 10, "Temperature : " + tempC.ToString("F2"), BrainPad.Color.White); Thread.Sleep(200); } }
Méthodes
Syntaxe | Description | |
---|---|---|
void TurnColorOff(Color color) | Désactive la led color. | |
void TurnColorOn(Color color) | Active la led color. | |
void TurnGreenLightOff() | Désactive la led verte. | |
void TurnGreenLightOn() | Active la led verte. | |
void TurnOffAllLight() | Désactive toutes les leds. | |
void TurnRedLightOff() | Désactive la led rouge. | |
void TurnRedLightOn() | Active la led rouge. | |
void TurnYellowLightOff() | Désactive la led jaune. | |
void TurnYellowLightOn() | Active la led jaune. |
Exemple
while (true) { BrainPad.TrafficLight.TurnGreenLightOn(); BrainPad.Wait.Seconds(0.4); BrainPad.TrafficLight.TurnGreenLightOff(); BrainPad.Wait.Seconds(0.4); }
Méthodes
Syntaxe | Description | |
---|---|---|
void Milliseconds(double milliseconds) | Déclenche une temporisation exprimée en millisecondes. | |
void Seconds(double seconds) | Déclenche une temporisation exprimée en secondes. |
Exemple
while (true) { BrainPad.TrafficLight.TurnGreenLightOn(); BrainPad.Wait.Seconds(0.4); BrainPad.TrafficLight.TurnGreenLightOff(); BrainPad.Wait.Seconds(0.4); }
Le connecteur mikroBUS permet d'étendre les fonctionnalités de la carte BrainPad (GPIO, I2C, SPI, UART).
Voir la page CH5c. Exemples codés en C# pour la carte BrainPad v1.