Show Posts
Pages: [1] 2 3 ... 54
1  International / Français / Re: Debian Wheezy - AVRIsp MKII on: May 16, 2014, 02:40:06 pm
Bonsoir fdufnews,

J'obtenais une erreur de communication avec le port ttyUSB0. J'ai donc pré-supposé que mon fichier board.txt était incorrect et/ou incomplet.
En ce qui concerne la partie UDEV linux, j'ai, grosso modo, repris mon anciènne règle et l'ai adapté au goût du jour.

J'ai finalement résussi à faire fonctionner mon programmateur avec mon ATmega328 en standalone, même si je dois avouer être confronter à un autre problème assez bizarre...(phase de test en prévision).

Code:
atmega328ii.name=AVRISP mkII w/ ATmega328 16Mhz

#atmega328ii.upload.protocol=arduino
atmega328ii.upload.maximum_size=30720
atmega328ii.upload.speed=19200
#atmega328ii.upload.using=stk500v2

atmega328ii.bootloader.low_fuses=0xFF
atmega328ii.bootloader.high_fuses=0xDA
atmega328ii.bootloader.extended_fuses=0x05
atmega328ii.bootloader.path=atmega
atmega328ii.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328ii.bootloader.unlock_bits=0x3F
atmega328ii.bootloader.lock_bits=0x0F

atmega328ii.build.mcu=atmega328p
atmega328ii.build.f_cpu=16000000L
atmega328ii.build.core=arduino

atmega328ii.build.variant=standard
#############################################################

Code:
#Set permissions for the AVRIspMKII programmer granting read- and write-access for every user

SUBSYSTEM=="usb", ACTION=="add", ATTRS{idVendor}=="03eb", ATTRS{idProduct}=="2104", MODE="0666", GROUP="dialout", SYMLINK+="avrmk2"

Respectivement mes modifs dans le fichier board.txt et ma règle UDEV situé /etc/udev/rules.d/99-avrispmkii.rules

Actuellement, j'ai l'impression que mon programme (robot pendule inversé - moteur Polulu + SN754410 + MPU6050) qui utilise le Timer1 - Fast Pwm fonctionne à moitié (1 moteur sur 2 + I2C instable).
Ce qui est surprenant est que j'ai réalisé tous les pontages fils à fils entre ma standalone (sans µC) et une duemilanove afin de valider mon programme et avec réussite. En résolvant mon souci d'ISP, je me retrouve confronté à des incohérences qui peuvent soit provenir du programmateur lui-même, de mon circuit ou d'un des compsants allant du µC à ses périphériques directs.

J'aimerais être certain que mes modifications citées plus haut sont valides, sinon je devrais résoudre le pourquoi du comment mon programme fonctionne impéccablement sur ma duem. et pas du tout sur un 328 via ISP.

@+

Zoroastre.
2  International / Français / Re: Debian Wheezy - AVRIsp MKII on: May 15, 2014, 02:59:21 pm
Salut,

Code:
cat /var/log/syslog | grep -i 'avr'

.../...
May 15 21:42:51 debian-k kernel: [ 2675.811029] usb 3-1: Product: AVRISP mkII


La commande lsusb me retroune une détection concluante.

@+

Zoroastre.
3  International / Français / Debian Wheezy - AVRIsp MKII on: May 15, 2014, 02:38:12 pm
Bonjour à tous,

Malgrè mes recherches et plusieurs essais et trifouillages, je n'arrive plus à faire fonctionner mon programmateur ISP sous Linux. J'ai déjà résolu ce problème lorsque ma Debian était à la version Lenny avec une règle UDEV. Hors, il semblerait que les choses aient un peu changé depuis.

J'avouerais que je ne sais plus par quel bout prendre la chose. Le résultat infructueux de mes tentatives se soldent actuellement par une erreur du logiciel Arduino évoquant l'impossibilité de contacter le port Usb /dev/ttyUSB0...!!

J'ai tout d'abord remarqué que l'écriture de la règle UDEV avait un peu changé, je l'ai donc adapté ainsi :

/etc/udev/rules.d/60-avrisp.rules

Code:
SUBSYSTEM!="usb_device", ACTION!="add", GOTO="avrisp_end"
 
# Atmel Corp. JTAG ICE mkII
ATTR{idVendor}=="03eb", ATTR{idProduct}=="2103", MODE="660", GROUP="dialout"
# Atmel Corp. AVRISP mkII
ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", MODE="660", GROUP="dialout"
# Atmel Corp. Dragon
ATTR{idVendor}=="03eb", ATTR{idProduct}=="2107", MODE="660", GROUP="dialout"
 
LABEL="avrisp_end"

J'ai tenté également une approche plus condensé :

/etc/.../90-avrmkii.rules

Code:
SUBSYSTEM=="usb_device", ACTION=="add", ATTR{idVendor}=="03eb", ATTR{idProduct}=="2104", MODE="660", GROUP="dialout", NAME=="avrmkii"

Je ne me rappelle plus si le périphérique doit apparaître dans l'onglet "port série" du logiciel Arduino.

Quoi qu'il en soit, j'arrive, à priori, à écrire le bootloader sur le microcontroleur (la led de l'isp clignote pendant la procédure et le logiciel ne retourne pas d'erreur). Mais je reste bloqué sur l'impossibilité d'injecter mon propre programme ou l'exemple 'Blink' fournit par défaut.

J'ai modifié le fichier .../Hardware/arduino/Boards.txt comme suit :

Code:
.../...

atmega328ii.name=AVRISP mkII w/ ATmega328 20Mhz

atmega328ii.upload.protocol=avrispmkii
atmega328ii.upload.maximum_size=30720
atmega328ii.upload.speed=19200
atmega328ii.upload.using=avrispmkii

atmega328ii.bootloader.low_fuses=0xFF
atmega328ii.bootloader.high_fuses=0xDA
atmega328ii.bootloader.extended_fuses=0x05
atmega328ii.bootloader.path=atmega
atmega328ii.bootloader.file=ATmegaBOOT_168_atmega328.hex
atmega328ii.bootloader.unlock_bits=0x3F
atmega328ii.bootloader.lock_bits=0x0F

atmega328ii.build.mcu=atmega328p
atmega328ii.build.f_cpu=20000000L
atmega328ii.build.core=arduino

atmega328ii.build.variant=standard

Je suppose puisque j'arrive à écrire le Bootloader que mon problème se situe dans la modification ci-dessus, ou dans un oubli quelque part ailleurs, et je sollicite donc votre aide pour m'apporter des pistes ou résoudre mon problème.

J'ai l'impression que ce problème a été maintes fois rebattu mais là, vraiment, je planche dur !!

Merci pour votre aide.

Zoroastre.
4  International / Français / Re: Port serie arduino et scripting. on: May 04, 2014, 03:13:12 am
Yep!

Pour ton souci d'auto-reset et si tu oeuvres bien sous linux,

Essaye la commande qui suit :

Code:
stty --file=/dev/ttyACM0 crtscts -hupcl

En résumé, l'activation du crtscts permet l'écriture des paramètres de contrôle des données, et on désactive le hupcl afin de ne plus envoyer le bit d'initialisation du péripherique.

@+

Zoroastre.
5  International / Français / Re: librairie Time + relays on: November 30, 2013, 06:10:05 am
Yep!

J'ai survolé ton code, il a l'air bon à première vue.

Pour ton conflit sur le port série, je te recommande de ne travailler qu'avec Processing ou tout autre langage qui te convient le mieux (Python, perl, c++, etc). Tu écoutes les infos qui te sont retournés par la carte, les fait apparaitre dans un moniteur et lorsque tu as un 'T', qui correspond à une demande de synchro de l'heure, tu l'excécute (cette partie là tu connais).

Il y a de nombreux exemple sur internet. Je te laisse te débrouiller seul.

@+

Zoroastre.
6  International / Français / Re: capteur au bout d'un long cable on: November 27, 2013, 03:56:27 pm
Yep!

3 mètres ce n'est pas la mer à boire. Une petite résistance sur Vcc et un condo de quelques nF entre Vcc et Gnd sont habituellement recommandés.

Avec R = 100 ohms et C = 100 nF, ça devrait aller aussi bien que sans.

@+

Zoroastre.
7  International / Français / Re: librairie Time + relays on: November 27, 2013, 03:48:19 pm
Yep!

Code:
...
if (timeStatus()!= timeNotSet) {
    digitalClockDisplay(); 
  }
  if (timeStatus() == timeSet)
...

Grosso modo tu dis 2 fois la même chose ici. Si le status est différent de "non paramétré" (!=), Si le status est équivalent à paramétrer.

Si l'horologe n'est pas à jour, on fait une requête de mise à jour : requestsync.et ensuite on écoute le port série pour le message de retour.

if (timeStatus()== timeNotSet) {
   requestsync;  processSyncMessage();
  }

Vérifies ton code en ajoutant 2 println pour l'heure et les minutes. Tu as définis une constante (const unsigned long DEFAULT_TIME = 1357041600;) qui naturellement fait que tes conditions suivantes sont vraies.

@+

Zoroastre.
8  International / Français / Re: Réception donnée afficheur sur un programme en c++ on: November 19, 2013, 12:13:05 pm
Yep!

Peux-tu nous dire de quel os il s'agit ? Windows ou linux ?

Une recherche sur google avec comme paramètre : "arduino serial c++" devrait te donner quelques indices.

@+

Zoroastre.
9  International / Français / Re: calibration écran tactile on: November 18, 2013, 12:41:59 pm
Yep!

Calibrer son ecran tactile n'est pas une chose aisée lorsque l'on part de rien.

Est-tu certain qu'il y ait une puce dédiée pour l'écran tactile ?
  - Je ne connais pas ce modèle d'écran, mais il n'est pas rare que la partie tactile soit indiquée compatible avec telle puce, qui sur la carte n'existe pas en réalité. Je le sais, ça m'est arrivé!

Fin bref! Je donne ce lien à tout hasard puisque je trouve cette partie du code assez compatible avec ce que j'ai pû experimenter autrefois ; UTouch      myTouch(15,10,14,9,8) == myTouch(Pin, Pin, Pin, Pin, R). Assez ressemblant avec la bibliothèque (Touchscreen) consacrée aux ecrans tactiles NDS, resistifs pour résumer.

Et je rajoute ce lien fort utile pour les bricoleux du tactile : http://www.embedded.com/design/system-integration/4023968/How-To-Calibrate-Touch-Screens

@+

Zoroastre.
10  International / Français / Re: Armature robotique on: November 17, 2013, 05:44:07 am
Bonsoir,
En version pas cher :
- une plaque de tôle fine,
- une cisaille à main
- une perceuse
- beaucoup de patience
- etc ...
Bien venu dans le monde du DIY
@+

Ne pas oublier le bois et le plexi. Bien plus facile à travailler, à appréhender et relativement indispensable pour réaliser une maquette ou une première version de son mobile. J'ai du plexi à profusion à mon boulot et de différente largeur, je coupe, je tranche, je lime, je perce dans tous les sens.  smiley-razz
11  International / Français / Re: Quelques questions de "C". on: November 16, 2013, 02:51:39 pm
Ça me fait penser à : http://fr.wikipedia.org/wiki/GRAFCET

ok ok j'arrête.  smiley-razz

@+

Zoroastre.
12  International / Français / Re: Quelques questions de "C". on: November 16, 2013, 01:15:13 pm
On est pas dans des questions métaphysiques. On parle de microprocesseur qui fonctionne électriquement en rendant comptes d'états logiques. De portes, d'interrupteurs ou que sais-je encore pour tenter les comparaisons.
Je peux comprendre que le langage Basic soit relativement fermé à ces concepts et facilite "de trop" l'approche d'un langage interprété. Pourtant, les types existaient déjà à l'époque
Fin bref!
Je te conseille grandement de repartir à zero (sans vouloir offenser ton "rien"), et de reconsidérer une approche plus expériementale et personnelle de tes objectifs. On tourne en rond sur des principes relativement simples depuis plusieurs pages qui évoquent l'algèbre de Boole, les tables de vérités ou même les tableaux de Karnaugh plus intensément.

http://fr.wikipedia.org/wiki/Table_de_v%C3%A9rit%C3%A9

http://fr.wikipedia.org/wiki/Machine_de_Turing

@+

Zoroastre.
13  International / Le bar / Re: Profilés rainurés pour faire une CNC ou imprimante 3D on: November 16, 2013, 12:15:51 pm
Yep!

3 fois moins cher que Radiospares, avec plus de choix apparemment.

Quelqu'un a-t'il déjà passé commande ? C'est possible d'avoir un retour.

Merci Chabot,

@+

Zoroastre.
14  International / Français / Re: Capteur ultrason on: November 16, 2013, 12:07:05 pm
Bonjour,

Je n'ai jamais joué avec une sonde ultrason. Je vais peut-être poser des questions bêtes :

Pourquoi diviser la valeur temps par 58 ?

@+

Zoroastre.
15  International / Français / Re: Probleme d'emission IR on: November 16, 2013, 11:56:11 am
  for (int i = 0; i < 2; i++) {Emission_ir.sendNEC(0xFF708f, 32);}
      delay(40);// envoie 2 fois le code de la télécommande du lecteur DVD NEOM touche 2

   
Code:
for (int i = 0; i < 2; i++) {
Emission_ir.sendNEC(0xFF708f, 32);
  delay(40);// envoie 2 fois le code de la télécommande du lecteur DVD NEOM touche 2
}
   

IRSEND avec MEGA = Pin 9   !!!!!
...
 smiley-mr-green
et une pinte de Guiness pour AnalysIR !
une !

Mince ! Je suis arrivé trop tard, j'ai loupé une tournée de guiness...

 smiley-lol
Pages: [1] 2 3 ... 54