Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Technology >> Processus de fabrication

Détecteur de portée portable

Composants et fournitures

Arduino Nano R3
× 1
Capteur à ultrasons - HC-SR04 (Générique)
× 1
18650 Cell
× 1
Chargeur Lithium Ion TP4056
× 1
Convertisseur Boost DC-DC 5V
× 1
Sonnerie
× 1
Potentiomètre rotatif (générique)
× 1
Interrupteur à glissière
× 1
LED (générique)
Rouge (2), Vert (1), Bleu (1)
× 4
Résistance 330 ohm
× 2
Vis à tête cylindrique OpenBuilds M3
boulons M3 de 10 mm (4)
× 1
Fils
18 AWG
× 1
Pièces imprimées en 3D
3 parties pour le boîtier
× 1
Adaptateur de filetage
× 1

Outils et machines nécessaires

Imprimante 3D (générique)
J'ai utilisé un Anet A8
Fer à souder (générique)
Pistolet à colle chaude (générique)
Dremel
Ou n'importe quel outil rotatif

Applications et services en ligne

Arduino IDE
Au besoin de télécharger la bibliothèque NewPing
Simplify3D
Ou n'importe quelle trancheuse de votre choix

À propos de ce projet

Présentation

Le département des sciences de l'exercice du Lehman College menait des études sur la musculation. Il y avait des incohérences dans l'amplitude des mouvements pour les répétitions, ce qui pourrait influencer considérablement les données. J'ai été approché pour créer un appareil qui identifierait l'amplitude complète des mouvements pour les exercices utilisant des machines ou des poids plus importants.

L'appareil devait remplir les conditions suivantes :

  • Distance réglable
  • Pas définitivement fixé aux machines.
  • Compatible avec trépied
  • Aucun fil

Vidéo

Pièces

La plupart des pièces sont présentées ci-dessous, mais pour une liste complète, reportez-vous à la nomenclature ci-dessus. Les pièces utilisées ne sont pas sélectionnées parce qu'elles sont optimales; c'est avec ça que j'ai dû travailler. L'encombrement pourrait être considérablement réduit avec des circuits imprimés personnalisés, des composants CMS ou une batterie LiPo.

Code

La bibliothèque NewPing est nécessaire à la compilation du code (fourni en bas).

La fréquence du buzzer et les bornes supérieure/inférieure sont des variables globales qui peuvent être modifiées. Les limites supérieure/inférieure se réfèrent à la distance minimale et maximale lue par le capteur, qui est mappée à la valeur analogique [0,5]V du potentiomètre.

int fréquence =700 ; //Fréquence en Hz
int lower_bound =60; //Distance en mm
int upper_bound =200; //Distance en mm

3 bips se produisent à la mise sous tension pour indiquer que le démarrage a réussi (voir le setup() boucler). Ensuite, loop() demande en permanence des données au capteur à ultrasons et les compare au seuil défini par le potentiomètre.

Impression 3D

Tous les fichiers ont été téléchargés sur thingiverse, ou un fichier condensé peut être trouvé au bas de la page. L'utilisation de la CAO ne sera pas abordée ici. Le modèle a été réalisé en tenant compte des limites de l'impression 3D. Les porte-à-faux ont été minimisés en utilisant des chanfreins à 45 degrés, ce qui réduit le matériau de support. Les dégagements étaient généreux, les pièces devraient donc s'adapter malgré le fait qu'elles soient imprimées sur des imprimantes calibrées différemment.

Les temps d'impression varient, mais mes temps d'impression étaient les suivantes :

  • Top Piece :2 heures 40 minutes
  • Pièce du bas :2 heures 20 minutes
  • Bouton :20 minutes

Assemblage

Les schémas du circuit sont fournis en en bas de la page. Les pièces sont insérées sans être câblées pour confirmer les ajustements.

Les câbles IDE récupérés ont fourni tous les fils. Des groupes de fils peuvent être décollés tout en restant attachés les uns aux autres, ce qui donne un certain ordre.

La plupart des composants électroniques sont montés sur l'une des pièces imprimées, il faut donc réfléchir au routage et à la gestion des fils.

Les voyants LED SMD de la carte TP4056 ont été dessoudés. Des rallonges et des LED THT de 3 mm ont été soudées à leur place. Des résistances de limitation de courant sont toujours intégrées à la carte. Il y a une vidéo de quelqu'un effectuant ce déménagement.

L'arduino nano n'avait que 2 plots de masse accessibles, donc un stripboard a été utilisé pour augmenter le nombre de plots de masse. La même chose a été faite avec la ligne 5V, que l'on peut voir sur l'image ci-dessous.

Il est nécessaire de rompre la connexion sur la bande pour que 5V ne soit pas court-circuité à la terre. Le "X" rouge illustre l'emplacement de la cassure. Seul le cuivre supérieur doit être rompu, pas l'ensemble du panneau de fibre de verre.

Les composants ont été câblés à l'extérieur de l'enceinte. Ils étaient parfois installés dans l'enceinte pour mesurer la longueur du fil et vérifier les interférences de fil.

Le potentiomètre a été rogné de 6 mm pour qu'il ne dépasse pas autant.

La connexion au 18650 a été soudée directement, ce qui est une mauvaise pratique. La surchauffe de la cellule l'endommagera et peut échouer avec le temps. Le soudage par points d'une bande d'aluminium est la bonne façon de connecter des 18650.

De la colle chaude a été honteusement utilisée pour sécuriser l'électronique. Évitez d'utiliser de la colle chaude lorsque cela est possible. Une conception mécanique et des fixations correctes survivront à la colle chaude. Il est voué à l'échec avec le temps. C'est compréhensible pour les prototypes, mais les pièces de production n'utiliseront jamais de colle chaude.

Résumé

Rétrospectivement, j'aurais préféré utiliser un capteur IR plutôt que le capteur à ultrasons, mais je n'aurais jamais pu le savoir jusqu'à ce que je commence à expérimenter avec le capteur à ultrasons. Les capteurs infrarouges ont un champ de vision plus étroit avec un compromis d'une distance maximale beaucoup plus faible (environ 3 pieds).

S'il devait y avoir une deuxième version, un LiPo remplacerait le 18650. Le gros écrou adaptateur moleté est lourd et prend de la place. Le filetage standard pour les supports de trépied est de 1/4", donc un simple écrou 1/4" de la quincaillerie suffit. Les PCB personnalisés réduiraient le volume de moitié.

Pour un prototype qui a été conçu du concept à la livraison en 2 semaines, je suis satisfait.

Avenir du projet

Lorsque j'expérimentais le capteur à ultrasons, j'en ai appris davantage sur ses limites. La première étant que son FOV a un angle de ~±15° (30° au total). Cela signifie qu'un objet peut déclencher le buzzer avant qu'il ne soit directement au-dessus du capteur. Cela produit des inexactitudes et des lectures indésirables. De plus, si le plan de l'objet n'est pas perpendiculaire (ou dans l'angle de tolérance) à l'onde sonore transmise, le capteur ne recevra pas d'onde réfléchie et ne pourra pas traiter une valeur de distance.

Mon plan initial était de faire reposer l'unité sur le sol et de permettre aux plaques d'une barre de musculation de déclencher le buzzer lorsqu'elles ont été abaissées au-delà du seuil. Ce système se composait d'un capteur fixe et d'un déclencheur mobile. Mon collègue ingénieur avait proposé une solution alternative, qui consistait à inverser le système. Il a proposé de monter le capteur sur la barre mobile tout en le pointant vers le sol. De cette façon, le sol est devenu le déclencheur. Cela a également éliminé les inexactitudes dues à un large champ de vision, comme mentionné précédemment.

La proposition était non seulement une excellente solution aux problèmes posés, mais elle est également très facile à mettre en œuvre. La commande pour l'adaptateur d'écrou de trépied 1/4" est venue avec un adaptateur 1/4" -> 3/8" ET un adaptateur 3/8" -> 1/4". Le second sera réellement utilisé !

Comme je n'avais pas accès à mon dremel lorsque j'ai commencé à modéliser en 3D, cela m'a obligé à prendre en compte l'intégralité de l'adaptateur de trépied. Ceci en combinaison avec une cellule 18650 a considérablement augmenté le poids. Je ne veux pas ajouter plus de poids que nécessaire, je vais donc couper le deuxième adaptateur de trépied avant de modéliser la monture. Je reviendrai sur le projet dans une semaine pour finaliser cette solution de montage alternative. D'ici là, ça marche quand même !

Code

  • RangeDetectionDevice.ino
RangeDetectionDevice.inoArduino
/** Viktor Silivanov 22/03/2018 Appareil de détection de distance portable utilisant le capteur à ultrasons HC-SR04 avec réglage de la distance pour déclencher le buzzer.**///****************** ******* Bibliothèques ************************************************ ******************************************************** ******************************************************** ******************************************************** *******************#include //********************** Épingles **** ******************************************************** ******************************************************** ******************************************************** ******************************************************** ********//Broches analogiques#define wiper A5//Broches numériques#define echo 2#define trig 3#define ON_LED 7#define buzzer 8#define buzzer_LED 9//******** ************ Variables globales ************************************ ******************************************************** ******************************************************** *************************************** **************************//Modification utilisateur autorisée int fréquence =700 ; //Fréquence en Hzint lower_bound =60; //Distance en mmint upper_bound =200; //Distance en mm//Ne pas modifierint buzz_time =250; //Temps en millisecondes pour le buzzer juste au démarrageint buzz_delay =280; //Temps en millisecondes pour le délai du buzzer juste au démarrageint max_distance =400; //Argument pour l'objet dans la bibliothèque NewPingint i =0;int distance;int seuil; Sonar NewPing (trig, echo, max_distance); //Instanciation de l'objet "sonar"//************************ Paramétrage ******************* ******************************************************** ******************************************************** ******************************************************** *******************************************//Cette fonction ne s'exécute qu'une seule foisvoid setup() { Serial.begin (9600); //Permet l'utilisation d'un moniteur série avec un débit en bauds de 9600 //Déclaration de type d'E/S de broche pinMode(trig, OUTPUT); pinMode(écho, INPUT); pinMode(buzzer, SORTIE); pinMode(buzzer_LED, SORTIE); pinMode(ON_LED, SORTIE); digitalWrite(ON_LED, HAUT); // Allume la LED verte ; Reste allumé lorsque l'unité est allumée // Le buzzer émet 3 bips lors de la mise sous tension de l'appareil while(i <3){ digitalWrite(buzzer_LED, HIGH); tonalité (buzzer, fréquence, buzz_time); retard(buzz_delay); je++ ; } digitalWrite(buzzer_LED, LOW);}//******************** Fonctionne sans fin ******************* ******************************************************** ******************************************************** ******************************************************** ************************************boucle vide() { distance =sonar.ping_cm(); // L'objet "sonar" utilise la fonction ping_cm() de la bibliothèque, qui renvoie une valeur en cm. La distance prend alors cette valeur seuil =analogRead(wiper); //Obtenir la valeur analogique de l'essuie-glace du seuil du potentiomètre =map(threshold, 0, 1023, lower_bound, upper_bound); // Traduire les lectures analogiques en plage de déclenchement. Mettre à jour les valeurs du seuil if(distance !=0 &&distance

Pièces et boîtiers personnalisés

Les 3 parties sont enregistrées dans un seul fichier

Schémas


Processus de fabrication

  1. Détecteur de langage TinyML basé sur Edge Impulse et Arduino
  2. Jeu de gyroscope Arduino avec MPU-6050
  3. Dés numériques Arduino
  4. Jeu de roulette DIY 37 LED
  5. Mini arcade ATtiny85 :Serpent
  6. Lampe de bureau réactive audio Arduino
  7. voiture robot intelligente de suivi du visage
  8. La galvanoplastie avec du cuivre
  9. NeoMatrix Arduino Pong