Page 1 sur 1

Pb vs circuit imprime

Publié : dim. 17/mai/2020 14:29
par Ekim
Bonjours à tous

Une question me vient à l'esprit, peut on commander un circuit imprimé ou breadboard : https://sti2d.ecolelamache.org/400_poin ... dboard.jpg

via les commandes "port série" de PB?

par exemple j'aimerais activer/désactiver un circuit via un relai électronique ou encore, commander directement un servomoteur

peut on faire ceci? :wink:

Re: Pb vs circuit imprime

Publié : dim. 17/mai/2020 14:45
par Marc56
Ekim a écrit :Bonjours à tous
Une question me vient à l'esprit, peut on commander un circuit imprimé ou breadboard : https://sti2d.ecolelamache.org/400_poin ... dboard.jpg
via les commandes "port série" de PB?
par exemple j'aimerais activer/désactiver un circuit via un relai électronique ou encore, commander directement un servomoteur
peut on faire ceci? :wink:
Oui. Au plus simple on se sert d'une carte Arduino qui est dotée d'une interface série (via USB). À partir de la toutes les commandes série de PB sont utilisables. Si tu ne mets pas de carte mezzanine, l'arduino Nano (~5€) est suffisant.
Nombreux exemples sur le site, cherches: Arduino.
:wink:

Re: Pb vs circuit imprime

Publié : dim. 17/mai/2020 18:36
par Ekim
Donc tu veux dire qu'on peut téléverser du PB dans le micro contrôleur d'un arduino?? :|

Re: Pb vs circuit imprime

Publié : dim. 17/mai/2020 20:06
par Marc56
Ekim a écrit :Donc tu veux dire qu'on peut téléverser du PB dans le micro contrôleur d'un arduino?? :|
Non, pas du tout. L'Arduino fonctionne avec un pseudo C et l'espace programme sur la mémoire flash ne va que jusqu'à 512 Ko (32 pour une Uno ou un Nano)
Par pilotage via PB, je veux dire envoi et retour d'information via les commandes série, ce qui permet d'activer via un programme installé en flash de piloter les ports I/O de la carte (donc des relais, des moteurs etc). Ce sont avec des Arduino ou des clones que sont interfacés les imprimantes 3D, petites CNC, graveur laser etc.

On confond souvent, car il sont de même taille, et ont les mêmes connecteurs l'Arduino (simple microcontrôleur associé à un port série et des ports I/O) et le Raspberry (ordinateur complet avec un OS complet (Linux) sur carte (micro)SD)

Re: Pb vs circuit imprime

Publié : dim. 17/mai/2020 23:42
par Ekim
Ha ok, merci pour l'explication) moi, dès l'instant où on peut activer des relais ou commander des servomoteur, moi sa me va parfaitement :P

à 1ere vue sur le forum français il y a rien du tout concernant les relais est les ports séries via PB :oops:

Re: Pb vs circuit imprime

Publié : lun. 18/mai/2020 10:31
par Marc56
Voici un exemple rapide de pilotage d'une carte Arduino par PureBasic

Code à charger dans la carte Arduino (par l'IDE arduino)

Code : Tout sélectionner

int LED = 13;
int reception;

void setup()
{
  pinMode(LED, OUTPUT);
  Serial.begin(9600);  
}

void loop()
{
  if (Serial.available() > 0) 
  {
       int reception = Serial.read(); 
        if (reception == 'H') { digitalWrite(LED, HIGH); }
        if (reception == 'L') { digitalWrite(LED, LOW ); }  
    }
}  
Fonctionnement: quand la carte reçoit 'H' sur le port série elle active la pin numérique 13 qui est reliée à une LED

Et maintenant le code PureBasic qui va envoyer 'H' ou 'L' pour allumer ou éteindre.
(Changer le port série par celui de la carte)

Code : Tout sélectionner

; Test communication PB et Arduino
; (C)Marc56 18/05/2020
; Purebasic V5.72 LTS x64 http://www.purebasic.com

; Allume/Eteint une LED sur une cartes Arduino 
; Sur Arduino Nano la LED marquée L est connectée à 13

Enumeration
    #Window_0
    #LED_ON
    #LED_OFF
    #Btn_Quit
EndEnumeration

Procedure Open_Window_0()
    If OpenWindow(#Window_0, 220, 0, 321, 228, "",  #PB_Window_SystemMenu | #PB_Window_TitleBar )
        ButtonGadget(#LED_ON,    30,  40, 120, 40, "LED 13 ON")
        ButtonGadget(#LED_OFF,   170,  40, 120, 40, "LED 13 OFF")
        ButtonGadget(#Btn_Quit, 30, 170, 260, 40, "Quitter")
    EndIf
EndProcedure

Port$ = "COM3"

If Not OpenSerialPort(0, Port$, 9600, 0, 8, 1, 0, 5, 5)
    MessageRequester("Erreur!", "Impossible de se connecter au port série " + Port$, 48)
    End
EndIf

Open_Window_0()
Repeat
    Select WaitWindowEvent() 
        Case #PB_Event_CloseWindow
            End
        Case #PB_Event_Gadget
            Select EventGadget()
                Case #LED_ON
                    WriteSerialPortString(0, "H")
                    
                Case #LED_OFF
                    WriteSerialPortString(0, "L")
                    
                Case #Btn_Quit
                    End
            EndSelect               
    EndSelect         
    
ForEver

CloseSerialPort(0)

End
Voila, c'est tout simple.
Maintenant pour activer des relais ou (servos)moteurs ils suffit de connecter à d'autres pins.
Mais là ce n'est plus du basic, voir les forums Arduino

:wink:

Re: Pb vs circuit imprime

Publié : lun. 18/mai/2020 23:42
par Ekim
Wouaw Excellent) :P

j’ignorais que ce forum abritait de tel génies :lol:

et parallèlement Pb m'impressionne de plus en plus :wink:

Mr @Mar56 merci pour ce cours initiatique :wink: