Arduino en Ardublock

Bonjour à tous,

Je suis nouveau sur le forum :blush: et je fais actuellement un projet d’aéroglisseur dans le cadre de mes cours.
Je fais partie d’un groupe, et ma tâche est de m’occuper de la partie programmation ArduBlock.

:backhand_index_pointing_right: J’ai déjà réalisé le programme en Arduino code (ci-dessous), mais j’aimerais maintenant le convertir en ArduBlock pour qu’il soit utilisable avec l’interface graphique.

Voici le programme que j’ai écrit en Arduino IDE :#include <Servo.h>
#include <SoftwareSerial.h>

Servo directionServo;
SoftwareSerial bluetooth(8, 9); // RX = 8, TX = 9

const int brushlessPin = 3;
const int sustainTurbinePin = 5;
const int servoPin = 6;
const int ledPin = 13;
const int irSensorPin = A0;

int propulsionPower = 0;
int servoAngle = 90;
bool obstacleDetected = false;

void setup() {
directionServo.attach(servoPin);
pinMode(brushlessPin, OUTPUT);
pinMode(sustainTurbinePin, OUTPUT);
pinMode(ledPin, OUTPUT);
bluetooth.begin(9600);
Serial.begin(9600);
}

void loop() {
int irValue = analogRead(irSensorPin);
float distance = irValue * (5.0 / 1023.0) * 100.0;

if (distance < 20.0) {
obstacleDetected = true;
digitalWrite(ledPin, millis() % 500 < 250);
analogWrite(brushlessPin, 0);
bluetooth.println("Obstacle détecté !");
} else {
obstacleDetected = false;
digitalWrite(ledPin, LOW);
analogWrite(brushlessPin, propulsionPower);
}

if (bluetooth.available()) {
char cmd = bluetooth.read();

switch (cmd) {
  case 'A':
    propulsionPower = min(propulsionPower + 25, 255);
    break;
  case 'B':
    propulsionPower = max(propulsionPower - 25, 0);
    break;
  case 'L':
    servoAngle = max(servoAngle - 10, 60);
    break;
  case 'R':
    servoAngle = min(servoAngle + 10, 120);
    break;
  case 'S':
    propulsionPower = 0;
    break;
  case 'C':
    servoAngle = 90;
    break;
}
directionServo.write(servoAngle);
Serial.print("Cmd: "); Serial.println(cmd);

}

delay(100);
}
:puzzle_piece: Mon objectif est de reproduire ce programme dans ArduBlock, pour pouvoir ensuite le tester sur le banc d’essai avec mon groupe.

Voici également le TP sur lequel je travaille (n’hésitez pas à me demander si vous avez besoin de précisions) :
:backhand_index_pointing_right: [Ajoute ici un lien vers un PDF ou une capture, ou bien “je peux l’envoyer si besoin”]

Merci d’avance pour votre aide :folded_hands:
Je suis preneur de toute astuce ou fichier .xml compatible ArduBlock !Je sais pa pourquoi je peut pas vous envoyer le fichier du tp vus que je suis un nouveau utilisateur

:warning:
Post mis dans la mauvaise section, on parle anglais dans les forums généraux. déplacé vers le forum francophone.

Merci de prendre en compte les recommandations listées dans Les bonnes pratiques du Forum Francophone

Bonjour, tu pourrais placer ton sketch dans des balises 'code' ? C'est très peu lisible en l'état.

Prends aussi 5 minutes pour lire les bonnes pratiques du forum:

D'une manière générale pour convertir ton code en ArduBlock:

  • Lis et comprends ton code Arduino
  • Identifie les actions à faire en blocs (entrées, sorties, conditions, boucles)
  • Reproduis la logique avec les blocs dans ArduBlock
  • Teste progressivement

ArduBlock est plutôt destiner à de jeunes enfants pour les initier au monde d'Arduino et de la programmation.

Je pense que généralement c'est plutôt l'inverse qu'on demande... Convertir un "programme" ArduBlock en code "Arduino".

Edit: sinon tu peux demander à chatgpt de transormer ton code en ArduBlock.

Ardublock c'est pour s'initier aux concepts de la programmation sans être bloqué par l'apprentissage et la rigueur de la syntaxe.
Ardublock va à l'essentiel : les idées, les concepts.

Si c'est toi qui as écrit le code, tu sais ce que tu as fait.

Note :
Bien sûr j'ai toujours eu la flemme de le faire, mais je me suis souvent dit que construire le squelette d'un programme en ardubloc permettrait de mieux structurer le programme en se concentrant sur l'essentiel.
Une fois que le squelette donne satisfaction, le développement pourrait continuer en lignes de code classiques. Dans cette réflexion je n'envisage pas l'utilisation d'Ardubloc pour l'écriture automatique de ligne de code mais comme un organiseur.

C'est une étape intermédiaire qui pourrait être utile entre ce que font les pros que j'ai vu faire qui écrivent 50 ou 200 pages décrivant, en français, ce que doit faire le programme avant l'écriture de la première ligne de code et se jeter bille en tête dans l'écriture des lignes de code sans bien savoir où l'on va.

En général on fait un organigramme avant d'écrire le code. ArduBlock c'est pas la panacée pour faire ce genre de chose. La meilleure façon de procéder c'est avec un crayon et une feuille en papier.

Là n'est pas le problème.
Le code est en C et fonctionnel mais il doit fournir un code Ardublock de son programme..

Oui, j'avais bien compris mais c'est bizarre de le faire dans ce sens vu qu'un code "Arduino" est mieux qu'un truc fait avec ArduBlock.

Par contre, il doit manquer plein d'éléments du language C dans ArduBlock... J'ai pas regarder tout le code mais si il est un peu complexe, il ne pourra pas le retranscrire dans ArduBlock.

Il n'existe à priori pas de passerelle dans ce sens. Donc tu devras faire la conversion à la main.

Comme tu n'utilises pas de fonctions exotiques et que le code n'a pas une structure complexe ce ne devrait pas être trop compliqué à faire.

1 Like

Merci beaucoup de votre réponse je vais essayer de le convertit moi meme

Merci beaucoup de votre réponse ces gentil d'avoir pris le temps de me répondre

Merci beaucoup de votre réponse ces gentil d'avoir pris le temps de me répondre je vais essayer si chat gpt peut convertir en ArduBlock mais je crois que sa ne marche pas

J'ais tester avec chat gpt sa ne marche pas si vous avez des astuce pour que je puisse réussir ce tp j'accepte tout aide et merci beaucoup et desoler du dérangement.

Bonjour partudk5665

J'ai aussi testé, CHATGPT propose de simplifier ton code pour, ensuite décrire les bloques Ardublock, voici le chat.
Je n'ai pas pu essayer, mais ça peut être une piste.

Cordialement
jpbbricole

Si tu colles ton code dans chatgpt, en lui demandant de le convertir en ArduBlock, il te donnera une marche à suivre. Je viens de tester, ses réponses ont l'air cohérentes pour te guider dans ton projet:
https://chatgpt.com/c/681e106c-6504-8005-89d0-2a00c49b32ee

Oups tu as été plus vite que moi pour répondre. :sweat_smile:

merci monsieur de votre réponse desoler pour le dérangement

Merci beaucoup de votre réponse je vais tester tout ca

:wink: