Téléchargé 10 fois
						
					
					
						Vote des utilisateurs
					
					
	 0
0  0
0 
						Détails
					
					Licence : Non renseignée
						Mise en ligne le 27 février 2023
												
																										Plate-formes : 
								Linux, Mac, Windows							
												
													Langue : Français
						
					
							Référencé dans
						
						
										
					
						Navigation
					
					
				
						
															
									 Traiter des commandes envoyées depuis le Moniteur série
								
							
							
								Traiter des commandes envoyées depuis le Moniteur série							
						 
					
					
								Traiter des commandes envoyées depuis le Moniteur série							
						Ce petit projet consiste, à titre de démonstration, à montrer comment traiter des commandes avec des paramètres envoyées depuis un Moniteur série (ou tout autre terminal série).
Ici, on prend comme prétexte une Led RVB (à cathodes communes) qui va clignoter selon la couleur et la luminosité saisies dans le moniteur Série.
Exemples de commandes (délimiteur = [espace]):
rgb 1 0 0 --> allume la Led en rouge
rgb 0 1 0 --> allume la Led en vert
rgb 0 0 1 --> allume la Led en bleu
rgb 1 0 1 --> allume la Led en rouge + bleu = magenta
rgb 1 1 0 --> allume la Led en rouge + vert = jaune
rgb 1 1 1 --> allume la Led en rouge + vert + bleu = blanc
rgb 1 1 0 50 --> allume la Led en rouge + vert = jaune, mise à jour luminosité = 50%
une commande help supplémentaire donne le mode d'emploi de la commande.
Dans le sketch, on trouve :
- une classe LedRGB de gestion de la Led ;
- une fonction serialEvent() qui récupère le message saisi dans le Terminal série (Entrée pour fin du message) ;
- une fonction parseMessage() qui traite le message, sépare la commande et les paramètres, et modifie l'état de la Led en conséquence.
					
											
										
					
					
							Ici, on prend comme prétexte une Led RVB (à cathodes communes) qui va clignoter selon la couleur et la luminosité saisies dans le moniteur Série.
Exemples de commandes (délimiteur = [espace]):
rgb 1 0 0 --> allume la Led en rouge
rgb 0 1 0 --> allume la Led en vert
rgb 0 0 1 --> allume la Led en bleu
rgb 1 0 1 --> allume la Led en rouge + bleu = magenta
rgb 1 1 0 --> allume la Led en rouge + vert = jaune
rgb 1 1 1 --> allume la Led en rouge + vert + bleu = blanc
rgb 1 1 0 50 --> allume la Led en rouge + vert = jaune, mise à jour luminosité = 50%
une commande help supplémentaire donne le mode d'emploi de la commande.
Dans le sketch, on trouve :
- une classe LedRGB de gestion de la Led ;
- une fonction serialEvent() qui récupère le message saisi dans le Terminal série (Entrée pour fin du message) ;
- une fonction parseMessage() qui traite le message, sépare la commande et les paramètres, et modifie l'état de la Led en conséquence.
Bonjour, 
Je vous propose un nouvel élément à utiliser : Traiter des commandes envoyées depuis le Moniteur série
Ce petit projet consiste, à titre de démonstration, à montrer comment traiter des commandes avec des paramètres envoyées depuis un Moniteur série (ou tout autre terminal série).
Ici, on prend comme prétexte une Led RVB (à cathodes communes) qui va clignoter selon la couleur et la luminosité saisies dans le moniteur Série.
Exemples de commandes (délimiteur = [espace]):
rgb 1 0 0 --> allume la Led en rouge
rgb 0 1 0 --> allume la Led en vert
rgb 0 0 1 --> allume la Led en bleu
rgb 1 0 1 --> allume la Led en rouge + bleu = magenta
rgb 1 1 0 --> allume la Led en rouge + vert = jaune
rgb 1 1 1 --> allume la Led en rouge + vert + bleu = blanc
rgb 1 1 0 50 --> allume la Led en rouge + vert = jaune, mise à jour luminosité = 50%
une commande help supplémentaire donne le mode d'emploi de la commande.
Dans le sketch, on trouve :
- une classe LedRGB de gestion de la Led ;
- une fonction serialEvent() qui récupère le message saisi dans le Terminal série (Entrée pour fin du message) ;
- une fonction parseMessage() qui traite le message, sépare la commande et les paramètres, et modifie l'état de la Led en conséquence.
Qu'en pensez-vous ?
					Je vous propose un nouvel élément à utiliser : Traiter des commandes envoyées depuis le Moniteur série
Ce petit projet consiste, à titre de démonstration, à montrer comment traiter des commandes avec des paramètres envoyées depuis un Moniteur série (ou tout autre terminal série).
Ici, on prend comme prétexte une Led RVB (à cathodes communes) qui va clignoter selon la couleur et la luminosité saisies dans le moniteur Série.
Exemples de commandes (délimiteur = [espace]):
rgb 1 0 0 --> allume la Led en rouge
rgb 0 1 0 --> allume la Led en vert
rgb 0 0 1 --> allume la Led en bleu
rgb 1 0 1 --> allume la Led en rouge + bleu = magenta
rgb 1 1 0 --> allume la Led en rouge + vert = jaune
rgb 1 1 1 --> allume la Led en rouge + vert + bleu = blanc
rgb 1 1 0 50 --> allume la Led en rouge + vert = jaune, mise à jour luminosité = 50%
une commande help supplémentaire donne le mode d'emploi de la commande.
Dans le sketch, on trouve :
- une classe LedRGB de gestion de la Led ;
- une fonction serialEvent() qui récupère le message saisi dans le Terminal série (Entrée pour fin du message) ;
- une fonction parseMessage() qui traite le message, sépare la commande et les paramètres, et modifie l'état de la Led en conséquence.
Qu'en pensez-vous ?
sympa ! 
(vous avez complexifié un peu l'objet premier du tuto en rajoutant une classe et des petits hacks sur les couleurs ce qui peut dérouter )
					(vous avez complexifié un peu l'objet premier du tuto en rajoutant une classe et des petits hacks sur les couleurs ce qui peut dérouter )
Bonjour f-leb
Attention, serialEvent() utilisé ainsi, en "automatique", donc sans appel à la fonction, ne fonctionne pas sur tout les Arduino.
Je trouve ça terrrrrriblement compliqué!
Cordialement
jpbbricole
					Attention, serialEvent() utilisé ainsi, en "automatique", donc sans appel à la fonction, ne fonctionne pas sur tout les Arduino.
Je trouve ça terrrrrriblement compliqué!
Cordialement
jpbbricole
Hello,
Ah oui, cela m'avait échappé, merci
La complexité vient déjà du fait que je ne suis pas passé par la fameuse classe String pour les traitements sur les chaînes de caractères. Et c'est tout à fait volontaire, tu sais déjà que cette classe abuse des allocations dynamiques qui fragmentent le tas. Il reste à se documenter sur strtok() et strtol(), c'est moins convivial mais ça ne peut pas être si terrrrriblement compliqué si j'ai moi-même réussi à les exploiter
Après, si tu as une version "plus simple", tu peux la poster ici pour comparaison. Si je trouve un moment, j'essaierai aussi d'écrire une version exploitant la classe String.
					Ah oui, cela m'avait échappé, merci

La complexité vient déjà du fait que je ne suis pas passé par la fameuse classe String pour les traitements sur les chaînes de caractères. Et c'est tout à fait volontaire, tu sais déjà que cette classe abuse des allocations dynamiques qui fragmentent le tas. Il reste à se documenter sur strtok() et strtol(), c'est moins convivial mais ça ne peut pas être si terrrrriblement compliqué si j'ai moi-même réussi à les exploiter

Après, si tu as une version "plus simple", tu peux la poster ici pour comparaison. Si je trouve un moment, j'essaierai aussi d'écrire une version exploitant la classe String.
Developpez.com décline toute responsabilité quant à l'utilisation des différents éléments téléchargés.
		
	

 
				 
			 
			 
																	 Envoyé par f-leb
 Envoyé par f-leb
					
