Étape 3: Télécharger le code de votre Arduino
Vous pouvez trouver ce Code de démonstration dans RobotGeek des bibliothèques sous :
Ce code nous mènera à travers les trois sections suivantes. On vous demandera de brancher l’actionneur linéaire à broches différentes basées sur la section du didacticiel que vous travaillez sur.
/ *** * Kit démo du RobotGeek actionneur linéaire expérimentateur * ___ * | \---------\___________________________ * __| | || --------------------|__ * (o | FIRGELLI | o || ____________________| o) * |__________________/--------------------------|| *** Le croquis suivant vous permettra de contrôler un actionneur linéaire Firgelli à l’aide * le curseur RobotGeek, RobotGeek bouton, RobotGeek Joystick et boutons poussoirs RobotGeek ** http://www.robotgeek.com/robotgeek-experimenters-kit-linear-actuator *** câblage * actionneur linéaire - broche numérique 6, 9, 10 ou 11 ** bouton - broche analogique 0 * Joystick - 1 broche analogique * Slider - Analog Code Pin 2 ** rupteur - Digital Pin 2 * rupteur - Digital Pin 4 * rupteur - Digital Pin 7 ** cavaliers pour axes 3/5/6 et le 10/09/11 doivent être définis sur "VIN" *** Control Behavior : * Déplacer le curseur ou la commande se déplacera le déclencheur linéaire de garder la position absolue. * Déplacement du levier passeront progressivement l’actionneur linéaire. * En appuyant sur un des boutons se déplacera l’actionneur linéaire à une position prédéterminée. * *** / //Includes #include //Servo bibliothèque peut être utilisée pour Firgelli Mini vérins linéaires //Linear actionneur Pins const int LINEARPIN_BUTTON = 6 ; Actionneur linéaire sur numérique broche 6 const int LINEARPIN_KNOB = 9 ; Actionneur linéaire sur Digital Pin 9 const int LINEARPIN_SLIDER = 10 ; Actionneur linéaire sur Digital Pin 10 const int LINEARPIN_JOYSTICK = 11 ; Actionneur linéaire sur Digital Pin 11 //Analog entrée Pins const int KNOB_PIN = 0 ; Bouton sur broche analogique 0 const int JOYSTICK_PIN = 1 ; Joystick (verticale) sur analogique Pin 1 const int SLIDER_PIN = 2 ; Curseur sur analogique Pin 2 //Digital entrée Pins const int BUTTON1_PIN = 2 ; 1 bouton sur Digital Pin 2 const int BUTTON2_PIN = 4 ; Bouton 2 sur Digital Pin 4 const int BUTTON3_PIN = 7 ; Bouton 3 sur Digital Pin 7 //Generic zone morte limites - pas tous joystics centrera à 512, donc ces limites supprimer « dérive » de manettes de jeu qui sont hors du centre. const int DEADBAND_LOW = 482 ; diminuer cette valeur en cas de dérive, augmentez-la pour augmenter la sensibilité autour de la position de centre const int DEADBAND_HIGH = 542 ; Augmentez cette valeur en cas de dérive, diminuer pour augmenter la sensibilité autour des valeurs d’impulsions Centre position //Max/min en microsecondes pour l’actionneurs linéaires const int LINEAR_MIN = 1050 ; const int LINEAR_MAX = 2000 ; variables vont changer : int button1State = 0 ; variable pour la lecture de l’État touche int button2State = 0 ; variable pour la lecture de l’État touche int button3State = 0 ; variable pour la lecture de l’État touche Servo linearKnob, linearButton, linearSlider, linearJoystick ; créer des objets de servo pour contrôler les actionneurs linéaires int knobValue, sliderValue, joystickValue ; variables à contenir la dernière lecture des broches analogiques. La valeur sera comprise entre 0 et 1023 int valueMapped ; les valeurs de la manette de jeu vont être changés (ou « mappés ») aux nouvelles valeurs sont envoyées à l’actionneur linéaire. variables pour valeur positionnelle actuelle étant envoyés à l’actionneur linéaire. int linearValue_Knob = 1500 ; int linearValue_Slider = 1500 ; int linearValue_Button = 1500 ; int linearValue_Joystick = 1500 ; int vitesse = 2 ; void setup() {//initialize actionneurs linéaires comme servo objets linearKnob.attach(LINEARPIN_KNOB); / / attache/active le déclencheur linéaire comme un servo objet linearSlider.attach(LINEARPIN_SLIDER); / / attache/active le déclencheur linéaire comme un servo objet linearButton.attach(LINEARPIN_BUTTON); / / attache/active le déclencheur linéaire comme un servo objet linearJoystick.attach(LINEARPIN_JOYSTICK); / / attache/active le déclencheur linéaire comme un badge de //Analog servo objet n’ont pas besoin d’être initialisées //use la writeMicroseconds de leurs positions par défaut la valeur les actionneurs linéaires linearKnob.writeMicroseconds(linearValue_Knob) ; linearSlider.writeMicroseconds () linearValue_Slider) ; linearButton.writeMicroseconds(linearValue_Button) ; linearJoystick.writeMicroseconds(linearValue_Joystick) ; } void loop() {//Preset Positions pour le contrôle Button / / si le bouton est appuyé ensemble la valeur linéaire button1State = digitalRead(BUTTON1_PIN) ; if (button1State == haute) {/ / set la linearValue_Button valeur de position = 1300;} button2State = digitalRead(BUTTON2_PIN) ; if (button2State == haute) {/ / définir la linearValue_Button valeur de position = 1500;} button3State = digitalRead(BUTTON3_PIN) ; if (button3State == haute) {/ / définir la linearValue_Button valeur de position = 1700;} //Analog Direct Control //read les valeurs de la knobValue de capteurs analogiques = analogRead(KNOB_PIN) ; sliderValue = analogRead(SLIDER_PIN) ; linearValue_Knob = carte (knobValue 0, 1023, LINEAR_MAX, LINEAR_MIN) ; Carte d’une valeur analogique du capteur à l’actionneur linéaire linearValue_Slider = carte (sliderValue, 0, 1023, LINEAR_MAX, LINEAR_MIN) ; Carte d’une valeur analogique du capteur à l’actionneur linéaire //Incremental Joystick commande joystickValue = analogRead(JOYSTICK_PIN) ; lire les valeurs de la mise à jour de la //only joystick si la manette est en dehors de la zone morte (c'est-à-dire déplacé hors de la position centrale) si (joystickValue > DEADBAND_HIGH || joystickValue < DEADBAND_LOW) {valueMapped = carte (joystickValue, 0, 1023, vitesse, - vitesse); //Map valeur analogique du joystick native valorisent le (0 à 1023) changement de différentiels (vitesse - vitesse). linearValue_Joystick = linearValue_Joystick + valueMapped ; //add mappé valeur joystick pour présenter la valeur linearValue_Joystick = contraindre (linearValue_Joystick LINEAR_MIN, LINEAR_MAX) ; } //Use la writeMicroseconds pour définir l’actionneur linéaire à son nouveau linearKnob.writeMicroseconds(linearValue_Knob) de position ; linearSlider.writeMicroseconds(linearValue_Slider) ; linearButton.writeMicroseconds(linearValue_Button) ; linearJoystick.writeMicroseconds(linearValue_Joystick) ; Delay(10) ; }