Mini traceur 2D

Il faudra qu’un jour je parle de ça, avant que j’oublie complément…

Publié dans Non classé | Laisser un commentaire

Pluviomètre WH0531 (à finir…)

Après avoir bien joué avec le pluviométre1… , j’ai acheté ce WH0531
et je ne le regrette pas… pour environ 20 euros il fait le boulot…

Le problème est que le capteur ne communique qu’avec l’afficheur et moi je souhaitais récupérer les données pour enrichir ma BD…
En fouillant un peu je suis tombé sur ce site:
https://lucsmall.com/2012/04/27/weather-station-hacking-part-1/

et c’était parti pour une passerelle RF433-Internet adaptée à ce pluviomètre..

Détails à faire…(arduino+recepteur 433+module Wifi+code)

Résultat:  Il intercepte les paquets destinés à l’afficheur et les envoie sur ma BD internet consultable içi,  la présentation graphique reste à faire…

Publié dans Non classé | Laisser un commentaire

Pluviomètre 1

Il y a longtemps que j’y pensais…Il est enfin la…

Grace à ma dernière acquisition et à ThingIverse

j’ai pu réalisé ceci

en ajoutant puis

puis encore et et …

 

 

J’ai obtenu  

qui donne cela:

(un tick c’est environ 1 mm de pluie, mais je vais changer(augmenter) l’entonnoir…)

Publié dans Non classé | Laisser un commentaire

Sniffer RF433 MHz et télécommandes 433MHz (à finir…)

J’avais essayé il y a déjà longtemps les émetteurs et le récepteurs RF433 des sites chinois avec l’Arduino , et j’avais été enthousiasmé par la facilité de cloner les télécommandes bon marché eu utilisant la libraire RC-Switch…

par exemple :
http://anothermaker.xyz/iot/domotique-arduino-nano-raspberry-pi-partie1-rf433mhz-4995

Mais j’ai été très vite déçu, en effet de nombreuses télécommandes n’étaient pas identifiées pas ce moyen…( j’apprends ce jour que cette bibliothèque à évolué avec 29 protocoles supplémentaires…., dont les DiO…, super…on continue quand même)

J’ai donc entrepris de me passer de cette Library pourtant excellente…
Pour cela j’ai revu  le sniffer433 en utilisant la numérisation rapide….

il envoie les données capturées à un moniteur graphique écrit avec Delphi, celui de l’arduino étant limité à 500 données…

Pour le bouton on d’une télécommande, le signal est le suivant:

On y voit des barres fines et des barres plus épaisses séparées par des blancs, on suggère rapidement des 0 et des 1, soit « 0001010100010101010101110 »
En fait la dernière barre fine est le début du signal….suivi d’un grand blanc ce qui constitue l’entête de synchronisation

On peut obtenir davantage de détails en jouant sue le paramètre ‘factor’ de la procédure a2dSetup (configuration du convertisseur analogique numérique) avec un paramètre à 4 on obtient une donnée toutes les 16 µs…(environ…)

Le moniteur graphique permet de mesurer les périodes…

Ici en moyenne  une mesure toutes les 9,54µs (factor mis à 3), 8 périodes (bits) 1086 mesures soit un bit 9,54*1086/8=1295 µs et donc un pulse (état H ou b) à 323,75 µs

L’analyse complète donne:
1-Entete de 32 ‘pulses’: Hbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
2-Bit 0: 4 pulses Hbbb
3-Bit 1: 4 pulses HHHb
4-durée d’un état (pulse): 323 µs

On peut ainsi simuler la télécommande physique par un programme:

Telecommande On/Off

PS: pour les télécommande DiO, une solution est ici:
http://charleslabs.fr/fr/project-Contrôle+de+prises+DiO+avec+Arduino
marche très bien
Finalement j’utilise RC-Switch avec tous ses protocoles….

 

Publié dans Non classé | Laisser un commentaire

ESP8266 Arduino Killer

Très attendue cette commande est enfin arrivée avec les esp8266 et surtout sa mise en œuvre Wemos:mini_v2

et depuis j’utilise beaucoup moins mes arduinos….
La station météo ressemble désormais à ça :1465738141742-img_20160612_133556

C’est quand même plus simple….plus besoin d’Android et ses liaisons BlueTooth et Wifi, l’esp transmettant directement les données sur mon site

le code:

 

les données sont stockées dans une base mysql par le script .php:

 

les résultats ici: daniel974/meteo2/

Publié dans Non classé | Laisser un commentaire

Mini station météo

Comme beaucoup qui jouent avec une Arduino, j’ai eu envie d’avoir ma station météo, température, pression, humidité
pas de pluviomètre ni d’anémomètre, ces capteurs étant un peu chers à mon gout…

Je voulais en outre publier les mesures sur ce site:
Mes mesures météo

line-006.php

La chaine est donc la suivante:

Capteurs–>Arduino–>…BT…–>Android–>…WIFI…–>MaBox–>..Internet…–>Monsite

On doit pouvoir faire plus simple…mais c’est intéressant!…

J’ai tout d’abord essayé le capteur LM35FE0DHQ4HV2AIB01.MEDIUM

Très facile à mettre en œuvre, et nombreux tutos par exemple
mais il ne fait que la température, j’ai finalement opté pour un DS18B20 et un BMP085 avant de passer au BME280 en commande…bme280

Restait à publier….
Ma solution a été de relier l’Arduino à un viel Android  en BlueTooth(je ne suis pas sur que mon Samsung Galaxy S apprécie…) Celui-ci envoie en WIFI les mesures sur mon site via ma box !… l’Arduino devra en plus gérer la charge de l’Android, de façon à ce qu’on puisse laisser cet ensemble dans un coin et ne plus s’en occuper…

L’application Android est fortement inspirée de:
1- BlueTooth-spp-Terminal pour la liaison BlueTooth Arduino>->Android
2- Android UpLoad pour le transfert des données Android->MonSite
3- BatteryLevel pour la gestion de la charge de l’Android

Voici l’installation:P1000974
j’ai mis tout ça dans une porte fenêtre peu utilisée, on voit le boitier de l’Arduino, l’Android en liaison USB pour la charge et Bluetooth pour les mesures,  l’alimentation et enfin le fil de la sonde DS18B20qui est placée à l’extérieur,P1000970
la capteur BMP035 étant dans le boitier Arduino. MontageVite un couvercle, ça fait peur…

Montage:StationMeteoA venir: codes….

J’ai depuis découvert l’ESP8266 et notamment cet articlesensors_proto
Ça à l’air bien…j’ai donc commandé ce composant et ai hâte de le mettre en œuvre…

Publié dans Non classé | Laisser un commentaire

Oscilloscopes…

J’ai commandé un ds0 138dso138_08a

En attendant sa livraison, j’ai essayé d’imiter celui-la OscilloAndroid décrit sur http://projectproto.blogspot.com/2010/09/android-bluetooth-oscilloscope.html

Pour cela j’ai dépoussièré ma carte IOIO et modifié l’application IOIOSimpleApp, et j’ai obtenu ce truc …MyAndroOscillo  le signal est fourni par le moteur de ma plaque IOIO.
J’ai utilisé la même classe que le précédent pour l’affichage, mais l’échantillonnage de la carte IOIO est limité à 1 kSa/s, c’est peu…

Je me suis alors tourné vers les applis PC et essayé XOcillo et Scopino qui utilisent un arduino

scopino6 XOscilloAndMyGBF

Super les deux….

La manip complète….(GBF—>Echantillonneur—->Grapheur)
(70s GBF, Arduino, PC)

XOscilloAndMyGBF5

Publié dans Non classé | Laisser un commentaire

Dialogue PC <--> EV3

L’EV3 sait envoyer et recevoir des messages, on peut donc envisager un dialogue PC-EV3…
Le protocole est publié iciev3combluetooth
Je me suis donc lancé dans un dialogue utilisant BlueTooth et une application Delphi
Il faut au préalable établir une liaison entre le PC ET L’EV3, j’ai privilégié une connexion Bluetooth, en suivant par exemple ce tuto.

Suite à cette connexion on obtient un port COM supplémentaire qui permet de communiquer avec l’EV3

Il est alors l’heure de lancer son Delphi avec sa bibliothèque TComPort….
Celle-ci est fournie avec un exemple, que j’ai légèrement modifié pour qu’il affiche ce qu’il reçoit en hexadécimal afin de découvrir le protocolereceptionev3On peut alors décortiquer les bytes reçus

Message texte

exemple du message texte de titre ‘envoiNombre’ et de valeur ‘1’:

15 00 01 00 81 9E 0C 65 6E 76 6F 69 4E 6F 6D 62 72 65 00 02 00 31 00
___   ____   _   _   _  __________________________  ___  ____
B1 B2: 15 00 , nombres d’octets du message sans ces deux la
B3 B4: 01 00 // Message counter, Little Endian\n, ne semblent pas signifiants ici….
B5: 81  // System command, reply not required
B6: 9E // Write to mailbox
B7: longueur du titre du message
B8 B9….B18: titre du message, ici ‘envoiNombre’
B19: 00 zéro terminal du titre
B20 B21: longueur de la la valeur  texte avec son zéro terminal propre aux valeurs textes
B22 B23: valeur avec son zéro terminal, ici le nombre 1 en format texte

Il a alors été facile de construire un message en émission, par exemple:
Envoi de:test 1
0E 00 01 00 81 9E 05 74 65 73 74 00 02 00 31 00
B1 B2: nombres d’octets à envoyer sans ces deux la
B3 B4: 01 00
B5: 81
B6: 9EB7: longueur du titre avec son zéro terminal
B8 B9…B11: Titre ici ‘test’
B12: 0, zéro terminal
B13 B14: longueur de la valeur avec son zéro
B15 B16: la valeur ici 1 en texte suivant du zéro terminal

On a donc pu mettre à jour la procédure d’envoi de texte….

Messages numériques

pour les nombres, ceux-ci sont transmis sur 32 bits à la norme IEEE754
seuls les octets à partir du zéro terminal du titre changent, les 4 octets correspondent au type single de Pascal, par exemple:
1 est stocké par 00 00 80 3F
2                          00 00 00 40
64                        00 00 80 42
1,123456            68 CD 8F 3F

etc….

les octets de longueur de la valeur sont fixes: 04 00,
il reste à déterminer les octets de valeur,
en émission, par exemple:
Begin
vf:=StrToFloat(EditValeur.Text);                          //vf valeur du single
pvf:=@vf;                                                                    // pointeur de byte
for i:=1 to 4 do Begin bv[i]:=pvf^;inc(pvf); end;// copy des octets dans le buffer
lv:=4;                                                                            // la longueur de la valeur
End;

en réception:
var b:QuatreOctets; // array[1..4]of byte;
v:single absolute b; // v et b occupent le même espace mémoire….
i:integer;
Begin
for i:=1 to 4 do b[i]:=ord(sv[i]);       //sv String Valeur
Result:=’, Nombre:’+FloatToStr(v);
End

Reste à régler le cas des chaines de 4 octets….

Les valeurs logiques

sont beaucoup plus simples, longueur 1, valeur 00 ou 01 selon False ou True

La boucle d’émission sur l’EV3

emissionev3

Publié dans Non classé | Laisser un commentaire

Que choisir?

Me voila donc l’heureux possesseur d’un EV3, mais comment le programmer?

LEGO MindsStorms LabView, j’aime pas….

Lejos, en java avec Eclipse, bien , un peu lourd?

RobotC, bien mais payant

Ev3Dev, bien mais aussi lourd que Lejos

MonoBrick, trop lourd

EV3Basic, vraiment facile avec un bémol: pas de paramètres dans les procédures et fonctions…(Obligé de jouer avec la pile)
Semble un peu lent, à vérifier…

EV3-Basic_demo1

BricxCC: peut-être le meilleur choix, gratuit, multi-langages, plein de super outils (j’aime beaucoup la capture d’écran)
Vraiment bien…EV3Screen

Publié dans Non classé | Laisser un commentaire

Balancing Robot

Après avoir réalisé le solveur du cube Rubik, je suis tombé sur ce fabuleux robot:
http://robotsquare.com/2014/06/23/tutorial-building-balanc3r/BALANC3R_small-385x600-192x300
J’ai suivi le tuto et il a marché presque du premier coup, SUPER !…
Régalez-vous avec cette vidéo: https://youtube/P6b60zf1g18

et que dire de celui-là : https://www.youtube.com/watch?v=4Yv_vvUx0Zs

 GEANT!…

Je me suis régalé mais je n’ai rien compris et ce n’est pas avec LabView que j’allais tout comprendre, certes cet environnement est très beau mais je le trouve lourd et compliqué… moi qui suis de la vieille école je préfère un listing pascal ou java….
J’ai alors découvert Lejos et Ev3dev qui permettent une programmation traditionnelle qui me convient davantage, mais la plupart des exemples sont adaptés au NXT et j’ai un peu galéré pour les faire fonctionner sur mon EV3

En cherchant à faire fonctionner ce source https://gist.github.com/dlech/11098915 python sur ev3dev je suis tombé sur celui-la
https://github.com/david78k/EV3/blob/master/ev3-lejos/src/segoway/Segoway.java
qui a été assez facile a adapté au EV3 sous Lejos

Voila le résultat:

et le source java SegowayEV3
dont la lecture et quand même plus claire que le truc de Labview …

En fouillant un peu, j’ai trouvé sur ce forum ce source C GyroPode
qui a marché du premier coup … avec RobotC

Avec ce programme, le robot est d’une stabilité remarquable….

 

Pour tout comprendre: PID: article wikipédia

CorrecteurPIDclassique-300x126

Publié dans Uncategorized | Laisser un commentaire