Olivier Lemaire's Blog – Tribulations d'un ingénieur

Mon Blog en Francais…

Chercher un fichier en ligne de commande

laisser un commentaire »

Un petit article bookmark…

Voici une petite fonction à ajouter à son .bash_aliases pour faire des recherches sans avoir le retour permission denied

FIND () {
find $1 -iname $2 -type f -print 2> /dev/null
}

Ne pas oublier de faire un source de .bashrc

Maintenant vous pouvez taper la commande

FIND /path/to/file 'name_of_the_file'

en remplaçant /path/to/file par l’endroit approprié et name_of_the_file par le nom du ficher à chercher. Notez que c’est une recherche qui ne sera pas sensible à la casse et que vous pouvez utilisez du regex…

Rédigé par Olivier LEMAIRE

7 décembre 2011 à 1:03

Script de démarrage eagle

laisser un commentaire »

FICHIER SOURCE

# Configuration Script
#
# This file can be used to configure the editor windows.

#------------------------------------------------------------------------------
# Board
#-----------------------------------------------------------------------------
BRD:

# modification action
ASSIGN C+G 'GROUP'; # Create (G)roup
ASSIGN C+W 'MOVE'; #(M)ove
ASSIGN C+D 'DELETE'; # (D)elete
ASSIGN C+C 'COPY'; # (C)opy
ASSIGN C+S+R 'RATSNEST'; # (R)atsnest
ASSIGN C+T 'Text'; # Create (T)ext
ASSIGN c+r 'route'; # (R)oute
# Visual action
ASSIGN A+I 'INFO'; # Show (I)nfo about component
ASSIGN A+S 'SHOW'; # (S)how
ASSIGN A+F 'WINDOW FIT'; # Zoom to (F)it the entire schematic
ASSIGN A+G 'GRID'; # Set (G)rid
ASSIGN C+E 'SCRIPT /home/lemaire/.eagle/scr/eagle.scr' # set to default state
ASSIGN A+R 'RIPUP GND'; # (R)ipup gnd
# Grid
Grid MIC 200 1 lines On alt 10 MIC;

# parameters
SET WIDTH 100 300 400 500 600 700 800 900 1000 1200 1400 1600 1800 2000 200;
SET DRILL 100 200 300 400 500 700 800 900 1000 1200 1400 1600 1800 2000 600;
SET MITER 100 300 400 500 600 700 800 900 1000 1200 1400 1600 1800 2000 200;
SCRIPT ol_layers.scr
SET SIZE 250 500 750 1000 1250 1500 2000 2500;
VIA ROUND;
#------------------------------------------------------------------------------
# Schematic
#-----------------------------------------------------------------------------
SCH:
# Modification action
ASSIGN C+I 'ADD'; # add (I)nstance
ASSIGN C+G 'GROUP'; # Create (G)roup
ASSIGN C+M 'MOVE'; #(M)ove
ASSIGN C+N 'NET'; # Create (W)ire
ASSIGN C+S 'WRITE'; # (W)rite / save
ASSIGN C+J 'JUNCTION'; # Create (J)unction
ASSIGN C+C 'COPY'; # (C)opy
ASSIGN C+R 'ROTATE'; # (R)otate
ASSIGN C+D 'DELETE'; # (D)elete
ASSIGN C+L 'LABEL'; # Create (L)abel
ASSIGN C+W 'MOVE'; # evo(W)
# Visual action
ASSIGN A+I 'INFO'; # Show (I)nfo about component
ASSIGN A+S 'SHOW'; # (S)how
ASSIGN A+F 'WINDOW FIT'; # Zoom to (F)it the entire schematic
ASSIGN A+G 'GRID'; # Set (G)rid

ASSIGN C+E 'SCRIPT /home/lemaire/.eagle/scr/eagle.scr' # set to default state
# Grid
GRID DEFAULT ON;

#------------------------------------------------------------------------------
# Library
#-----------------------------------------------------------------------------
LBR:

#------------------------------------------------------------------------------
# Device
#-----------------------------------------------------------------------------
DEV:

Grid Default;

#------------------------------------------------------------------------------
# Schematic
#-----------------------------------------------------------------------------
SYM:

Grid Default On;
Change Width 0.010;

#------------------------------------------------------------------------------
# Schematic
#-----------------------------------------------------------------------------
PAC:
# Modification action
ASSIGN C+G 'GROUP'; # Create (G)roup
ASSIGN C+M 'MOVE'; #(M)ove
ASSIGN C+D 'DELETE'; # (D)elete
ASSIGN C+C 'COPY'; # (C)opy
ASSIGN C+S+R 'RATSNEST'; # (R)atsnest
ASSIGN C+T 'Text'; # Create (T)ext
Grid MIC 5 1 lines On alt 10 MIC;

Rédigé par Olivier LEMAIRE

12 octobre 2011 à 11:22

Liste des couleurs beamer et signification

laisser un commentaire »

Ci-dessous, la liste des couleurs disponibles dans beamer. Dans la mesure du possible je vais essayer de commenter. Toute aide est la bienvenue…

Dans beamer, les couleurs se règlent avec la commande :

\setbeamercolor{color to be modifiedt}{fg=colorfg, bg=colorbg}

{beamer} \useinnertheme{default} % customization % font \setbeamerfont{frametitle}{size=\small\bfseries} \useoutertheme[]{infolines}”]caption

documentclass[a4paper,8pt

Beamer-Color/-Font page number in head/foot
Beamer-Color/-Font framesubtitle
Beamer-Color button border
Beamer-Color/-Font item
Beamer-Color/-Font item projected
Beamer-Color/-Font subitem
Beamer-Color/-Font subitem projected
Beamer-Color/-Font subsubitem
Beamer-Color/-Font subsubitem projected
Beamer-Color/-Font structure
Beamer-Color local structure
Beamer-Color/-Font alerted text
Beamer-Color/-Font block title
Beamer-Color/-Font block body
Beamer-Color/-Font block title alerted
Beamer-Color/-Font block body alerted
Beamer-Color/-Font block title example
Beamer-Color/-Font block body example
Beamer-Color/-Font caption name
Beamer-Color/-Font abstract
Beamer-Color/-Font verse
Beamer-Color/-Font quotation
Beamer-Color/-Font quote
Beamer-Color/-Font footnote mark
Beamer-Color math text
Beamer-Color math text inlined
Beamer-Color math text displayed
Beamer-Color normal text in math text
Beamer-Color palette primary
Beamer-Color palette secondary
Beamer-Color palette tertiary
Beamer-Color palette quaternary
Beamer-Color palette sidebar primary
Beamer-Color palette sidebar secondary
Beamer-Color palette sidebar tertiary
Beamer-Color palette sidebar quaternary
Beamer-Color/-Font normal text
Beamer-Color/-Font example text
Beamer-Color/-Font titlelike
Beamer-Color separation line
Beamer-Color upper separation line head
Beamer-Color middle separation line head
Beamer-Color lower separation line head
Beamer-Color upper separation line foot
Beamer-Color middle separation line foot
Beamer-Color lower separation line foot
Beamer-Template/-Color/-Font some beamer element
Beamer-Template/-Color/-Font frametitle continuation
Beamer-Template/-Color/-Font headline
Beamer-Template/-Color/-Font footline
Beamer-Template/-Color/-Font sidebar left
Beamer-Template/-Color/-Font sidebar right
Beamer-Template/-Color/-Font mini frame
Beamer-Template/-Color/-Font section in head/foot
Beamer-Template/-Color/-Font section in sidebar
Beamer-Template/-Color section in sidebar shaded
Beamer-Template/-Color/-Font subsection in head/foot
Beamer-Template/-Color/-Font subsection in sidebar
Beamer-Template/-Color/-Font subsubsection in head/foot
Beamer-Template/-Color/-Font subsubsection in sidebar
Beamer-Template/-Color/-Font navigation symbols
Beamer-Template/-Color/-Font logo
Beamer-Template/-Color/-Font frametitle
Beamer-Template/-Color/-Font background canvas
Beamer-Template/-Color/-Font background
Beamer-Template/-Color/-Font title page
Beamer-Template/-Color/-Font section in toc
Beamer-Template/-Color/-Font section in toc shaded
Beamer-Template/-Color/-Font subsection in toc
Beamer-Template/-Color/-Font subsection in toc shaded
Beamer-Template/-Color/-Font subsubsection in toc
Beamer-Template/-Color/-Font subsubsection in toc shaded
Beamer-Template/-Color/-Font part page
Beamer-Template/-Color/-Font bibliography entry author
Beamer-Template/-Color/-Font bibliography entry title
Beamer-Template/-Color/-Font bibliography entry location
Beamer-Template/-Color/-Font bibliography entry note
Beamer-Template/-Color/-Font bibliography item
Beamer-Template/-Color/-Font button
Beamer-Template/-Color/-Font itemize item
Beamer-Template/-Color/-Font itemize subitem
Beamer-Template/-Color/-Font itemize subsubitem
Beamer-Template/-Color/-Font enumerate item
Beamer-Template/-Color/-Font enumerate subitem
Beamer-Template/-Color/-Font enumerate subsubitem
Beamer-Template/-Color/-Font enumerate mini template
Beamer-Template/-Color/-Font description item
Beamer-Template/-Color/-Font qed symbol
Beamer-Template/-Color/-Font caption
Beamer-Template/-Color/-Font abstract title
Beamer-Template/-Color/-Font footnote
Beamer-Template/-Color/-Font note page

Rédigé par Olivier LEMAIRE

10 octobre 2011 à 3:10

QPadArrayCreator

laisser un commentaire »

Ce petit utilitaire permet de créer des vecteurs de pads (SMD) pour le logiciel Eagle de chez Cadsoft. Écrit en PyQt4, il a été testé sous Ubuntu 10.04…
La sortie est un fichier *.scr que vous pouvez exécuter depuis l’éditeur de librairie de Eagle…

Si vous êtes intéressé, merci de me contacter…

Rédigé par Olivier LEMAIRE

7 juillet 2011 à 4:43

Est ce qu’on blâmer quelqu’un qui ne sait pas ce qu’il vend ?

avec 4 commentaires

Un Daim au premier qui me dit ce qui cloche !

Rédigé par Olivier LEMAIRE

20 mars 2011 à 6:21

Publié dans Vélo

Tag(s) associé(s): , , ,

fonctions simples pour circuitikz

laisser un commentaire »

J’aime beaucoup utiliser pgf/tikz pour faire mes schémas et je trouve que circuitikz est un très bon compléments pour faire des schémas électronique. Vous pouvez trouver ce package ici : http://ctan.org/pkg/circuitikz
L’utilisation est vraiment simple et le résultat impeccable c’est vraiment du bon travail.
Cependant il manque une petite chose à ce package : le placement relatif. En attendant que cette fonctionnalité existe, j’utilise la fonction suivante:

%------------------------------------------------------------------------------
%% bipole
%------------------------------------------------------------------------------
\newlength{\compSize}
\setlength{\compSize}{0.8cm}
\ctikzset{bipoles/length=\compSize}
\newcommand{\bipole}[3]{coordinate (#1) to[#2] ($(#1)+(#3)$)}

Les deux premières lignes permettent de définir et d’assigner une nouvelle longueur. La troisième ligne permet de changer la longueur des composants dans circuitikz, ici 8mm.
La nouvelle commande demande trois arguments :

  1. le nom de la coordonnée;
  2. les arguments classiques du to[xxx] de circuitikz;
  3. les dimensions souhaitées du nouveau composant.

Ci-dessous un exemple d’utilisation :
% \bipole{coordinate}{component}{dimensions}
\draw (0,0) \bipole{r1}{R=500\mega\ohm,*-*}{2,0}
Dans cet exemple nous commençons une commande draw et un point d’origine (0,0). La commande bipole définie la coordonnée r1, correspondant en fait à (0,0). Vient ensuite le composant, ici une résistance de 500MOhm et dont le début et la fin comportent des contacts (les étoiles). Enfin les dimensions souhaitées. Ces dimensions signifient que le composant entier mesurera 2 unités en x et 0 en y. Compte tenu de la redéfinition ctikzset et de ce qui vient d’être écrit il faut comprendre que la résistance seule mesure 8mm mais la résistance avec ses pins mesurent 2cm…

Une autre petite fonction qui peut des fois servir :

%------------------------------------------------------------------------------
%% bipole
%------------------------------------------------------------------------------
% \feedback{node1}{node2}{distance from nodes}{component}
\newcommand{\feedback}[4]{%
\draw (#1) -- ++ (0,#3) coordinate(fb1)%
(#2) -- (#2|-fb1) coordinate(fb2)%
(fb1) to[#4] (fb2)}

Rédigé par Olivier LEMAIRE

25 décembre 2010 à 4:20

Frise chronologique

avec 2 commentaires

Frise chronologique

CODE SOURCE DE LA FRISE

Rédigé par Olivier LEMAIRE

21 décembre 2010 à 10:24

Publié dans Informatique, Logiciels libres

Tag(s) associé(s): , , , , ,

Restaurer ses favoris dans google chrome (Linux)

laisser un commentaire »

J’ai fait une grosse boulette tout à l’heure. J’ai effacé tous mes favoris. Gros coup de panique, mais de courte durée car j’ai réussi à tout retrouver grâce à ce post.

Voici ce que j’ai fait:

  • Fermer votre navigateur
  • Ouvrir un terminal et taper ce qui suit

$find ~/ -iname 'bookmarks*' | grep chrom*

  • Il faut trouver les deux lignes suivantes où $HOME est en fait votre home directory :


$HOME/.config/google-chrome/Default/Bookmarks
$HOME/.config/google-chrome/Default/Bookmarks.bak

Deux fichiers, le fichier qui contient les favoris et un fichier de backup. Il suffit d’effacer le fichier Bookmarks et de renommer Bookmarks.bak en Bookmark. Toujours dans le terminal et en prenant garde de remplacer PATH par le nom idoine :

$ cd $HOME/.config/google-chrome/Default/
$ cp Bookmarks Bookmarks_BCK
$ cp Bookmarks.bak Bookmarks.bak_BKC
$ mv Bookmarks.bak Bookmarks

En principe, lorsque vous ouvrez chrome, vous devriez retrouver l’état précédent…

Merci de me dire si ca marche pour vous…

Rédigé par Olivier LEMAIRE

9 septembre 2010 à 6:18

Commander trois leds avec la plateforme arduino et une interface python

laisser un commentaire »

Une des grandes questions que je me posais depuis que j’ai mon module arduino était : “comment commander la carte depuis ma machine ?” En parcourant le forum arduino, j’ai finalement trouvé la réponse à ma question. Je me suis inspiré de ce post.

C’est finalement une chose assez simple à realiser et qui se décompose en deux parties:

  • le code destiné à la plateforme arduino avec un simple switch case;
  • le code python qui communique avec arduino via le port série virtuel.

Le code arduino

/* Pin number declaration, W,Y G standing for white, yellow, green.
Actually, my leds are yellow...*/
int WPin = 4;
int YPin = 5;
int GPin = 6;
int delayVal;

/* set the virtual serial port speed and the type of my pins*/
void setup() {

Serial.begin(115200);
pinMode(WPin, OUTPUT);
pinMode(YPin, OUTPUT);
pinMode(GPin, OUTPUT);

}

void loop() {

// Check if a character is available in the serial buffer
if(Serial.available() > 0){

switch( byte( Serial.read() )) { // read one character

/* this case makes the leds blink */
case 'b':
delayVal = int(Serial.read());
delayVal = delayVal * 100;
Serial.print(delayVal,DEC);
do{
digitalWrite(WPin, HIGH);
delay(delayVal);

digitalWrite(WPin, LOW);
digitalWrite(YPin, HIGH);
delay(delayVal);

digitalWrite(YPin, LOW);
digitalWrite(GPin, HIGH);
delay(delayVal);

digitalWrite(GPin, LOW); }while(Serial.available() < 2);
break;

/* this case sets all the pins to a high level */
case 'f':
digitalWrite(WPin, HIGH);
digitalWrite(GPin, HIGH);
digitalWrite(YPin, HIGH);
break;

/* this case sets all the pins to a low level, switching off the leds */
case 's':
digitalWrite(WPin, LOW);
digitalWrite(GPin, LOW);
digitalWrite(YPin, LOW);
break;
}
}
delay(100);
}

Le code python de commande


import serial

# Setup the Serial Object
ser = serial.Serial()
# Set the Serial Port to use
ser.setPort('/dev/ttyUSB0')
# Set the Baudrate
ser.baudrate = 115200
# Open the Serial Connection
ser.open()
loopVar = True

if (ser.isOpen()):
# Start a main loop
while (loopVar):
# Prompt for Red value
action = raw_input('Action : ')
if action == "b":
delayVal = int(input('delay :'))
ser.write("b"+chr(int(delayVal)))
if action == "f":
ser.write("f"+str(0))
if action == "s":
ser.write("s"+str(0))
# loopVar = False
# After loop exits, close serial connection
ser.close()

Rédigé par Olivier LEMAIRE

7 septembre 2010 à 6:29

Publié dans Informatique

Tag(s) associé(s): , , , , , , , ,

CV Ingénieur Microélectronique analogique numérique (Nouvelle Version)

laisser un commentaire »

CV Olivier LEMAIRE -- Ingénieur Microélectronique


CV Olivier LEMAIRE — Ingénieur Microélectronique

Rédigé par Olivier LEMAIRE

2 juin 2010 à 7:37

Suivre

Get every new post delivered to your Inbox.