Retropie – Systèmes supportés

Retropie – Systèmes supportés

 

System Emulator Extension BIOS Manufact. Image
3do lr-4do .iso panafz10.bin 1993: Panasonic
Amiga UAE4ARM,UAE4ALL2 .adf .adz .dms .exe .rp9 .zip kick13.rom, kick20.rom, kick31.rom 1985: Commodore
Amstrad CPC lr-cap32CapriceRPI .cpc .dsk 1984: Amstrad
Apple II Linapple .dsk 1977: Apple
Atari 2600 lr-stellaStella .7z .a26 .bin .gz .rom .zip 1977: Atari
Atari 5200, 8-Bit Series Atari800 .a52 .atr .bas .bin .car .dcm .xex .xfd .atr.gz .xfd.gz ATARIXL.ROM, ATARIBAS.ROM, ATARIOSA.ROM, ATARIOSB.ROM, 5200.rom 1982: Atari
Atari 7800 lr-prosystem .7z .a78 .bin .zip 7800 BIOS (U).rom 1986: Atari
Atari Jaguar lr-virtualjaguar .j64 .jag 1993: Atari
Atari Lynx lr-handylr-beetle-lynx .7z .lnx .zip 1989: Atari
Atari ST, STE, TT, Falcon Hatari .ctr .img .ipf .raw .rom .st .stx 1985: Atari
CoCo XRoar .asc .bas .cas .ccc .dmk .dsk .jvc .os9 .rom .sna .vdk .wav bas13.rom 1980: Tandy
Colecovision lr-blueMSXCoolCV .bin .col .rom .zip coleco.rom 1982: Coleco
Commodore 64, VIC-20, PET Vice .crt .d64 .g64 .t64 .tap .x64 1982: Commodore
Dragon 32 XRoar .asc .bas .cas .ccc .dmk .dsk .jvc .os9 .rom .sna .vdk .wav d32.rom 1982: Dragon
Dreamcast Reicast .cdi .gdi dc_boot.bin, dc_flash.bin 1998: Sega
Famicom Disk System lr-fceummlr-nestopia .7z .fds .nes .zip disksys.rom 1986: Nintendo
FinalBurn Alpha lr-fbalphalr-fbalpha2012PiFBA .7z .zip isgsm.zip, neogeo.zip, nmk004.zip, pgm.zip, skns.zip, ym2608.zip 2000: N/A
Genesis / Mega Drive lr-genesis-plus-gxlr-picodriveDGEN .7z .bin .gen .md .sg .smd .zip 1988: Sega
Game Gear lr-genesis-plus-gx,Osmose .7z .bin .gg .sms .zip 1990: Sega
Game Boy lr-gambattelr-tgbdual .7z .gb .zip 1989: Nintendo
Game Boy Color lr-gambattelr-tgbdual .7z .gbc .zip 1998: Nintendo
Game Boy Advance lr-mgbalr-vba-nextlr-gpSPgpSP .7z .gba .zip gba_bios.bin 2001: Nintendo
Intellivision jzIntv .bin .int exec.bin, grom.bin 1979: Mattel
Macintosh BasiliskII .img .rom disk.img, mac.rom 1984: Apple
MAME lr-mame2003lr-mame2010,MAME4ALL-Pi,AdvanceMAME 1.4,AdvanceMAME 0.94,AdvanceMAME 3lr-mame2014lr-mame2016lr-mame2000 .zip cpzn1.zip, cpzn2.zip, cvs.zip, decocass.zip, konamigx.zip, megaplay.zip, megatech.zip, neogeo.zip, nss.zip, pgm.zip, playch10.zip, skns.zip, stvbios.zip, taitofx1.zip, tps.zip 1997: N/A
Master System lr-Genesis-Plus-GXlr-picodriveOsmose .7z .bin .sms .zip 1985: Sega
MSX lr-bluemsxlr-fmsx,OpenMSX .col .dsk .mx1 .mx2 .rom See Wiki Page 1983: Microsoft
Neo Geo lr-fbalphalr-fbalpha2012PiFBA,GnGeo-Pi .7z .zip neogeo.zip 1990: SNK
Neo Geo Pocket lr-mednafen-ngp .7z .ngp .zip 1998: SNK
Neo Geo Pocket Color lr-mednafen-ngp .7z .ngc .zip 1999: SNK
Nintendo 64 Mupen64pluslr-mupen64plus .n64 .v64 .z64 1996: Nintendo
Nintendo DS drasticlr-desmume .bin .nds 2004: Nintendo
Nintendo Entertainment System lr-fceummlr-nestopia,lr-quicknes .7z .fds .fig .mgd .nes .sfc .smc .swc .zip disksys.rom 1983: Nintendo
Oric/Atmos Oricutron .dsk .tap 1983: Tangerine Computer Systems
PC DOSBoxrpix86 .bat .com .exe .sh 1981: IBM
PC-8800 Quasi88 .88d .cmt .d88 .t88 FONT.ROM, N88.ROM, N88KNJ1.ROM, N88KNJ2.ROM, N88SUB.ROM 1981: NEC
PC Engine / TurboGrafx-16 lr-mednafen-pce-fast .7z .ccd .chd .cue .pce .zip syscard3.pce 1987: NEC
PlayStation 1 lr-pcsx-rearmedpcsx-rearmedlr-beetle-psx .cbn .cue .img .iso .m3u .mdf .pbp .toc .z .znx SCPH1001.BIN, scph5500.bin, scph5501.bin, scph5502.bin 1994: Sony
PSP lr-ppssppppsspp .cso .iso .pbp 2004: Sony
ScummVM ScummVM See Wiki Page 2001: N/A
Sega 32X lr-picodrive .32x .7z .bin .md .smd .zip 1994: Sega
Sega CD lr-genesis-plus-gxlr-picodrive .bin .chd .cue .iso bios_CD_U.bin, bios_CD_E.bin, bios_CD_J.bin, us_scd1_9210.bin, eu_mcd1_9210.bin, jp_mcd1_9112.bin 1991: Sega
Sega Saturn lr-yabauselr-beetle-saturn .bin .cue .iso .mdf saturn_bios.bin, sega_101.bin 1994: Sega
Sega SG-1000 lr-Genesis-Plus-GX .7z .bin .sg .zip 1983: Sega
Sharp X68000 lr-px68k .dim cgrom.dat, iplrom.dat, iplrom30.dat, iplromco.dat, iplromxv.dat 1987: Sharp
Super Nintendo Entertainment System lr-snes9x2010, lr-snes9x, lr-snes9x2005lr-snes9x2002PiSNES,lr-armsnessnes9x-rpi, .7z .bin .fig .mgd .sfc .smc .swc .zip 1990: Nintendo
TI-99/4A ti99sim .ctg 1981: Texas Instruments
TRS-80 sdltrs .dsk level2.rom 1977: Tandy Corporation
Vectrex lr-vecx .7z .bin .gam .vec .zip 1982: Milton Bradley
Videopac /Odyssey2 lr-o2em .bin o2rom.bin 1983: Philips
Virtual Boy lr-beetle-vb .7z .vb .zip 1995: Nintendo
WonderSwan lr-mednafen-wswan .7z .ws .zip 1999: Bandai
WonderSwan Color lr-mednafen-wswan .7z .wsc .zip 2000: Bandai
Zmachine Frotz .dat .z1 .z2 .z3 .z4 .z5 .z6 .z7 .z8 .zip 1979: Infocom
ZX Spectrum lr-fuseFuseFBZX .dsk .gz .img .mgt .scl .sna .szx .tap .trd .tzx .udi .z80 1982: Sinclair

 

 

e-cigarette 1er octobre, l’usage sera restreint par la loi

Voila, nous y arrivons doucement… le 1er octobre 2017…

Je suis vapoteur depuis près de 3 ans, et c’est avec angoisse que j’attend cette journée ou la vape va être délicate au travail. Sans parler de la contenance des flacon, des bases de e-liquide et autres arômes qui vont aussi faire du tors à la e-cigarette, penchons nous sur son utilisation

Rappel

A compter de cette date, l’usage de la cigarette électronique en entreprise ne sera toléré que sous certaines conditions : dans un bureau individuel fermé, ou alors sur certains lieux de travail qui accueillent du public, tels les bars et cafés, les restaurants et les hôtels.

A l’inverse, le vapotage n’est pas toléré dans les établissements scolaires et ceux destinés à l’accueil, à la formation et à l’hébergement des mineurs ; dans les moyens de transport collectifs fermés ; ni dans les lieux de travail fermés et couverts à usage collectif. « Dans une entreprise, cela signifie que la cigarette électronique est interdite à l’accueil, dans les salles de réunion, les open spaces, les toilettes, les vestiaires, les espaces de repos et de restauration »

Pour vapoter en paix sur leur lieu de travail, les collaborateurs devront désormais disposer d’un bureau individuel fermé… ou bien identifier un collègue charitable qui les accueillera.

Facebook un mode Snooze

logo Facebook

Facebook se dote d’un mode Snooze

Facebook va avoir droit à un mode “Snooze” pour mettre temporairement vos amis en sourdine. Le réseau social est en train de déployer une option qui permet d’empêcher provisoirement aux mises à jour de vos amis de s’afficher dans votre fil d’actualités. Cette option s’applique aussi aux groupes et aux pages. De quoi donner une alternative au fait de ne plus suivre totalement une personne.

Facebook se dote d’un mode Snooze pour mettre vos amis en sourdine

Facebook déploie en ce moment une option Snooze pour vous laisser temporairement mettre vos amis, des pages ou des groupes en sourdine. Pour l’instant on ne sait pas vraiment si cette fonctionnalité est en cours de déploiement dans tous les pays ou est en phase de test. Nos confrères de TechCrunch rapportent qu’une nouvelle fonctionnalité apparait chez certains utilisateurs de la plateforme. Lorsque l’on clique sur les trois petits points en haut à droite d’un post, Ne plus suivre devient un menu.

source : http://www.phonandroid.com/facebook-mode-snooze-pour-mettre-vos-amis-en-sourdine.html

Cet appareil, OS ou logiciel n’est pas compatible avec Pokémon Go

Lors du déploient de sa dernière mise à jour, celle concernant l’arrivé des Pokemon légendaires, certains appareils se voit affligés de ce message d’erreur :

Cet appareil, OS ou logiciel n’est pas compatible avec Pokémon Go

Cet appareil, OS ou logiciel n'est pas compatible avec Pokémon Go

Bien que le téléphone soit pas rooté, (Un Samsung J7 ici) le jeu refuse de démarrer. Voici comment retrouver le jeu Pokemon Go sur votre téléphone :

Voila le jeux Pokemon GO devrait être fonctionnel.

Projet – Batterie et panneaux solaire

Batterie et panneaux solaire

Pour mon projet, il me faut une source de courant. Après quelques essais en guise d’amusement, j’en parle ici, j’ai choisi au plus économique (encore) : une batterie et des panneaux solaire.

  • Une batterie au plomb de voiture de récupération 12V
  • Un chargeur solaire 12/24V
  • Un panneau solaire DOKIO de 10W et Vmpp de 18V

Le panneau solaire

panneau solaireLe panneau est un DOKIO de 10W et Vmpp de 18V. Il nest pas super bien placer, mais je vais tester pendant quelques jours.

  • Puissance maximum : 10W
  • Solar Panel Voc : 22.50V
  • Solar Panel Vmpp : 18.00V
  • Solar Panel I sc : 0.81A
  • Solar Panel I mpp : 0.56A

Point sur les caractéristiques d’un panneau solaire :

La courbe rouge courant-tension  :

tension_courant_puissance_photovoltaique_mppVoc : tension circuit ouvert (Open Circuit) indique la tension présente aux bornes du panneau quand il n’est pas branché.

Isc : courant de court-circuit (Shorted Circuit) indique le courant max que peut délivrer le panneau.

La courbe bleu : la puissance

Cette courbe s’obtient par le produit du courant et de la tension de la courbe rouge.
Le Point de Puissance Maximum (PPM ou MPP en anglais) sur cette courbe correspond au produit de 2 valeurs particulières qui sont :
– le courant de puissance maximale noté Impp (ou Ippm)
– la tension de puissance maximale notée Vmpp (ou Vppm)

avec Vmpp * Impp (18*0,56) on retrouve bien les 10 W dans les conditions optimales. Les conditions de test standards : STC c’est à dire avec un ensoleillement équivalent à 1000W/m² avec une température de 25° C’est conditions STC sont donc optimales.

source : http://www.dekloo.net/projets/photovoltaique-autoconsommation/caracteristiques-panneau-photovoltaique/689

Le contrôleur de charge solaire

Contrôleur de charge solaireRégulateur de charge par panneaux solaires de 24 V / 12 V à sélection automatique de 10A PWM Écran LCD avec Double USB de 5V(3A) de sortie. Il consomme moins de 10mA.

Ce qui me laisse un peu de marge pour des panneaux solaire supplémentaire et/ou plus puissant.


Affichage_controleur_charge_solaire

controleur_charge_solaire

1. appuyez sur la touche [Vers Le Bas] bouton à SUR/OFF charge manully à l’écran principal.

2. le mode « Work mode » peux être défini comme ci-dessous:
[24 H] sortie de décharge pendant 24 heures
[1-23 H] décharge après le coucher du soleil et fermé après l’heure de réglage
[0 H] du crépuscule à l’aube
MODÈLE RBL-10A
batterie Tension 12 V 24 V Auto
Courant de charge 10A
Courant de décharge 10A
Max d’entrée Solaire 50 V (pour 24 V batterie) 25 V (pour 12 V batterie)
péréquation 14.4 V (Scellé) 14.2 V (Gel) 14.6 V (D’inondation)
charge d’entretien 13.7 V (defaul, réglable)
décharge d’arrêt 10.7 V (defaul, réglable)
décharge reconnecter 12.6 V (defaul, réglable)
USB sortie 5 V/3A
auto-consommer < 10mA
température de fonctionnement -35 ° C ~ + 60 °C

La batterie :

BatterieBatterie

Une batterie au plomb, reconnu par le contrôleur solaire comme étant une batterie de type 601.
Avec un peu de recherche c’est une : Varta 12V 85Ah 800A

La question de la recharge

Le panneau solaire peux recharger la batterie ?
Je vais peut être me tromper, mais selon mes recherches :
85 Ah à 12V -> 1020 Wh

1020 / 10 = 102,0 h soit 4 jours et 6 heures STC

Pour avoir les conditions normale d’utilisation j’applique un coefficient de *2 (de manière arbitraire!)

soit 8 jours et 12 heures d’ensoleillement

 

 

 

Voila j’ai du 12V, je vais regarder combien de temps ça peut tenir avec :

des capteurs
une ou des pompes à eau
un RPI
des micro contrôleurs
1 ou 2 moteurs
des leds…

 

Capteur 1-Wire DS18B20 ou DS18B20+PAR

Mesurer une température avec un capteur 1-Wire DS18B20-PAR ou DS18B20

 

L’avantage « -PAR » du DS18B20+PAR

Lorsque vous utilisez les capteurs de température DS18B20, DS18S20 et DS1822 1-Wire en mode parasite, la broche VDD doit être connectée à la masse (GND) pour un fonctionnement correct. Dans les applications où les capteurs sont directement connectés à une carte de circuit imprimé, la connexion de la broche VDD à GND est simple. Cependant, dans les applications où le capteur de température est situé à un emplacement distant à partir du circuit de commande (par exemple, dans une sonde de température), cette connexion peut présenter des difficultés mécaniques. Dans ce cas, il existe deux façons de réaliser la connexion requise: exécutez trois fils sur le capteur de température et connectez le fil VDD à GND sur la carte de circuit imprimé (voir Figure 1) ou connectez la broche VDD à la broche GND du périphérique ( Voir la figure 2).

Malheureusement, la première approche ajoute des dépenses en exigeant un fil pour la connexion VDD, ce qui est particulièrement préoccupant si les fils doivent s’étendre sur de longues distances et la deuxième approche est une solution mécaniquement difficile.

DS18B20 sur PCB
Figure 1. Capteur de température à 1 fil avec broche VDD branché à GND au PCB.
DS18B20 local
Figure 2. Capteur de température 1 fil avec broche VDD localement connecté à GND.

 

Le DS18B20+PAR pour résoudre le problème

Pour résoudre ce problème, Dallas a créé le DS18B20-PAR, DS18S20-PAR et DS1822-PAR. Ces périphériques sont identiques aux DS18B20, DS18S20 et DS1822 sauf que VDD est connecté en interne à GND (voir Figure 3). Par conséquent, les trois périphériques -PAR facilitent la mise en œuvre d’un fonctionnement par parasite à distance avec un minimum de câblage ou de connexions (voir Figure 4).

DS18B20-PAR Fig01
Figure 3. Vue en coupe du capteur de température -PAR.
DS18B20-PAR Fig02
Figure 4. DS18B20-PAR configuration de câblage.

 

Notez qu’en raison de l’augmentation du courant de fuite des broches DQ à haute température, les DS18B20-PAR, DS18S20-PAR et DS1822-PAR ont une température de fonctionnement maximale de + 100 ° C. Il en va de même pour DS18B20, DS18S20 et DS1822 lorsqu’il est utilisé en mode parasite.

Traduction de source : https://www.maximintegrated.com/en/app-notes/index.mvp/id/203

Câblage DS18B20-PAR avec Arduino UNO

 

DS18B20-PAR câblage avec Arduino Uno
DS18B20-PAR câblage avec Arduino Uno

 

Le code qui suit, n’est pas optimisé pour l’utilisation du DS18B20-PAR dans un projet, il a cependant l’avantage d’être très bien documenté et vous permet de tout connaitre de votre composant électronique.

 

// --- Programme Arduino ---
// Copyright X. HINAULT - Créé le 10/04/2010
// www.mon-club-elec.fr 

//  Code sous licence GNU GPL : 
//  This program is free software: you can redistribute it and/or modify
//  it under the terms of the GNU General Public License as published by
//  the Free Software Foundation, either version 3 of the License,
//  or any later version.
//  This program is distributed in the hope that it will be useful,
//  but WITHOUT ANY WARRANTY; without even the implied warranty of
//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
//  GNU General Public License for more details.
//  You should have received a copy of the GNU General Public License
//  along with this program.  If not, see <http://www.gnu.org/licenses/>.
//  

// --- Que fait ce programme ? ---
/* test simple de la mesure de la température à l'aide d'un capteur
de température One-wire de type DS18B20 et affichage du résultat
dans la fenêtre Terminal série.  */

// --- Fonctionnalités utilisées ---
// Utilise la connexion série vers le PC 
// Utilise un ou plusieurs capteurs One Wire 

// --- Circuit à réaliser ---
// Connexion série entre la carte Arduino et le PC (utilise les broches 0 et 1)  
// Connecter  sur la broche 2 la broche de données du capteur One Wire

//**************** Entête déclarative *******
// A ce niveau sont déclarées les librairies, les constantes, les variables...

// --- Inclusion des librairies utilisées ---

#include <OneWire.h> // librairie pour capteur OneWire

// --- Déclaration des constantes ---

// --- constantes des broches ---

const int broche_OneWire=2; //declaration constante de broche 

//---- code d'instruction du capteur
const int modeLecture=0xBE;
const int lancerMesure=0x44;

// --- Déclaration des variables globales ---
byte data[12]; // Tableau de 12 octets pour lecture des 9 registres de RAM et des 3 registres d'EEPROM du capteur One Wire
byte adresse[8]; // Tableau de 8 octets pour stockage du code d'adresse 64 bits du composant One Wire

int tempet=0; // variable pour resultat de la mesure
float tempetf=0.0; // variable pour resultat de la mesure

// --- Déclaration des objets utiles pour les fonctionnalités utilisées ---
OneWire  capteur(broche_OneWire);  // crée un objet One Wire sur la broche voulue


//**************** FONCTION SETUP = Code d'initialisation *****
// La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme

void setup()   { // debut de la fonction setup()

// --- ici instructions à exécuter au démarrage --- 

Serial.begin(115200); // initialise connexion série à 115200 bauds
// IMPORTANT : régler le terminal côté PC avec la même valeur de transmission 


// XXXXXXXXXXXXXXXXXXXXXX Détection du capteur présent sur la broche XXXXXXXXXXXXXXXXXXXXXXX 
Serial.println("**** Detection du capteur **** "); 

while (capteur.search(adresse)== false) // tant qu'aucun nouveau capteur est détecté
{

  // la fonction search renvoie la valeur FAUX si aucun élément 1-wire est trouvé. 

  Serial.println("Aucun capteur 1-wire present sur la broche ! "); // affiche message + saut de ligne
  delay (1000); // pause 1 seconde
}

//la suite est exécutée seulement si un capteur est détecté

  // la fonction search renvoie la valeur VRAI si un élément 1-wire est trouvé. 
  // Stocke son code d'adresse 16 bits dans le tableau adresse[8]
  // adresse envoyé à la fonction correspond à l'adresse de début du tableau adresse[8] déclaré ...   

  Serial.print ("1 capteur 1-wire present avec code adresse 64 bits : ");


  //--- affichage des 64 bits d'adresse au format hexadécimal
   for(int i = 0; i < 8; i++) { // l'adresse renvoyée par la fonction search est stockée sur 8 octets

    if (adresse[i]<16) Serial.print('0'); // pour affichage des O poids fort au format hexadécimal
    Serial.print(adresse[i], HEX); // affiche 1 à 1 les 8 octets du tableau adresse au format hexadécimal
    Serial.print(" ");
  }

  Serial.println(); 

  //---- test du type de capteur ---- 
  // le type du capteur est donné par le 1er octet du code adresse 64 bits
  // Valeur 0x28 pour capteur type DS18B20, 0x10 pour type DS18S20, 0x22 pour type DS1820
  if (adresse[0]==0x28) 
  { 
    Serial.println ("Type du capteur present : Capteur temperature DS18B20.");
  }
  else
  {
    Serial.println ("Le capteur present n'est pas un capteur de temperature DS18B20.");
  }


  //----- contrôle du code CRC ----
  // le dernier octet de l'adresse 64bits est un code de contrôle CRC 
  // à l'aide de la fonction crc8 on peut vérifier si ce code est valide
  if (capteur.crc8( adresse, 7) == adresse[7]) // vérification validité code CRC de l'adresse 64 bits
  // le code CRC de l'adresse 64 bits est le 8ème octet de l'adresse (index 7 du tableau)
  {
    Serial.println ("Verification du code CRC de l'adresse 64 bits de ce capteur : VALIDE !"); 
  }
  else
  {
    Serial.println ("Verification du code CRC de l'adresse 64 bits de ce capteur : NON VALIDE !");     
  }

  //------- message final détection ---- 
  Serial.println("----- fin de la recherche du capteur ----"); 
  Serial.println(""); 

  //--- la phase de détection n'est pas obligatoire avec un seul capteur ---
  //---- il est possible d'utiliser uniquement la fonction skip --- 
  //---- le résultat semble plus hasardeux cependant... 
  // capteur.skip(); 

  // une fois le capteur détecté, son code adresse 64 bits est stocké dans le tableau adresse[8]
  // on va à présent adresser des instructions au capteur et lire le résultat obtenu
  // successivement il faudra : 
  //    * envoyer l'instruction de lancement de la mesure
  //    * attendre 1 seconde 
  //    * envoyer l'instruction de lecture du résultat
  //    * envoyer les instructions de lecture



} // fin de la fonction setup()
// ********************************************************************************

//*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
// la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension

void loop(){ // debut de la fonction loop()

// XXXXXXXXXXXXXXXXXXXXXX Lancement d'une mesure et lecture du résultat XXXXXXXXXXXXXXXXXXXXXXX 

  Serial.println("**** Acquisition d'une mesure de la temperature **** "); 

  // avant chaque nouvelle instruction, il faut : 
  //    * initialiser le bus 1-wire
  //    * sélectionner le capteur détecté
  //    * envoyer l'instruction 

//--------- lancer une mesure --------
  capteur.reset(); // initialise le bus 1-wire avant la communication avec un capteur donné
  capteur.select(adresse); // sélectionne le capteur ayant l'adresse 64 bits contenue dans le tableau envoyé à la fonction
  capteur.write(lancerMesure,1); // lance la mesure et alimente le capteur par la broche de donnée

//-------- pause d'une seconde ----- 
delay(1000);     // au moins 750 ms
           // il faudrait mettre une instruction capteur.depower ici, mais le reset va le faire


//---------- passer en mode LECTURE ------------- 
  capteur.reset(); // initialise le bus 1-wire avant la communication avec un capteur donné
  capteur.select(adresse); // sélectionne le capteur ayant l'adresse 64 bits contenue dans le tableau envoyé à la fonction
  capteur.write(modeLecture,1); // passe en mode lecture de la RAM du capteur

// ----------- lire les 9 octets de la RAM (appelé Scratchpad) ----

for ( int i = 0; i < 9; i++) {           // 9 octets de RAM stockés dans 9 octets
    data[i] = capteur.read();             // lecture de l'octet de rang i stocké dans tableau data
  }

// ----- affichage du contenu des différents octets ----------- 
Serial.println("");
Serial.println("---- lecture de la RAM du capteur ---- ");
Serial.print("Octet 0 (Resultat poids faible)="), Serial.println(data[0],BIN);
Serial.print("Octet 1 (Resultat poids fort)="), Serial.println(data[1],BIN);
Serial.print("Octet 2 (Alarme haute)="), Serial.println(data[2],BIN);
Serial.print("Octet 3 (Alarme basse)="), Serial.println(data[3],BIN);
Serial.print("Octet 4 (Registre de configuration)="), Serial.println(data[4],BIN);
Serial.print("Octet 5 (Reserve)="), Serial.println(data[5],BIN);
Serial.print("Octet 6 (Reserve)="), Serial.println(data[6],BIN);
Serial.print("Octet 7 (Reserve)="), Serial.println(data[7],BIN);
Serial.print("Octet 8 (code CRC mesure)="), Serial.println(data[8],BIN);


//----- test de validité des valeurs reçues par contrôle du code CRC  ----

Serial.println("");
Serial.println("---- test de controle de validite des donnees recues ---- ");

  // le dernier (9ème) octet de la RAM est un code de contrôle CRC 
  // à l'aide de la fonction crc8 on peut vérifier si ce code est valide
  if (capteur.crc8( data, 8) == data[8]) // vérification validité code CRC des valeurs reçues
  {
    Serial.println ("Verification du code CRC de ce resultat : VALIDE !"); 
  }
  else
  {
    Serial.println ("Verification du code CRC de ce resultat  : NON VALIDE !");     
  }

//----- caclul de la température mesurée (enfin!) ---------
Serial.println("");
Serial.println("---- calcul de la temperature ---- ");

//---- extraction du résultat de la mesure à partir des registres de la RAM ---
data[1]=data[1] & B10000111; // met à 0 les bits de signes inutiles
tempet=data[1]; // bits de poids fort
tempet=tempet<<8; 
tempet=tempet+data[0]; // bits de poids faible

Serial.print ("Mesure brute ="); 
Serial.println (tempet); 

// --- en mode 12 bits, la résolution est de 0.0625°C - cf datasheet DS18B20
tempetf=float(tempet)*6.25;
tempetf=tempetf/100.0;

Serial.print ("Mesure Finale ="); 
Serial.print (tempetf,2); 
Serial.println (" Degres Celsius. "); 


//while(1); // stoppe loop

} // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
// ********************************************************************************

//*************** Autres Fonctions du programme *************

// --- Fin programme ---

 

 

 

Écran OLED 0,91 pouce 128×32 IIC I2C SSD1306 Pilote IC DC 3.3 V 5 V

Écran OLED de 0,91 pouce 128×32 IIC I2C SSD1306 Pilote IC DC 3.3 V 5 V

J’ai acheter un petit Écran SSD1306 OLED IIC I2C, pas d’idée précise lors de l’achat, mais à la réception, au vu de la taille de l’écran, il peux être embarqué directement dans les sondes d’humidités de la terre.

Écran OLED 0,91 Pouce 128x32 IIC I2C SSD1306 DC 3.3 V 5 V
Écran OLED 0,91 Pouce 128×32 IIC I2C SSD1306 DC 3.3 V 5 V
Écran OLED 0,91 Pouce 128x32 IIC I2C SSD1306 DC 3.3 V 5 V
Écran OLED 0,91 Pouce 128×32 IIC I2C SSD1306 DC 3.3 V 5 V

 

ÉCRAN OLED, auto-éclairage, et faible consommation.
Driver IC : SSD1306
taille : 0.91 pouce OLED
résolution : 128×32
IIC interface
affichage Couleur : Bleu
Description des Pins :
GND : Ground
VCC : Puissance + (DC 3.3 ~ 5 v)
SCL : Horloge Ligne
SDA : Ligne de Données
Idées :
petit affichage embarqué pour les sondes TIC-TAC de mon projet.

L293D pour commander des moteurs

L293D pour commander des moteurs

L’ouverture des portes en fonction de la température et/ou humidité ambiante de la serre, trop chaud, trop humide, on ouvre une porte !

Caractéristiques techniques du L293D

Voici les caractéristiques techniques du composant L293D :

  • Nombre de pont-H: 2
  • Type de moteur C. c. à balais
  • Configuration de sortie Pont complet double
  • Courant Collecteur IGBT maximum 0.6A
  • Courant Max Régime continu: 600mA (x2))
  • Courant de pointeMax < 2ms: 1200mA
  • Tension d’alimentation fonctionnement maximum 36 V
  • Tension Collecteur Emetteur maximum 36 V
  • Tension d’alimentation de fonctionnement minimum 4,5 V
  • VS Max Alim moteur: 36v
  • Nbre de Broches: 16 DIP
  • Perte de tension: 1.3v
  • Dimensions 20 x 7.1 x 5.1mm
  • Longueur 20mm
  • Hauteur 5.1mm
  • Largeur 7.1mm
  • Température d’utilisation maximum +150 °C
  • Température de fonctionnement minimum -40 °C
  • Type de montage Traversant

L293D Le brochage du composant

Voici les différentes broches du composant L293D :

pins_diagram_l293d

 

 

 

 

 

 

J’ai commandé ça :
5 Pcs L293D L293 Push-Pull Quatre Canaux Motor Driver IC

 

Points forts

  • STMicroelectronics L293D
  • Type de boîtier (semi-conducteur): PowerDIP-16
  • Conditionnement: 1 pc(s)

Description

Conçu idéalement pour commandes à moteur (moteurs pas à pas), commande relais et moteurs DC. L’activation se fait par des signaux standard DTL ou TTL jusqu’à 5 kHz. Les entrées Enable séparées les unes des autres sont facilement utilisables comme double circuit d’attaque en pont.

Caractéristiques techniques

  • Protection contre la surchauffe intégrée, diodes de verrouillage internes
Référence L293D
Type de boîtier (semi-conducteur) PowerDIP-16
Fabricant STMicroelectronics
Fab. STM
Catégorie PMIC – Contrôleur, variateur moteur
Fonctions (PMIC) Variateur – entièrement intégré, Commande et étage de puissance
Configuration de sortie Demi-pont (4)
Interface Parallèle
Applications Usage général
Technologie (PMIC) Darlington de puissance
Courant – Sortie 600 mA
Type de moteur – moteur pas à pas bipolaire
Type de moteur AC/DC DC avec balai
Tension de charge (min.) 4.5 V
Tension de charge (max.) 36 V
Tension d’alim. min. 4.5 V
Tension d’alim. max. 36 V
Température de fonctionnement (min.) -40 °C
Température de fonctionnement (max.) +150 °C
Type de montage trou traversant
Données techniques complémentaires Protection contre la surchauffe intégrée, diodes de verrouillage internes

 

Pokemon Go – Les raids

Les raids, qu’est-ce que c’est dans Pokemon Go ?

Depuis fin juin 2017, une nouvelle fonctionnalité est disponible sur Pokémon GO. Il s’agit des raids !

Tout nouveau système de gameplay, il s’agit d’une façon coopérative de jouer. De temps en temps, une arène proche de chez vous va enlever tous les Pokémon la défendant et les remplacer par un œuf géant. Vous aurez alors un temps imparti pour vous rendre à cet endroit. Le compte à rebours terminé, un combat de raid va alors commencer.

Pour participer, il vous suffit d’utiliser un Pass que vous obtiendrez une fois par jour. Si vous ne souhaitez pas attendre, il est possible d’acheter un Premium Pass vous permettant alors de participer plusieurs fois par jour.

Il est possible de participer à des raids publics mais aussi privés ! Chaque raid possède une difficulté relative au niveau des joueurs et le jeu vous guide alors sur le nombre de participants recommandé (20 joueurs pour un combat étant le maximum). Que vous soyez Jaunes, Rouges ou Bleus, peu importe ! En effet, les raids ne prennent pas en compte les Team. Si vous décidez de créer une salle privée, des mots de passe seront alors utilisés.

Il existe trois types de raids avec différents Pokémon apparaissant selon la couleur de l’oeuf géant.

 

Normal Rare Légendaire

 

Les combats

 

Comme pour les combats standards dans les arènes, vous pouvez composer une équipe de 6 Pokémon. Donc si 20 joueurs participent au raid, alors 120 Pokémon seront en train de combattre contre l’adversaire. Le Pokémon adverse est beaucoup plus gros que la normale, avec des PC élevés.

 

Le système de combat est le même que pour les arènes : il suffit de tapoter l’écran pour effectuer des attaques rapides et de rester appuyé pour effectuer une attaque chargée. Vous pouvez également esquiver les attaques adverses en glissant votre doigt sur la gauche ou la droite.

Vous avez 5 minutes pour combattre le Pokémon géant.

 

Les récompenses des raids

 

Lorsque vous gagnez un Raid, plusieurs objets peuvent être obtenus en guide de récompense : une baie Framby dorée, un bonbon rare ou une CT qui vous permet d’apprendre une nouvelle attaque à votre Pokémon. Ces objets sont obtenables uniquement grâce aux Raids.

 

     

 

3000 points d’XP sont également attribués à chaque joueur ayant participé au raid. Plus vous infligez de dégâts au Pokémon adverse et plus vous êtes susceptibles d’obtenir un nombre élevé de Première Balls.

Voici les facteurs pour leur obtention :

  • Celui qui possède l’arène : vous obtenez plus de balls si vous êtes de la même Team que lui,
  • Les dégâts infligés par équipe : la Team ayant infligé le plus de dégâts au Boss obtient plus de Balls,
  • Dégâts infligés par votre équipe : plus votre Team inflige de dégâts, plus votre total de Balls est élevé,
  • Vous : plus vous infligez de dégâts, plus vous obtenez de Balls.

En réalité, le plus important à la fin d’un raid est de pouvoir capturer le Pokémon que vous avez combattu puisqu’il possédera des meilleurs stats et PC. Celui-ci n’est capturable qu’en utilisant des Premières Balls, d’où l’importance d’en gagner en masse. Si vous n’avez plus de Premières Ball, alors le Pokémon s’enfuit. Toutefois, il est possible d’utiliser les baies sur eux afin de faciliter la capture.

 

USBasp le programmateur AVR

L’USBASP est un programmateur pour les microcontrôleurs AVR

USBaps

USBasp

A quoi ça sert ?

A programmer un microcontrôleurs Atmel, sans avoir besoin de convertisseur série/USB, sans besoin de bootloader, sans Arduino.
Avec un USBASP, on peut donc :

  • Programmer directement un attiny85 ou un Atmega328 sur une platine d’essai, sans avoir besoin d’un Arduino
  • Graver un booloader sur un circuit vierge
  • Réparer un Arduino « Briqué » qui a perdu son booloader
  • Modifier les « fusibles » d’un processeur (par exemple pour utiliser la broche reset d’un attiny85 comme E/S)

Une fois les drivers installé, c’est transparent. inutile d’indiquer un port COM pour téléverser, L’IDE Arduino reconnait le programmateur.

Coté coût, on fait difficilement mieux: des clones chinois se trouvent pour moins de 2€, port compris. voir chez AliExpress j’en parle ici.

Vu les services que ça rend, dommage de s’en passer.

Il y a quoi dedans ?

Coté matériel : Un microcontrôleur Atmega8, un quartz de 12Mhz, 2 leds, une interface d’adaptation aux niveaux USB, des jumpers…

Coté logiciel, un firmware basé sur V-USB, une librairie qui émule du USB en soft.

L’installation ?

Sous Linux et Os/X, besoin de rien.
Sous Windows, on installe les drivers et ça marche.
A noter une petite manip pour les Windows 8, il faut désactiver la vérification des signatures pour installer le driver, c’est pénible mais ça se fait (tuto anglais).

Sinon la version signée pour Windows 8 et 8.1 ici : http://www.protostack.com/accessories/usbasp-avr-programmer

 

Ensuite dans l’IDE Arduino, on sélectionne USB ASP comme programmateur, et on upload via « télécharger avec un programmateur »

ça programme quoi ?

Une liste, pas forcément exhaustive :
Mega Series
ATmega8 ATmega8A ATmega48 ATmega48A ATmega48P
ATmega48PA ATmega88 ATmega88A ATmega88P ATmega88PA
ATmega168 ATmega168A ATmega168P ATmega168PA ATmega328
ATmega328P ATmega103 ATmega128 ATmega128P ATmega1280
ATmega1281 ATmega16 ATmega16A ATmega161 ATmega162
ATmega163 ATmega164 ATmega164A ATmega164P ATmega164PA
ATmega169 ATmega169A ATmega169P ATmega169PA ATmega2560
ATmega2561 ATmega32 ATmega32A ATmega324 ATmega324A
ATmega324P ATmega324PA ATmega329 ATmega329A ATmega329P
ATmega329PA ATmega3290 ATmega3290A ATmega3290P ATmega64
ATmega64A ATmega640 ATmega644 ATmega644A ATmega644P
ATmega644PA ATmega649 ATmega649A ATmega649P ATmega6490
ATmega6490A ATmega6490P ATmega8515 ATmega8535
Tiny Series
ATtiny12 ATtiny13 ATtiny13A ATtiny15 ATtiny25
ATtiny26 ATtiny45 ATtiny85 ATtiny2313 ATtiny2313A
Classic Series
AT90S1200 AT90S2313 AT90S2333 AT90S2343 AT90S4414
AT90S4433 AT90S4434 AT90S8515
AT90S8535
CAN Series
AT90CAN128
PWM Series
AT90PWM2 AT90PWM3

A noter que si on veut rester sous L’IDE Arduino, il existe des définitions à ajouter pour pouvoir ajouter le support d’autres processeurs à l’IDE.
Ainsi, on peut développer et programmer, via l’IDE Arduino, des attiny25, 45 et 85, des atmega8, atmega1280… en plus du classique atmega328.

A savoir :

Le connecteur du « stick » USBASP est un 2×5 broches.
Pour la plupart des Arduino, il faut un 2×3 broches, avec juste le nécessaire.

Des adaptateurs existent, c’est plus simple que de brancher les fils un à un, au risque de se tromper.

 

adaptateur_USBASP

Notez aussi le détrompeur (le petit triangle blanc) qui indique la broche N°1

 

USBaps

 

Voici le brochage:

brochage-usbasp

Autre source d’informations, notamment pour les fusibles : http://www.chicoree.fr/w/Le_programmateur_AVR_le_moins_cher_du_monde