Note
Avant de suivre les instructions suivantes, assurez-vous que le Convoyeur (V2) et le capteur IR sont connectés comme indiqué dans la partie correspondante (voir /source/setup).
Avec Niryo Studio
Veuillez vous référer au manuel d’utilisation de Niryo Studio pour plus de détails.
Niryo Studio - Le Convoyeur (v2)
Pour utiliser le Convoyeur (v2) avec Niryo Studio, il est nécessaire d’ouvrir l’onglet Convoyeur dans le menu de gauche. L’interface vous permettra de contrôler jusqu’à deux Convoyeurs simultanément. Vous pouvez les activer et contrôler leur vitesse et leur direction.
Indication
Cliquez sur Scan pour détecter et ajouter le Convoyeur (v2) connecté à votre robot dans Niryo Studio.
Pour contrôler un Convoyeur (v2), il faut le connecter au robot et activer le bouton du Convoyeur (v2) sur Niryo Studio. Vous pouvez désormais ajuster la vitesse en utilisant les curseurs ou en entrant la valeur en pourcentage et en choisissant la direction du convoyeur.
Pour utiliser deux Convoyeurs (v2), suivez les étapes détaillées dans le paragraphe précédent puis, dans la section “Définir l’ID du Convoyeur (v2)”, de Niryo Studio, sélectionnez “Convoyeur (v2) 2” et cliquez sur “mettre à jour”.Vous pouvez maintenant connecter votre second convoyeur à Ned2, qui seraconsidéré comme “Convoyeur (v2) 1”. Notez que les ID sont sauvegardées jusqu’à la déconnexion des convoyeurs. Ces étapes sont requises à chaque fois que les deux convoyeurs sont reconnectés.
Niryo Studio - Module infrarouge
Connectez votre capteur sur le connecteur IR-Sensor sur le panneau arrière du robot. Dans Niryo Studio, dans le « Digital I/O panel », vous pouvez lire l’état du capteur IR dans la broche DI5 :
Lorsque la distance mesurée est inférieure à la distance réglée, l“« INPUT » est « LOW », ce qui signifie qu’un obstacle est détecté.
Lorsque la distance mesurée est inférieure à la distance réglée, l“« INPUT » est « LOW », ce qui signifie qu’un obstacle est détecté. Lorsque la distance mesurée est supérieure à la distance réglée, l“« INPUT » est « HIGH », ce qui signifie qu’il n’y a pas d’obstacle.
Blockly
Des blocs ont été spécifiquement conçus pour être utilisés avec le Convoyeur (v2) de manière à rendre notre écosystème facile à utiliser avec Niryo Studio.
Images |
Description |
---|---|
Permet à l’utilisateur de choisir l’ID du Convoyeur (v2). |
|
Permet au Convoyeur (v2) d’être contrôlé par le robot. |
|
Ce bloc contrôle le Convoyeur (v2) :
|
|
Ce bloc arrête le Convoyeur (v2). |
Avec le boîtier de contrôle
Avec PyNiryo
Veuillez vous référer au manuel d’utilisation de PyNiryo pour plus de détails.
PyNiryo - Le Convoyeur (v2)
Voici un exemple de code montrant comment détecter le Convoyeur (v2) connecté et démarrer son moteur :
#!/usr/bin/env python
from pyniryo import *
# Connecting to robot
robot = NiryoRobot(<robot_ip_address>)
# Activating connexion with Conveyor Belt
conveyor_id = robot.set_conveyor()
# Running the Conveyor Belt (v2) at 50% of its maximum speed, in forward direction
robot.run_conveyor(conveyor_id, speed=50, direction=ConveyorDirection.FORWARD)
# Waiting 3 seconds
robot.wait(3)
# Stopping conveyor's motor
robot.stop_conveyor(conveyor_id)
# Deactivating connexion with the Conveyor Belt
robot.unset_conveyor(conveyor_id)
PyNiryo - Module Infrarouge
Vous pouvez connaître l’état du capteur infrarouge et contrôler le Convoyeur (v2) en conséquence, comme le montre le script suivant. Dans cet exemple, le Convoyeur (v2) est connecté au GPIO_1A.
#!/usr/bin/env python
from pyniryo import *
# Connecting to the robot
robot = NiryoRobot(<robot_ip_address>)
# Activating connexion with the Conveyor Belt
conveyor_id = robot.set_conveyor()
# -- Setting variables
sensor_pin_id = PinID.GPIO_1A
# Run conveyor and wait until the IR sensor detects an object
robot.run_conveyor(conveyor_id)
while robot.digital_read(sensor_pin_id) == PinState.LOW:
robot.wait(0.1)
# Stopping conveyor's motor
robot.stop_conveyor(conveyor_id)
# Deactivating connexion with the Conveyor Belt
robot.unset_conveyor(conveyor_id)
Avec Modbus
Veuillez vous référer à notre manuel utilisateur Modbus pour plus de détails.
Modbus - Le Convoyeur
Voici un exemple de code python permettant le contrôle du Convoyeur (v2) via un client Modbus TCP :
#!/usr/bin/env python
from pymodbus.client.sync import ModbusTcpClient
import time
# Connect to the robot
client = ModbusTcpClient('<robot_ip_address>', port=5020)
client.connect()
# Enable Conveyor 1
client.write_register(520, 1)
time.sleep(1)
# Set direction to forward
client.write_register(523, 1)
time.sleep(1)
# Set speed to 50%
client.write_register(524, 50)
time.sleep(1)
# Start conveyor 1
client.write_register(522, 1)
time.sleep(10)
# Stop conveyor 1
client.write_register(526, 1)
# Close connection to modbus server
client.close()
Modbus - Module Infrarouge
Voici comment mettre l’entrée numérique du capteur infrarouge en mode Input et connaître son état :
#!/usr/bin/env python
from pymodbus.client.sync import ModbusTcpClient
# Connect to the robot
client = ModbusTcpClient('<robot_ip_address>', port=5020)
client.connect()
# Set digital IO mode - input on GPIO_1A
client.write_coil(0, True)
# Read digital IO state. 1 = High, 0 = Low
ir_state = client.read_discrete_inputs(100, count = 1)
print 'IR sensor state is :', ir_state.bits
# Close connection to modbus server
client.close()
Avec le Python ROS Wrapper
Veuillez vous référer au manuel utilisateur du Python ROS Wrapper pour plus de détails.
Important
Si vous utilisez Ned en réel et que vous ne souhaitez pas écrire le code directement sur le robot, vous devrez configurer un environnement ROS multi-machines. Vous pouvez suivre ce tutoriel qui détaille les étapes à suivre. Sinon, vous pouvez utiliser directement PyNiryo en suivant la section Avec PyNiryo.
Python ROS Wrapper - The Conveyor Belt
Voici un exemple de code permettant de contrôler le Convoyeur (v2) via le Python ROS Wrapper :
#!/usr/bin/env python
# Imports
from niryo_robot_python_ros_wrapper import *
import rospy
niryo_robot = NiryoRosWrapper()
# Activating connexion with conveyor and storing ID
conveyor_id = niryo_robot.set_conveyor()
# Running conveyor at 50% of its maximum speed, in Forward direction
niryo_robot.control_conveyor(conveyor_id, True, 100, ConveyorDirection.FORWARD)
# Stopping conveyor's motor
niryo_robot.control_conveyor(conveyor_id, True, 0, ConveyorDirection.FORWARD)
# Deactivating connexion with conveyor
niryo_robot.unset_conveyor(conveyor_id)
Python ROS Wrapper - IR sensor
Vous pouvez connaître l’état du capteur IR et contrôler le Convoyeur (v2) en conséquence en utilisant le script suivant. Dans cet exemple, le Convoyeur (v2) est connecté au GPIO_1A.
#!/usr/bin/env python
# Imports
from niryo_robot_python_ros_wrapper import *
import rospy
def run_conveyor(robot, conveyor):
robot.control_conveyor(conveyor, bool_control_on=True,
speed=50, direction=ConveyorDirection.FORWARD)
# -- Setting variables
sensor_pin_id = PinID.GPIO_1A
niryo_robot = NiryoRosWrapper()
# Activating connexion with conveyor
conveyor_id = niryo_robot.set_conveyor()
# Run conveyor and wait until the IR sensor detects an object
run_conveyor(niryo_robot, conveyor_id)
while niryo_robot.digital_read(sensor_pin_id) == PinState.LOW:
niryo_robot.wait(0.1)
# Stopping conveyor's motor
niryo_robot.control_conveyor(conveyor_id, True, 0, ConveyorDirection.FORWARD)
# Deactivating connexion with conveyor
niryo_robot.unset_conveyor(conveyor_id)