Python 3 sous Debian 9

Site officiel : Python => Documentation


Un fichier Python commence par :
# -*- coding: utf-8 -*-
#!/usr/bin/env python

Conventions de syntaxe en Python

Par défaut, la bibliothèque graphique Tkinter pour Python 3 n’est pas installée sous Debian 9. Pour l’installer, taper dans la console :
sudo apt-get install python3-tk

Pour exécuter un fichier Python depuis la console :
python3 nom_fichier.py


Quelques autres éléments parfois utiles par la suite :

Pour connaître les droits d’un fichier :
ls -l

Pour rendre exécutable un fichier :
chmod +x nom_fichier.py

Pour exécuter un fichier exécutable :
./nom_fichier.py
Si on veut pouvoir appeler un programme sans se soucier du répertoire de commande, le placer dans /usr/local/bin (on peut enlever l’extension .py).

Python 3 et Geany sous Debian 9

Geany est un environnement de développement léger et rapide. Pour l’installer sous Debian 9, taper dans la console :
sudo apt-get install geany

Puis dans Geany :

Dans les champs « Commande » de « Compile » et d' »Execute », remplacer python par python3 :

Pour le réglage de l’indentation, aller dans :
Editer > Préférences > Editeur > Indentation.
Sélectionner Espaces à la place de Tabulations.
Vérifier que le mode d’intentation automatique par la touche Tab soit coché et que la largeur d’indentation soit de 4.

Construire une vidéo image par image sous Debian 9

J’utilise FFmpeg.

Les images sont toutes rangées dans le même répertoire et se nomment image-0001.png, image-0002.png, image-0003.png, etc.

Pour obtenir un film à 24 images / seconde, en partant de l’image n° 1, avec un débit binaire pour l’image de 30000 kbps, on tape dans la console :
ffmpeg -r 24 -start_number 1 -i image-%04d.png -b:v 30000k output.mp4

Lien vers un article concernant la compression vidéo chez YouTube.

Assemblage d’images avec Processing

Présentation :

Le programme ci-dessous permet d’assembler des images pour en créer une plus grande.

Le code Processing :

//////////////////////////////////////////////////////////////////
/*
   Assemblage d'images
   Version de Processing utilisée : 3.5.2
   
   Important :
   ---------
   Les noms des fichiers images à assembler sont ici du type :
   image-0001.png, image-0002.png, etc.
     
   http://3615.entropie.org
*/
//////////////////////////////////////////////////////////////////

// Paramètres à adapter
String extension = ".png";  // Extension des images
int largeurImage = 200;     // Largeur d'une image
int hauteurImage = 100;     // Hauteur d'une image
int nbImagesX = 3;          // Nombre d'images à placer en largeur
int nbImagesY = 2;          // Nombre d'images à placer en hauteur
int marge = 10;             // Marge entre les images
int couleurMarge = 0;       // Couleur de la marge

// Variables
int width = largeurImage*nbImagesX + marge*(nbImagesX+1);
int height = hauteurImage*nbImagesY + marge*(nbImagesY+1);
int nbImages = nbImagesX * nbImagesY;     // Nombre total d'images
PImage img[ ]= new PImage[nbImages];      // Tableau d'images
int indexImage = 0;         // Position de l'image dans le tableau
float x,y;                  // Coin supérieur gauche de l'image

//////////////////////////////////////////////////////////////////

void settings() {
  size(width, height);
}

//////////////////////////////////////////////////////////////////

void setup() {
  for (int i=0; i<nbImages; i++) {
    // Le nom du fichier est composé de 4 chiffres + l'extension
    String nomFichier = "image-"+nf(i+1,4)+extension;
    img[i] = loadImage(nomFichier);
  }
 x = marge;
 y = marge;
 background(couleurMarge);
}

//////////////////////////////////////////////////////////////////

void draw() {
  if (indexImage < nbImages) {
    image(img[indexImage], x, y, largeurImage, hauteurImage);
    indexImage++;
    x = x + largeurImage + marge;
    if (x >= width) {
      x = marge;
      y = y + hauteurImage + marge; 
    }  
  }
  else { save("assemblage.png"); }
}

//////////////////////////////////////////////////////////////////

void keyPressed() {
  if (key == ESC) {
    exit();
  }
}

//////////////////////////////////////////////////////////////////

SD2IEC pour Commodore 64

Vendeur : https://www.ebay.fr/usr/despegatop
Mode d’emploi : Commodore SD2IEC user guide

Après avoir formaté sur mon PC la carte SD (8 Go) en FAT32, je l’insère dans le boitier SD2IEC, j’allume le C64 et je tape :
10 PRINT « HELLO WORLD »
SAVE « HELLO »,8
Le programme est alors sauvegardé directement sur la carte SD.
Pour vérifier que tout a bien fonctionné, je charge la liste des fichiers de la carte dans la mémoire de l’ordinateur :
LOAD « $ »,8
J’affiche cette liste :
LIST
Le programme « HELLO » apparaît bien.
Je vide la mémoire de l’ordinateur :
NEW
Je charge le programme à partir de la carte SD :
LOAD « HELLO »,8
J’affiche le listing du programme :
LIST
Je l’exécute :
RUN

Retour de la carte SD sur le PC avec un éditeur hexadécimal :

Commodore 64 : Guide de référence du programmeur

Data sheets

DatasheetCatalog.com
DatasheetsPDF.com
The Datasheet Archive


MICROCONTRÔLEURS

Microchip ATtiny 45 – 8 broches
Microchip ATtiny 85 – 8 broches
Microchip ATtiny 44 – 14 broches
Microchip ATmega328P – 28 broches
Microchip ATmega644P – 40 broches
Microchip ATmega1284P – 40 broches

MICROPROCESSEURS

Intel 80C32
Zilog Z80

CIRCUITS LOGIQUES TTL SÉRIE 7400 (4,75 V à 5,25 V)

74LS00 – 4 portes NON-ET à 2 entrées
74LS04 – 6 portes inverseuses NON
74LS08 – 4 portes ET à 2 entrées
74LS138 – Décodeur / Démultiplexeur 1 parmi 8
74LS193 – Compteur / Décompteur binaire 4 bits

CIRCUITS LOGIQUES CMOS SÉRIE HCT (4,5 V à 5,5 V – Compatible TTL)

74HCT151 – Multiplexeur 8 entrées

CIRCUITS LOGIQUES CMOS SÉRIE HC (2 V à 6 V)

74HC08 – 4 portes ET à 2 entrées
74HC126 – 4 buffers / drivers de ligne à 3 états
74HC540 – 8 buffers / drivers de ligne à 3 états, inverseurs
74HC4040 – Compteur binaire à 12 étages

CIRCUITS LOGIQUES CMOS SÉRIE 4000 (3 V à 15 V)

4001 – 4 portes NON-OU à 2 entrées
4002 – 2 portes NON-OU à 4 entrées
4010 – 6 buffers non inverseurs
4013 – 2 bascules D
4021 – Registre à décalage 8 bits
4023 – 3 portes NON-ET à 3 entrées
4024 – Compteur binaire à 7 étages
4027 – 2 bascules JK
4028 – Décodeur 4 bits BCD 10 voies
4029 – Compteur / Décompteur binaire 4 bits / BCD avec présélection
4030 – 4 portes OU exclusif à 2 entrées
4051 – Multiplexeur / Démultiplexeur analogique 8 canaux
4067 – Multiplexeur / Démultiplexeur analogique 16 canaux
4069 – 6 portes NON à 1 entrée (inverseur logique)
4071 – 4 portes OU à 2 entrées
4081 – 4 portes ET à 2 entrées
4093 – 4 portes logiques NON-ET à 2 entrées avec trigger de Schmitt
4098 – 2 multivibrateurs monostables
4099 – Bascule adressable 8 bits
4510 – Compteur / Décompteur BCD avec présélection
40106 – 6 portes NON à trigger de Schmitt (bascule à seuil)

CIRCUITS INTÉGRÉS LINÉAIRES

ADC0820 – Convertisseur analogique / numérique 8 bits
DAC0802 – Convertisseur numérique / analogique 8 bits
DS1307 – Horloge temps réel sur bus I2C
DS1337 – Horloge temps réel sur bus I2C avec 2 alarmes paramétrables
LM324N – 4 amplificateurs opérationnels monotension
LM358N – 2 amplificateurs opérationnels monotension
MAX7219 – Pilote d’affichage à leds 8 digits (interface série)
MC1741 – Amplificateur opérationnel
NE555 – Temporisateur universel
PCF8574AP – Interface bus I2C / parallèle 8 bits
PCF8574P – Interface bus I2C / parallèle 8 bits

RÉGULATEURS

LM1085IT-3.3
LM78L05ACZ
L4885CV
L78S05CV
L7805CV
L7809CV
TS7806CZ

TRANSISTORS

BC108 – Transistor bipolaire NPN
BC108A – Transistor bipolaire NPN
BC547C – Transistor bipolaire NPN
IRFZ48N – Transistor MOSFET, canal N
TIP122 – Transistor bipolaire NPN
TIP31C – Transistor bipolaire NPN
2N2222A – Transistor bipolaire NPN
2N2904A – Transistor bipolaire PNP

DIODES

BZX85C 5V1 – Diode Zener 5,1 V
1N3828A – Diode Zener 6,2 V
1N4007 – Diode de redressement
1N4148 – Diode de signal
1N5404 – Diode de redressement

OPTOÉLECTRONIQUE

Afficheur LCD alphanumérique 2 x 16 caractères DEM 16216 SGH
Afficheur LCD graphique 128×64 points ST 7920
Afficheur LED 7 segments SA39-11EWA
Matrice 8×8 à leds rouges ELM-2881SURWA/S530-A2

CAPTEURS

Capteur de pression et de température Adafruit BMP 180
Capteur de pression, d’humidité et de température Adafruit BME 280
Capteur de pression et de température Adafruit LPS25
Capteur de CO2, d’humidité et de température Sensirion SCD30

Introduction à la micro-informatique

En mars 1979, dans son numéro 4, la revue Micro-Systèmes dresse une revue de la littérature concernant les microprocesseurs dont le livre ci-dessous. Elle écrit à son sujet : « Certainement un des ouvrages les plus complets édités sur l’ensemble des questions relatives à la technologie, la réalisation et la programmation de systèmes à microprocesseur. » H. Lilen, l’auteur du livre, écrit en 1977 dans la bibliographie à la page 436 : « La littérature propre à la micro-informatique est encore très pauvre. » Ce livre sera donc un bon point de départ pour se plonger dans la technologie de cette époque.