Quantcast
Channel:
Viewing all 121 articles
Browse latest View live

Recompiler un ancien projet

$
0
0
Un projet est-il facilement recompilable, après quelques années ? Bonne question, je dois justement reprendre un projet PIC. Le compilateur est

Explorer des éléments de domotique

$
0
0
Lampe de bureau IOT Titillé par ce qui est proposé sur le marché, j’ai testé pour vous deux éléments : un

CNC GRBL

$
0
0
Les imprimantes 3D se sont démocratisées ces dernières années. Une grande partie des modèles « amateurs » sont basées sur des cartes

Inscription pour la visite du centre de tri de la Poste à Daillens, le 21 avril 2017

$
0
0

 

Chers membres,

Vous pouvez vous inscrire dès maintenant pour la visite du 21 avril sur la page suivante: vers le formulaire

Vous pouvez indiquer dans le formulaire si vous avez besoins d’un transport pour vous rendre à Daillens et si vous désirez participer au souper qui suivra au restaurant de la Treille à Penthaz.

Délai d’inscription le 31 mars.

Meilleures salutations

Pour le comité

Rolf Ziegler

 

Fabrication de prototypes PCB mon marché, finition avec une CNC

$
0
0

Nous avons récemment découvert que le shop en ligne « Seeedstudio » offrait la fabrication de circuits imprimés aux dimensions de 100x100mm pour la somme modique de $9.90 pour 10 circuits (19.80 avec livraison). Il était donc intéressant de passer commande d’un circuit que je n’aurais pas fabriqué sans avoir un prix très attractif.

Dessin et commande du circuit :

Je me lance donc dans un dessin avec le logiciel CAO Eagle (Autodesk), la version limitée à 100x180mm est gratuite pour les utilisations non-professionnelles.

  

Mon projet est un interrupteur basé sur un module Wifi ESP8266, un relai et un module 230V/5V (schéma).

Circuit 2 couches, je vais dessiner des fentes pour mettre le circuit aux normes concernant la tension 230V.

Avant d’envoyer les fichiers au fabricant, je vérifie le contenu avec « gerbv », un logiciel gratuit qui permet de visualiser les couches du circuit.

Le site de commande en ligne de Seeedstudio et d’autres fabricants tels que Eurocircuits permettent également d’effectuer cette vérification en ligne avant de passer la commande, ce qui est très pratique et évite des surprises. Une fois satisfait du contrôle visuel, j’envoie les fichiers gerber (zip) au fabriquant.

Livraison:

Il ne reste plus qu’à attendre la livraison. Attente un peu longue (4 semaines), mais finalement les 10 circuits arrivent et sont d’un état très acceptable.

2017-04-13 11.53.26.jpg

A première vue tout va pour le mieux, les circuits sont propres et correspondent exactement à mon attente. Il ne me reste plus qu’à découper les circuits au format circulaire et avec des entailles pour isoler les pistes 230V. Faire effectuer cette opération aurait juste fait exploser le prix de l’offre, raison pour laquelle je décide d’effectuer cette étape dans mon petit atelier. Vu le nombre de circuits, je vais utiliser ma petite CNC.

Découpe du circuit :

Pour la découpe sur la CNC , j’ai dessiné les contours et fentes dans la couche CAM du logiciel Eagle. Une fonction d’Eagle permet de convertir cette information en format dxf. Ces données doivent maintenant être transformées en commandes pour ma machine (CNC), ceci se fera au moyen d’un logiciel CAO mécanique.

Autodesk a publié dernièrement le nouveau logiciel « Fusion 360 ». Ce logiciel permet la création d’objets 2D et 3D et la génération des fichiers CAM pour une CNC ou pour imprimantes 3D. J’utilisais auparavant divers logiciels, chacun dans un but bien précis, chacun avec des commandes spécifiques ce qui compliquait passablement le travail. D’après la description de « Fusion 360 » je dois pouvoir remplacer tous ces logiciels par ce dernier (fraisage, contournage, perçage) ce qui devrait me simplifier passablement le travail dans l’avenir! Mon petit projet est donc idéal pour apprendre à utiliser et à tester « Fusion 360 ».

Fusion 360:  

La prise en main est plutôt facile si l’on a déjà utilisé des outils CAO auparavant. L’équipe d’Autodesk nous fournis une aide précieuse en tutoriels « YouTube » et en articles en ligne. Le logiciel contient divers modes, l’un pour dessiner et modéliser, l’autre pour générer les données pour la machine qui effectuera le travail (CNC ou autre).

En mode Modèle, j’importe les données de la CAO Eagle au moyen du fichier « dxf » que j’attribue à l’axe Z. De cette façon, le plan du dessin est perpendiculaire à l’axe de travail des outils. Il faut maintenant définir la surface exacte à découper et la largeur des ouvertures (fentes) dans le circuit (Je désire contourner le circuit avec une forme circulaire qui rentre dans le boitier d’un interrupteur mural et de tailler des fentes d’isolation pour la partie courant fort).

Vue du logiciel Fusion 360 et des données du fichier «dxf» importées. Il ne reste qu’à ajuster les éléments graphiques.

Remarque : Avant d’envoyer les fichiers, j’ai ajouté 4 trous qui me permet de centrer le circuit sur ma CNC, en fait il n’en faut que 2, un premier trou comme point de référence (zéro) et un deuxième pour l’orientation dans l’axe x/y. Ces 2 trous sont visibles sur l’image ci-dessus.

Opérations en mode 2D

  1. La fonction « Slot » me permet de donner une largeur aux fentes à fraiser (image de gauche). Je choisis une largeur de 1.5mm correspondant à un outil en stock et je suis les lignes déjà présentes.
  2. Il me reste à ajuster les contours et à corriger les lignes non contigües (image de droite), le travail en mode dessin 2D est terminé.

 

La fonction « extrusion » me permet de donner du volume à mon circuit, j’obtiens ainsi le modèle exact de la forme à découper.

   

A gauche: Les traits continus permettent de délimiter automatiquement la surface.

A droite: Après extrusion on voit le volume de la pièce. La surface supérieure du circuit est définie comme niveau zéro (Z=0). Avec un Z>0 on éloigne l’outil de la pièce, avec un  Z négatif, on taille dans la pièce.

Étapes de fabrication:

Je prévois la découpe en 3 étapes :

  1. Perçage de 2 trous de référence (3mm) dans la plaque martyre de la CNC: (sans circuit), ces trous dans le bois solidaire à la machine me permettent d’y planter 2 tiges de 3mm et d’aligner chaque circuit.
  2. Avec l’aide des 2 tiges, fixer un circuit sur le martyre (avec du ruban autocollant double face)
  3. Lancer le programmer de découpe (J’utilise la même largeur d’outil pour les fentes et pour le contournage, ce qui m’évite de changer d’outils à chaque circuit).
  4. Je répète l’opération 2 et 3 pour les circuits suivants.

Suite à la création du modèle 3d (dessin ci-dessus) et à la définition de chaque étape de fabrication, je bascule en mode CAM dans Fusion 360.

Mode CAM dans Fusion : Dans ce mode, il existe de multitudes de possibilités de générer des donnes CAM

Il me faut :

  1. Drill (perçage)
  2. Slot (fentes)
  3. Contour (détourage de la pièce)

Les données pour le perçage iront dans un premier fichier utilisé qu’une seule fois, les données pour l’étape 2et 3 iront dans un 2ème fichier utilisé pour chaque circuit. Le logiciel permet de visualiser le déplacement de l’outil (simulation) ce qui me rend plus confiant quand à l’exécution du travail.

   

Affichage et simulation du perçage et du découpage. On peut distinguer en grisé la tête de la fraisage et l’outil qui sont définis dans les paramètres outils de « Fusion ».

 

Le logiciel Fusion 360 contient déjà toutes les fonctions pour la génération du fichier à charger sur la machine, entre autres la définition d’un magasin d’outils et les paramètres pour diverses machines CNC, cette phase est la plus difficile à réaliser vu le nombre de paramètres et le vocabulaire utilisé qui m’est inconnu. Sur ma petite CNC, j’utilise le logiciel « MACH3 ». Ce logiciel faisant partie des interfaces supportées par « Fusion » je ne suis donc pas trop inquiet.

Exemple de fichier CNC, on y reconnait les commandes (G-Code) qui vont piloter la CNC.

 

Il me faudra plusieurs itérations entre la CAO et la machine avant de lancer la première découpe. Les premiers essais se font sans outils et sans matière. A ma surprise, les déplacements se font correctement, il n’y a qu’a modifier le paramètre pour la vitesse de déplacement horizontale de l’outil et à enlever un mystérieux code G28 qui semble envoyer la CNC hors limites en fin de programme. L’apprentissage de cette dernière étape me sera utile pour d’autres projets.

Travail sur la machine (CNC).

2017-04-15 14.13.36.jpg     2017-04-15 14.14.13.jpg

  1. Perçage des trous de référence                    2. Ajustement du circuit sur la machine (martyre)

2017-04-15 13.47.17.jpg   2017-04-15 14.18.56.jpg

3. Circuit après découpe.                                                                       4. Circuit nettoyé

Suit le nettoyage, enlever les bavures et les restes de ruban double face.

J’ai finalement traversé toute la chaine des outils depuis le dessin jusque à la pièce découpée.

2017-04-14 00.01.56.jpg

Dernière étape, souder les composants et mise sous tension.
Tout a fonctionné du premier coup !!!

Rolf Ziegler (4/2017)

Router Internet en NAT avec un PC

$
0
0

Besoin

La configuration est la suivante : vous avez un PC portable (ou pas…) qui est connecté en Wi-Fi à Internet, et vous voulez router l’internet sur sa prise LAN sur laquelle peuvent être connectés différents hardwares, mais qui n’ont, eux, pas de Wi-Fi. Ou une connexion Wi-Fi est obtenue avec un code, et vous avez besoin de la partager.  Les différentes possibilités de partage sont décrites sur ce blog : https://anwaarullah.wordpress.com/2013/08/12/sharing-Wi-Fi-internet-connection-with-raspberry-pi-through-lanethernet-headless-mode/

Le matériel minimum suivant est requis :

  • Un routeur Wi-Fi, connecté sur l’Internet
  • PC avec 2 connexions LAN : Wi-Fi et RJ45 ; l’OS Win10 (Win7 aussi testé)
  • Un câble LAN croisé (rouge)
  • Un « device » à connecter, par exemple un RaspBerry Pi 2

Bien entendu, le « device » peut être autre : Arduino, second PC, etc.

Bref, un schéma est plus simple pour l’expliquer.


Le PC est connecté sur le routeur internet par son Wi-Fi, et le RaspBerry Pi par un câble croisé (câble rouge) à la prise LAN du PC. Bien entendu, un petit switch qui s’occupe du croisement automatiquement irait très bien aussi.

Partager la connexion

Il y a 3 options (ou peut être plus) pour établir la liaison :

  • Le Network Translation Adress, ou NAT
  • Le pont – transparence de connexion
  • Le partage de la connexion

Activer le NAT

On va utiliser la première, car vu du routeur Wi-Fi, seule l’adresse du PC est distribuée. Les autres options demandent au routeur Wi-Fi de distribuer en DHCP une adresse supplémentaire pour le RaspBerry.

Le NAT s’occupe de modifier les paquets IP pour changer l’adresse de la carte A en adresses de la carte B. C’est utilisé pour créer des sous-réseaux, et grouper une série de machines avec une seule adresse sur l’Internet. Voir : https://fr.wikipedia.org/wiki/Network_address_translation

Réglage des cartes LAN

Partage du WI-FI

  • Clic Droit sur icone Windows de la barre des tâche-> Connexions réseau
  • Clic droit sur le Wi-Fi -> Propriétés
  • Onglet « partage »
  • Cocher « Autoriser… » et décocher la seconde option si besoin

Après quelques secondes, la carte Ethernet obtient la configuration suivante, à vérifier en ligne de commande par ipconfig :

Ou encore en ouvrant la carte Ethernet et en lisant ses propriétés IPV4. Au départ, les champs sont vides : ils sont remplis par le partage de connexion. La carte prend l’adresse 192.168.137.1/24. L’adresse de la passerelle reste vide, ainsi que les DNS.

Contrôle de la connexion NAT

  • Connecter le RaspBerry sur le LAN du PC, à savoir la carte Ethernet
  • L’enclencher, pour qu’il prenne un adresse IP

Si le Raspberry était déjà allumé, il aura pris une adresse bidon, genre 169.x.y.z et un masque réseau 255.0.0.0. On peut redémarrer les services réseau avec les commandes Linux:

sudo ifdown -a

sudo ifup -a

  • Vérifier l’adresse prise par : ifconfig et la noter pour la suite
  • Vérifier l’accès à Internet avec : ping ch.ch (ou autre site répondant au ping)

Limites de la connexion NAT avec Win10

L’adressage du sous réseau ne peut pas être choisi ; c’est Windows qui décide. Selon les essais, l’adresse de base est toujours 192.168.137.1, avec un réseau de classe C, à savoir 253 adresses à disposition, ce qui suffit amplement.

Avec un laptop qui se met en veille… le partage disparait ! La carte Ethernet (du PC donc) reprend une adresse du genre : 169.254.245.127, et un masque 255.255.0.0. Remettre la coche du partage sur la carte Wi-Fi relance la fonction NAT ; et si cela n’a pas duré trop longtemps, le « device » connecté aura gardé son adresse et reprend sa liaison. On peut bien sûr tester avec la commande ping ch.ch pour en vérifier la fonctionnalité.

Yves Masur (4/2017)

Vitesse IO sur module ESP8266

$
0
0

Les modules ESP8266, devenu très populaires vu leurs prix et esp8266-e08performances, peuvent provoquer quelques questions si l’on n’est pas habitué aux processeurs ARM. Le processeur (ARM) de l’ESP8266  exécute les instructions à 80Mhz (la fréquence peut-être doublée par soft). Si l’on utilise l’environnement de programmation (IDE) Arduino, ainsi que les routines populaires Arduino, on peut rencontrer quelques surprises quant à la vitesse d’exécution des fonctions digitalWrire() si on la compare à un processeur traditionnel (AVR/Microchip). Ces processeurs peuvent générer un signal carré d’une fréquence de la moitié de la fréquence oscillateur (moyennant que l’on ne fasse rien d’autre pendant ce temps. Le processeur ESP8266 programmé dans Arduino génère un signal de 160khz. Ce que l’on oublie dans notre cas, c’est que la vitesse GPIO d’un processeur ARM doit-être définie en début de programme. Ceci est le cas si l’on programme sous Linux ou GNU mais ne l’est pas avec l’environnement Arduino, la vitesse GPIO ayant été défini lors de l’intégration ESP. On ne sait donc pas quelle vitesse a été choisie!

Regardons donc plus en détail la vitesse Entrées/Sorties de l’ESP8266.

 

1. Test digitalWrite() dans loop. Nous obtenons une impulsion de 450ns tous les 6.24us, pas étonnant, on ne sait pas ce que fait Arduino en dehors de la routine loop(), fréquence du signal obtenu, 160khz.

2. Test digitalWrite() avec while(1) dans setup, on évite ainsi le temps perdu par l’implantation Arduino, pas de surprise, on obtient un signal carré de 2x 450ns = 1.11Mhz

3. En connaissant un peu ARM, on peut s’imaginer qu’il existe une librairie plus efficace qui permet de changer l’état des GPIO directement. Une librairie gpio.h est disponible sous ESP8266/ARDUINO. Cette libraire permet d’écrire directement dans les registres. Il existe un registre CLEAR et un registre SET utilisés dans les tests qui suivent. Il suffit de mettre le bit correspondant au GPIO 1 et le tour est joué.

GPIO_REG_WRITE(GPIO_OUT_W1TS_ADDRESS, 1 << PIN); // pour SET de l’IO (PIN)

GPIO_REG_WRITE(GPIO_OUT_W1TC_ADDRESS, 1 << PIN); // pour CLEAR de l’IO (PIN)

 

Même test que pour 1/2 ci dessus. Dans loop, on obtient une impulsion de  110ns tous les 5.54us

4. Comme dans .2, nous faisons une boucle infinie, impulsion de 88ns tous les 176ns donc 5.68mhz

Il est possible que l’on puisse encore optimiser plus la routine IO en changeant la vitesse GPIO. Je ne l’ai pas essayé ici.

A retenir, la gestion GPIO sur Arduino n’est pas optimale pour ESP8266 (à tester pour les processeurs AVR également). Par contre si l’on veut faire une routine I2C ou UART soft, on a intérêt à utiliser les fonctions GPIO et non pas ceux de la librairie Arduino.

 

Plus de détails sur le module ARM/WIFI ESP8266 lors de notre prochaine conférence le 7.10.2016

Rolf Ziegler Sept. 2016

Code utilisé pour le test fast_io.zip

Attention, les commandes GPIO ne sont pas valable pour toutes les pins. Je viens de découvrir que la pin 16 n’est pas sous contrôle de GPIO mais de RTC.

 

Attention aux erreurs de dédouanement ! A méditer !!

$
0
0

 

Le 12 mai, je commande un lot de PCB (design maison) chez Seeedstudio qui offre à un prix très intéressant 10 circuits électroniques 2 couches (100x100mm) pour la modique somme de CHF 12.50 (version sans plomb) . Je me décide de passer commande avec l’option livraison DHL pour un surcout de CHF 22.80.

Suite à l’acceptation de la commande et de la vérification des fichiers GERBER par le fabriquant (le suivi peut se faire en ligne) le 23 mai, je reçois un message que ma commande est envoyée par DHL. Le suivi d’envoi montre que la déclaration en douane se fait par DHL en avance et le 26 mai je reçois mes circuits moins de 3heures après l’arrivée à Genève. Tout me semble en ordre. La facture jointe par Seeedstudio, importante pour la suite de l’histoire indique : Valeur PCB  US$12:90 Freight Cost  US$ 23.56, total $ 36.46. Je crois l’histoire de l’envoi terminé ce qui ne sera pas le cas.

Le 2 juin je reçois de DHL une facture pour les frais de TVA et de dédouanement de CHF 28.- qui se compose de CHF 6.- de TVA, provision pour avance de CHF 3.- et  CHF 19.- de frais de gestion. Les taux sont correct mais je me demande comment il est possible que je sois taxé vu que ma commande n’excède pas le montant critique (CHF 62.-). Ma commande devrait être franc de douane comme toutes les commandes de petit montants que j’ai passé en Chine par le passé. La facture jointe correspondant bien à ma commande, je vérifie la décision de taxation et je constate qu’en plus de la valeur de ma commande, le déclarant DHL ou notre cher office des douanes a ajouté CHF 39.- de transport (FRACHT). Enervé j’envoie de suite un message (courriel) à DHL (vatquery) et en parallèle à la FRC dont je suis membre. Les 2 institutions confirment la réception de mon message par courriel automatique mais après c’est le silence !

5 jours plus tard, impatient, je me décide de vérifier qui est à la tête de DHL Suisse et j’envoie un courriel aux personnes en charge (on les trouve facilement sur la page DHL en ligne). A ma grande surprise, je reçois le lendemain matin déjà une réponse du service de dédouanement de DHL  s’excusant de l’erreur qui a été faite et m’annonçant que la facture DHL est annulée.

A retenir : Réclamer si vous avez l’impression d’une erreur, insister si vous ne recevez pas de réponse et ceci même si le montant n’est pas important. Ceci afin d’éviter que les erreurs ne deviennent la règle ce  qui pourrait permettre à certaines entreprises d’arrondir leurs fins de mois !

Rem : La FRC ne m’a toujours pas répondu !

Rolf Ziegler (6/2017)


Petit rappel des différences de processeurs en programmation de C.

$
0
0
Je travaille depuis quelques semaines sur mon interface/télécommande pour mon enregistreur Revox B77. J’ai presque terminé mon interface WEB au niveau fonctionnalités (j’ai appris à utiliser HTML, JS, CSS, WEBSOCKETS, JSON dans tous les sens) la télécommande fonctionne presque mais j’aimerais ajouter des délais pour retarder ou avancer le freinage des bandes du B77. Je crée donc une page web supplémentaire avec les délais, j’utilise pour ceci la fonction HTML « input type=nombres ». Je veux lire un nombre entier (de -100 à  +100) à mémoriser dans l’EEPROM de mon ESP8266. Je déclare les variables pour le stockage intermédiaire en « int » et les premiers essais sont concluants, les nombres sont bien mémorisés (Serial.print… m’indique le bon fonctionnement).

 

<Interfaces après correction>

Surprise, après Reset du module ESP, les nombres restitués s’affichent juste pour les nombres positifs, mais faux pour les nombres négatifs ! J’ai l’impression que « C » utilise un « unsigned int » pour restituer les nombres alors que je les ai bien déclarés en « int ». L’effet est qu’à la place de m’afficher par exemple « -100 » il m’affiche « 65436 » Damned!
Après 4h de tests et une revue de chaque ligne de code, il est passé 2h du matin, quand je me dis que « int » n’est peut-être pas la bonne définition !!!! Processeur 32 bits => « int » correspond à « int32_t » et non pas « int16_t » ce qui expliquerait le comportement ! Je remplace les déclarations des variables en int16_t (-32767 à +32767) et tout rentre dans l’ordre ! je peux enfin aller me coucher ! Mon code est prêt pour un nouveau test pratique !!!
Super la programmation, mais pleine d’embûches !!!

 

Rolf Ziegler 7/2017
Présentation du projet au printemps 2018

Nouveaux ateliers au Microclub !

$
0
0

Chers membres et amis !

Nous avons le plaisir de vous proposer une série d’ateliers qui auront lieu selon vos réponses entre octobre et début décembre 2017 à l’EPFL. Pour nous aider dans l’organisation nous vous prions de nous communiquer vos intérêts en remplissant ce formulaire.

Les ateliers proposés sont les suivants :
● Atelier Arduino-C pour débutants
● Atelier Arduino – Debugging – Scheduling
● Atelier RaspBerry Pi
● Atelier HTML embarqué
● Atelier Neo-Pixels

 

Donnez nous votre avis sur vos intérêts et priorités !

Les ateliers sont ouverts au non-membres !

Lien vers le sondage

Le comité

Recompiler un ancien projet

$
0
0

Un projet est-il facilement recompilable, après quelques années ?

Bonne question, je dois justement reprendre un projet PIC. Le compilateur est gratuit, téléchargeables depuis le site de Microchip. Pour modifier un projet de 2012, je dois ré-installer le soft permettant d’apporter une modification mineure.

Certes, j’ai les sources, mais pas/plus l’environnement de développement : en effet, j’ai changé de PC entretemps. Allons-y…

Essai

C’est le projet « barrette intelligente » (https://microclub.ch/2011/03/25/projet-barrette-livrable/) dont j’aimerai retoucher le soft. En effet, le système comporte une prise électrique « master », qui pilote une ou plusieurs autres prises. Et mon nouveau PC (un ACER Aspire VN7) qui est justement branché sur la prise « master » a un nouveau mode de consommation : il prend du courant, puis travaille quelques secondes sur la batterie, et reprend du courant… Ma lampe de bureau, branchée sur une prise « slave » clignote ! Pas très utilisable. Je me dis qu’une tempo au déclenchement un peu plus longue va régler le problème.

Je copie mon projet dans un nouveau répertoire, examine les sources clés, et après quelques minutes de réflexion, je rajoute une constante pour la tempo « déclenchement » de 15 secondes alors qu’auparavant, j’avais mis la même pour l’enclenchement et le déclenchement, fixée à une seconde.

Et il faut recompiler ce projet. Recherche de l’outil sur le WEB. Visite de www.microchip.com .

Téléchargement depuis ce site pour le moins compliqué. Enregistrement nécessaire chez Microchip, login, tout le tralala… Mais un outil universel est proposé. Il faut télécharger le « MPLABX-v3.45-windows-installer.exe », poids de 574 MB… tout ça pour faire quelques Ko de soft 8 bits, ça laisse songeur.

L’environnement de développement, l’IDE donc, propose dans une fenêtre d’accueil « Projet : import legacy ». Cool, me dis-je ; ils y ont pensé, on y va. Et une boite de dialogue propose de reprendre mon ancien projet en 8 étapes. Son extension mcp signifie : microchip projet.

01-import

 

Le device cible est reconnu automatiquement: PIC18F6627

Pour le tool, je suis emprunté : il me faut simplement faire un .HEX, à télécharger. Mettons un PIC KIT 2, on verra plus tard.

02-select-tool

A l’étape suivante, cet univers mystérieux me demande… où est le compilateur ?, tout en me précisant que le mcc18 à la racine de C: n’y est plus (oui, c’est vrai, vu que j’ai changé de PC il n’est pas réapparu). Et le compilateur 32 bits installé par défaut n’y peut rien. Retour sur le site de Microchip. Après moult recherches, j’y arrive. C’est – pour le 8 bits – le xc8-v1.38-full-install-windows-installer.exe, avec 84 Mo supplémentaires à télécharger.

L’outil d’import me propose le nom du projet « barrette_12 » que j’accepte, et il résume le tout. Ça a l’air très bien.03-summary

Ça ne compile pas bien

Une tonne d’erreur apparaît. Pas si grave, à première vue : le fichier inclus “projdefs.h” n’est pas trouvé. Pourtant, il est bien là…

Et là, je perd des heures à essayer de le copier, déplacer, modifier les sources…pfff… pas moyen de contenter le compilateur. Son problème ? Il confond une série de source qui se trouve dans un sous-répertoire « .\net » réunissant le code qui a trait au réseau et ne voit plus le chemin relatif des fichiers à inclure et/ou à compiler.

Et le compilateur original ?

Je me copie la version originale du compilateur (le MCC18 donc) que j’utilisais – fort heureusement – aussi au travail pour un autre montage sur le même module hardware. Refaire l’importation… essai de compiler un fichier .C, ça marche ! Et de tout recompiler ? … OK, sans erreur ! Le HEX final est produit, dans un sous-sous répertoire tarabiscoté, mais utilisable. Ce HEX fait la même taille que l’ancien : 195’800 octets. Reste à vérifier bit à bit avec le programme FC (file compare, nativement en ligne de commande de Windows) : le code n’est pas vraiment le même.

04-compare-hex

Mais il suffit que le compilateur ne soit pas exactement de la même version pour produire cet effet de bord. Ou que les options, longues comme un jour sans fin, ne soient pas strictement pareilles. Pas de panique.

Le chargement sur la cible s’avère aussi quelque peu laborieux ; mais l’outil JAVA livré pour charger le HEX s’installe sans problème et il est complètement fonctionnel. Je peux donc charger mon nouveau HEX, faire des essais, modifier aussi les pages WEB et finaliser la modification.

Conclusion

Plus de peur que de mal. Mais on voit que la pérennité des choses peut être vite compromise. Un nouvel environnement, un compilateur plus moderne mais pas compatible avec la MAKEFILE et on est dans le doute et la recherche de solution peut s’avérer longue.

Il me vient en mémoire un critère de qualité de développement de code (réf: http://www.joelonsoftware.com/articles/fog0000000043.html) : il est mentionné « compilez-vous  vos sources tous les jours? » Cela m’avait surpris ; mais on mesure que les petites modifications graduelles telles que :

  • Changement de version de l’OS
  • Mise à jour de compilateurs
  • Noms de chemins modifiés
  • Version de l’IDE
  • Version des outils hardware
  • Clefs d’authentification perdues

(liste non-exhaustive) finissent par rendre un code source très éloigné de la cible. Et en cas de modification, même mineure, la chose est soit rendue ardue (perte de temps importante), voire impossible. Et là, il faut passer par un redéveloppement sur une nouvelle cible dans un nouvel IDE.

A l’heure où le soft évolue plus vite que le hardware, c’est un point d’attention à considérer fortement par l’ingénieur soucieux de la pérennité de ses produits.

 

Yves Masur (11/2016)

Explorer des éléments de domotique

$
0
0

Lampe de bureau IOT

Titillé par ce qui est proposé sur le marché, j’ai testé pour vous deux éléments : un relais électronique et une lampe de bureau. Commençons par celle-ci.

La lampe de bureau est présentée comme suit, avec le titre un peu pompeux « Original Xiaomi LED Smart Table Lamp Dimming Reading Light For Cellphone » sur le site de Banggood, au prix de environ 50.-. Comptez 3 semaines pour la livraison, mais le port est gratuit. Elle correspond physiquement complètement à la description, son maniement est simple (heureusement, car le mode d’emploi est … en chinois). Le bouton par impulsion sert à allumer/éteindre ; sa rotation diminue/augmente la luminosité ; et maintenu pressé, change la température couleur.

Mais que peut-on piloter par soft ? Le nom de l’application (ci-après nommée Apps), pas mentionné, m’est donnée via le forum : c’est Yeelight. Pour Androïd et IPhone (iOS). Une fois chargée, il faut s’inscrire sur un site, avec email (ou n° de téléphone) et password. Ensuite, il s’agit d’appairer le/les éléments contrôlables par l’Apps.

Pour la bonne compréhension, voici le schéma (partiel) de liaison que j’ai à la maison. Il y a un répéteur WiFi pour que le signal soit assez fort au 1er étage, le routeur étant au sous-sol.

schema-lan-masur

En cherchant l’appairage, je n’ai pas réussi en le faisant par le répéteur ; alors que PC portable ou le mobile passent sans difficulté du WiFi AP du sous-sol au répéteur au rez. J’ai donc déménagé la lampe près du routeur/WiFi pour ce faire ; malgré tout, il m’a fallu quelques essais pour y parvenir avec succès.

Une fois connecté, l’Apps Yeelight permet d’enclencher/déclencher la lampe ; de commuter sur une température couleur.

Les fonction sont : On-Off, une température couleur élevée pour de la lecture ; et une basse pour consulter un écran de PC sans trop de lumière bleue.

On peut renommer l’élément et même mettre un raccourci de bouton On-Off sur le bureau Androïd, ici « LED Bureau » :

Ceci a du sens lorsqu’on a plusieurs éléments commutables, pour les atteindre rapidement avec son mobile.

Conclusion provisoire

L’apps ne sert pas à grand-chose. En effet, si on travaille sur son bureau, pourquoi sortir son portable pour allumer ou éteindre la lampe qui y trône plutôt qu’allonger le bras? Il serait plus intéressant d’y avoir une commutation pour simuler une présence, par exemple. Ou un allumage progressif à partir d’une heure donnée pour servir de réveil sympathique.

De plus, comme mentionné peu avant, elle essaie de se connecter sur le routeur ; la communication est mauvaise, donc inutilisable. Souvent, le On-Off est inopérant.

17-yeelight-offline

Et l’aide pour le reset, pas secourable :

18-yeelight-how

 

Switch Sonoff

Le switch est aussi disponible par le site de Banggood, sous le nom de « DIY Wi­Fi Wireless Switch For Smart Home » pour moins de 7.-. Il fonctionne sur le 230 VAC et un pouvoir de coupure de 7 A, un courant maximal de 10A. Le voici inséré dans une rallonge secteur.

Dommage qu’il n’y ait pas de bornes pour le fil de terre…

00-sonoff

Attention : dans la description qui suit, « switch » nomme cet élément, et non un switch informatique.

Le constructeur Slampher a d’autres produits, dont des culots E27 permettant des commutations. Ce qui est moins clair est : comment sont faites les transmissions ? Sur le site, il est dit que la transmission est à 433 MHz, mais aussi WiFi. Avec sur le croquis un nuage, un AP et un smartphone… Le texte est un peu plus clair : Sonoff and Slampher will send data to cloud platform through Wi­Fi Router, they pair with the Wi­Fi through the APP, thus you can control all added appliances and lights with your smart phone or tablet.

Application

L’Apps à charger sur smartphone est : EWeLink. Son installation demande une inscription, un login, un mot de passe. Ce qui peut inquiéter toutefois est ceci :

01-ewelink-droits

Pourquoi une telle Apps a besoin de la position, du micro, de la caméra ? très intrusif, tout ça ! En tous cas, j’hésiterais à l’utiliser pour, disons, enclencher/déclencher un réacteur nucléaire.

La confirmation qui suit n’est pas de nature à tranquilliser :

02-securite

De mon expérience précédente, je n’essaie même pas d’appairer le switch via le répéteur ; mais je le fait directement au sous-sol, où se situe mon atelier de bricolage. Je commence bien sûr par un câblage du réseau et d’une prise femelle, et y branche une lampe. Le témoin vert commence à clignoter.

Malgré les précautions prises, cet appairage s’avère ardu. Il faut de la patience… 3 minutes par essai.

03-ewelink-pairing

Après x essais, je prends le parti d’y aller « à la main », comme proposé à l’écran suivant.

03-ewelink-pair-fail

Mécanisme d’appairage

Là, je comprends mieux le système : lorsqu’on appuie 5 secondes sur le bouton du switch (il sert aussi à enclencher/déclencher à la main), le WiFi interne du module se met en mode AP et présente une identification WiFi ; l’Apps connecte le WiFi du mobile sur le switch en mode AP, lui configure quelque chose, puis retourne sur la connexion WiFi « normale » et finalise la connexion sur le serveur. Il faut évidemment que ceci joue dans un certain laps de temps. Il suffit que le switch soit passé en mode client ; ou que le mobile n’ait pas eu le temps de tout faire pour « programmer » l’appairage et c’est à refaire.

Après quelques combats insoutenables, l’appairage est fait. Une fois le switch connecté, un bouton (renommable) se présente, et permet de le commuter.

Un coup d’œil sur la liste des appareils connectés sur le routeur montre ceci :

06-dhcp

Le genre de chip WiFi doit être le même pour la lampe Xiaomi et le switch que nous testons présentement. Intéressant, ce « ESP » au début de l’identification… Notez aussi le « computer » dont l’adresse finit par 107 : c’est mon portable Windows 10, qui demande un nombre impressionnant d’adresses IPV6. Les « android » sont le mobile de ma femme et le mien.

Essai de timer

L’Apps propose une tempo pour enclencher/déclencher ; ainsi qu’un maximum 8 timers programmables à date fixe ou selon les jours de la semaine. La question est : que se passe-t-il si je programme un timer et que mon mobile se déconnecte du WiFi ?

Le test est effectué, en programmant un déclenchement dans 2 minutes, puis en mettant le mobile en mode « avion »… Test passé avec succès. Ceci signifie que c’est bien par le serveur distant que les ordres sont stockés et effectués. Ou que la puce du switch maintient l’heure et une liste d’enclenchement déclenchement ?

Essai via la connexion GSM

La connexion WIFI du mobile est coupée. Comment va réagir le switch, si l’Apps n’est plus en connexion WiFi locale ?

Test : c’est fonctionnel. Donc, là on est sûr que ça passe bien par un serveur distant. Ou en bonne partie.

Essai avec réseau local, sans Internet

Est-ce que la liaison locale ne suffit pas pour commander en On-Off ? Pour en voir le cœur net, je coupe la liaison Internet du routeur ; le téléphone fixe de la maison devient hors service… Malgré la liaison WiFi active, par lequel tout le potentiel local subsiste, pas moyen d’actionner le switch. La preuve est bien là : les ordres de commutation instantanés passent aussi via le serveur chinois.

04-ewelink-device-offline

Réponse aux sollicitations

Passant par un serveur distant, on peut s’attendre à quelque délai. Toutefois, si la connexion et établie, c’est-à-dire que l’application est en avant-plan et que le réseau est stable, le délai entre le moment où l’on clique sur le bouton et l’activation du relais ne dépasse pas les 200 ms. A l’oreille bien sûr, je n’ai pas mis en place des conditions de labo pour cette mesure ! Et à l’oreille, parce que c’est bien un relais électromécanique qui clique dans le switch, et non un triac qui commute silencieusement.

 

Un ping sur www.ewelink.com montre une réponse de 27 ms. C’est peu. Comment est-ce possible ? Un coup d’œil sur le site répond à la question : ils utilisent le service « amazone cloud AWS » pour ce faire. Et via ce dominateur de la WebSphere qu’est Amazone, dont les serveurs sont distribués partout sur la planète. C’est aussi pourquoi l’Apps demande la localisation à l’inscription…

Essais de coupure d’alimentation du switch

Dans un tel cas, le switch doit reprendre la connexion WiFI avec le routeur/AP. Pour vérifier son temps de reconnexion, je lance un ping -t sur son adresse. Et lui coupe le jus.

Test : j’allume la barrette sur laquelle le switch est connecté et enclenche le chrono, puis observe la fenêtre des pings… il reprend la ligne en 5 secondes ! Si tous les appareils connectés en faisaient autant…

Conclusion provisoire

Le switch remplit sa fonction. Il est à dispo, reconnecté et reconnectable, rapide. L’état est à jour sur l’Apps, même en cas de changement manuel par le bouton. Les renommages, ajouts, ou encore du groupage (pas essayé avec 1 élément…) sont pratiques. Les fonctions de timers sont raisonnablement sûres.

On peut toutefois blâmer la difficulté à appairer les devices. Pour un bricoleur/développeur, on attend de pourvoir utiliser en direct de tels éléments avec une API de sorte ; ce qui ne semble pas le cas. A moins de sortir l’artillerie lourde et d’espionner les flux TCP-IP, on ne saura pas quel est le protocole. C’est bien dommage.

Tout bouge et tout change, c’est à surveiller.

Yves Masur (1/2017)

Références:
lampe LED Xiaomi
Relais Sonoff

 

 

 

 

 

 

CNC GRBL

$
0
0

Les imprimantes 3D se sont démocratisées ces dernières années. Une grande partie des modèles « amateurs » sont basées sur des cartes à micro contrôleur Arduino. Les firmewares utilisés interprètent un protocole de commande très proche du code G utilisé pour les machines d’usinage à commandes numériques appelées CNC.

Il n’y a donc qu’un pas à faire pour utiliser ce même hardware et pouvoir piloter une machine 3 axes et en faire une fraiseuse numérique par exemple ou une graveuse (découpeuse) laser.

C’est ce qui a été développé par la communauté et donné naissance au firmware GRBL. J’utilise depuis une année la version 0.9j et maintenant la version 1.1 est disponible pour des cartes à micro contrôleur Atmega328 ou Atmega2560 type Arduino.

Comme pour les imprimantes 3D il faut encore ajouter des contrôleurs de moteurs. Le hardware utilisé est le même que pour les imprimantes 3D. Pour les cartes Mega2560, j’ai utilisé la fameuse RAMPS 1.4. Pour la fraiseuse, j’utilise la plus petite carte CNC shield, voir ci-dessous.

CNC-V3-1

Il faut encore de la mécanique 3 axes. Pour ma part j’ai hésité longtemps à fabriquer mon propre assemblage, mais lorque j’ai vu le prix du système ci-dessous, j’en ai fait l’acquisition; il s’agit du modèle Sable CNC 2015 . J’en suis très content. On trouve également la broche avec un moteur DC.

CNC

Voilà, le hardware est assemblé, le câblage réalisé, il faut encore un logiciel pour envoyer les commandes « code G » pour piloter la machine. Pour cela j’ai utilisé Universal G code Sender, un logiciel simple mais efficace; il y a aussi cette version dite “classic”.

GCodeSender version PlateForm
GCodeSender version PlateForm

Plus tard, une fois bien familiarisé avec la machine, j’ai utilisé le logiciel bCNC, un logiciel bien abouti. Il permet également de calibrer le plan XY par palpage matriciel. Etant écrit en Python, je vous conseille d’installer la version 2.7 de Python ainsi que le plugin seriel pour Python.

bCNC, un magnifique logiciel !
bCNC, un magnifique logiciel !

Ce logiciel permet de fraiser par contourage des circuits imprimés. Je l’utilise avec des fichiers importés directement depuis le logiciel CAO de Target.

En conclusion, je n’ai pas encore tout découvert, mais cette évolution des CNC’s pour des amateurs devient très intéressante. Merci à Gaël pour ses précieux essais.

 

Laurent Francey (1/2017)

Fabrication de prototypes PCB mon marché, finition avec une CNC

$
0
0

Nous avons récemment découvert que le shop en ligne « Seeedstudio » offrait la fabrication de circuits imprimés aux dimensions de 100x100mm pour la somme modique de $9.90 pour 10 circuits (19.80 avec livraison). Il était donc intéressant de passer commande d’un circuit que je n’aurais pas fabriqué sans avoir un prix très attractif.

Dessin et commande du circuit :

Je me lance donc dans un dessin avec le logiciel CAO Eagle (Autodesk), la version limitée à 100x180mm est gratuite pour les utilisations non-professionnelles.

  

Mon projet est un interrupteur basé sur un module Wifi ESP8266, un relai et un module 230V/5V (schéma).

Circuit 2 couches, je vais dessiner des fentes pour mettre le circuit aux normes concernant la tension 230V.

Avant d’envoyer les fichiers au fabricant, je vérifie le contenu avec « gerbv », un logiciel gratuit qui permet de visualiser les couches du circuit.

Le site de commande en ligne de Seeedstudio et d’autres fabricants tels que Eurocircuits permettent également d’effectuer cette vérification en ligne avant de passer la commande, ce qui est très pratique et évite des surprises. Une fois satisfait du contrôle visuel, j’envoie les fichiers gerber (zip) au fabriquant.

Livraison:

Il ne reste plus qu’à attendre la livraison. Attente un peu longue (4 semaines), mais finalement les 10 circuits arrivent et sont d’un état très acceptable.

2017-04-13 11.53.26.jpg

A première vue tout va pour le mieux, les circuits sont propres et correspondent exactement à mon attente. Il ne me reste plus qu’à découper les circuits au format circulaire et avec des entailles pour isoler les pistes 230V. Faire effectuer cette opération aurait juste fait exploser le prix de l’offre, raison pour laquelle je décide d’effectuer cette étape dans mon petit atelier. Vu le nombre de circuits, je vais utiliser ma petite CNC.

Découpe du circuit :

Pour la découpe sur la CNC , j’ai dessiné les contours et fentes dans la couche CAM du logiciel Eagle. Une fonction d’Eagle permet de convertir cette information en format dxf. Ces données doivent maintenant être transformées en commandes pour ma machine (CNC), ceci se fera au moyen d’un logiciel CAO mécanique.

Autodesk a publié dernièrement le nouveau logiciel « Fusion 360 ». Ce logiciel permet la création d’objets 2D et 3D et la génération des fichiers CAM pour une CNC ou pour imprimantes 3D. J’utilisais auparavant divers logiciels, chacun dans un but bien précis, chacun avec des commandes spécifiques ce qui compliquait passablement le travail. D’après la description de « Fusion 360 » je dois pouvoir remplacer tous ces logiciels par ce dernier (fraisage, contournage, perçage) ce qui devrait me simplifier passablement le travail dans l’avenir! Mon petit projet est donc idéal pour apprendre à utiliser et à tester « Fusion 360 ».

Fusion 360:  

La prise en main est plutôt facile si l’on a déjà utilisé des outils CAO auparavant. L’équipe d’Autodesk nous fournis une aide précieuse en tutoriels « YouTube » et en articles en ligne. Le logiciel contient divers modes, l’un pour dessiner et modéliser, l’autre pour générer les données pour la machine qui effectuera le travail (CNC ou autre).

En mode Modèle, j’importe les données de la CAO Eagle au moyen du fichier « dxf » que j’attribue à l’axe Z. De cette façon, le plan du dessin est perpendiculaire à l’axe de travail des outils. Il faut maintenant définir la surface exacte à découper et la largeur des ouvertures (fentes) dans le circuit (Je désire contourner le circuit avec une forme circulaire qui rentre dans le boitier d’un interrupteur mural et de tailler des fentes d’isolation pour la partie courant fort).

Vue du logiciel Fusion 360 et des données du fichier «dxf» importées. Il ne reste qu’à ajuster les éléments graphiques.

Remarque : Avant d’envoyer les fichiers, j’ai ajouté 4 trous qui me permet de centrer le circuit sur ma CNC, en fait il n’en faut que 2, un premier trou comme point de référence (zéro) et un deuxième pour l’orientation dans l’axe x/y. Ces 2 trous sont visibles sur l’image ci-dessus.

Opérations en mode 2D

  1. La fonction « Slot » me permet de donner une largeur aux fentes à fraiser (image de gauche). Je choisis une largeur de 1.5mm correspondant à un outil en stock et je suis les lignes déjà présentes.
  2. Il me reste à ajuster les contours et à corriger les lignes non contigües (image de droite), le travail en mode dessin 2D est terminé.

 

La fonction “extrusion” me permet de donner du volume à mon circuit, j’obtiens ainsi le modèle exact de la forme à découper.

   

A gauche: Les traits continus permettent de délimiter automatiquement la surface.

A droite: Après extrusion on voit le volume de la pièce. La surface supérieure du circuit est définie comme niveau zéro (Z=0). Avec un Z>0 on éloigne l’outil de la pièce, avec un  Z négatif, on taille dans la pièce.

Étapes de fabrication:

Je prévois la découpe en 3 étapes :

  1. Perçage de 2 trous de référence (3mm) dans la plaque martyre de la CNC: (sans circuit), ces trous dans le bois solidaire à la machine me permettent d’y planter 2 tiges de 3mm et d’aligner chaque circuit.
  2. Avec l’aide des 2 tiges, fixer un circuit sur le martyre (avec du ruban autocollant double face)
  3. Lancer le programmer de découpe (J’utilise la même largeur d’outil pour les fentes et pour le contournage, ce qui m’évite de changer d’outils à chaque circuit).
  4. Je répète l’opération 2 et 3 pour les circuits suivants.

Suite à la création du modèle 3d (dessin ci-dessus) et à la définition de chaque étape de fabrication, je bascule en mode CAM dans Fusion 360.

Mode CAM dans Fusion : Dans ce mode, il existe de multitudes de possibilités de générer des donnes CAM

Il me faut :

  1. Drill (perçage)
  2. Slot (fentes)
  3. Contour (détourage de la pièce)

Les données pour le perçage iront dans un premier fichier utilisé qu’une seule fois, les données pour l’étape 2et 3 iront dans un 2ème fichier utilisé pour chaque circuit. Le logiciel permet de visualiser le déplacement de l’outil (simulation) ce qui me rend plus confiant quand à l’exécution du travail.

   

Affichage et simulation du perçage et du découpage. On peut distinguer en grisé la tête de la fraisage et l’outil qui sont définis dans les paramètres outils de “Fusion”.

 

Le logiciel Fusion 360 contient déjà toutes les fonctions pour la génération du fichier à charger sur la machine, entre autres la définition d’un magasin d’outils et les paramètres pour diverses machines CNC, cette phase est la plus difficile à réaliser vu le nombre de paramètres et le vocabulaire utilisé qui m’est inconnu. Sur ma petite CNC, j’utilise le logiciel « MACH3 ». Ce logiciel faisant partie des interfaces supportées par « Fusion » je ne suis donc pas trop inquiet.

Exemple de fichier CNC, on y reconnait les commandes (G-Code) qui vont piloter la CNC.

 

Il me faudra plusieurs itérations entre la CAO et la machine avant de lancer la première découpe. Les premiers essais se font sans outils et sans matière. A ma surprise, les déplacements se font correctement, il n’y a qu’a modifier le paramètre pour la vitesse de déplacement horizontale de l’outil et à enlever un mystérieux code G28 qui semble envoyer la CNC hors limites en fin de programme. L’apprentissage de cette dernière étape me sera utile pour d’autres projets.

Travail sur la machine (CNC).

2017-04-15 14.13.36.jpg     2017-04-15 14.14.13.jpg

  1. Perçage des trous de référence                    2. Ajustement du circuit sur la machine (martyre)

2017-04-15 13.47.17.jpg   2017-04-15 14.18.56.jpg

3. Circuit après découpe.                                                                       4. Circuit nettoyé

Suit le nettoyage, enlever les bavures et les restes de ruban double face.

J’ai finalement traversé toute la chaine des outils depuis le dessin jusque à la pièce découpée.

2017-04-14 00.01.56.jpg

Dernière étape, souder les composants et mise sous tension.
Tout a fonctionné du premier coup !!!

Rolf Ziegler (4/2017)

Router Internet en NAT avec un PC

$
0
0

Besoin

La configuration est la suivante : vous avez un PC portable (ou pas…) qui est connecté en Wi-Fi à Internet, et vous voulez router l’internet sur sa prise LAN sur laquelle peuvent être connectés différents hardwares, mais qui n’ont, eux, pas de Wi-Fi. Ou une connexion Wi-Fi est obtenue avec un code, et vous avez besoin de la partager.  Les différentes possibilités de partage sont décrites sur ce blog : https://anwaarullah.wordpress.com/2013/08/12/sharing-Wi-Fi-internet-connection-with-raspberry-pi-through-lanethernet-headless-mode/

Le matériel minimum suivant est requis :

  • Un routeur Wi-Fi, connecté sur l’Internet
  • PC avec 2 connexions LAN : Wi-Fi et RJ45 ; l’OS Win10 (Win7 aussi testé)
  • Un câble LAN croisé (rouge)
  • Un « device » à connecter, par exemple un RaspBerry Pi 2

Bien entendu, le « device » peut être autre : Arduino, second PC, etc.

Bref, un schéma est plus simple pour l’expliquer.


Le PC est connecté sur le routeur internet par son Wi-Fi, et le RaspBerry Pi par un câble croisé (câble rouge) à la prise LAN du PC. Bien entendu, un petit switch qui s’occupe du croisement automatiquement irait très bien aussi.

Partager la connexion

Il y a 3 options (ou peut être plus) pour établir la liaison :

  • Le Network Translation Adress, ou NAT
  • Le pont – transparence de connexion
  • Le partage de la connexion

Activer le NAT

On va utiliser la première, car vu du routeur Wi-Fi, seule l’adresse du PC est distribuée. Les autres options demandent au routeur Wi-Fi de distribuer en DHCP une adresse supplémentaire pour le RaspBerry.

Le NAT s’occupe de modifier les paquets IP pour changer l’adresse de la carte A en adresses de la carte B. C’est utilisé pour créer des sous-réseaux, et grouper une série de machines avec une seule adresse sur l’Internet. Voir : https://fr.wikipedia.org/wiki/Network_address_translation

Réglage des cartes LAN

Partage du WI-FI

  • Clic Droit sur icone Windows de la barre des tâche-> Connexions réseau
  • Clic droit sur le Wi-Fi -> Propriétés
  • Onglet « partage »
  • Cocher « Autoriser… » et décocher la seconde option si besoin

Si vous avez plus d’une carte, il faut choisir laquelle sera utilisée pour ce partage:

Après quelques secondes, la carte Ethernet obtient la configuration suivante, à vérifier en ligne de commande par ipconfig :

Ou encore en ouvrant la carte Ethernet et en lisant ses propriétés IPV4. Au départ, les champs sont vides : ils sont remplis par le partage de connexion. La carte prend l’adresse 192.168.137.1/24. L’adresse de la passerelle reste vide, ainsi que les DNS.

Contrôle de la connexion NAT

  • Connecter le RaspBerry sur le LAN du PC, à savoir la carte Ethernet
  • L’enclencher, pour qu’il prenne une adresse IP

Si le Raspberry était déjà allumé, il aura pris une adresse bidon, genre 169.x.y.z et un masque réseau 255.0.0.0. On peut redémarrer les services réseau avec les commandes Linux:

sudo ifdown -a

sudo ifup -a

  • Vérifier l’adresse prise par : ifconfig et la noter pour la suite
  • Vérifier l’accès à Internet avec : ping ch.ch (ou autre site répondant au ping)

Limites de la connexion NAT avec Win10

L’adressage du sous réseau ne peut pas être choisi ; c’est Windows qui décide. Selon les essais, l’adresse de base est toujours 192.168.137.1, avec un réseau de classe C, à savoir 253 adresses à disposition, ce qui suffit amplement.

Avec un laptop qui se met en veille… le partage disparait ! La carte Ethernet (du PC donc) reprend une adresse du genre : 169.254.245.127, et un masque 255.255.0.0. Remettre la coche du partage sur la carte Wi-Fi relance la fonction NAT ; et si cela n’a pas duré trop longtemps, le « device » connecté aura gardé son adresse et reprend sa liaison. On peut bien sûr tester avec la commande ping ch.ch pour en vérifier la fonctionnalité.

Yves Masur (4/2017)


Attention aux erreurs de dédouanement ! A méditer !!

$
0
0

 

Le 12 mai, je commande un lot de PCB (design maison) chez Seeedstudio qui offre à un prix très intéressant 10 circuits électroniques 2 couches (100x100mm) pour la modique somme de CHF 12.50 (version sans plomb) . Je me décide de passer commande avec l’option livraison DHL pour un surcout de CHF 22.80.

Suite à l’acceptation de la commande et de la vérification des fichiers GERBER par le fabriquant (le suivi peut se faire en ligne) le 23 mai, je reçois un message que ma commande est envoyée par DHL. Le suivi d’envoi montre que la déclaration en douane se fait par DHL en avance et le 26 mai je reçois mes circuits moins de 3heures après l’arrivée à Genève. Tout me semble en ordre. La facture jointe par Seeedstudio, importante pour la suite de l’histoire indique : Valeur PCB  US$12:90 Freight Cost  US$ 23.56, total $ 36.46. Je crois l’histoire de l’envoi terminé ce qui ne sera pas le cas.

Le 2 juin je reçois de DHL une facture pour les frais de TVA et de dédouanement de CHF 28.- qui se compose de CHF 6.- de TVA, provision pour avance de CHF 3.- et  CHF 19.- de frais de gestion. Les taux sont correct mais je me demande comment il est possible que je sois taxé vu que ma commande n’excède pas le montant critique (CHF 62.-). Ma commande devrait être franc de douane comme toutes les commandes de petit montants que j’ai passé en Chine par le passé. La facture jointe correspondant bien à ma commande, je vérifie la décision de taxation et je constate qu’en plus de la valeur de ma commande, le déclarant DHL ou notre cher office des douanes a ajouté CHF 39.- de transport (FRACHT). Enervé j’envoie de suite un message (courriel) à DHL (vatquery) et en parallèle à la FRC dont je suis membre. Les 2 institutions confirment la réception de mon message par courriel automatique mais après c’est le silence !

5 jours plus tard, impatient, je me décide de vérifier qui est à la tête de DHL Suisse et j’envoie un courriel aux personnes en charge (on les trouve facilement sur la page DHL en ligne). A ma grande surprise, je reçois le lendemain matin déjà une réponse du service de dédouanement de DHL  s’excusant de l’erreur qui a été faite et m’annonçant que la facture DHL est annulée.

A retenir : Réclamer si vous avez l’impression d’une erreur, insister si vous ne recevez pas de réponse et ceci même si le montant n’est pas important. Ceci afin d’éviter que les erreurs ne deviennent la règle ce  qui pourrait permettre à certaines entreprises d’arrondir leurs fins de mois !

Rem : La FRC ne m’a toujours pas répondu !

Rolf Ziegler (6/2017)

Petit rappel des différences de processeurs en programmation de C.

$
0
0
Je travaille depuis quelques semaines sur mon interface/télécommande pour mon enregistreur Revox B77. J’ai presque terminé mon interface WEB au niveau fonctionnalités (j’ai appris à utiliser HTML, JS, CSS, WEBSOCKETS, JSON dans tous les sens) la télécommande fonctionne presque mais j’aimerais ajouter des délais pour retarder ou avancer le freinage des bandes du B77. Je crée donc une page web supplémentaire avec les délais, j’utilise pour ceci la fonction HTML « input type=nombres ». Je veux lire un nombre entier (de -100 à  +100) à mémoriser dans l’EEPROM de mon ESP8266. Je déclare les variables pour le stockage intermédiaire en « int » et les premiers essais sont concluants, les nombres sont bien mémorisés (Serial.print… m’indique le bon fonctionnement).

 

<Interfaces après correction>

Surprise, après Reset du module ESP, les nombres restitués s’affichent juste pour les nombres positifs, mais faux pour les nombres négatifs ! J’ai l’impression que “C” utilise un « unsigned int » pour restituer les nombres alors que je les ai bien déclarés en « int ». L’effet est qu’à la place de m’afficher par exemple « -100 » il m’affiche « 65436 » Damned!
Après 4h de tests et une revue de chaque ligne de code, il est passé 2h du matin, quand je me dis que « int » n’est peut-être pas la bonne définition !!!! Processeur 32 bits => « int » correspond à « int32_t » et non pas « int16_t » ce qui expliquerait le comportement ! Je remplace les déclarations des variables en int16_t (-32767 à +32767) et tout rentre dans l’ordre ! je peux enfin aller me coucher ! Mon code est prêt pour un nouveau test pratique !!!
Super la programmation, mais pleine d’embûches !!!

 

Rolf Ziegler 7/2017
Présentation du projet au printemps 2018

Nouveaux ateliers au Microclub !

$
0
0

Chers membres et amis !

Nous avons le plaisir de vous proposer une série d’ateliers qui auront lieu selon vos réponses entre octobre et début décembre 2017 à l’EPFL. Pour nous aider dans l’organisation nous vous prions de nous communiquer vos intérêts en remplissant ce formulaire.

Les ateliers proposés sont les suivants :
● Atelier Arduino-C pour débutants
● Atelier Arduino – Debugging – Scheduling
● Atelier RaspBerry Pi
● Atelier HTML embarqué
● Atelier Neo-Pixels

 

Donnez nous votre avis sur vos intérêts et priorités !

Les ateliers sont ouverts au non-membres !

Lien vers le sondage

Le comité

Quel est le nom du programme dans cette vieille carte?

$
0
0

Vous retrouvez une carte Arduino sur un vieux montage que vous voulez améliorer, ou vous vous souvenez qu’il y avait des routines intéressantes. Diable, quel est le nom de ce programme, j’en ai fait des tas à cette époque et depuis?

Avec les PICs et le PicKit2, c’était facile. Avec Arduino, je cherchais la solution depuis longtemps; Jean-Marc Paratte l’a trouvée et avec l’UART en mode minimal, cela coûte 180 bytes en flash, 2 lignes à ajouter dans votre programme (même pas le nom!), et 23 lignes dans un .h astucieux.
Vous connectez la carte, vérifiez le COM port, cliquez sur le teminal série. Miracle, le nom du programme, la date et l’heure de création est affichée!
Sous pouvez aussi afficher sur une tablette si vous avez un adaptateur UART-USB.
Détails sous http://www.didel.com/FileIdSer.pdf

JDN (24.10.2017)

Joyeux Noël et Bonne année

Viewing all 121 articles
Browse latest View live




Latest Images