lundi 4 novembre 2013

pensée du jour
Panoramic est le monde extérieur.
via une interface électronique programmable USB série virtuelle
Je n'ai rien contre le port parallèle. Mais ne nous voilons pas la face.
 Depuis combien de temps on ne trouve plus d'imprimante parallèle
et encore plus pour les imprimantes série
avec lesquelles nous imprimons les programmes des automates tsx 60.
Les portables et les tablettes on banni les ports parallèles et série de leurs configurations
 reste encore les PC de bureau et pour combien de temps ? .
que reste-t-il a Panoramic pour dialoguer avec le monde extérieur ?.
USB port série virtuel ou Ethernet.il est loin le temps des interfaces figées
elle sont toutes programmables pour s'adapter exemple: APN TV etc.
il est vrai que cela  s'adresse plus
 aux amateurs d'électronique domotique automatisme
espérons que cette nouvelle facette de Panoramic nous attirera de nouveaux membres  sur ce forum 
en attend un éditeur en Panoramic pour programmer directement ces interfaces.

 je vous propose une appli en Panoramic pour dégrossir le programme de ces interfaces.
 donc l'éditeur n'est pas confortable.
 l'appli se compose d'une liste avec les instructions d'un memo et de quelques boutons.
on sélectionne une instruction dans la liste puis on clique  pour coller
l'on adapte l'instruction à son programme
une fois le programme fini on sélectionne tout on fait copier
on appuit sur le bouton "-+"  Ide de l'interface apparaît coller le programme dans cet ide
pour contrôler debugger et transférer vers l'interface.
vous avez la possibilité de chargér et sauvegarder le programme

ps dans le programme Panoramic adaptez le chemin du fichier ide de l'interface et du site web









Code
' editeur_panoramic_pour_langage_exotique.bas
'   20131028
' le site www.mon-club-elec.fr
' http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Serial
 error_french
 width 0,1200:height 0,1000: color 0,50,120,60:caption 0,"Editeur Panoramic pour langage exotique"
 top 0,(screen_y-height(0))/2 :left 0,(screen_x-width(0))/2
 label sp_20,sp_Save,sp_Open,sp_FIN,langage_arduino_1
 label web_club_elec ,sp_cls,uno,translate,sp_9
 dim m ,i ,j,l,acold,acolf,a$,car$ ,f$
 memo 10:top 10,40:left 10,200:width 10,950:height 10,900
   bar_both 10:font_size 10,14: color 10,220,220,220
   font_name 10,"DejaVu Sans Mono"
 list 20:top 20,40:left 20,20:gosub langage_arduino_1
   width 20,170:height 20, 800
 button 1 :top 1,8 :left 1,800 :width 1,27
   font_name 1,"webdings":font_size 1,15:hint 1,"cls" : caption 1,"q"
 button 2 :top 2,8 :left 2,900 :width 2,27
   font_name 2,"wingdings":font_size 2,15:hint 2,"Save":caption 2,"<"
 button 3 :top 3,8 :left 3,600 :width 3,27
   font_name 3,"wingdings":font_size 3,15:hint 3,"Open" :caption 3,"1"
 button 4 : top 4,8: left 4,1100 :width 4,40
   font_name 4,"webdings":font_size 4,15:hint 4,"FIN" :caption 4,"r"
 button 6:top 6,8 :left 6,400 :caption 6,"help" :width 6,27
   font_name 6,"webdings":font_size 6,15:hint 6,"Help":caption 6,"i"
 button 7:top 7,8 :left 7,500 :width 7,50:font_name 7,"SWGamekeys MT"
   font_size 7,15:hint 7,"Arduino":caption 7,"Þ¯"
button 8:top 8,8 :left 8,300 :width 8,27:font_name 8,"webdings"
   font_size 8,15:hint 8,"traduction":caption 8,"ü"
button 9 :top 9,8:left 9,700:caption 9,"{ }":hint 9,"accolade"::width 9,27

 open_dialog 14:save_dialog 15:dir_dialog 14,dir_current$:dir_dialog 15,dir_current$
 on_click 1,sp_cls:on_click 2,sp_Save:on_click 3,sp_Open
 on_click 4,sp_FIN:on_click 6, web_club_elec
 on_click 7,uno:on_click 8,translate
 on_close 0,sp_save :on_click 9,sp_9
 on_click 20 ,sp_20
'  =======================
 end
'  =======================
sp_9:
acold=0:acolf=0
for i=1 to count(10)
a$=item_read$(10,i)
l=len(a$)
for j=1 to l
car$=mid$(a$,j,1)
if car$ ="{" then acold=acold+1
if car$ ="}" then acolf=acolf+1
next j
next i
IF  acold=acolf
message "OK ! { = "+str$(acold)+" - } = "+ str$(acolf)
else
message "DEFAUT ! { = "+str$(acold)+" - } = "+ str$(acolf)
end_if
return
'  =======================
 uno:
  m=message_confirmation_yes_no(" UNO ")
    if m<>1 then return
execute "F:\portable\arduino-1.5.2-windows\arduino-1.5.2\arduino.exe"
return
'  =======================
 sp_Save:
 m=message_confirmation_yes_no(" S A V E ")
 if  m = 1
     file_save 10,file_name$(15)
 end_if
 return
'  =======================
 sp_Open:
  m=message_confirmation_yes_no(" L O A D ")
    if m<>1 then return
 f$=file_name$(14):pause 2
 if f$<>"_" then file_load 10,f$
 return
'  =======================
 sp_FIN:
 m=message_confirmation_yes_no(" Quitter ")
    if m<>1 then return
    gosub sp_save
 terminate
 return
'  =======================
sp_cls:
 m=message_confirmation_yes_no(" Clear Memo ")
    if m<>1 then return
    clear 10
return
'  =======================
sp_20:
 clipboard_string_copy  item_read$(20,item_index(20))+chr$(13)+chr$(10)
return
'  =======================
 langage_arduino_1:
 item_add 20,"/* début rem multiligne"
 item_add 20,"fin rem multilignes */"
 item_add 20,"#include <librairie >"
 item_add 20,"#define constantnom val"
 item_add 20,"int var = val;"
 item_add 20,"boolean var=false; // ou true"
 item_add 20,"char monChar='B';"
 item_add 20,"long var = valeur;"
 item_add 20,"float var = valeur;// 10,5 (nombres à virgules)"
 item_add 20,"char Str[15];"
 item_add 20,"String lettre;"
 item_add 20,"// ===rem_1_ligne======="
 item_add 20,"void setup() { //code }"
 item_add 20,"pinMode(N°Pin,OUTPUT);"
 item_add 20,"pinMode(N°Pin,INPUT);"
 item_add 20,"// ================"
 item_add 20,"void loop() { //code }"
 item_add 20,"digitalWrite(N°Pin, HIGH);"
 item_add 20,"digitalWrite(N°Pin, LOW);"
 item_add 20," val = digitalRead(N°Pin);"
 item_add 20,"val = analogRead(analogPin);"
 item_add 20,"analogWrite(N°Pin, val);"
 item_add 20,"for (i=0; i <= 255;  i++) {//instruction(s)à exécuter;}"
 item_add 20,"if (Variable > 50){ //action }"
 item_add 20,"if (x == y ){ //action }//(x est égal à y)"
 item_add 20,"if (x != y ){ //action }//(x est différent de y)"
 item_add 20,"if (x < y ){ //action }//(x est inférieur à y)"
 item_add 20,"if (x > y){ //action }// (x est supérieur à y)"
 item_add 20,"if (x <= y){ //action }// (x est inférieur ou égal à y)"
 item_add 20,"if (x >= y){ //action }// (x est supérieur ou égal à y)"
 item_add 20,"if (x == y ){ //action a }"
 item_add 20," else  { //action b }"
 item_add 20,"switch (var) { // début de la structure"
 item_add 20,"case 1: // cas 1"
 item_add 20,"break;"
 item_add 20," default: // cas par défaut"
 item_add 20,"} // fins witch"
 item_add 20,"while(Serial.available()){ //code }"
 item_add 20," delay (ms);"
 item_add 20,"mon_sous_programme();"
 item_add 20,"void mon_sous_programme(){ //code }"
 item_add 20,"var=min(x, y);"
 item_add 20,"var=max(x, y);"
 item_add 20,"var=abs(x);"
 item_add 20,"var=constrain(x, a, b),"
 item_add 20,"var=sq(x);"
 item_add 20,"var=sqrt(x);"
 item_add 20,"var=sin(rad);"
 item_add 20,"var=cos(rad);"
 item_add 20,"var=tan(rad);"
 item_add 20,"valeur=chiffre.toInt();"
 item_add 20,"Serial.begin(int vitesse);"
 item_add 20,"Serial.available();"
 item_add 20,"Serial.read();"
 item_add 20,"Serial.print(données);"
 item_add 20,"Serial.println(data);"

return
'  =======================
 web_club_elec:
if message_information_yes_no("Le site web mon-club-elec ?")<>1 then return
execute "firefox.exe http://www.mon-club-elec.fr/pmwiki_reference_arduino/pmwiki.php?n=Main.Reference"
return
'  =======================
translate:
if message_information_yes_no("translate.google ?")<>1 then return
execute "firefox.exe http://translate.google.fr/#en/fr/"
return



Aucun commentaire:

Enregistrer un commentaire