Version PIC18F258 COMPTEUR autonome avec affichage sur LCD 4x20 cars

Hardware :

PIC18F258 avec Q=20Mhz
La partie capture de l'info tour de pedale reste la meme.(Utilise un capteur de proximité + aimant)
L'alim de l'ensemble sera donc de 9V .Le +5V via un regulateur genre LF50CV.
nota: BT HC06 alimenté en 3,3V

Prototype de test :

images/Velo_2014_Proto.jpg

Test en injectant un signal carré TTL de 5Hz sur l'entree RB0 du PIC.

images/Signal_5Hz.jpg

Liaison RS232 vers Terminal VBRAY
Liaison BlueTooth HC06 (alimenté en 3,3V) niveau TX ramené à 3,3V via diviseur 1K/2,7K
Une sequence d'init du HC06 est appliquée en debut de programme.
Si les 4 phases d'init sont OK, c'est à dire que le HC06 a bien repondu aux commandes AT
voir details dans int Init_BT_With_feeback()

Cde Reponse
AT OK
AT+PIN1234 OKsetPIN
AT+NAMEHC06-7D69B OKsetname
AT+VERSION OKlinvorV1.8

la liaison est declaré OK .. meme si non appairé !
La led du HC06 clignote à quelques Hz
Si on appaire ce module avec soit un PC + BlueSoleil , soit une tablette android
La led clignotante du module HC06 devient fixe .
le module BT est vu comme HC06-7D69B
On peut alors utiliser la liaison serie SSP ( COM virtuel avec Bluesoleil) ou appli Android.
pour visualiser ou exploiter les datas .

Schema :

images/Velo_18F258_140822.jpg

Le Bus I2C hardware est utilisé ici pour gerer l'afficheur LCD 4x20 cars et la memoire Eeprom 32K 24LC256 + Horloge RTC DS1307.
Le tout est auttonome , mais l'UART1 est utilisé soit pour le debugging, soit pour le tracage sur Ecran PC, et en liaison avec
un module BlueTooth HC06 , permet aussi la mise à l'heure de la RTC ou la consultation du contenu Eeprom 24LC256.
Une application Android est prevue ....
La memoire 24LC256 est utilisée ici , en mode PAGE de 64 octets chacune. Il y a donc 512 pages possibles..512 trajets!
L'index de l'Eeprom 24LC256 est stockee dans les 2 derniers bytes d el'Eeprom du PIC.
Au demarrage on recupere cet index ..utilisé à la fin du parcours.
Le top depart est donné par les premiers 5 tours de pedales...
Le numero de page Eeeprom est recupéré depuis les 2 derniers bytes de l'Eeprom PIC ( 254em et 255em)
On effectue une lecture Date et Heure de la RTC DS1307.
et cette date et heure sont stockées à ce moment au format MM/JJ;HH:MM ( L'annee n'est pas sotockee, ni les secondes !)
au debut de la page Eeprom 24LC256 designee.
On declenche le TOP_depart = Time HH:MM:SS exprimé en secondes
Vu la grande taille de l'Eeprom, tout est stockée en Ascii, car faiclement relisible (plutot qu'en binaire)!
L'index dans l'eeprom est positioné apres les 11 premiers caracteres , donc à 12 ..Ce qui laisse 64-12=52 bytes dispo
L'info tour de pedale arrive sur RB0, qui genere une interruption

Rappel des donnees de base :
B0 entree capteur de Tour : ~ 3 impuls par tour de pedale
761 tour de pedale pour 1km avec roue de diam 700
PI.D= 2,199114858 metre
rapport 52/16 =3,250
developpé=7,147 M soit 139,9 tours de pedales par KM
pour velo d'appart
si 3,1 tour volant d'inertie par tour de pedale
=> developpé=2.30M par tour de volant
soit 434 impulses pour 1Km
ou 43 impuls=100M
Maxima possible en Kms = 199kms

Pendant l'IT RB0 on test aussi le bouton d'arret : BP_STOP
Le timer1 est utilisé pour elaborer une base de temps elementaire de 10 secondes, periode de rafraichissement du LCD et des calculs
Au bout de 6 temps elementaires , donc 6 x10 sec = 1 minute, les calculs de
Nombre de tour de pedale par minute
Nb de kms parcourus (resolution 100M)
vitesse instantatnée Km/H (resolution 0.1Km/H)
info affichees sur le LCD
Toute les 464 impulsions , les calculs sont reajusté ,pour la correspondance du KM, afin de ne pas cumuler les erreurs d'arrondi
(apres,la precision globale depend de la pression des pneus !)

2 Hz sur RB0 correspond à : 16.60 Km/H et 38.71 Tr de pedale / minute
5 Hz sur RB0 correspond à : 41.63 Km/h et 96.77 Trdp/Mn
7 Hz sur RB0 correspond à : 58.23 Km/h et 135.81 Trdp/Mn
1000Hz sur RB0 correspond à 8293 Km/H !!!

Resultat sur terminal VBRAY




Resultat sur afficheur LCD

Afficheur 4x20 piloté par un PCF8754 ,port 8 bits en I2C.. donc commande sur 3 fils SDA,SCL et 0V
Bibliotheque specifique LCD_PCF_I2C crée à cette occasion, vu que la librairie LCD MikroC
ne marche plus dans ce cas de figure

  new functions

Creating New Library
voir Help de MikroC

Source :
__LIB_LCD_I2C.cp
bibliotheque:
__LIB_LCD_I2C.mcl
Pour l'inserer dans le fichier P18F258.mlk
rajouter dans la partie LIB

..



En fin de parcours ou duree d'entrainement, via Appui su BP STOP
On declenche le TOP_Fin pour calculer l'ECART de temps total en secondes
On refait alors les calculs sur la duree totale pour calculer la moyenne horaire : Nb de Kms / 3600
Le nb total de tour de pedale est aussi recupéré
Ces donnees sont stocké dans l'espace reservé pour la page Eeprom en cours ( 52 bytes)
et le numero de page est incrementé puis stocké dans l'Eeprom du PIC ( pour la prochaine fois!)
L'EEprom peut stocker 511 parcours.

14/08;20:06;TTdP= 955;Kms= 7.05;Vmoy= 41.63;Duree=00H10M10S

A ce moment ,on est dans une boucle d'attente qui permet, via le terminal RS232 ( ou via Bluetooth)
le remise à l'heure RTC si besoin est..via la commande :U;14;08;14;05;18;52#035#013
pour le 14 aout 2014 Jeudi 18H52
La consulation de tous les trajets stockes dans l'eeprom depuis l'index 000 à l'index -1 en cours.
via la commande REL<CR> pour RELecture
exemple :
Relecture 24LC256 :
14/08;19:48;TTdP= 130;Kms= 1.04;Vmoy= 41.32;Duree=00H01M31S
14/08;19:50;TTdP= 178;Kms= 1.51;Vmoy= 41.69;Duree=00H02M10S
14/08;20:06;TTdP= 955;Kms= 7.05;Vmoy= 41.63;Duree=00H10M10S


Software:
Usage de MickroC Pro V6.40
Source :18F258_Velo_140808.c
Chargeur ::18F258_Velo_2014.hex
Eeprom: 18F258_Velo_2014_EEPROM.ihex
Config: 18F258_20Mhz.cfgsch

A suivre:
affichage sur Tablette Android (lien BlueTooh) avec appli RFObasic.
generation trajet via simul GPS sur Google Maps

 

 



Version COMPTEUR autonome avec affichage sur LCD2x16

Interface capteur à effet Hall

Velo_interface_02.jpg InterfaceCapteurVelo.jpg

avec MPLAB ASM version PIC16F84
source : Velo_3.asm




Version de test avec simulateur de PIC et LCD2x16 :

images/Usage_misimDE.jpg

misimDE version 1.77
avec JAVA environnement: j2re-1_3_1_11-windows-i586.exe
...voir Site: http://www.feertech.com/misim et
https://jsecom15k.sun.com/
ou ici
et en version 1.7.9

Descriptif: Velo_compteur_misimDE.pdf
Source : Velo_10z.asm
Ordinogramme: VELOPIC_chart.pdf

attention à la declaration des variables : differente sous MPLAB!



Version PIC18F252 COMPTEUR autonome avec afficheur LCD Nokia 3310

Hardware :
Un capteur de proximité Telemecanique X2S est installé face au volant d'inerie sur lequel est collé un mini aimant.
L'aimant permet de renforcer la detection sans cela le capteur ne pourrait pas detecter, d'autant plus qu'il est utilisé
en deca de sa specification 12V-24V
dans ces conditions il detecte tres bien à partir de 6V .. mais decroche à 5,65V,=> il ne peut pas etre alimenté via le +5V
L'alim de l'ensemble sera donc de 9V .Le +5V via un regulateur genre LF50CV.

images/velo_appart_Capteur_c.JPG images/velo_appart_Capteur_prox.JPG

vue generale

entrainement

detail capteur + aimant


Prototype de developpement:

images/Velo_proto_2011.jpg


Schema :


Schema isis Velo_2011.DSN

schema Velo 2011
Bill of material

2 BP interrupteurs : BP START parcours , BP STOP parcours
1 switch Debug ; permet ou pas, la sortie simultanée sur ecran terminal RS232
1 afficheur Nokia LCD 3410 8 lignes de 16 car .. attention differents modeles :formats 6 lignes de 14 car avec 3310
1 Pic18F252 + quartz 10Mhz encardre de 2x27pF
1 led sur info Timer1 seconde
1 led sur info Tour de Pedale : toutes les 3 impulses.
2 transistors: 1 PNP BC478 et 1 NPN BC107 pour l'interface RS232
resistances, condenstateurs ...


Test avec generateur à Quartz TTL 48Hz

Velo_3pulses_pour_1Ttdp.jpg

fichier source C18 : 18F258_Velo_Nokia_110901.c
fichier *.hex : Velo_18F258_110901_ok.hex
fichier resultat : velo_110901.log avec generateur de frequence sur 48Hz
le programme a été eprouvé à plus de 400Km/H et plus de 100 Km par parcours ..
donc aucune chance de bloquer le programme par depassement de capacité !
Apres modif du generateur à quartz,(rajout diviseur par 10), tests à 4.8Hz..

Le nokia (3410) de 8 lignes de 16 cars , permet d'afficher :
  1. la version du prg
  2. le numero de parcours
  3. le Nombre de pulses volant d'inertie NbPulse
  4. Le nombre de tour de pedale par minute Tdp.Mn
  5. La distance parcourue en Kms et hectometres XXX.X kms
  6. La duree du parcours en secondes
  7. La moyenne de vitesse reactuasiee chaque Mn et en fin de parcours < affiche wait> pendant les 59 premieres secondes.
  8. ligne de status : < attente du start>
    < etat running> <etat wait clignotant : attente de 60 secondes pour 1er calcul>
    <etat Stop>
affichage nokia
test à 4.8Hz


Mode d'emploi :

 

 

APPART' S VELO S(t)imulation

un aire de repos d'autoroute atypique
ou se trouve un drole de circuit

images/t_Lasse_25.jpg

Version avec capteur ampoule I.L.S ( Inter Lames Souples)
sur port parrallèle P.C.

docu technique sur ILS .


images/Velo99_presentation.jpg

images/Velo99_test_ack.jpg

images/Velo99_circuit_a.jpg

nota:
Pour plus de commodité pour faire les captures d'ecran
le tour de pedale a été simulé avec un generateur de signaux carrés
à 48Hz !!! ce qui depasse largement les possibilité de comptage maxi
on observe neanmoins des vitesses de > 1000Kmh
Essayer donc de pédaler à 48 tours de pépale par seconde..
.
ou meme de suivre le rytme de Lance Armstrong à 90 TdP / minute

images/Velo99_graphic.jpg

Le circuit en vert, devient violet au fur et à mesure de l'avancement(en Kms).
On peut donc se situer à tout moment sur le parcours..
Il serait possible de faire intervenir l'altitude, avec un mode de freinage serait plus
perfectionné : par exemple frein à poudre (jaegger) ou moteur DC frein ou alternateur
à la place d'un reglage (pas tres fiable) de machoire variant beaucoup entre à chaud et à froid.
En generant une consigne de frein dependant de la pente



Application DOS,Win98 (not XP ou superieur!)
source : programme en C (turboC2.0)
circuit des Antennes
Executable
resultat: VELO.DAT



retour à l'index (home page)