Skip to content

alicegarceau/POLUS

Repository files navigation

POLUS

Démonstrations des habiletés de P-O le petit robot :

Dessin pixels

Dessin lignes

Table des matières

Requis matériels

Impression 3D

Sur une imprimante 3D avec une capacité d'au moins 250 x 250 x 200mm, imprimer tous les fichiers dans le dossier (STLs)

Autres composants mécaniques

  • 1 x Paquet de crayons feutres (Amazon)
  • 2 x Vis M6 x 1 à épaulement de 8 x 55mm (McMaster-Carr)
  • 2 x Écrous M6
  • 4 x Rondelles M6
  • 1 x Coupleur flexible 5mm à 8mm (Amazon)
  • 1 x Vis ACME Tr8 x 8mm x 300mm et écrou (Amazon)
  • 3 x Roulements à billes linéaires LM8UU (Amazon)
  • 4 x Roulements à billes à épaulement 608 (McMaster-Carr)
  • 26 x Inserts filetés M3 pour plastique (McMaster-Carr)
  • 32 x Vis SHCS M3 x 14mm
  • 12 x Vis SHCS M2.5 x 6mm
  • 1 x Feuille de contre-plaqué 480 x 480mm
  • 6 x Attaches de plastique (Tyrap) 3 x 100mm min

Composants électriques

  • 1 x Fil micro-USB de 0.3m
  • 1 x Microcontrôleur OpenCR 1.0
  • 2 x Servomoteurs Dynamixel XM430-W350
  • 1 x Servomoteur Dynamixel XL430-W250
  • 2 x Servomoteur de type "hobby" Hitech HS-422
  • 1 x Moteur pas-à-pas NEMA17 (Amazon)
  • 1 x Contrôleur de moteur pas-à-pas (EasyDriver)
  • 2 x Interrupteur de fin de course miniature

Assemblage

Assemblage électrique

image

Assemblage mécanique

Installer les inserts filetés avec un fer à souder à environ 300 deg C dans toutes les pièces qui doivent en recevoir.

Avant-bras et pince

image

Bras et épaule (plateforme mobile en Z)

Base

image

Carousel

image

Requis logiciels

  • Arduino IDE version 2 (arduino)
  • Paquet Open-CR du Boards Manager : suivre les instructions d'installation pour Windows (opencr)

Fichiers de code du OpenCR

Le dossier Code_OpenCR contient toutes les fonctions en C++ qui s'exécutent sur la carte OpenCR.

  • actuators.cpp : Ce fichier contient les fonctions qui contrôlent les actuateurs du projet POLUS, sauf le moteur pas à pas de l'axe Z.
  • stepperZ.cpp : Ce fichier contient les fonctions qui contrôlent le moteur pas à pas de l'axe Z.
  • inverseKinematics.cpp : Ce fichier reçoit en entré une valeur cartésienne (X,Y) et retourne deux angles pour les moteurs du bras scara.
  • serialcomm_functions.cpp: Permet de lire des données depuis un port série, les diviser en parties distinctes et appeler la fonction correspondante en fonction du type de message envoyé.
  • Code_OpenCR.ino : Ce fichier est le fichier "main" s'exécutant sur la carte OpenCR.

Diagramme d'état du code

L'image suivante démontre la relation entre le code s'exécutant sur l'ordinateur (interface utilisateur) et la carte OpenCR.

image

Installation

Sur un PC Windows :

  • Ouvrir le fichier Code_OpenCR.ino dans Arduino IDE et brancher la carte OpenCR à l'ordinateur. Dans Arduino IDE, sélectionner le "board" OpenCR et téléverser le code.
  • Brancher la carte OpenCR à votre ordinateur avec un fil micro-USB
  • Installer les librairies Python suivantes avec pip:
    • pyserial
    • threading
    • PIL
    • os
    • csv
    • numpy
    • colormath
    • tkinter

Exécuter le programme

  • Lancer le programme main.py

  • L'interface utilisateur suivant s'ouvre : image

  • Dans l'interface utilisateur, entrer les bonnes informations dans les différents champs : *** Précisions :

    • Le fichier des RGB doit être un fichier .CSV où chaque rangée contient les valeur R,G,B d'un crayon du carrousel. La 1ère ligne du fichier correspond au crayon à l'index 1 et ainsi de suite. C'est de cette manière que le robot sait quel crayon se trouve à quel endroit dans le carrousel.
    • Le nombre de pixels voulus représente le nombre de pixels pour une dimension. Dans cet exemple, l'image dessinée fera 50x50 pixels.
  • Appuyer sur les boutons "Envoyer les noms de fichiers" et "Envoyer la résolution de l'image".

  • Fermer l'interface graphique pour lancer le traitement d'image.

  • Dans le terminal, un message s'affiche pour choisir le port USB pour établir la liaison série avec le OpenCR (ce message peut prendre plusieurs secondes à s'afficher).

  • L'utilisateur n'a plus rien à faire à partir d'ici.

License

Apache Version 2.0

Voir LICENSE