Public Class Form1
'Corp de la fenêtre, ici nous avons la TextBox1 avec fond rouge et couleur du texte Blanc.
'on centre le texte par default, et nous définissons le port "Fermé" à l'ouverture du programme.
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Text1.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Text1.BackColor = Color.Red
Text1.ForeColor = Color.White
Text1.TextAlign = HorizontalAlignment.Center
Text1.Text = "Port Fermé"
SerialPort1.Close()
SerialPort2.Close()
End Sub
'On crée un bouton de connexion sur le port série.
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Connect.Click
Text1.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
'Si le port est ouvert on crée un Scénario:
With SerialPort1
If .PortName = "COM4" Then
.BaudRate = 9600
.DataBits = 8
.Parity = IO.Ports.Parity.None
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
Text1.TextAlign = HorizontalAlignment.Center
Text1.ForeColor = Color.White
Text1.Text = "Port Ouvert"
Text1.BackColor = Color.Green
Else
Text1.BackColor = Color.Green
End If
'Configuration du port
End With
With SerialPort1
.PortName = "COM4"
.BaudRate = 9600
.DataBits = 8
.Parity = IO.Ports.Parity.None
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
End With
Try
'Ouverture du Port.
SerialPort1.Open()
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
'Bouton On Pour allumer les LED.
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btOn.Click
SerialPort1.Write("1")
SerialPort1.Write("2")
btOn.ForeColor = Color.Green
btOff.ForeColor = Color.Black
End Sub
'Bouton Off Eteindre les LED
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btOff.Click
SerialPort1.Write("0")
SerialPort1.Write("1")
btOff.ForeColor = Color.Red
btOn.ForeColor = Color.Black
End Sub
'Deconnexion du Port Serie
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Disconnect.Click
Text1.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
With SerialPort2
If .PortName = "COM4" Then
.BaudRate = 9600
.DataBits = 8
.Parity = IO.Ports.Parity.None
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
Text1.TextAlign = HorizontalAlignment.Center
Text1.ForeColor = Color.White
Text1.Text = "Port Fermé"
Text1.BackColor = Color.Red
btOff.ForeColor = Color.Black
btOn.ForeColor = Color.Black
Else
Text1.BackColor = Color.Red
btOff.ForeColor = Color.Black
End If
End With
Try
'Fermeture Du port Serie.
SerialPort1.Close()
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
Private Sub Text1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Text1.TextChanged
With SerialPort1
If .PortName = "COM4" Then
.BaudRate = 9600
.DataBits = 8
.Parity = IO.Ports.Parity.None
.StopBits = IO.Ports.StopBits.One
.Handshake = IO.Ports.Handshake.None
Text1.Text = "Port Ouvert"
Text1.TextAlign = HorizontalAlignment.Center
Text1.ForeColor = Color.White
Text1.BackColor = Color.Green
Else
Text1.BackColor = Color.Red
End If
End With
End Sub
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End Sub
Private Sub Label2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label2.Click
End Sub
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Orange.Click
Orange.BackColor = Color.Orange
End Sub
Private Sub Button2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bleu.Click
End Sub
Private Sub Vert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Vert.Click
End Sub
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
End Sub
Private Sub validez_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles validez.Click
End Sub
End Class
#include <LiquidCrystal.h> //ajout de la library LCD
LiquidCrystal lcd(12,11,4,5,6,7); //liaison 4 bits de données
int LED = 13;
int LED1 = 8;
int LED2 = 9;
int LED3 = 10;
int ledR1 = 2;
int ledR2 = 3;
int Afficheur = A1;
String pseudo = "Lilo"; //pseudo joueur.
int score = 500; //score de début partie.
int restart = 500; // score relance partie.
// Fonction setup(), appelée au démarrage de la carte Arduino
void setup()
{
// Initialise la communication avec le PC
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print("***LASER GAME***");
lcd.setCursor(0,1);
lcd.print("****EVOLUTION***");
delay(4000);
lcd.clear();
lcd.setCursor(3,0);
lcd.print(pseudo);
lcd.setCursor(5,1);
lcd.print(score);
pinMode(LED,OUTPUT); //on définie le pin de sortie "LED" pin 13 du Arduino
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(ledR1,OUTPUT);
pinMode(ledR2,OUTPUT);
pinMode(Afficheur,OUTPUT);
}
// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée
void loop()
{
// Mesure la tension sur la broche A0
int cibleAtteinte = analogRead(A0);
int LEDr1 = Serial.available();
int LEDr2 = Serial.available();
Serial.println(LEDr1);
Serial.println(LEDr2);
if (LEDr1)
{
int LEDr1 = Serial.read() - 48;
if (LEDr1 == 1)
{
digitalWrite(ledR1,HIGH);
}
if (LEDr1 == 0)
{
digitalWrite(ledR1,LOW);
}
}
if (LEDr2)
{
int LEDr2 = Serial.read() - 49;
if (LEDr2 == 1)
{
digitalWrite(ledR2,HIGH);
}
if (LEDr2 == 0)
{
digitalWrite(ledR2,LOW);
}
}
// Envoi la mesure au PC pour affichage
Serial.println(cibleAtteinte); //envoi la valeur comprise entre 0 et 1023 pour l'afficher au pc.
if(cibleAtteinte>900) // si la cible à été touchée ont décrémente le score sur l'afficheur.
{
score -= 500;
lcd.clear();
lcd.setCursor(0,0);
lcd.print(pseudo);
lcd.setCursor(5,1);
lcd.print(score);
if(score <= 0) //signale la fin de partie.
{
lcd.clear();
lcd.setCursor(3,0);
lcd.print("GAME OVER");
digitalWrite(ledR1,HIGH);
digitalWrite(ledR2,HIGH);
digitalWrite(LED,HIGH);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
delay(500);
digitalWrite(LED,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED,HIGH);
delay(100);
digitalWrite(LED,LOW);
digitalWrite(LED1,HIGH);
delay(100);
digitalWrite(LED1,LOW);
digitalWrite(LED2,HIGH);
delay(100);
digitalWrite(LED2,LOW);
digitalWrite(LED3,HIGH);
delay(100);
digitalWrite(LED3,LOW);
delay(500);
digitalWrite(LED,HIGH);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
delay(15000);
digitalWrite(ledR1,LOW);
digitalWrite(ledR2,LOW);
digitalWrite(LED,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
delay(250);
lcd.setCursor(0,0);
lcd.print("***LASER GAME***");
lcd.setCursor(0,1);
lcd.print("****EVOLUTION***");
delay(6000);
lcd.clear();
delay(250);
lcd.setCursor(3,0);
lcd.print(pseudo);
lcd.setCursor(5,1);
lcd.print(restart);
}
else
{
clignote(500,3000); // clignote avec 0.5s d'interval pendant 3s
clignote(100,3000); // clignote avec 0.1s d'interval pendant 10s
clignote(100,4000);
}
}
}
// un appel à cette fonction fera clignoter la led pendant "temps" temps (en millisecondes)
// l'interval de temps entre la diode allumée et éteinte est spécifié par "interval" (en millisecondes)
void clignote(unsigned int interval, unsigned int temps)
{
unsigned long debut_clignotement = millis(); // le temps (en ms) auquel on commence à clignoter
while(millis() - debut_clignotement < temps) // tant que le temps spécifié en paramètre ne s'est pas écoulé, on clignote à la vitesse spécifiée en paramètre
{
digitalWrite(LED,HIGH);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
delay(interval);
digitalWrite(LED,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED,HIGH);
delay(100);
digitalWrite(LED,LOW);
digitalWrite(LED1,HIGH);
delay(100);
digitalWrite(LED1,LOW);
digitalWrite(LED2,HIGH);
delay(100);
digitalWrite(LED2,LOW);
digitalWrite(LED3,HIGH);
delay(100);
digitalWrite(LED3,LOW);
delay(interval);
}
}
SerialPort1.Write("0")
SerialPort1.Write(monTextBox.Text)
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Connect.Click Text1.Font = New System.Drawing.Font("Microsoft Sans Serif", 10.0!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))'ça tu l'as déjà fait dans le Load, pourquoi le refaire ici? 'Si le port est ouvert on crée un Scénario: 'Non, tu ne regardes pas s'il est ouvert, mais s'il a un nom With SerialPort1 If .PortName = "COM4" Then .BaudRate = 9600'ça tu lui redis en dessous même s'il n'a pas de nom .DataBits = 8'ça aussi .Parity = IO.Ports.Parity.None'ça aussi .StopBits = IO.Ports.StopBits.One'ça aussi .Handshake = IO.Ports.Handshake.None'ça aussi, reconfigurer sans cesse le port risque plus de couper les connexions et créer des bug qu'autre chose. Cette conf doit être faite une fois pour toute dans un bouton dédié par exemple, ou dans le load. Text1.TextAlign = HorizontalAlignment.Center Text1.ForeColor = Color.White Text1.Text = "Port Ouvert" Text1.BackColor = Color.Green 'et surtout,bien que tu crois que le port est ouvert, ensuite tu vas essayer de l'ouvrir à nouveau Else Text1.BackColor = Color.Green End If 'Configuration du port End With With SerialPort1 .PortName = "COM4" .BaudRate = 9600 .DataBits = 8 .Parity = IO.Ports.Parity.None .StopBits = IO.Ports.StopBits.One .Handshake = IO.Ports.Handshake.None End With Try 'Ouverture du Port.'là tu essayes d'ouvrir le port, même si plus haut tu croyais qu'il l'était déjà, et quoiqu'il en soit, il a un nom SerialPort1.Open() Catch ex As Exception 'si tu arrives là, le port n'est pas ouvert, mais il a un nom MessageBox.Show(ex.ToString) End Try End Sub
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questioncôté arduino je réceptionne des chiffres !
int LEDr1 = Serial.read() - 48;
SerialPort.Write ("pseudo)
string pseudo = Serial.available();
Pseudo = Serial.read ();
Serial.println(pseudo);
Modifié par vb95 le 26/11/2016 à 18:32
Essuies ta boule de cristal !
Ce ne serait pas plutôt une parenthèse fermée qui manque
Je ne vois pas le rôle d"un point-virgule en VB Net
Bon weekend à toi
26 nov. 2016 à 19:07