Bonjour, je suis actuellement en projet et je suis à la recherche de solutions car je suis bloqué sur quelques points. Je travaille actuellement sur un distributeur de médicaments à l'unité avec l'aide d'une table traçante XY de chez "Makeblock". J'ai quelques soucis car j'aimerai créer le système pour qu'il soit "automatique". Mais mon programme me permet de saisir dans le moniteur de série, les chiffres et le système effectue le déplacement. J'aimerai que la table effectue un balayage sans que la table traçante soit piloté par les chiffres. (J'ai eu l'idée de reprendre le système de la bataille navale), le problème ? Je n'arrive pas à faire correspondre mon programme ainsi que les librairies et j'ai du mal à l'écriture du programme. Je met (le première version) le programme plus bas (on me conseille de faire un tableau sur Arduino mais le problème c'est que je n'arrive pas à trouver des tutos sur ceci et de plus il faudrait adapter les bibliothèques au programme. Nous travaillons à plusieurs de plus sur ce projet et j'aimerai vous demander s'il était possible d'avoir un seul programme pour plusieurs carte, car le système est constitué de 3 parties: - l'identification du patient (RFID) nous avons le programme; - le déplacement de la réserve de médicaments (nous avons à peu près le programme qui consiste ma partie); - la distribution du médicament (par servomoteurs) nous avons le programme. On a eu l'idée de combiné les trois programme et en reliant les trois par communication en série. (Nous avons du mal à réaliser celà). J'aimerai savoir comment je pourrais mettre nos programmes en 1 seul tout en ayant une communication série, mais aussi des informations sur la composition de la bataille navale sur Arduino tout en essayant de commander les deux moteurs pas à pas qui sont sur ma table traçante.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | #include <AccelStepper.h> #include <Makeblock.h> #include <SoftwareSerial.h> #include <Wire.h> int HOME = 0; int dirPin = mePort[PORT_1].s1;//the direction pin connect to Base Board PORT1 SLOT1 int stpPin = mePort[PORT_1].s2;//the Step pin connect to Base Board PORT1 SLOT2 AccelStepper stepper(AccelStepper::DRIVER,stpPin,dirPin); int dirPin2 = mePort[PORT_2].s1;//the direction pin connect to Base Board PORT1 SLOT1 int stpPin2 = mePort[PORT_2].s2;//the Step pin connect to Base Board PORT1 SLOT2 AccelStepper stepper2(AccelStepper::DRIVER,stpPin2,dirPin2); void setup() { Serial.begin(9600); // Change these to suit your stepper if you want stepper.setMaxSpeed(100000); stepper.setAcceleration(200000); stepper2.setMaxSpeed(10000); stepper2.setAcceleration(20000); } void loop() { if(Serial.available()) { char a = Serial.read(); switch(a) { case '0': //steper.moveTo(0); stepper.moveTo(HOME); stepper2.moveTo(HOME); break; case '1': stepper.moveTo(6800); break; case '2': stepper.move(6800); break; case '3': stepper.move(6800); break; case '4': stepper.move(6800); break; case '5': stepper2.move(-15000); break; case '6': stepper.move(-6800); break; case '7': stepper.move(-6800); break; case '8': stepper.move(-6800); break; case '9': stepper.move(-6800); break; case 'A': stepper2.move(-15000); break; case 'Z': stepper.move(6800); break; case 'E': stepper.move(6800); break; case 'R': stepper.move(6800); break; case 'T': stepper.move(6800); break; } } stepper.run(); stepper2.run(); } |