Archive

Archive for the ‘PIC’ Category

Barrette écologique – suivi 2

27 août 2010 Commentaires fermés

Nous voici donc dans la partie hardware. Le logiciel va continuer son évolution, mais dans des fonctions plus fines et des ajustements. Il s’agit donc de mettre le prototype sous forme de prints à réaliser, et de câblage à définir.

barette_prises_2
Prototype barrette

Un grand merci à Maurice Wulliens qui s’attelle à la réalisation des prints! Après discussion, nous avons décidé d’organiser le montage en minimisant les composants dans le boîtier de commande, lequel contiendra:

  • Le module WEB Modtronic SBC65EC
  • Une alimentation 230 VAC – 9VDC
  • l’horloge temps réel
  • les entrés de commutateurs
  • les pilotages de LEDs
  • les pilotage des triacs

Ces 3 derniers iront sur des connecteurs et seront reliés par câbles plats.

L’intégration dans une barrette du commerce, suffisamment démontable est prévue pour:

  • 2 à 3 prints pour le puissance, avec triacs et optos
  • 1 print de mesure du courant
  • les boutons poussoirs
  • les LEDs

Donc pas mal de choses à intégrer à la barrette. Le modèle retenu est vendu par la Migro. C’est un assemblage dans un rail en plastique, comportant un bouton d’allumage et 6 prises. les extrémités du profil sont fermées par deux flasques, facilement usinables pour nos besoins. En voici un aperçu:

barrette Migro avant démontage

Barrette Migro couvercle ouvert

couvercle ouvert

L’idée est donc de mettre des prints avec les triacs dans la barrette, de manière à diminuer la taille du module de commande, et aussi à ne pas y introduire de puissance. Suite au prochain épisode!

Catégories :Ecologie, hardware, PIC

Techniques de découpage de tâches

13 août 2010 Commentaires fermés

Techniques de découpage de tâches.
Ou : comment faire fonctionner un système plutôt spartiate comme si il était doté d’un véritable OS?
Comme j’ai inséré des images directement dans le texte, et qu’il y a aussi des tableaux, voir le PDF sur mon site
ici.

Commentaires bienvenus!

Horloge et table de commutation

6 mars 2010 Commentaires fermés

Dans l’implémentation du code nécessaire au projet « barrette écologique », j’ai quelque peu séché sur le problème du suivi de la table de commutation. Celle-ci contient des données non-triée de temps, de jour(s) de la semaine et de la commutation à appliquer.

Comment trouver à coup sûr la dernière commutation et la prochaine à venir? Une fonction de différence de temps est nécessaire et rend un delta:

delta = ((int) prtc_line->hour - (int) DB_SystemClock.Time.hh) * 60 +
(int) prtc_line->minute - (int) DB_SystemClock.Time.mm;

Petit piège en langage C, les bytes à transformer en int, sinon-> écrêtage à 255. Ensuite, nous parcourons régulièrement toutes les lignes du tableau de commutation.  Ainsi la valeur obsolète sera mise à jour. Celle-ci sera remplacée au fil des scan, si une ligne plus proche existe dans la table, parcourue de 0 à n.

Pour résoudre ce problème, je me suis contenté d’une fonction qui ne traite que 24 heures, laissant à plus tard son complément pour traiter des semaines. Le tableau ci-dessous montre la simplicité du raisonnement pour 24H:

  • Le plus grand delta négatif est celui de la dernière commutation à 11h – l2;
  • Le plus petit delta positif, la prochaine commutation 13h – l3.

Sur une semaine, ça ne fonctionne plus! En effet, admettons que nous sommes lundi (jour=1) et que les commutations sont seulement sur dimanche, jour=7? En admettant que notre fonction « delta » ajoute 24*60 par jour, il apparaît que la prochaine commutation est la première de dimanche, et la commutation en cours est la dernière de dimanche!! Tous des nombres positifs!! Notre fonction va donc trouver

  • Le plus grand delta (mais pas négatif) sera celui de la dernière commutation à 14h – l4;
  • Le plus petit delta positif, la prochaine commutation 10h – l1.

Faut-il une logique « intraday », travaillant avec +/- et une autre pour les jours à distance?

Commutation

l1

l2

time

l3

l4

heure

10h00

11h00

’12:10

13h00

14h00

Delta

-130

-70

delta

+50

+110

Delta corrigé 1 semaine

+9950

+10010

+50

+110

La solution est la suivante: lors de la recherche et comparaison, pour éviter les problèmes des jours répartis sur une semaine, on ajoute une correction de 7 jours * 24 heures * 60 minutes au temps de commutation de la ligne lue s’il est inférieur a 0. ce calcul tient compte du fait que les écarts sont cycliques sur une semaine de 7 jours. De ce fait, le test de comparaison de temps se fait toujours sur des nombres strictement positifs, et fonctionne pour le jour courant et … les autres de la semaine.

Grâce à Code::Blocks, j’ai pu tester et valider mes fonctions efficacement, car modifier + charger le binaire dans le module PIC est bien long… voir: https://microclub.wordpress.com/2009/11/23/barrette-ecologique-suivi

Yves Masur

Wireshark opérationnel sous W7

18 novembre 2009 Commentaires fermés

Wireshark 1.2.4 (stable) has been released – ça fait plaisir! Enfin on peut utiliser cet analyseur de réseau sous Windows 7. Et il s’installe sans coup férir (32 bits – je n’ai plus la 64 bits…)

En effet, pour le projet « Barrette écologique »,  j’avais besoin de sniffer ce qui se passe entre le module MXBOARD. Jusqu’ici, je devais passer par le débugger et voir ainsi les trames reçues/envoyées, via ligne série!

Le but est de trouver une requête régulière que ferait un PC, pour lancer un timer de prolongation de durée de l’enclenchement du secteur.

//Yves