FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC

Développement d'applications avec le langage Panoramic
 
AccueilAccueil  FAQFAQ  RechercherRechercher  S'enregistrerS'enregistrer  MembresMembres  GroupesGroupes  Connexion  
Derniers sujets
» Palette (une de plus): 16, 48 ou 216 couleurs
par Klaus Aujourd'hui à 1:18

» La roue de la fortune
par Jean Claude Hier à 21:23

» Modifier le son d'une vidéo
par Jean Claude Hier à 21:10

» SimpleEditor
par Klaus Hier à 20:02

» KGF_dll - nouvelles versions
par Klaus Hier à 18:21

» Synedit_Editor - nouvelles versions
par Klaus Hier à 12:25

» Gestionnaire de Projets Panoramic
par Laurent (Minibug) Lun 24 Avr 2017 - 23:23

» Un nouveau
par jjn4 Lun 24 Avr 2017 - 20:32

» PANO-LIKE : Une copie de Panoramic Editeur
par Laurent (Minibug) Dim 23 Avr 2017 - 18:42

» Un compteur de lignes de code source
par Klaus Sam 22 Avr 2017 - 21:55

» Rechercher une chaîne de caractère dans un fichier.
par papydall Sam 22 Avr 2017 - 13:45

» Problème avec la fonction IsolateWordsFromString.
par Klaus Sam 22 Avr 2017 - 10:42

» Recherche Hardware MIDI
par Yannick Ven 21 Avr 2017 - 21:08

» Panoramic Editor
par Yannick Jeu 20 Avr 2017 - 23:18

» Problème avec la fonction ReplaceStringInString.
par Pedro Alvarez Jeu 20 Avr 2017 - 17:29

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Avril 2017
LunMarMerJeuVenSamDim
     12
3456789
10111213141516
17181920212223
24252627282930
CalendrierCalendrier

Partagez | 
 

 Panoramic Arduino

Voir le sujet précédent Voir le sujet suivant Aller en bas 
Aller à la page : 1, 2, 3, 4, 5, 6  Suivant
AuteurMessage
loulou08

avatar

Nombre de messages : 63
Age : 74
Localisation : Champagne-Ardenne
Date d'inscription : 16/05/2010

MessageSujet: Panoramic Arduino   Lun 8 Avr 2013 - 14:01


Bonjour

Panoramic allume et éteint une LED sur une carte Aduino UNO

avec la DLL  '' IO_Acces_Com '' trouvée sur le site ''automatepc''

http://www.automatepc.fr/?page=IntroPortSerie

comme la DLL n'a pas été écrit pour Panoramic
des fonctions ne marchent pas
ou je ne sais pas m’en servir
bonne journée a tous
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramicetardinouno.blogspot.fr/
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 14:11

Excellente nouvelle !
Je télécharge, je teste, et je te tiens au courant.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9822
Age : 67
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 14:44

La dll est écrite en Delphi. Je l'ai téléchargée, et je vais l'adapter à Panoramic. Patience...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5816
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 15:02

Si Klaus se met dessus, tu as de la chance, il fait les DLL plus vite que son ombre Wink
(Et même les docs ...)
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7532
Age : 45
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 8 Avr 2013 - 15:11

Je sens que KGF.dll va passer à la version 3.0 avant ce soir 0h00... lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9822
Age : 67
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 15:53

C'est fait.

Je ne l'ai pas intégré à KGF.dll. Je l'ai laissé dans la dll d'origine: IO_Access_COM.dll.

J'ai créé un dossier du même nom dans mon WebDav. Dans ce dossier, il y a la DLL, et également le projet Delphi complet qui est évidemment publique, tout comme le source d'origine.

Je ne peux pas tester chez moi puisque le n'ai pas le matériel nécessaire. Mais voici ce que j'ai fait:
- toutes les valeurs numériques sont passées sous forme de variable integer aux fonctions. Donc, il faut utiliser, soit des constantes ou expressions numériques, soit des variables genre n%
- tout ce qui était procédure a été transformé en fonction retournant une valeur entière
- toutes les fonctions qui retournaient un booleen, retournent une valeur entière: 0=faux 1=vrai
- pour le retour des données lues, il faut utiliser une variable de chaîne de caractères et une variable de type entier, selon la méthode suivante:
Code:

dim buffer$, SzBlk
buffer$ = string$(512," ")
res% = ComGetBlockIn (adr(Buffer$),adr( SzBlk))
if res%=0
  message "rien reçu
else
  buffer$ = left$(buffer$,SzBlk)
end_if

Je corrigerai évidemment tout problème lié à la transposition, si j'ai des informations précises. Bonen chance !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5816
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 17:22

Je ne peux pas tester puisque je n'ai pas l'équipement non plus, mais bravo Klaus et merci pour nos amis électo/roboticiens. Je pense toujours qu'il y a un vrai débouché pour Panoramic dans cette niche d'utilisateurs pour ce langage facile à mettre en oeuvre.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
loulou08

avatar

Nombre de messages : 63
Age : 74
Localisation : Champagne-Ardenne
Date d'inscription : 16/05/2010

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 19:07

Merci Klaus pour ta rapidité

je vais télécharger la dll et faire un programme pour tester
je suis moins rapide que toi je vais assimiler tout cela
merci
et bonsoir a tous les Panoramaticiens
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramicetardinouno.blogspot.fr/
Klaus

avatar

Nombre de messages : 9822
Age : 67
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 20:30

Je crains que tu sois obligé de recharger la DLL !

J'ai fait un petit programme de test pour vérifier la validité du passage de paramètres entre Panoramic et les fonctions. Et j'ai corrigé de petites anomalies, et il vaut mieux que tu reprennes la version actuelle. Je ne présume pas du fonctionnement des ports ni de la carte connectée, mais tout est bon maintenant au niveau de l'interface entre Panoramic et la DLL.

Tu verras, j'ai mis des valeurs bidons pour les paramètres. C'est parce que je ne connais rien à la partie fonctionnelle - ça, c'est ton affaire ! Côté Delphi/dll, c'est bon. Tu n'as plus qu'à mettre des valeurs valides dans mon petit programme de test pour pouvoir piloter ton engin. Voici le code:
Code:
' test_IO_Access_COM.bas

label tester

dim res%, dat%, buffer$, taille%

combo 10 : top 10,20 : left 10,20
  item_add 10,"ComUsePort"
  item_add 10,"ComStateIn"
  item_add 10,"ComStateOut"
  item_add 10,"ComConfig"
  item_add 10,"ComSetDataOut"
  item_add 10,"ComGetDataIn"
  item_add 10,"ComSetBlockOut"
  item_add 10,"ComGetBlockIn"
 
button 20 : top 20,20 : left 20,180
  caption 20,"Tester" : on_click 20,tester


dll_on "IO_Acces_COM.dll"

end

tester:
  select item_index(10)
    case 1
      res% = dll_call1("ComUsePort",1)
      message "Résultat: "+str$(res%)
    case 2
      res% = dll_call1("ComStateIn",1)
      message "Résultat: "+str$(res%)
    case 3
      res% = dll_call2("ComStateOut",2,1)
      message "Résultat: "+str$(res%)
    case 4
      res% = dll_call4("ComConfig",1200,8,1,0)
      message "Résultat: "+str$(res%)
    case 5
      res% = dll_call1("ComSetDataOut",65)
      message "Résultat: "+str$(res%)
    case 6
      res% = dll_call1("ComGetDataIn",adr(dat%))
      message "Résultat: "+str$(res%)+"  Data="+str$(dat%)
    case 7
      buffer$ = "abcde"
      taille% = len(buffer$)
      res% = dll_call2("ComSetBlockOut",adr(buffer$),taille%)
      message "Résultat: "+str$(res%)
    case 8
      buffer$ = string$(512," ")
      taille% = 512
      res% = dll_call2("ComGetBlockIn",adr(Buffer$),adr(taille%))
      if taille%>0
        buffer$ = left$(buffer$,taille%)
        message "Résultat: "+str$(res%)+" "+buffer$
      else
        message "Résultat: "+str$(res%)
      end_if
  end_select
  return
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jean Claude

avatar

Nombre de messages : 4742
Age : 62
Localisation : 83 Var
Date d'inscription : 07/05/2009

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 21:11

Wouaaaa!!!!

il s"en est passé des choses entre 13h et 19h

Epoustoufflant ,
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 529
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 21:48

bonsoir a tous
je m'absente un week end et deja des nouveautées. Wink
il me semble que la DLL port parallele peut egalement envoyer des données par le port serie si l'adresse et bien choisie.
desolé mais je n'ai pas eu le temps de verifier.
et surtout envoyer des données c'est une chose, gerer le port s'en est une autre!!
bounce
il serait interressant d'avoir les info sur t'a carte arduino.
bom
pour ma part, je pense sortir une preversion de mon logiciel pedagogique de programmation de robot rapidement.
il me reste a creer des niveaux d'apprentissage.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5816
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 21:54

Excellent. C'est orienté adulte ou un enfant de 7ans et demi pourra comprendre ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Yannick

avatar

Nombre de messages : 7532
Age : 45
Localisation : Bretagne
Date d'inscription : 15/02/2010

MessageSujet: re   Lun 8 Avr 2013 - 22:28

Autrement dit, est ce que ce sera à nôtre porté ?....

lol!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5816
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramic Arduino   Lun 8 Avr 2013 - 23:10

Je me demandais si je pourrais faire le test avec mon fils...
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mindstorm

avatar

Nombre de messages : 529
Age : 48
Localisation : charente
Date d'inscription : 13/02/2013

MessageSujet: dispo version test   Lun 8 Avr 2013 - 23:19

pour les panoramiciens le test est ouvert sur mon webdav
pour les enfants de 7 ans il me reste a faire une interface pale
si quelqu un a une idee, je pense a un fichier texte
bonne soirée
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: Panoramic Arduino   Mar 9 Avr 2013 - 0:57

Bonsoir tout le monde

@ klaus

Ta dll (IO_Acces_COM) fonctionne très bien avec les fonctions d’ouverture de config et d’écriture d’1 data.

a%=dll_call1("ComUsePort",7)


a% = dll_call4("ComConfig", 9600, 8, 1, 0)


a% = dll_call1("ComSetDataOut",asc("a"))

c’est le rêve…

par contre, quand il s’agit de lire un caractère,

a% = dll_call1("ComGetDataIn",adr(in%))
print in%,

là ça se corse… ça me répond n’importe quoi

Le test a été effectué sur une carte Arduino uno avec les valeurs ci dessus

La validité du programme de la carte n’est pas à mettre en doute car j’ai vérifié avec le moniteur serie du logiciel arduino. Je reçois bien une donnée sous forme d’un int que je fais varier avec un potentiomètre sur la carte.

Pour les autres fonctions, vu que la carte sus nommée utilise un port Usb je n’en vois guerre l’intérêt. Sauf peut-être pour les blocs…

J'ai essayé de jeter un œil au source en dpr... Euh.. chacun son truc comme on dit. J'cause malheureusement pas cette langue.

Y a bien des histoires de const qui m'ont paru bizarres mais comme j'y connais rien...

si t'as un petit moment...

Merci à toi
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9822
Age : 67
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Panoramic Arduino   Mar 9 Avr 2013 - 2:12

Etrange. Cette fonction doit retourner une donnée de 8 bits (un seul octet), qui est transformée de façon interne en entier de 32 bits afin d'être retournée à Panoramic. Qu'est-ce que tu reçois et qu'est-ce que tu devrais recevoir ?
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
loulou08

avatar

Nombre de messages : 63
Age : 74
Localisation : Champagne-Ardenne
Date d'inscription : 16/05/2010

MessageSujet: Re: Panoramic Arduino   Mar 9 Avr 2013 - 9:53

Bonjour a tous
Klaus j'ai bien téléchargé la version 2

dll_call1("ComUsePort",Cool OK avec Panoramic
dll_call4("ComConfig",115200,8,1,0) OK avec Panoramic

dll_call1("ComStateIn",1) ???
dll_call2("ComStateOut",2,1) ????
deux sorties RX et TX

dll_call1("ComSetDataOut",65) OK avec Panoramic

avec cette fonction
A => LED =1 a => LED =0
65 => LED =1 97 => LED =0
code ASCII pour dialoguer avec Arduino

dll_call1("ComGetDataIn",adr(dat%))
dll_call2("ComSetBlockOut",adr(buffer$),taille%)
dll_call2("ComSetBlockIn",adr(buffer$),taille%)

avec ses trois fonctions je ne sais pas les faire marcher
avec Panoramic

avec le moniteur série du logiciel arduino
qui est un edit un button et un memo
cela dialogue bien

je continue les tests

w7 pro
connexion USB port série virtuel (Cool
pour info

Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://panoramicetardinouno.blogspot.fr/
Klaus

avatar

Nombre de messages : 9822
Age : 67
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Panoramic Arduino   Mar 9 Avr 2013 - 10:59

ComStateIn(ligne%)
Cette fonction retourne l'état du fil à tester:
0 = RLSD
1 = DSR
2 = CTS
3 = RING

ComStateOut(Ligne%, Etat%)

Cette fonction force l'état d'une ligne:
ligne=0: DTR
ligne=1: RTS

dll_call1("ComGetDataIn",adr(dat%))
Cette fonction reçoit une valeur binaire 8 bits par le périphérique et la restitue sur forme d'un entier à Panoramic.

dll_call2("ComSetBlockOut",adr(buffer$),taille%)
Cette fonction envoie les taille% premiers caractères d'une chaîne de caractères au périphérique

dll_call2("ComSetBlockIn",adr(buffer$),taille%)
est en réalité
dll_call2("ComGetBlockIn",adr(buffer$),adr(taille%))
Cette fonction reçoit une chaîne de caractères du péripérique et la dépose dans ne variable chaîne de caractères.
Avant l'appel, buffer$ doit avoir été chargé par au moins autant d'espaces que de caractères attendus, et il faut passer la longueur de la chaîne buffer$ dans taille%. Au retour, taille% contient le nombre de caractères réellement lus, et les taille% premiers caractères de buffer$ sont remplacés par les caractères lus.

Si tu reçois des données inattendues, dis-moi la valeur binaire de la donnée reçue et ce qui aurait dû arriver !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: Panoramic Arduino   Mar 9 Avr 2013 - 11:11

Ah Ah ! Petit début d'ébauche de commencement d'idée...
La donnée retransmise et donc transitant par
dll_call1("ComGetDataIn",adr(dat%))
est un entier... (1023 max)
si elle attend 8 bits ça peut engendrer de menus problèmes. Je n'ai pas le temps de vérifier ça pour le moment, mais je m'y attèle ce soir.
Bonne journée à tous
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Jicehel

avatar

Nombre de messages : 5816
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramic Arduino   Mar 9 Avr 2013 - 13:31

Petite informations complémentaire sur cette fameuse carte pour ceux que ça interesse:

Cette carte coûte moins de 30€ (Peut être trouvée en promo à 10€ à priori)



La carte Arduino Uno est une carte à microcontrôleur basée sur l'ATmega328 (voir la fiche technique).

Elle dispose :

de 14 broches numériques d'entrées/sorties (dont 6 peuvent être utilisées en sorties PWM (largeur d'impulsion modulée)),
de 6 entrées analogiques (qui peuvent également être utilisées en broches entrées/sorties numériques),
d'un quartz 16Mhz,
d'une connexion USB,
d'un connecteur d'alimentation jack,
d'un connecteur ICSP (programmation "in-circuit"),
et d'un bouton de réinitialisation (reset).
Elle contient tout ce qui est nécessaire pour le fonctionnement du microcontrôleur; Pour pouvoir l'utiliser et se lancer, il suffit simplement de la connecter à un ordinateur à l'aide d'un câble USB (ou de l'alimenter avec un adaptateur secteur ou une pile, mais ceci n'est pas indispensable, l'alimentation étant fournie par le port USB).

La carte Arduino Uno diffère de toutes les cartes précédentes car elle n'utilise par le circuit intégré FTDI usb-vers-série. A la place, elle utilise un Atmega8U2 programmé en convertisseur USB-vers-série.

"Uno" signifie un en Italien et ce nom marque la venue prochaine de la version 1.0 du logiciel Arduino. La carte UNO et la version 1.0 du logiciel seront la référence des versions Arduino à venir. La carte Uno est la dernière d'une série de carte USB Arduino, et le modèle de référence des plateformes Arduino; pour une comparaison avec les versions précédentes, voir l'index des cartes Arduino.

Synthèse des caractéristiques
Microcontrôleur ATmega328
Tension de fonctionnement 5V
Tension d'alimentation (recommandée) 7-12V
Tension d'alimentation (limites) 6-20V
Broches E/S numériques 14 (dont 6 disposent d'une sortie PWM)
Broches d'entrées analogiques 6 (utilisables en broches E/S numériques)
Intensité maxi disponible par broche E/S (5V) 40 mA (ATTENTION : 200mA cumulé pour l'ensemble des broches E/S)
Intensité maxi disponible pour la sortie 3.3V 50 mA
Intensité maxi disponible pour la sortie 5V Fonction de l'alimentation utilisée - 500 mA max si port USB utilisé seul
Mémoire Programme Flash 32 KB (ATmega328) dont 0.5 KB sont utilisés par le bootloader
Mémoire SRAM (mémoire volatile) 2 KB (ATmega328)
Mémoire EEPROM (mémoire non volatile) 1 KB (ATmega328)
Vitesse d'horloge 16 MHz

Schéma et typon de référence
Fichier EAGLE : http://arduino.cc/en/uploads/Main/arduino-uno-reference-design.zip
Schémas : http://arduino.cc/en/uploads/Main/arduino-uno-schematic.pdf

Brochage de la carte Uno
http://www.mon-club-elec.fr/mes_images/materiel/cartes_arduino/arduino_brochage_20_broches.png

Alimentation
La carte Arduino Uno peut-être alimentée soit via la connexion USB (qui fournit 5V jusqu'à 500mA) ou à l'aide d'une alimentation externe. La source d'alimentation est sélectionnée automatiquement par la carte.

L'alimentation externe (non-USB) peut être soit un adapteur secteur (pouvant fournir typiquement de 3V à 12V sous 500mA) ou des piles (ou des accus). L'adaptateur secteur peut être connecté en branchant une prise 2.1mm positif au centre dans le connecteur jack de la carte. Les fils en provenance d'un bloc de piles ou d'accus peuvent être insérés dans les connecteurs des broches de la carte appelées Gnd (masse ou 0V) et Vin (Tension positive en entrée) du connecteur d'alimentation.

La carte peut fonctionner avec une alimentation externe de 6 à 20 volts. Cependant, si la carte est alimentée avec moins de 7V, la broche 5V pourrait fournir moins de 5V et la carte pourrait être instable. Si on utilise plus de 12V, le régulateur de tension de la carte pourrait chauffer et endommager la carte. Aussi, la plage idéale recommandée pour alimenter la carte Uno est entre 7V et 12V.

Les broches d'alimentation sont les suivantes :

VIN. La tension d'entrée positive lorsque la carte Arduino est utilisée avec une source de tension externe (à distinguer du 5V de la connexion USB ou autre source 5V régulée). Vous pouvez alimenter la carte à l'aide de cette broche, ou, si l'alimentation est fournie par le jack d'alimentation, accéder à la tension d'alimentation sur cette broche.
5V. La tension régulée utilisée pour faire fonctionner le microcontrôleur et les autres composants de la carte (pour info : les circuits électroniques numériques nécessitent une tension d'alimentation parfaitement stable dite "tension régulée" obtenue à l'aide d'un composant appelé un régulateur et qui est intégré à la carte Arduino). Le 5V régulé fourni par cette broche peut donc provenir soit de la tension d'alimentation VIN via le régulateur de la carte, ou bien de la connexion USB (qui fournit du 5V régulé) ou de tout autre source d'alimentation régulée.
3V3. Une alimentation de 3.3V fournie par le circuit intégré FTDI (circuit intégré faisant l'adaptation du signal entre le port USB de votre ordinateur et le port série de l'ATmega) de la carte est disponible : ceci est intéressant pour certains circuits externes nécessitant cette tension au lieu du 5V). L'intensité maximale disponible sur cette broche est de 50mA
GND. Broche de masse (ou 0V).
Mémoire
L'ATmega 328 a 32Ko de mémoire FLASH pour stocker le programme (dont 0.5Ko également utilisés par le bootloader). L'ATmega 328 a également 2ko de mémoire SRAM (volatile) et 1Ko d'EEPROM (non volatile - mémoire qui peut être lue à l'aide de la librairie EEPROM) .

Pour info : Le bootloader est un programme préprogrammé une fois pour toute dans l'ATméga et qui permet la communication entre l'ATmega et le logiciel Arduino via le port USB, notamment lors de chaque programmation de la carte.

Entrées et sorties numériques
Chacune des 14 broches numériques de la carte UNO (numérotées des 0 à 13) peut être utilisée soit comme une entrée numérique, soit comme une sortie numérique, en utilisant les instructions pinMode(), digitalWrite() et digitalRead() du langage Arduino. Ces broches fonctionnent en 5V. Chaque broche peut fournir ou recevoir un maximum de 40mA d'intensité et dispose d'une résistance interne de "rappel au plus" (pull-up) (déconnectée par défaut) de 20-50 KOhms. Cette résistance interne s'active sur une broche en entrée à l'aide de l'instruction digitalWrite(broche, HIGH).

De plus, certaines broches ont des fonctions spécialisées :

Communication Serie: Broches 0 (RX) et 1 (TX). Utilisées pour recevoir (RX) et transmettre (TX) les données séries de niveau TTL. Ces broches sont connectées aux broches correspondantes du circuit intégré ATmega8U2 programmé en convertisseur USB-vers-série de la carte, composant qui assure l'interface entre les niveaux TTL et le port USB de l'ordinateur.
Interruptions Externes: Broches 2 et 3. Ces broches peuvent être configurées pour déclencher une interruption sur une valeur basse, sur un front montant ou descendant, ou sur un changement de valeur. Voir l'instruction attachInterrupt() pour plus de détails.
Impulsion PWM (largeur d'impulsion modulée): Broches 3, 5, 6, 9, 10, et 11. Fournissent une impulsion PWM 8-bits à l'aide de l'instruction analogWrite().
SPI (Interface Série Périphérique): Broches 10 (SS), 11 (MOSI), 12 (MISO), 13 (SCK). Ces broches supportent la communication SPI (Interface Série Périphérique) disponible avec la librairie pour communication SPI. Les broches SPI sont également connectées sur le connecteur ICSP qui est mécaniquement compatible avec les cartes Mega.
I2C: Broches 4 (SDA) et 5 (SCL). Supportent les communications de protocole I2C (ou interface TWI (Two Wire Interface - Interface "2 fils"), disponible en utilisant la librairie Wire/I2C (ou TWI - Two-Wire interface - interface "2 fils") .
LED: Broche 13. Il y a une LED incluse dans la carte connectée à la broche 13. Lorsque la broche est au niveau HAUT, la LED est allumée, lorsque la broche est au niveau BAS, la LED est éteinte.
Voir également : Correspondance entre les broches de l'Arduino et les ports de l'ATmega168.

Broches analogiques
La carte Uno dispose de 6 entrées analogiques (numérotées de 0 à 5), chacune pouvant fournir une mesure d'une résolution de 10 bits (càd sur 1024 niveaux soit de 0 à 1023) à l'aide de la très utile fonction analogRead() du langage Arduino. Par défaut, ces broches mesurent entre le 0V (valeur 0) et le 5V (valeur 1023), mais il est possible de modifier la référence supérieure de la plage de mesure en utilisant la broche AREF et l'instruction analogReference() du langage Arduino.

Note : les broches analogiques peuvent être utilisées en tant que broches numériques : elles sont numérotées en tant que broches numériques de 14 à 19.

Autres broches
Il y a deux autres broches disponibles sur la carte :

AREF : Tension de référence pour les entrées analogiques (si différent du 5V). Utilisée avec l'instruction analogReference().
Reset : Mettre cette broche au niveau BAS entraîne la réinitialisation (= le redémarrage) du microcontrôleur. Typiquement, cette broche est utilisée pour ajouter un bouton de réinitialisation sur le circuit qui bloque celui présent sur la carte.
Communication
La carte Arduino Uno dispose de toute une série de facilités pour communiquer avec un ordinateur, une autre carte Arduino, ou avec d'autres microcontrôleurs. L'ATmega 328 dispose d'une UART (Universal Asynchronous Receiver Transmitter ou émetteur-récepteur asynchrone universel en français) pour communication série de niveau TTL (5V) et qui est disponible sur les broches 0 (RX) et 1 (TX). Un circuit intégré ATmega8U2 sur la carte assure la connexion entre cette communication série vers le port USB de l'ordinateur et apparaît comme un port COM virtuel pour les logiciels de l'ordinateur. Le code utilisé pour programmer l'ATmega8U2 utilise le driver standard USB COM, et aucun autre driver externe n'est nécessaire. Cependant, sous Windows, un fichier .inf est requis.

Le logiciel Arduino inclut une fenêtre terminal série (ou moniteur série) sur l'ordinateur et qui permet d'envoyer des textes simples depuis et vers la carte Arduino. Les LEDs RX et TX sur la carte clignote lorsque les données sont transmises via le circuit intégré USB-vers-série et la connexion USB vers l'ordinateur (mais pas pour les communications série sur les broches 0 et 1).

Une librairie Série Logicielle permet également la communication série (limitée cependant) sur n'importe quelle broche numérique de la carte UNO.

L'ATmega 328 supporte également la communication par protocole I2C (ou interface TWI (Two Wire Interface - Interface "2 fils") et SPI :

Le logiciel Arduino inclut la librairie Wire qui simplifie l'utilisation du bus I2C. Voir la documentation pour les détails
Pour utiliser la communication SPI (Interface Série Périphérique), la librairie pour communication SPI est disponible.

Programmation

La carte Arduino Uno peut être programmée avec le logiciel Arduino (http://arduino.cc/en/Main/Software). Il suffit de sélectionner "Arduino Uno" dans le menu Tools > Board (en fonction du microcontrôleur présent sur votre carte). Pour plus de détails sur le langage Arduino, voir la référence du langage Arduino et pour apprendre à programmer en langage Arduino voir la page Apprendre.

Le microcontrôleur ATmega328 présent sur la carte Arduino Uno est livré avec un bootloader (petit programme de démarrage) préprogrammé qui vous permet de transférer le nouveau programme dans le microcontrôleur sans avoir à utiliser un matériel de programmation externe. Ce bootloader communique avec le microcontrôleur en utilisant le protocol original STK500 (reference, fichiers C).

Vous pouvez bien sûr passer outre le bootloader et programmer le microcontrôleur via le connecteur ICSP ( In-Circuit Serial Programming - "Programmation Série Dans le circuit" en français); voir ces instructions (en anglais) pour plus de détails.

Le source du code pour le circuit intégré ATmega8U2 est disponible. L'ATmega8U2 est chargé avec un bootloader DFU qui peut être activé en connectant le cavalier au dos de la carte (près de la carte de l'Italie) et en réinitialisant le 8U2. Vous pouvez alors utiliser le logiciel FLIP de chez Atmel (Windows) ou le programmeur DFU (Mac OS X et Linux) pour charger le nouveau code. Ou bien vous pouvez utiliser le connecteur ICSP avec un programmateur externe (pour réécrire le bootloader DFU).


Réinitialisation (logicielle) automatique

Plutôt que de nécessiter un appui sur le bouton poussoir de réinitialisation avant un transfert de programme, la carte Arduino UNO a été conçue de telle façon qu'elle puisse être réinitialisée par un logiciel tournant sur l'ordinateur. Une des broches matérielles de contrôle du flux (DTR) du circuit intégré ATmega8U2 est connecté à la ligne de réinitialisation de l'ATmega 328 via un condensateur de 100 nanofarads. Lorsque cette broche est mise au niveau BAS, la broche de réinitialisation s'abaisse suffisamment longtemps pour réinitialiser le microcontrôleur. Le logiciel Arduino utilise cette possibilité pour vous permettre de transférer votre programme dans la carte par un simple clic sur le bouton de transfert de la barre de boutons de l'environnement Arduino. Cela signifie que le bootloader peut avoir un temps mort plus court, la mise au niveau bas de la broche DTR étant bien coordonnée avec le début du transfert du programme.

Ce fonctionnement a d'autres implications. Quand la carte Uno est connectée à un ordinateur fonctionnant soit sous Mac Os X ou Linux, la carte se réinitialise à chaque fois qu'une connexion se fait entre elle et le logiciel (via le port USB). Pendant la demi-seconde suivante, le bootloader s'exécute sur la carte Uno. Puisqu'il est programmé pour ignorer les données mal formatées (càd toute donnée en plus du transfert d'un nouveau programme), il interceptera les quelques premiers octets de donnée envoyé à la carte après qu'une connexion soit établie. Si un programme s'exécutant sur la carte reçoit une configuration initiale ou d'autres données quand il démarre, assurez-vous que le logiciel avec lequel il communique attend une seconde après l'ouverture de la connexion avant d'envoyer ces données.

La carte Uno comporte une piste (du circuit imprimé) que vous pouvez couper pour désactiver la réinitialisation automatique. Les bords de chaque côté de la piste peuvent solidarisés ensemble pour la réactiver. Vous pouvez également désactiver la réinitialisation automatique en connectant une résistance de 110 Ohms entre le +5V et la ligne de réinitialisation (reset); voir ce fil du forum (en anglais) pour plus de détails.


Protection du port USB contre la surcharge en intensité

La carte Arduino Uno intègre un polyfusible réinitialisable qui protège le port USB de votre ordinateur contre les surcharges en intensité (le port USB est généralement limité à 500mA en intensité). Bien que la plupart des ordinateurs aient leur propre protection interne, le fusible de la carte fournit une couche supplémentaire de protection. Si plus de 500mA sont appliqués au port USB, le fusible de la carte coupera automatiquement la connexion jusqu'à ce que le court-circuit ou la surcharge soit stoppé.


Caractéristiques Mécaniques

Les longueurs et largeurs maximales de la Uno sont respectivement 6.86 cm et 5.33 cm, avec le connecteur USB et le connecteur d'alimentation Jack s'étendant au-delà des dimensions de la carte. Quatre trous de vis permettent à la carte d'être fixée sur une surface ou dans un boîtier. Noter que la distance entre les broches 7 et 8 est de 0.16 pouces, et non un multiple des 0.1 pouces séparant les autres broches.


--------------------------------------------------------------------------------

Commentaires utilisateurs
Le bootloader est un programme préprogrammé une fois pour toute dans l'ATméga et qui permet la communication entre l'ATmega et le logiciel Arduino via le port série, notamment lors de chaque programmation de la carte.
La mémoire disponible avec l'ATMega328 est largement suffisante pour les programmes. A titre d'exemple, un programme simple utilisant clavier et afficheur LCD avec calculs mathématiques n'occupera que 5 ou 6K de mémoire, ce qui laisse de la marge...
En pratique, la programmation par un programmateur externe, bien que possible comme évoqué ci-dessus n'a pas grand intérêt puisque tout l'avantage du système Arduino est justement de pouvoir programmer la carte Arduino directement par le port USB, sans programmateur externe. Le bootloader ne faisant que 0.5Ko, c'est 31.5 Ko de programme qui sont disponibles avec l'ATmega 328, ce qui est très largement suffisant dans la plupart des cas.

--------------------------------------------------------------------------------

Page d'accueil de la section Matériel Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino.

Cette page est une traduction et une adaptation en français d'une des pages de la rubrique Hardware du site officiel Arduino en anglais.

Cette page a été réalisée par Xavier HINAULT (2010) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.

Cette page est la traduction en français de la page originale : http://arduino.cc/en/Main/ArduinoBoardUno

Forum: http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1213719666/all

Logiciel Arduino: A télecharger ici


Dernière édition par Jicehel le Mar 9 Avr 2013 - 13:34, édité 1 fois
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9822
Age : 67
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Panoramic Arduino   Mar 9 Avr 2013 - 13:32

@ Mumu:
Non. Ce n'est pas 1023 max. Il s'agit d'un seul octet, donc 8 bits, soit une valeur numérique entre 0 et 255.

@Jicehel:
Excellent travail de documentaliste !
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Jicehel

avatar

Nombre de messages : 5816
Age : 44
Localisation : 77500
Date d'inscription : 19/04/2011

MessageSujet: Re: Panoramic Arduino   Mar 9 Avr 2013 - 13:35

Merci Klaus, il pleut sur Paris et je dois aller manger... J'ai pris 5 mn pour ce sujet Smile
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Mumu



Nombre de messages : 172
Localisation : 45
Date d'inscription : 20/12/2012

MessageSujet: Re: Panoramic Arduino   Mar 9 Avr 2013 - 16:36

@ Klaus

Je le sais bien, la donnée m'est fournie par la carte ( entrée sur un CAN 10 bits)
Après test (division de la donnée) pour obtenir un nb < 255, ça coince encore...
Je continue les essais
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Klaus

avatar

Nombre de messages : 9822
Age : 67
Localisation : Ile de France
Date d'inscription : 29/12/2009

MessageSujet: Re: Panoramic Arduino   Mar 9 Avr 2013 - 16:53

Sans connaître quoi que ce soit sur cette carte, il y a un point qui m'interpelle:

Tu dis que tu reçois un "CAN" de 10 bits. Ce ne seraient pas, par hasard, les 10 bits des données en format de transmission série, soit 1 bit parité, 8 bits data, un bit stop ? Ta valeur aurait alors le format pdddddddds et seuls les 8 bits data sont utiles et transmis par la fonction DLL. Le bit parité et le bit stop est éliminé automatiquement.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://klauspanoramic.comxa.com/index.html
Contenu sponsorisé




MessageSujet: Re: Panoramic Arduino   

Revenir en haut Aller en bas
 
Panoramic Arduino
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 6Aller à la page : 1, 2, 3, 4, 5, 6  Suivant
 Sujets similaires
-
» Panoramic Arduino
» EDI réalisé entièrement en Panoramic
» EDI réalisé entièrement en Panoramic
» pas un panoramic mais utilitaires delphi.
» Programmes Panoramic en ligne de commande

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
FORUM DE DISCUSSION SUR LE LANGAGE PANORAMIC :: PANORAMIC 32 bits :: Présentation et bavardage-
Sauter vers: