Vendredi 19 août 2011 5 19 /08 /Août /2011 16:01

Beetlebot sur Instructables

Beetlebot V2 sur Instructables

 

Les beetlbot sont des mini robots extrèmement simples facile à réaliser et économiques.

 

Le principe est le suivant : il y a un moteur à gauche et un moteur à droite qui font avancer le robot. Le sens de rotation des moteurs est controlé par des micros interrupteurs de ce type : microswitch, placés à l'avant du beetlbot. Si le robot touche un obstacle sur la gauche, par exemple, le sens de rotation du moteur droit est inversé, le robot va donc tourner à droite puis repartir tout droit dès que la pression sur l'interrupteur se relache. C'est simple comme bonjour et ça marche très bien!

 

Pour en construire 1 il faut :

  • 2 microswitch
  • 2 moteurs electriques 1.5V
  • 1 boitier porte piles pour 2 piles AA 1.5V
  • Du fil electrique
  • Du fil de fer ou bien des trombones
  • Une petite bille en plastique ou en bois pour faire une roulette à l'arrière.
  • Eventuellement un interrupteur à glissière pour couper l'alimentation.

Comment se fait l'inversion de courant? Le switch va boucler un circuit soit sur la pile 1 soit sur la pile 2, et les 2 piles ont les poles inversés!

Par cnickelfr - Publié dans : Electronique et robots
Ecrire un commentaire - Voir les 0 commentaires
Lundi 2 mars 2009 1 02 /03 /Mars /2009 11:41
Il existe un module Python qui permet de manipuler les fichier csv (coma separated values, format de fichier lus par excel). Ce module s'appele "csv" !

Lire

>>>import csv

>>>#Creer un reader

>>>cr=csv.reader(file)


>>>#on obtient alors une liste de lignes

>>>for row in cr:

               print row[0] #affiche l'element '0' de chaque ligne


Ecrire

>>>cw=csv.writer(open("qq.txt","wb"))

>>>cw.writerow(["Nom","Adresse","Telephone","Fax","Courriel","Autres"])

  

Un peu plus proprement :

import csv


#lire

file = open("qq.txt","rb")
cr=csv.reader(file)
for row in cr:
  string=''
  for col in row :

    string=string+col+'\t'
print string

file.close()

#ecrire
file = open("qq.txt","wb")
cw=csv.writer(file)
cw.writerow(["Nom","Adresse","Telephone","Fax","Courriel","Autres"])
cw.writerow(["Patrick","Adresse","01 42 18 56 69","Fax","Courriel","Autres"])
cw.writerow(["Pierre","Adresse","Telephone","Fax","Courriel","Autres"])
file.close()

Trucs

Pour faciliter la manipulation on peut passer le reader à une liste. Sinon il n'est pas possible d'utiliser des indices directement sur le reader. Par exemple "reader[0][0]" marche pas.

>>> datalist = list(reader)

>>> print datalist [0][1]


 

Par cnickelfr - Publié dans : Python
Ecrire un commentaire - Voir les 1 commentaires
Lundi 2 mars 2009 1 02 /03 /Mars /2009 09:40
L'auto organisation est à l'origine de la vie... En effet, il existe de nombreux exemples dans lesquels quelques règles simples conduisent à des organisations complexes, c'est le cas par exemple des réactions chimiques dites de "réaction diffusion" qui peuvent conduire à la formation de distributions spatiales complexes et structurées les "Turing paterns". Il est vraissemblable que tout le développement embryonnaire soit régulé par des processus assez comparables.  C'est sans doute le cas aussi de la sturcture de l'univers en galaxies et amas de galaxies qui se forment principalement sous l'action de la gravitation.
C'est assez contre intuitif, mais si globalement l'entropie c'est à dire le désordre augmente, localement peuvent se former des structures organisées.

Les automates cellulaires sont des logiciel simulant des processus d'auto organisation. L'un des plus connus : le jeu de la vie, utilise une grille dont chaque élement est une cellule. Celle çi peut être soit "vivante" soit  "morte" et à chaque génération des régles simples permettent de calculer l'état de chaque cellule à la prochaine génération :
  • Si la cellule est vivante et qu'elle est entourée de 2 ou 3 voisines vivantes, elle survit à la prochaine génération.
  • Si la cellule est morte et qu'elle est entourée de 3 voisins vivants, elle devient vivante à la génération suivante.
  • Dans tous les autres cas la cellule sera morte à la génération suivantes.
Avec ces régles très simples, il est possible de voir apparaitre des élements organisés, comme par exemple des "gliders" (planeurs). Ces "entitées" composées de 5 cellules sont capables de se déplacer en ligne droite dans la grille. Elles peuvent apparaitre spontanément au bout de quelques génération sur une grille ensemencée aléatoirement (c'est à dire dont l'état vivant ou mort des cellules à été tiré au sort à le première génération).

Quelques liens dans wikipedia
Game of life (le jeu de la vie)
Cellular automatons (les automates cellulaires)

Un exemple rudimentaire avec Matlab ou Octave

Copier le code si dessous dans un fichier appelé lifegame.m et executez le à partir de Matlab ou de GNU Octave. J'ignore pourquoi exactement mais c'est beaucoup plus rapide dans matlab sous windows (à mon avis Octave n'est pas optimisé pour windows). On peut jouer sur la taille de la grille (row, col) sur la densité de cellules initiales (d) et sur le nombre de générations (tick). Si vous n'avez pas la patience d'attendre le nombre de générations suffisant, vous pouvez ensemencer directement des gliders preforme en dé-comentant les lignes de code correspondantes (en elevant le '%' au début de la ligne). Dans ce cas il vaut mieux baisser la densité initiale de cellules voir même la mettre à 0.


%______________________________________________
function lifegame()
%lifegame

tic();

%initialisation de la matrice et des parametres
row=100;
col=100;
%densite de cellules vivantes
d=0.05;
%nombre de generations
nticks=200;

%nombre total de cellules vivante initialement
n=row*col*d;
%initialisation de la matrice
M=zeros(row,col);
%initialisation de la matrice de generation n+1
Mnext=zeros(row,col);
%initialisation de la matrice qui sert à calculer les voisins
m=zeros(3,3);

%exemples d'automates
hacker=[0 1 0;0 0 1;1 1 1];
blinker=[1 1 1];

%Ensemencement initial de la matrice
for i=1:n
   M(ceil(rand*row),ceil(rand*col))=1;
end

%ajout eventuel de gliders preformes
%M(ceil(0.5*row)-1:ceil(0.5*row)+1,ceil(0.25*col)-1:ceil(0.25*col)+1)=hacker;
%M(ceil(0.25*row)-1:ceil(0.25*row)+1,ceil(0.25*col)-1:ceil(0.25*col)+1)=hacker;
%M(ceil(0.75*row)-1:ceil(0.75*row)+1,ceil(0.25*col)-1:ceil(0.25*col)+1)=hacker;

%initialisation de la table de couleurs
cmap=[1.0 1.0 1.0;0.0 0.0 1.0];
colormap(cmap);

%pour chaque generation
for tick=1:nticks
%afficher la matrice
imagesc(M);
drawnow ();

  %pour chaque position nombre de voisins
  for i=2:row-1
      for j=2:col-1
          m=M(i-1:i+1,j-1:j+1);
          voisin=sum(sum(m))-1;  %-1 car si le pixel central=1 ça fait 1 en plus dans la somme
          if ( (M(i,j)==1) && ((voisin==2)||(voisin==3)) )   %vivant et 2 ou 3 voisins
              Mnext(i,j)=1; %survie
          elseif ((M(i,j)==0) && (voisin==2))
%mort et 3 voisins : si le pixel est a 0 ça fait un voisin en moins à cause du -1 donc si il y a 3 voisins la valeur de la %variable 'voisins' et de 2 dans ce cas
              Mnext(i,j)=1; %naissance
          else
              Mnext(i,j)=0; %mort dans tous les autre cas
          end
      end
  end
  M=Mnext;

end

toc();
endfunction
%___________________________________________________
Par cnickelfr - Communauté : Science
Ecrire un commentaire - Voir les 0 commentaires
Dimanche 1 mars 2009 7 01 /03 /Mars /2009 21:49

Objectifs

Je n'ai ni le temps ni les compétences pour faire un vrai programme de pilotage mais petit à petit on peut espérer faire quelque chose qui fonctionne. Celà nous permettra d'en apprendre un peu plus sur python et sur les webcams.

Module VideoCapture

Il existe un module dans Python qui est très facile à utiliser et qui permet de controler les webcams.  Ci dessous quelques lignes de code pour decrire les.

>>> from VideoCapture import Device

>>> cam = Device()

 

#Enregistrer un snapshot

>>> cam.saveSnapshot('image.jpg')

#Afficher les fenetres de réglage de la webcam
>>> cam.displayCaptureFilterProperties()
>>> cam.displayCapturePinProperties()

Minitutoriel PIL





Par cnickelfr - Publié dans : Python
Ecrire un commentaire - Voir les 0 commentaires
Samedi 11 octobre 2008 6 11 /10 /Oct /2008 08:50
Les capteurs numériques (CCD et CMOS) utilisés dans les appareils photos numériques les webcam etc, sont en général assez sensible aux IR. A tel point qu'ils sont équipés d'un filtre bloquant les IR pour que le rendu des couleurs corresponde à la vsion humaine.
Pour obtenir une image en IR il faut donc commencer par enlever ce filtre. On obtient alors une image visible+IR. Il faut ensuite filtrer la lumière visible pour obtenir une image IR seul. Pour transformer votre vielle webcam en webcam IR il faut donc commencer par enlever ce filtre. Suivant les modèles, il peut être localisé devant le capteur ou encore au niveau de l'objectif. Ensuite il faut confectionner un filtre pour bloquer la lumière visible. Celui-ci peut être obtenuà partir d'un morceau de pellicule photo non exposé développée ou  encore à partir d'une disquette. C'est cette dernière solution que j'ai adopté. Il faut ouvrir la disquette à l'aide d'une paire de ciseau pour acceder au disque magnétique souple se trouvant à l'intérieur. On peut alors découper dans celui-ci un filtre que l'on placera à la place du filtre IR ou bien que l'on placera devant l'objectif.

Resultats obtenus :

Ce T-shirt est noir car il est teinté avec un colorant absorbant toutes les longeurs d'ondes de la lumière visible. En revanche, il n'absorbe pas particulièrement les IR, ceux ci sont réflechis et le T-shirt apparait avec la même luminosité que le reste.






































Idem pour ce verre de coca, il est transparent aux IR : il n'absorbe que la lumière visible.











































Sur ce paysage, on constate que la vegetation est très lumineuse. En effet les végétaux sont généralement verts car ils absorbent principalement le bleu et le rouge (le vert étant réfléchi). Ils n'absorbent pas (ou peu) les IR ceux ci sont réflechis et sur la prise de vu en IR, la végétation apparait claire.



























Conclusion :

Ce petit "bricolage" est très facile et très rapide à faire, et il fonctionne très bien. Ce que l'on obtient c'est une prise de vue de la lumière IR en réflectance. Ce n'est pas l'emmission d'IR que l'on obtient (comme sur une caméra "vision nocturne" ou en thermographie), la sensibilité est bien trop faible.

Par cnickelfr - Publié dans : Optique - Communauté : Apprendre en s'amusant
Ecrire un commentaire - Voir les 0 commentaires
Jeudi 21 août 2008 4 21 /08 /Août /2008 13:23
Voilà un site que j'aime bien avec plein de petites experiences à réaliser dans sa cuisine. Super avec les enfants : wikidebrouillard

Il y a aussi celui-ci dans le même genre, mais un peu plus pointu peut-être :
Scienceamusante

Et celui-ci mais en anglais :
instructables


Par cnickelfr - Publié dans : Sur le web - Communauté : Science & Avenir
Ecrire un commentaire - Voir les 1 commentaires
Mardi 19 août 2008 2 19 /08 /Août /2008 23:33
Le DSS est une banque de données d'imagerie accessible à tous sur internet. A partir des images monochromes obtenues sur ce site, on peut entre autre créer des images couleur. La première étape correspond à identifier les caractéristiques spectrales des images récupérées. Ci dessous les profils de transmission utilisées pour l'acquisition des images.


























Idéalement il faudrait utiliser les images
  1. POSS-I blue (composante B)
  2. POSS-II blue (composante G)
  3. Quick-V (composante R)
Mais il y a des problèmes de recalage.


Plus simplement on peut utiliser les images POSS-II avec :
  1. "POSS-II blue" comme composante B
  2. "POSS-II Red" comme composante G
  3. "POSS-II IR" comme composante R.
Voir aussi : base de données photométriques
Bases de données avec types spectraux, temperatures (tycho2)
Ici une liste des differents systemes photmetriques

Ci-dessous un exemple d'image RGB de l'amas ouvert NGC663 (dans Cassiopée) obtenue de cette manière.
 






































Assez correct, non?

On peut aussi faire des mosaiques en recupérant des champs contigus.
  • 60 arcsec =1 deg
  • 1 minute d'Ascension Droite = 1/4 deg = 15 arcsec
  • 4 minutes d'AD= 1 deg = 60 arcsec
Pour faire les mosaîques on peut utiliser le logiciel imerge




Par cnickelfr - Publié dans : Astronomie - Communauté : Communauté astronomique
Ecrire un commentaire - Voir les 1 commentaires
Mardi 19 août 2008 2 19 /08 /Août /2008 14:38
  • Les étoiles sont assimilables à des corps noirs, objets dont le spectre est parfaitement defini en fonction de leur température de surface (loi de Planck). En réalité les spectres stellaires s'eloignent de la forme théorique du spectre d'un corps noir en raison des raies d'absorption et d'emission.
  • La loi de Wien indique que la température d'un corps noir est inversement proportionelle à la longeure d'onde maximale d'emission du corps noir.
En théorie, pour mesurer la température d'une étoile, il faut donc déterminer le maximum du fond continu de son spectre.

Quelques explications plus détaillées sur le site de l'Observatoire de Paris.

Le logiciel Visual Spec permet de faire ce genre de mesures.

Par cnickelfr - Publié dans : Astronomie
Ecrire un commentaire - Voir les 3 commentaires
Jeudi 14 août 2008 4 14 /08 /Août /2008 15:24
L'astronomie amateur est un vaste sujet. Toute sortes d'activitées sont possibles pour les budgets les plus faibles aux plus élevées, pour les plus artistes aux plus scientifiques.

Etant débutant, faible budget, habitant en région parisienne, pas la peine de penser observer le ciel profond dans un telescope de 400 mm et encore moins faire de l'astrophotographie comme un "semi-pro". Voici néamoins quelques activitées qui me paraissent faisables, inclues quelques activitées théoriques qui ne nécessitent pas nécessairement d'observations (étant donné que c'est la partie la plus critique vu ma situation).

Observation à l'oeil nu (ou presque).

Repérer les étoiles les plus brillantes du ciel.

Repérer les constellations.

  • C'est déjà plus difficile car certaines contiennent des étoiles de faible luminosité.
  • Essayer de les photographier avec un appareil photo numérique compact.

Observer les planètes.

  • Mercure, Venus, Mars, Jupiter et Saturne sont généralement faciles à repérer.
  • Relever leur position (Azimuth, Altitude, date et heure) et convertir en ascention droite et declinaison, eventuellement construire un théodolite (Lien) ou à défaut relever leur position sur un logiciel carte du ciel. Tracer un diagramme (Lien).
  • Essayer de les photographier avec un appareil photo numérique compact.

Observer la lune.

  • A l'oeil nu, pas forcément évident de repérer des détails.
  • Essayer de la photographier avec un appareil photo numérique compact.
  • Relever position et phase, tracer un diagrame.

Quelques exemples d'activités :

link
link
link


Par cnickelfr - Publié dans : Astronomie
Ecrire un commentaire - Voir les 0 commentaires
Mardi 27 mai 2008 2 27 /05 /Mai /2008 00:00
Article focomètrie sur Wikipedia

Pour déterminer la distance focale d'une lentille convergente, il existe 3 méthodes.
  • La méthode d'autocolimation.

  • La méthode de Bessel
    Avec la méthode de Bessel f=(D²-d²)/4D
    D étant la distance entre l'image source et l'écran
    d étant la distance entre les deux positions donnant une image nette sur l'écran
    Application numérique D=56,5 d=16  f=13cm

  • La méthode de Silberman
Par cnickelfr - Publié dans : Optique
Ecrire un commentaire - Voir les 0 commentaires

Présentation

Recherche

Calendrier

Janvier 2012
L M M J V S D
            1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31          
<< < > >>

Créer un Blog

Créer un blog gratuit sur over-blog.com - Contact - C.G.U. - Rémunération en droits d'auteur - Signaler un abus