Description d'une platine "universelle" aussi appelée "shield" permettant l'utilisation d'un Arduino UNO avec le logiciel rotor de K3NG. Seule la fonction AZIMUT est supportée.
Cette platine a été conçue de manière à permettre l'utilisation du logiciel soit avec un afficheur LCD ou une carte réseau pour fonctionnement à distance via IP, et d'un rotor doté d'une résistance variable. (HAM II et HAM IV en ce qui me concerne)
La platine comporte :
- un régulateur 5V/1A
- un connecteur pour enfichage d'un Arduino UNO seul ou avec un shield réseau
- un connecteur HE10 mâle pour câble en nappe pour le raccordement d'un afficheur LCD
- un connecteur DIN 5 broches femelle pour raccordement d'un rotor
- 2 connecteurs pour boutons-poussoirs "Sens horaire" et "Sens anti-horaire"
- une résistance ajustable multi-tours VR2 pour la calibration de l'azimuth
- une résistance ajustable VR1 de réglage contraste de l'afficheur LCD
- 3 transistors pour les commandes CW, CCW, et BRAKE du rotor (sorties à collecteurs ouverts)
Je dispose encore de quelques circuits imprimés que je peux céder. Me contacter...
Le régulateur 5V/1A est nécessaire pour pouvoir alimenter le shield Ethernet qui consomme pas mal, trop pour être alimenté par le régulateur de l'Arduino mais aussi pour avoir une tension de référence stable. Par précaution, j'ai dessoudé le connecteur alimentation 12V et le fusible présents sur l'Arduino afin de ne pas risquer d'alimenter le montage par l'UNO ce qui risquerait de provoquer des soucis de surcharge. On évite également de devoir découper la face arrière pour faire sortir ce connecteur.
Le circuit imprimé comporte 3 platines qu'il est nécessaire de désolidariser à l'aide d'une petite scie. On se retrouve donc avec 3 platines:
- 1 principale qui supporte l'Arduino UNO.
- 2 petites permettant de raccorder un afficheur LCD.
Ces dernières ne sont pas malheureusement pas utilisables telles quelles, une erreur s'étant glissée lors de leur conception...
Il faut jouer un peu du bistouri pour couper certaines pistes et souder des petits fils pour assurer les bonnes continuités en fonction de l'afficheur utilisé.
Un Arduino UNO, donc peu cher, est suffisant pour les 2 possibilités (LCD ou mode REMOTE). Il est cependant nécessaire de désactiver tout ce qui ne sert pas afin de faire "rentrer" le logiciel dans la mémoire limitée de l'UNO.
Fonctionnement avec un afficheur LCD 2 lignes
Dans ce mode de fonctionnement, on utilise la platine câblée dans sa totalité et un afficheur LCD 2 x 16 caractères.
Le connecteur HE10 présent sur la platine permet le raccordement de l'afficheur à l'aide d'un câble en nappe 10 conducteurs. J'ai choisi d'utiliser un afficheur de dimensions 122x44 mm du type ABC016002 que j'ai trouvé sur ebay.
Correspondances des pins pour cet afficheur :
LCD | HE10 | PCB | |
1 | LED K | 3 | GND |
2 | LED A | ||
3 | GND | ||
4 | +5V | 1 | +5V |
5 | Vo | 7 | Vo |
6 | RS | 9 | 8 |
7 | RW | 5 | GND |
8 | E | 10 | 9 |
13 | D4 | 8 | 10 |
14 | D5 | 6 | 11 |
15 | D6 | 4 | 12 |
16 | D7 | 2 | 13 |
La platine principale permet l'implantation d'une résistance ajustable pour le réglage du contraste de l'afficheur. On peut aussi la mettre sur la platine LCD. ATTENTION, ne câbler qu'une seule des 2 !
Paramétrage du logiciel de K3NG disponible ici
Il est nécessaire de modifier les 3 fichiers de paramétrage comme suit.
rotator_features.h (commenter toutes les autres instructions avec // en début de ligne)
#define FEATURE_YAESU_EMULATION
#define LANGUAGE_ENGLISH
#define FEATURE_4_BIT_LCD_DISPLAY
#define FEATURE_AZ_POSITION_POTENTIOMETER
#define OPTION_DISPLAY_HEADING
#define OPTION_DISPLAY_DIRECTION_STATUS
#define OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS
#define DEFAULT_DEBUG_STATE 0
rotator_pins.h ( mettre toutes les autres valeurs de pins à 0 )
#define rotate_cw 6
#define rotate_ccw 7
#define brake_az 5
#define button_cw 4
#define button_ccw 3
#define rotator_analog_az A0
#define lcd_4_bit_rs_pin 8
#define lcd_4_bit_enable_pin 9
#define lcd_4_bit_d4_pin 10
#define lcd_4_bit_d5_pin 11
#define lcd_4_bit_d6_pin 12
#define lcd_4_bit_d7_pin 13
rotator_settings.h ( modifier les ligne suivantes )
#define LCD_COLUMNS 16 (LCD 16 caractères)
#define LCD_ROWS 2 (LCD 2 lignes)
#define LCD_DIRECTION_ROW 1 (affichage azimuth en ligne 1)
#define LCD_HEADING_ROW 2 (affichage direction cardinale en ligne 2)
Une fois les fichiers de configuration modifés et le logiciel transféré dans l'Arduino, il faut effectuer les réglages de constraste de l'afficheur et celui de la tension de recopie.
Pour cela, se reporter à mon article précédent.
Fonctionnement en mode REMOTE
Dans ce mode de fonctionnement, il faut se procurer un Arduino UNO et un shield réseau que l'on trouve sur ebay ou Aliexpress.
Il n'est alors pas nécessaire de câbler le connecteur HE10, pas plus que résistance ajustable VR1, P2, P3, C1, C2. L'utilisation LCD n'est pas possible, car certaines pins sont utilisées par le shield Ethernet.
Le shield Ethernet s'enfiche sur le circuit imprimé et l'UNO par dessus sur la carte Ethernet.
Paramétrage du logiciel de K3NG disponible ici
Il est nécessaire de modifier les 3 fichiers de paramétrage comme suit.
rotator_features.h (commenter toutes les autres instructions avec // en début de ligne)
#define FEATURE_YAESU_EMULATION
#define LANGUAGE_ENGLISH
#define FEATURE_AZ_POSITION_POTENTIOMETER
#define FEATURE_ETHERNET
#define FEATURE_MASTER_WITH_ETHERNET_SLAVE
#define OPTION_SAVE_MEMORY_EXCLUDE_REMOTE_CMDS
#define DEFAULT_DEBUG_STATE 0
rotator_pins.h ( mettre toutes les autres valeurs de pins à 0 )
#define rotate_cw 6
#define rotate_ccw 7
#define brake_az 5
#define rotator_analog_az A0
rotator_settings.h ( modifier les lignes suivantes )
#define ETHERNET_IP_ADDRESS 192,168,0,10
#define ETHERNET_IP_GATEWAY 192,168,0,254
#define ETHERNET_IP_SUBNET_MASK 255,255,255,0
#define ETHERNET_TCP_PORT_0 23
ATTENTION, avant tout raccordement du rotor, il faut ajuster la résistance ajustable VR2 de manière à mettre le curseur à la masse. Une tension trop élevée à l'entrée de la pin A0 de l'Arduino pourrait l'endommager.
Pour cela, mesurer la valeur de la résistance entre le point de test TP3 et la masse et ajuster VR2 pour avoir 0 Ohm.
Une fois le logiciel transféré, il faut effectuer le réglage de la résistance ajustable VR2 qui permet de calibrer la tension à l'entrée du convertisseur A/D.
Pour cela, se reporter à mon article prédédent.
Réalisation
Désolidariser les platines en utilisant une petite scie à métaux et en coupant le long de la sérigraphie. La lame la plus fine sera la meilleure !
Si la version REMOTE est retenue, les 2 platines LCD ne seront pas utilisées.
Commencer par souder la partie alimentation de la platine principale, à savoir J1, C3, C5, C8, U1. En cas d'utilisation de la fonction REMOTE, prévoir un petit radiateur sous U1.
Connecter une source 12V sur J1 (+ sur la pin centrale) et mesurer la tension entre TP2 et la masse. Il faut trouver une tension proche de 5V. La noter pour la suite. Sur TP1, il devrait y avoir la tension 12V issue de l'alimentation.
ATTENTION, il faut implanter les 3 transistors Q1, Q2, Q3 à l'envers par rapport à la sérigraphie. (nobody is perfect ! )
En fonction de l'utilisation LCD ou REMOTE, certains composants ne sont pas nécessaires.
En REMOTE, ne pas câbler VR2, C1,C2, P1, P2, P4, D1.
En LCD, VR2 peut être omise si on l'implante côté afficheur. Le radiateur sous U1 n'est pas nécessaire.
R3 et R4 ne sont utiles qu'en cas d'utilisation d'un rotor ayant uniquement 2 connexions à la résistance variable. D1, prévue à l'origine pour protéger l'entrée de l'Arduino s'est avérée néfaste à la bonne linéarité de la tension issue du rotor et ne doit pas être câblée.
La petite platine LCD s'enfiche à l'arrière de l'afficheur LCD à l'aide de pinoches de connexions.
Il faut donc interrompre certaines pistes sur la platine LCD et refaire quelques continuités.
Schéma de l'interface | Implantation des composants |
Le boîtier de contrôle est à modifier afin d'être compatible avec cette interface. Les informations sur cette modification sont disponibles dans l'article HAM IV computer interface "à la K3NG"