Bienvenue aux nouveaux arrivants sur FantasPic !
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
- Pensez à lire les règles durant votre visite, il n'y en a pas beaucoup, mais encore faut-il les respecter .
- N’hésitez pas à faire des remarques et/ou suggestions sur le Forum, dans le but de l'améliorer et de rendre vos prochaines visites plus agréables.
- Vous pouvez regarder votre "panneau de l'utilisateur" afin de configurer vos préférences.
- Un passage par "l'utilisation du forum" est recommandé pour connaître les fonctionnalités du forum.
--- L’équipe FantasPic ---
Sauvetage d'un vieux clavier matriciel
Bonjour Temps-x et le Forum.
Oui, ce clavier permet de piloter 4 relais par code à 4 chiffres, en mode Monostable, ou Bistable
Les codes et configurations sont bien sûr programmables directement depuis le clavier.
Des dispositions anti "sabotage" sont également prévues.
En son temps, il sera peut-être possible de détailler ici une réalisation complète.
Amicalement à tous.
Oui, ce clavier permet de piloter 4 relais par code à 4 chiffres, en mode Monostable, ou Bistable
Les codes et configurations sont bien sûr programmables directement depuis le clavier.
Des dispositions anti "sabotage" sont également prévues.
En son temps, il sera peut-être possible de détailler ici une réalisation complète.
Amicalement à tous.
Sauvetage d'un vieux clavier matriciel
Bonjour Babar64, et tout le forum,
Le choix du relais reste important si tu veux un mode monostable, ou bistable, le mieux est de prendre directement un relais bistable, le reste c'est le microcontrôleur qui le feras.
Il faudra un écran LCD ou un programme PC pour programmer les codes pour chaque relais, ce qui implique une protection pour le cas d'un programme PC d'un mot de passe, idem pour le LCD
1) Ça faut voir au moment de la programmation du Pic, pour quand ne puisse lire e contenu de l'eeprom,
2) si code raté au bout de 3 fois = temps d'attente qui se rallonge avant de pouvoir retaper un nouveau code
Oui, avant d'écrire un programme il faut réfléchir à tout cela, ton projet me fait pensée au coffre fort vendu pour 20 euros, est qui son fait a base de pic 16F84A voir ICI
A+
Babar64 a écrit :Source du message Oui, ce clavier permet de piloter 4 relais par code à 4 chiffres, en mode Monostable, ou Bistable
Le choix du relais reste important si tu veux un mode monostable, ou bistable, le mieux est de prendre directement un relais bistable, le reste c'est le microcontrôleur qui le feras.
Babar64 a écrit :Source du message Les codes et configurations sont bien sûr programmables directement depuis le clavier.
Il faudra un écran LCD ou un programme PC pour programmer les codes pour chaque relais, ce qui implique une protection pour le cas d'un programme PC d'un mot de passe, idem pour le LCD
Babar64 a écrit :Source du message Des dispositions anti "sabotage" sont également prévues.
1) Ça faut voir au moment de la programmation du Pic, pour quand ne puisse lire e contenu de l'eeprom,
2) si code raté au bout de 3 fois = temps d'attente qui se rallonge avant de pouvoir retaper un nouveau code
Babar64 a écrit :Source du message En son temps, il sera peut-être possible de détailler ici une réalisation complète.
Oui, avant d'écrire un programme il faut réfléchir à tout cela, ton projet me fait pensée au coffre fort vendu pour 20 euros, est qui son fait a base de pic 16F84A voir ICI
A+
Sauvetage d'un vieux clavier matriciel
Bonjour emps-X, bonjour le Forum,
Evidemment, et cette réflexion est terminée!
Le cahier des charges, un logigramme, et un simulateur en VBA "pour une première approche", sont finalisés, et validés.
L'excellente étude de faisabilité de paulfjujo a permis de valider également le schéma et PCB (sur 2 cartes double face, pour s'adapter facilement à tout type de clavier matriciel).
A partir d'un montage "labo", c'est maintenant au tour du code et de la programmation du PIC d'être finalisés.
Restera encore à assembler le tout pour un test "en vrai"!
A très vite, donc, avec une réalisation que j'espère intéressante ici (avec codes, photos et pourquoi pas les fichiers Gerber...)
Bonne journée à tous.
PS : désolé pour cette réponse un peu tardive, mais ce projet prends du temps...
Temps-x a écrit :(...) Oui, avant d'écrire un programme il faut réfléchir à tout cela (...)
Evidemment, et cette réflexion est terminée!
Le cahier des charges, un logigramme, et un simulateur en VBA "pour une première approche", sont finalisés, et validés.
L'excellente étude de faisabilité de paulfjujo a permis de valider également le schéma et PCB (sur 2 cartes double face, pour s'adapter facilement à tout type de clavier matriciel).
A partir d'un montage "labo", c'est maintenant au tour du code et de la programmation du PIC d'être finalisés.
Restera encore à assembler le tout pour un test "en vrai"!
A très vite, donc, avec une réalisation que j'espère intéressante ici (avec codes, photos et pourquoi pas les fichiers Gerber...)
Bonne journée à tous.
PS : désolé pour cette réponse un peu tardive, mais ce projet prends du temps...
Sauvetage d'un vieux clavier matriciel
- paulfjujo
Expert- Messages : 2828
- Âge : 74
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
cà avance doucement , mais surement ..
MAJ de ma page web :
avec quelques explicages concernant l'usage de ce 18F27K42 ..
une remarque :
le C utilise la base 0 pour les index de table
alors que VBA utilise 1 (ou specifiquement 0 ) ( simulateur clavier en excel)
gymnastique pour faire coincider les index ....
de plus le relais 1 est sur le Bit 1 de poids 2
le relais 2 sur le bit 2 de poids 4 ...
d'ou l' indexation de commande de relais via :
le codage étant vérifié préalablement (valeur numerique seulement 0 à 9 ) et codage verifié existant ,
AVANT d'envoyer une commande Action sur relais. Commande de type Toggle ou Monostable.
Nota : J'avais envisagé d'utilisé l' ASM ex: _asm btg LATB,1; // relais 1
ou _asm BSF LATB,1;
pour etre au plus pres du MCU ... like Temps_X fashion
L'usage des "IVT interruptions vectorisées" , possible avec ce MCU, conforte mon choix :
plus facile, plus clair ..qu'en mode "Legacy"
*ACHTUNG coté config Projet MikroC :
si on sauvegarde le fichier source avec un autre nom, dans le meme projet
"Interrupt mode" repasse en mode" Legacy" ..=> errors
malgré le fichier de config P18F27K42_Fosc_interne_with_PLL_64MHz_with_Vectored_IT.cfgsch
présent dans le directory du projet.
un autre un piege à ions :
concernant l'EEPROM , qui fait partie integrante de l'adressage de ce PIC
au niveau de MPLB IPE V5.30 utilisé conjointement avec le Pickit 4
( nota : Pickit3 pas vraiment compatible , meme si le MCU peut etre reconnu!)
il faut Préserver l'espace NVM (Non Volatile Memory) Eeprom de 0x310 000 à 0x310 03FF
sinon apres la compilation ,on telecharge le *.HEX en faisant d'abord une RAZ du contenu Programme et Eeprom.
J'ai utilisé l'index 0 de l'eeprom pour y mettre un flag =99 pour signaler si le programme Utilisateur
s'est servi de l'eeprom ou non .. afin d'y stocker le parametrage minimum dit "Usine "
ce qui n'empeche pas le probleme précité !
L'adressage Eeprom est sur 16 bits , et la donnéee EEprom sur 8bit !
on a donc que 512 bytes dispo en EEPROM
les fonction MikroC de la lib EEPROM : EEprom_Write , EEProm_Read semblent OK.
A+
cà avance doucement , mais surement ..
MAJ de ma page web :
avec quelques explicages concernant l'usage de ce 18F27K42 ..
une remarque :
le C utilise la base 0 pour les index de table
alors que VBA utilise 1 (ou specifiquement 0 ) ( simulateur clavier en excel)
gymnastique pour faire coincider les index ....
de plus le relais 1 est sur le Bit 1 de poids 2
le relais 2 sur le bit 2 de poids 4 ...
d'ou l' indexation de commande de relais via :
Code : Tout sélectionner
avec
const unsigned char Poids[]={1,2,4,8,16,32,64,128};
sbit Relais_1 at LATB.B1;
sbit Relais_2 at LATB.B2;
sbit Relais_3 at LATB.B3;
sbit Relais_4 at LATB.B4;
void Cde_Action_Relais()
{
int m;
CPrint(" decodage Cde en cours = ");
ByteToStr(CdeEnCours,CRam1);Print(CRam1);CRLF1();
if ((CdeEnCours>0) && (CdeEnCours<5)) // 1 à 4
{
// commande relais
m=CdeEnCours;
CPrint("Relais ");UART1_Write(m+48);
k= Config[m]; // 0 ou 1
switch (k)
{
case 0:
if ( MemoSortieRelais[m]==0)
{
CPrint(" ON\r\n");
LATB=PORTB | Poids[m]; // relais
MemoSortieRelais[m]=1;
}
else
{
CPrint(" OFF ");
LATB=PORTB & ~Poids[m]; // relais
MemoSortieRelais[m]=0;
}
break;
case 1: // monostable
CPrint(" ON pendant 1s\r\n");
LATB=PORTB | Poids[m]; // relay
MemoSortieRelais[m]=1;
Init_Timer0(30); // 30x100mS 3sec
while( Drapeaux.Tmr0_Elapsed==0);
CPrint(" puis OFF ");
LATB=PORTB & ~Poids[m]; // relay
MemoSortieRelais[m]=0;
break;
default :
Mlck=1;
Etape=9;
} //switch
}
}
le codage étant vérifié préalablement (valeur numerique seulement 0 à 9 ) et codage verifié existant ,
AVANT d'envoyer une commande Action sur relais. Commande de type Toggle ou Monostable.
Nota : J'avais envisagé d'utilisé l' ASM ex: _asm btg LATB,1; // relais 1
ou _asm BSF LATB,1;
pour etre au plus pres du MCU ... like Temps_X fashion
L'usage des "IVT interruptions vectorisées" , possible avec ce MCU, conforte mon choix :
plus facile, plus clair ..qu'en mode "Legacy"
*ACHTUNG coté config Projet MikroC :
si on sauvegarde le fichier source avec un autre nom, dans le meme projet
"Interrupt mode" repasse en mode" Legacy" ..=> errors
malgré le fichier de config P18F27K42_Fosc_interne_with_PLL_64MHz_with_Vectored_IT.cfgsch
présent dans le directory du projet.
un autre un piege à ions :
concernant l'EEPROM , qui fait partie integrante de l'adressage de ce PIC
au niveau de MPLB IPE V5.30 utilisé conjointement avec le Pickit 4
( nota : Pickit3 pas vraiment compatible , meme si le MCU peut etre reconnu!)
il faut Préserver l'espace NVM (Non Volatile Memory) Eeprom de 0x310 000 à 0x310 03FF
sinon apres la compilation ,on telecharge le *.HEX en faisant d'abord une RAZ du contenu Programme et Eeprom.
J'ai utilisé l'index 0 de l'eeprom pour y mettre un flag =99 pour signaler si le programme Utilisateur
s'est servi de l'eeprom ou non .. afin d'y stocker le parametrage minimum dit "Usine "
ce qui n'empeche pas le probleme précité !
L'adressage Eeprom est sur 16 bits , et la donnéee EEprom sur 8bit !
on a donc que 512 bytes dispo en EEPROM
les fonction MikroC de la lib EEPROM : EEprom_Write , EEProm_Read semblent OK.
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Sauvetage d'un vieux clavier matriciel
Bonjour paulfjujo, et tout le forum,
de plus maintenant j'ai fourni l'éditeur avec le compilateur, il y a plus cas....
C'est pas l'envi qui me manque, mais je suis sur plusieurs chose à la fois, une vraie girouette.
C'est un projet très intéressant,
A+
paulfjujo a écrit :Source du message Nota : J'avais envisagé d'utilisé l' ASM
de plus maintenant j'ai fourni l'éditeur avec le compilateur, il y a plus cas....
paulfjujo a écrit :Source du message pour etre au plus pres du MCU ... like Temps_X fashion
C'est pas l'envi qui me manque, mais je suis sur plusieurs chose à la fois, une vraie girouette.
C'est un projet très intéressant,
A+
Sauvetage d'un vieux clavier matriciel
- paulfjujo
Expert- Messages : 2828
- Âge : 74
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
petit rectificatif EEPROM 18F27K42
c'est bien 1024 byte dispo en Eeprom (NVM) , avec adressage 16 bit pointant sur des bytes
l'Eeeprom contient 255 de partout si vierge.
Nota: la partie ecriture est lancée une fois pour initialiser l'EEPROM
puis mise en commentaire au 2 em chargement programme
c'est bien 1024 byte dispo en Eeprom (NVM) , avec adressage 16 bit pointant sur des bytes
l'Eeeprom contient 255 de partout si vierge.
Nota: la partie ecriture est lancée une fois pour initialiser l'EEPROM
puis mise en commentaire au 2 em chargement programme
Code : Tout sélectionner
/*
// run une fois !
CPrint(" TEST Write To Eeeprom \r\n");
for (i=0;i<1023;i=i+16)
{
cx = (unsigned char) (i & 0x00FF);
EEPROM_Write(i,cx);
Delay_ms(5);
WordToStr(i,CRam1);
CPrint(" Write EEPROM @= ");
Print(CRam1);Espaces;
ByteToStr(cx,CRam1); Print(CRam1);
CRLF1();
}
*/
CPrint("\r\n ------------------\r\n TEST Read Eeeprom \r\n");
for (i=0;i<1023;i=i+16)
{
cx=EEPROM_Read(i);
Delay_ms(5) ;
WordToStr(i,CRam1);
CPrint(" read EEPROM @ ");
Print(CRam1);Espaces;
ByteToStr(cx,CRam1); Print(CRam1);
CRLF1();
}
CPrint("\r\n End\r\n");
while(1);
test relecture eeprom
en rechargeant le *.HEX
et cochant protection EEPROM dans MPLAB IPE !!
(0.002)
(0.000) ------------------
(0.003) TEST Read Eeeprom
(0.004) read EEPROM @ 0 0
(0.008) read EEPROM @ 16 16
(0.007) read EEPROM @ 32 32
(0.007) read EEPROM @ 48 48
(0.007) read EEPROM @ 64 64
(0.008) read EEPROM @ 80 80
(0.007) read EEPROM @ 96 96
(0.008) read EEPROM @ 112 112
(0.007) read EEPROM @ 128 128
(0.007) read EEPROM @ 144 144
(0.006) read EEPROM @ 160 160
.. etc
(0.008) read EEPROM @ 864 96
(0.007) read EEPROM @ 880 112
(0.008) read EEPROM @ 896 128
(0.007) read EEPROM @ 912 144
(0.008) read EEPROM @ 928 160
(0.006) read EEPROM @ 944 176
(0.008) read EEPROM @ 960 192
(0.007) read EEPROM @ 976 208
(0.007) read EEPROM @ 992 224
(0.007) read EEPROM @ 1008 240
(0.002)
(0.000) End
SINON, avec protection Eeeprom NON cochée dans MPLAB IPE
=> RAZ EEPROM
(0.000)
(0.000) ------------------
(0.000) TEST Read Eeeprom
(0.000) read EEPROM @ 0 255
(0.032) read EEPROM @ 16 255
(0.000) read EEPROM @ 32 255
....etc
(0.000) read EEPROM @ 928 255
(0.000) read EEPROM @ 944 255
(0.000) read EEPROM @ 960 255
(0.000) read EEPROM @ 976 255
(0.036) read EEPROM @ 992 255
(0.000) read EEPROM @ 1008 255
(0.000)
(0.000) End
Sauvetage d'un vieux clavier matriciel
- paulfjujo
Expert- Messages : 2828
- Âge : 74
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
bonjour à tous,
In progress ...
le programme est quasi terminé ..
il reste juste à tout valider avec le materiel clavier et cartes circuit
MAJ page web
In progress ...
le programme est quasi terminé ..
il reste juste à tout valider avec le materiel clavier et cartes circuit
MAJ page web
Sauvetage d'un vieux clavier matriciel
Bonjour paulfjujo, et tout le forum,
Pour cette excellent travaille, avec schéma, pcb, recherche, un vrai travaille d’ingénierie, bon dommage que tout soit fait en C !
Y a pu cas faire les essais, je vais suivre ça de près, j'avais déjà vu sur ton site avant que tu le post ici, le 3D du PCB rend bien
Reste à faire la mise en boîte, avec les touches clavier, et tout le reste, as tu déjà pensée a ce que tu va y mettre ?
A+
Pour cette excellent travaille, avec schéma, pcb, recherche, un vrai travaille d’ingénierie, bon dommage que tout soit fait en C !
Y a pu cas faire les essais, je vais suivre ça de près, j'avais déjà vu sur ton site avant que tu le post ici, le 3D du PCB rend bien
Reste à faire la mise en boîte, avec les touches clavier, et tout le reste, as tu déjà pensée a ce que tu va y mettre ?
A+
Sauvetage d'un vieux clavier matriciel
- paulfjujo
Expert- Messages : 2828
- Âge : 74
- Enregistré en : juillet 2015
- Localisation : 01800
- Contact :
Temps-x a écrit :Bonjour paulfjujo, et tout le forum,
Pour cette excellent travaille, avec schéma, pcb, recherche, un vrai travaille d’ingénierie, bon dommage que tout soit fait en C !
Y a pu cas faire les essais, je vais suivre ça de près, j'avais déjà vu sur ton site avant que tu le post ici, le 3D du PCB rend bien
Reste à faire la mise en boîte, avec les touches clavier, et tout le reste, as tu déjà pensée a ce que tu va y mettre ?
A+
C'est Babard64 qui a réalisé les circuits imprimés ! d'où la signature apposée à coté du © sur les photos
si je montre ici , mon prototype clavier + breadboard tu vas avoir peur !
je vais bientots recevoir les circuits , avec les composants montés soudés, pour pouvoir faire les derniers tests de validation ...
En cours de murissement, rajout de l'option bluetooth / wifi .
pour la future comparaison PROTO - FINAL :
A+
Vous n’avez pas les permissions nécessaires pour voir les fichiers joints à ce message.
Sauvetage d'un vieux clavier matriciel
Bonjour paulfjujo, et tout le forum,
Chapeau, un vrai travaille de pro....
Non, car je fais pire que toi...
Le top...
A+
paulfjujo a écrit :Source du message C'est Babard64 qui a réalisé les circuits imprimés ! d'où la signature apposée à coté du © sur les photos
Chapeau, un vrai travaille de pro....
paulfjujo a écrit :Source du message si je montre ici , mon prototype clavier + breadboard tu vas avoir peur !
Non, car je fais pire que toi...
paulfjujo a écrit :Source du message En cours de murissement, rajout de l'option bluetooth / wifi .
Le top...
A+
Retourner vers « Le forum Fantas-PIC »
Qui est en ligne
Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 invités