Show Posts
|
|
Pages: [1] 2 3 ... 6
|
|
1
|
International / Français / Re: Projet : IRTiny_Cat , Question !!!
|
on: March 22, 2013, 02:09:51 pm
|
|
Salut ta toua, c'est à peut pres ce que je pensais pour chaque trame IR, par contre j'ai pas d'oscilloscope, enfin j'ai un Xminilab que je me suis acheté derniérement, et j'ai un peu de mal à comprendre comment marche le bouzzin...j'aurais aimé pouvoir le brancher sur le PC, mais le FW n'est pas compatible, il faut que je flash et j'ai pas de prog AVRISP PDI pour le flasher donc je suis un peu bloqué (je pense pas qu'un arduino puisse le faire ..??). Donc pour le moment j'ai juste pu voir que la fréquence qui est bien en 38Khz (enfin plutot 38.46Khz), mais j'ai pas encore capté comment voir le signal en totalité et calculé le temps d'une trame, c'est la première fois que je me sert d'un "oscilloscope" (les guillemets sont pour le pseudo oscillo, qui reste basique mais qui va me permettre de mettre un petit pied dedans...j'avais pas envie de dépenser plus que 50€ pour quelquechose que je ne connais/maitrise pas)
Pour la partie Réglage de l'horloge interne, j'ai fait ça avec Tiny Tuner, et j'ai cru comprendre qu'il fallait mettre dans le setup la valeur retourné par tiny tuner, en l'occurence 0x56 pour l'ATtiny85 que j'ai; mais j'ai peut être loupé un truc !?!
Pour ce qui est du Watchdog et du mode veille, j'ai brodé avec ce que j'ai lu, j'avais posé une question ici mais le topics est parti au oubliette sans réponse, donc j'ai fait comme je le pensais, aprés si il y a des erreurs dans ma façon je reste ouvert à tes conseils pour modifier le code....
En tous les cas merci à toi ^^
|
|
|
|
|
2
|
International / Français / Projet : IRTiny_Cat , Question !!!
|
on: March 20, 2013, 04:10:14 pm
|
Bonsoir à vous, j'essaye de faire un petit projet à base d'ATtiny85 pour repérer le chat dans une piéce (chambre bébé), ça devrais marcher avec du code IR sur le principe des télécommandes. J'ai fait le code pour l'émetteur sur ATtiny85, avec un mode sleep/Watchdog entre deux envois de code, ça marche mais j'ai un soucis au niveau du timing... Dans le code la ligne : int WDT_Time = 7;// Réglage du délais de veille: 0=16ms, 1=32ms, 2=64ms, 3=125ms, 4=250ms, 5=500ms, 6=1 sec, 7=2 sec, 8=4 sec, 9= 8sec, marche bien quand je saisie 7/8/9 , Régle le temps de veille du timing Watchdog. Mais si je saisie 6 (donc timing de 1sec de "veille") ça bloque complétement, en principe l’envoi du code prend moins de 1 seconde, je ne comprends donc pas pourquoi ça bloque avec le paramétrage de veille à 1Sec, en dessous de 6 ça me parait juste pour l'envois du code et le bon déroulement du sketch.... C'est pas que c'est bloquant pour le reste de mon projet, mais j'aime bien savoir pourquoi ça marche pas, et là je vois pas vraiment et comme on dit un oeil extérieur (et qui plus est expérimenté) est toujours source de bonne idée pour résoudre des Couacs... Donc voila mon code : #include <avr/sleep.h> #include <avr/wdt.h>
#define IR_Pin PORTB // Registre du PORTB Définit en Ecriture et Lecture #define IR_Led 3 // Définit le pin de la Led IR > Pin2 (PB3)
byte Code_IR = B01010101;//Code IR envoyé int WDT_Time = 7;// Réglage du délais de veille: 0=16ms, 1=32ms, 2=64ms, 3=125ms, 4=250ms, 5=500ms, 6=1 sec, 7=2 sec, 8=4 sec, 9= 8sec byte WDP_Set; // Réglage WDP (bit de réglage délais de veille)
void setup(){ Set_Time_WDT(WDT_Time); //Délais de veille OSCCAL = 0x56; // Calibration Oscillateur Interne de l'ATtiny85, voir Tiny Tuner DDRB |= _BV(IR_Led); // Met le pin IRled en OUTPUT > 0000 1000 ADCSRA = 0; // Désactive l'ADC (Analog to Digital Converter) pour économiser du courant en mode veille } void loop(){ IRCode(); // Lance la Boucle IRCode DDRB &= ~_BV(IR_Led); // Mets le port de la Led en INPUT pour économiser du courant Veille(); // Mise en veille de l'ATtiny DDRB |= _BV(IR_Led); // Remet le port en OUTPUT }
void Veille() { // Met l'ATtiny en veille MCUSR &= ~(1<<WDRF); // Met à 0 le bit "Watchdog Reset Flag" dans le Registre MCU (Registre de statut) qui est remis à 1 quand l'ATtiny sort de veille (indicateur sur la façon de sortir du reset) WDTCR = _BV (WDCE) | _BV (WDE); // Régle les bits WDE et WDCE sur 1 du WDTCR (Watchdog Timer Control Register) pour pouvoir configurer les délais de mise en veille WDTCR = _BV (WDIE) | WDP_Set; // Met le bit WDIE sur 1, ce qui active l'interruption du watchdog et met le bit WDE à 0, les bits WDP sont réglé et à la fin du délais configuré le Watchdog fait un reset wdt_reset(); set_sleep_mode (SLEEP_MODE_PWR_DOWN); //ZZZzz..ZZzzz..Zzz sleep_enable(); sleep_cpu (); sleep_disable(); } void pulseIR(long microsecs){ // Envoit les pulsations à 38Khz durant le temps définit par les microsecondes de PulseIR while (microsecs >= 0){ // Tant que les microsecondes de la valeur pulseIR n'ont pas atteint 0 on continu IR_Pin &= ~_BV(IR_Led); // Met le Pin2 (PB3) à l'état haut delayMicroseconds(13); //38Khz = 13 microsecondes haut + 13 microsecondes bas IR_Pin |= _BV(IR_Led); // Met le Pin2 (PB3) à l'état bas delayMicroseconds(13); //38Khz = 13 microsecondes haut + 13 microsecondes bas microsecs -= 26; // on Retire 26 microsecondes de la valeur PulseIR } } void IRCode() { pulseIR(2600); delay(26); for(int x = 0 ; x < 8; x++){ if ( bitRead(Code_IR, x) == 1){ pulseIR(780); delayMicroseconds(780); } else{ pulseIR(390); delayMicroseconds(390); } } } void Set_Time_WDT(int Time){ // Conversion valeur du délais de veille en Décimal pour régler les bits WDP if ( Time <= 7 ) WDP_Set = Time ; if ( Time == 8 ) WDP_Set = ( Time * 4 ) ; if ( Time == 9 ) WDP_Set = ( Time * 4 ) + 1 ;
}
ISR(WDT_vect){ // Vecteur Watchdog lancé à la fin du délais configuré wdt_disable(); } Vala Merci à vous pour l'éventuelle aide....
|
|
|
|
|
3
|
International / Français / Sleep et Watchdog avec ATtiny85
|
on: March 08, 2013, 04:37:37 pm
|
Salut les gens, j'ai un petit projet en cours et pour le moment j'essaye de comprendre un peu le fonctionnement de la mise en veille et du réveil d'un ATtiny85 pour éviter de pomper trop de jus durant les quelques seconde pendant lesquels mon projet ne va rien faire.... J'ai essayé de voir ça avec une simple LED qui clignote s'allume durant deux seconde puis s’éteint, lancant le mode dodo et chien de garde de l'ATtiny85, je penses plus ou moins avoir compris, mais j'aimerais avoir un avis externe sur ce que j'ai pas bien fait ou pas fait comme il fallait. Donc voila le code #include <avr/sleep.h> #include <avr/wdt.h>
#define LED_Pin PORTB // Registre du PORTB Définit en Ecriture et Lecture #define Led 0 // Définit le pin de la Led IR
int WDP_Set; // Réglage WDP (bit de réglage délais de veille)
void setup(){ Set_Time(7); // Réglage du délais de veille: 0=16ms, 1=32ms, 2=64ms, 3=125ms, 4=250ms, 5=500ms, 6=1 sec, 7=2 sec, 8=4 sec, 9= 8sec DDRB |= _BV(Led); // Met le pin Led en OUTPUT OSCCAL = 0x56; // Calibration Oscillateur Interne de l'ATtiny85, voir Tiny Tuner ADCSRA = 0; // Désactive l'ADC (Analog to Digital Converter) pour économiser du courant en mode veille }
void loop(){ LED_Pin |= _BV(Led); // Met le Pin à l'état haut delay(2000); LED_Pin &= ~_BV(Led); // Met le Pin à l'état bas DDRB &= ~_BV(Led); // Mets le port de la Led en INPUT pour économiser du courant Veille(); // Mise en veille de l'ATtiny DDRB |= _BV(Led); // Remet le port en OUTPUT }
void Set_Time(int i){ // Conversion valeur du délais de veille en Décimal pour régler les bits WDP if ( i > 7 ) WDP_Set = ( i * 4 ) ; else WDP_Set = i; }
void Veille() { // Met l'ATtiny en veille, l'ATtiny se réveille quand le délais de veille (watchdog) arrive à 0 MCUSR &= ~(1<<WDRF); /* Met à 0 le bit "Watchdog Reset Flag" dans le Registre MCU (Registre de statut) qui est remis à 1 quand l'ATtiny sort de veille (indicateur sur la façon de sortir du reset)*/ WDTCR = _BV (WDCE) | _BV (WDE); // Régle les bits WDE et WDCE sur 1 du WDTCR (Watchdog Timer Control Register) pour pouvoir configurer les délais de mise en veille WDTCR = _BV (WDIE) | WDP_Set; /* Met le bit WDIE sur 1, ce qui active l'interruption du watchdog et met le bit WDE à 0, les bits WDP sont réglé et à la fin du délais configuré le Watchdog fait un reset */ wdt_reset(); // ??? set_sleep_mode (SLEEP_MODE_PWR_DOWN); //ZZZzz..ZZzzz..Zzz sleep_enable(); sleep_cpu (); sleep_disable(); }
ISR(WDT_vect){ // ??? Vecteur Watchdog lancé à la fin du délais configuré wdt_disable(); // ??? } Quelques questions: -Les commentaires correspondent bien aux commandes? -le wdt_reset et wdt_disable ont quel incidence sur les registres qu'on manipule pour régler le watchdog , j'ai pas bien saisie ces deux parties? -si je désactive le ADCSRA dans le setup cela à une grande influence sur le reste du code si je ne me sert pas de conversion analogique vers digital? -le bout de code que j'ai fait est t'il convenable ou c'est un peu branlant? -Avec ce bout de code l'ATtiny85 consomme 26.5mA avec la LED allumé et 0.03mA en veille, c'est correct ou je peux encore descendre en veille? Vala Merci à vous pour vos réponses. A+
|
|
|
|
|
5
|
International / Français / Sanguinololu et Lit chauffant Reprap
|
on: March 15, 2012, 01:16:02 pm
|
Salut à vous, je sais que le sujet et un peu hors sujet mais je galére et plus je lit de topics sur le forum Reprap plus je suis perdu....donc comme je sais qu'ici y'a des ti génie en électronique je pense que j'aurais plus de chance à avoir ma réponse, pis bon la Carte qui controle la Reprap est sur la base de l'arduino ^^ Donc voila j'arrive pas à cabler mon lit chauffant sur ma Longboat Prusa, le wiki est totalement faux ou mal finit à ce niveau et il ne me reste plus que ça à faire, j'ai récupéré un schéma qui est bon, mais je ne vois pas ou le Gain, la Source et la Gate sur le schéma, le symbole sur la datashet est pas le méme : voila le schéma:  et voila le Datashet > LinkSi une ame généreuse peut me dire ou se trouve le Gain, Gate et Source sur le schéma se serait vraiment terrible ^^
|
|
|
|
|
6
|
International / Français / Re: Comment débuter..
|
on: January 30, 2012, 01:25:14 pm
|
Salut à toi amis Airsofteur, et oui le airsoft c'est plus ou moins pareil que le paintball sauf que le paintball est un sport avec des régles à respecter, et que les billes de paintball sont 100% biodégradable, contrairement aux billes d'airsoft (et me dit pas oui mais y'en a qui utilise des billes bio, parce que je te répondrais que une infime partie des airsofteurs en utilisent parce que celle ci sont friable et ne tire pas droit...), et le fait de jouer un peu à l'arrache n'importe où me dérange un tant soit peu, mais bon c'est pas le débat ici  .... Pour ce qui est de ton projet, avec le Arduino uno ou Duemilanove t'auras large assez de pin pour faire ce que tu as envie de faire, voir méme t'auras plein de pin de libre pour "upgrader" ta bombe factice, donc tu peux y aller ^^. Je te conseil par la même occasion le site Mon Club Elec qui te permettra de te familliariser avec l'arduino avec des codes simples et bien expliqué pour le reste Google sera ton meilleur amis. Bien à toi.
|
|
|
|
|
9
|
International / Français / Re: Premier Projet Bombe Factice pour Partie Paintball
|
on: January 17, 2012, 05:59:23 am
|
Salut, @klgui4 Ben en méme temps j'ai pas trouvé le moyen de faire marcher le bouzin sans jus, mais je reste ouvert à toute proposition pour me passer de la batterie  @poisson_dino ben disons que c'est quand méme une usine à gaz mon projet, et que je doute fortement que les terroristes se fassent autant ch*** pour faire un truc qui explose, et je vois encore moins un vilain pas beau barbu faire une vrai bombe en suivant mon exemple, avec Pad NES, afficheur LCD et tout le toutim ^^ Quoi qu'il en soit merci de vos retours 
|
|
|
|
|
10
|
International / Français / Re: [Résolu 1/2] Arduino, Attiny85 et SD player d'ELM Chan via I2C
|
on: January 16, 2012, 01:45:47 pm
|
Salut, bon je reviens sur ce montage, d'une part parce que ça m'intrigue, et d'une autre part parce que j'aimerais vraiment intégrer un lecteur SD à mon projet, et j'ai un peu matter sur la toile mais y'a rien de comparable au lecteur d'ELM Chan transformé par ELO-WEB....enfin si mais trop cher. Alors déja @al1fch j'ai cablé le reset en direct sur un pin arduino pour faire un reset, et en direct sur l'arduino ça marche pas, je suis passé par un 2N3904, et le reset se fait nickel, faut mettre un temps de latence entre l'appuis du reset et le lachage virtuel, et aussi un petit temps de démarrage pour envoyer une commande, donc merci à toi : #include <Wire.h> const int reset = 2; int count = 0;
void setup() { pinMode(reset, OUTPUT); digitalWrite(reset,1); Wire.begin();
}
void loop() {
if(count < 3){ Wire.beginTransmission(85); Wire.send(2); Wire.endTransmission(); delay(2000); digitalWrite(reset,0); delay(10); digitalWrite(reset,1); delay(100); Wire.beginTransmission(85); Wire.send(3); Wire.endTransmission(); delay(2000); digitalWrite(reset,0); delay(10); digitalWrite(reset,1); count ++; }
Aprés vu que méme avec les convertisseurs de niveaux logique le fait de lancer un morceaux plante complétement le déroulement du prog (dû au passage du bus I2C vers SPI) j'ai pensé à un truc, et je ne sais pas si c'est faisable, j'attends donc que vous m'éclairiez. J'ai testé le voltage entre la ligne SDA et SCL sur l'ATtiny85 pendant tout le cycle de lecture d'une piste, j'obtiens donc: -Au repos : 1V -Lecture : 1.5V -Aprés fin lecture : pique à 3.3V -Repos : 1 V ........ Serait t'il possible de rajouter un Attiny85 qui lui serait là pour faire office de "relais" d'ouverture et de fermeture pour couper la ligne SDA/SCL le temps de la lecture, en gros l'arduino envois la commande à l'ATtiny qui lit la musique, l'autre ATtiny compare la tension entre SDA et SCL et si celle ci dépasse 1V coupe la liaison SDA/SCL entre l'arduino et le lecteur audio, et l'a réouvre une fois que la tension reviens à 1V? C'est possible ou pas? Merci de vos réponses, A+
|
|
|
|
|
12
|
International / Français / Re: LED mulicolores
|
on: January 13, 2012, 10:57:16 am
|
|
Fragile et cassant le kynar? heu ben je trouve pas, sauf peut étre au niveau des soudures sur plaque Veroboard, mais avec un ti coup de pistoler à colle pour éviter les torsions aux niveaux des soudures et une éventuelle cassure ça le fait ^^.
|
|
|
|
|
13
|
International / Français / Re: LED mulicolores
|
on: January 13, 2012, 08:19:36 am
|
Re, pour le cable fin qui supporte pas mal de tension tu peux te tourner vers du Kynar AWG32 ou 30, c'est du fils justement à Wrapper, il est super fin, je m'en servais pour faire mes Mod PSP: Autre PhotosLien Kynar FarnellPar contre si tu passe par Farnell, je suis partant pour une CG, si jamais prends contact avec moi...enfin faut voir si d'autre sont intérréssé par une CG de ce type?? A+
|
|
|
|
|
15
|
International / Français / Re: Premier Projet Bombe Factice pour Partie Paintball
|
on: January 13, 2012, 05:16:42 am
|
Salut Arduimat, et merci pour ton retour sur mon projet ^^ Pour répondre à tes questions: - La batterie c'est celle ci : ICI- Le chargeur j'ai pris celui- CI ( plus de 9H pour une charge compléte de la batterie.....) - Pour l'alimentation j'ai séparé en deux mes circuits, histoire de ne pas trop tirer de jus sur l'arduino. - La batterie est connecté directement sur l'arduino, arduino qui lui alimente tout ce qui a des prises analogiques: Keypad/4051/BP - La batterie passe aussi en // par un 7805 sans passer par l'arduino pour alimenter : les LCD/Pad NES/LED/IR/Audio SD/DS1307 -Pour ce qui est de l'utilisation d'autant de module sur un arduino, ben à la base j'étais partie sur un Arduino Mega, mais j'ai vite trouvé dommage de laisser vide autant de pin, je suis donc passé sur le UNO en passant par diverses multiplexer/demultiplexer. Et il me reste juste un pin de libre sur le UNO, voila le détail des cables nécessaires pour les diverse modules: - Shift LCD 20 x 4 >> 3 Pin digitaux - LCD 16 x 2 I2C >> Pin SDA/SCL - PAD NES >> 3 Pin Digitaux - Récepteur IR + Télécommande >> 1 Pin Analogique - Matrice à LED Bicolore de 5x5 (pour avoir 10 LED Bicolore + 5 LED simple) avec 595 et ULN2803 >> 3 Pin Digitaux - Keypad non matricielle transformé en Analogique >> 1 Pin Analogique - DS1307 >> Pin SDA/SCL - Audio SD player D'ELM Chan >> 1 Pin Digital - 4051 >> 3 Pin Digitaux + 1 Pin Analogique - BP >> 1 Pin Analogique - Pour ce qui est des errures je les ai récup au taf sur des monayeurs, mais avec une recherche "Serrures Contact " ou "barillet à contatc electrique" tu cevrais trouver ton bonnheur. Voila en espérant avoir répondu correctement à tes attentes  A+
|
|
|
|
|