Créer un dispositif / une fonctionnalité pour les distributeurs automatiques: 7 étapes (avec des images)

Créer un dispositif / une fonctionnalité pour les distributeurs automatiques: 7 étapes (avec des images)

Table des matières:

Anonim

Vous voulez ajouter une fonctionnalité à un distributeur automatique? Peut-être y en a-t-il un dans votre makerspace local, peut-être dans la mancave, ou peut-être souhaitez-vous simplement créer une fonctionnalité pour les distributeurs automatiques dans le monde entier. Si vous souhaitez créer une nouvelle fonctionnalité pour les distributeurs automatiques, lisez la suite!

Qu'il s'agisse de projets tels que la gestion d'une machine par une AI Chatbot menaçante ou de boutons aussi simples qu'un bouton Free-Vend sur votre téléphone, ces fonctions ont le même besoin de communiquer avec le distributeur. Plus facile à dire qu'à faire! Ce que je vais vous montrer, c'est comment créer un appareil "vierge" pouvant connecter des distributeurs automatiques et le wifi / bluetooth. Pensez-y comme à un chèque en blanc, le pouvoir est là, vous devez en faire ce que vous voulez!

Provisions:

Étape 1: Qu'est-ce que la BMD?

Si vous fabriquez un appareil qui communique avec des distributeurs automatiques, vous devez parler leur langue. Cette langue est "MDB". Le nom complet est "MDB / ICP", ce qui signifie "Multi Drop Bus / Internal Communication Protocol".

Il s'agit de la norme la plus largement utilisée pour la communication entre les périphériques d'un distributeur automatique, du moins aux États-Unis. Maintenu et appartenant à la NAMA (Association nationale de marchandisage automatique) et à l'EVA (European Vending Association), il a été développé au début des années 90 et a normalisé la façon dont les distributeurs automatiques communiquent, permettant ainsi aux pièces d'être distribuées (accepteurs de billets, changeurs de pièces, etc.)..) de travailler dans n’importe quelle marque / modèle, tant que la machine qui supporte la norme.

De nombreuses machines utilisent encore l'ancienne technologie et n'ont pas encore été mises à niveau. Par conséquent, assurez-vous que les machines pour lesquelles votre périphérique est conçu possèdent des capacités MDB. Outre la vérification du manuel de votre machine spécifique, la présence d'un faisceau de câbles avec un connecteur 2x3 Molex Minifit Jr est un indicateur simple du fait que votre machine offre des capacités MDB. J'ai inclus une photo d'une prise femelle MDB (elle est différenciée par les contacts en métal).

Comment ça marche?

Il est maintenant temps de regarder la vidéo "MDB Explained". Je me sens un peu mal en utilisant la vidéo de ce type pour promouvoir des alternatives à ses produits (il semble si sympathique et enthousiaste), alors si vous avez de l'argent, envisagez d'acheter ses produits MDB vers USB ou en l'embauchant pour vous concevoir un produit personnalisé, plutôt que le faire vous-même.

J'ajouterai que le terme "Multidrop Bus" est également un terme technique (non commercial). Par conséquent, si vous effectuez une recherche Internet sur MDB, il est préférable d'utiliser le nom complet "MDB / ICP", et / ou peut-être ajouter le mot "vending" dedans.

Vous pouvez voir les deux autres vidéos, mais j’estime qu’il est beaucoup plus court à expliquer en mots:

  • La MDB a une configuration maître et esclave, où le VMC est le maître et tous les périphériques sont les esclaves.

  • le VMC / Master, initie et met fin à toutes les communications et interroge (vérifie) périodiquement les périphériques / esclaves.

  • Le périphérique / esclave écoute toutes les communications en provenance du VMC et attend qu'une commande lui soit adressée avant de dire quoi que ce soit au VMC / au maître.

  • De cette manière, un seul périphérique parle au VMC à un moment donné, ce qui est nécessaire dans une configuration multipoint (terme technique).

Quelles sont les options périphériques?

La norme MDB autorise actuellement ces périphériques:

  • Changeurs de pièces (Prend le changement et donne le changement)
  • Facteurs d'acceptation (Prend les factures, et les nouveaux modèles peuvent donner des factures)
  • Dispositifs de paiement sans numéraire (Accepte les formes de paiement numériques)
    • Peut être utilisé pour d'autres raisons, telles que l'accès à l'écran et au clavier de la machine, l'obtention de mises à jour des ventes ou le transfert de fichiers. Si vous créez une fonction au hasard, vous devriez la positionner par défaut comme ce type de périphérique en raison de la puissance dont elle dispose sur la machine.
  • Passerelles de communication (Pour les périphériques de communication de données externes, DEX est la norme d'audit dominante)
  • Dispositifs satellites universels (En bref, un mécanisme / add-on de vente qui nécessite la machine hôte pour l'acceptation du paiement)
  • Trémies à pièces (Distribution de pièces en vrac, comme une machine à changer)

Quelques choses supplémentaires à savoir:

  • UART est un standard général / non commercial pour le transfert de données série. Le format des données série et le débit de données peuvent être configurés. La plupart des matériels ont un circuit UART qui peut être configuré selon vos besoins.
    • Les paramètres UART pour MDB sont 9600NRZ, 9-N-1.

      • 9600 représente un débit en bauds de 9600, soit 9600 bits par seconde, ce qui signifie que chaque bit est long de 104uS.
      • le NRZ signifie non-retour à zéro, ce qui est implicite / standard dans la plupart des cas.
      • le 9 signifie 9 bits de données, 8 est standard et 9 est inhabituel. Plus sur cela plus tard.
      • le N signifie pas de vérification de la parité.
      • le 1 représente 1 bit d'arrêt.
  • RS232, il existe de nombreux adaptateurs MDB vers RS232. Ceci est dû au fait que RS232 est / était une norme populaire antérieure à MDB, qui est couramment utilisée avec UART, ce qui la rend facilement adaptable à MDB. Je recommande de rester à l'écart de RS232 s'il n'y a aucune raison forte de l'utiliser. Le marché en est inondé, et il s’agit d’une norme obsolète qui indique généralement que les concepteurs qui l’utilisent sont bloqués de manière ancienne (moins efficace / moins performante). Il en va de même pour les circuits traversants, mais c'est un sujet différent.
  • USB, pourquoi ne font-ils pas des adaptateurs USB? Bonne question!

    • Il y a une seule ligne de données bidirectionnelle dans USB2.0. MDB / UART utilise séparément les lignes de transmission unidirectionnelle et de réception.
    • L'USB3.0 possède une ligne distincte d'émission et de réception, mais cette dernière (ainsi que l'USB2.0) est signalée de manière différentielle, MDB / UART utilisant la signalisation à extrémité unique. Je mets au défi quelqu'un de faire un adaptateur USB2.0 et / ou USB-C, vers un adaptateur MDB, sans utiliser de circuits intégrés (amplificateurs opérationnels autorisés, registres à décalage uniquement si cela est nécessaire à 100%), le publie dans la section "Je l'ai fait" si vous le souhaitez. faire.
    • Pour ceux qui s’interrogent sur les adaptateurs USB vers UART que vous pourriez avoir, les deux seules puces existantes que je sache qui prennent en charge les UART 9 bits sont toutes deux conçues par MaxLinear et aucune d’elles n’a été utilisée dans un adaptateur USB à UART. Aucune puce de FTDI ne prend en charge l'UART 9 bits, et même si nous trouvons le moyen de le faire fonctionner, ce serait un travail supplémentaire (pilotes de logiciel, ports COM, etc.) lorsque notre priorité initiale est simple et rapide, pour cela raison pour laquelle nous utilisons un conseil de développement à la place.
  • EVA-DTS est une norme de données spécifique au secteur de la vente automatique, à laquelle vous devez faire attention si vous fabriquez un produit. Il fournit un format uniforme pour toutes les données relatives au vending. Le DTS signifie "Data Transfer Standard".

La dernière version de la norme MDB est disponible ici. Si vous choisissez un périphérique que vous souhaitez créer, survolez brièvement la section entière afin de vous tenir au courant de toutes les fonctionnalités / options dont il dispose.

Étape 2: Outils nécessaires

Vous allez créer une version de la planche à dessin de votre périphérique MDB avant de créer une version personnalisée. Avant de commencer, vous aurez besoin de quelques outils.

Les deux sites principaux pour commander des pièces seront DigiKey et Amazon. Je choisis Amazon en supposant que vous ayez un abonnement principal amazon et / ou que ce soit la méthode préférable lorsque rien ne se trouve sur DigiKey. Il serait préférable de tout mettre dans un panier (ou deux) et de ne pas commander jusqu'à ce que les pièces soient choisies à l'étape suivante.

Outils nécessaires pour la version de la planche à pain:

  • Fer à souder. Bien que vous n’ayez besoin que d’un fer à repasser pour ce moniteur Instructable, je vous recommande d’acquérir des capacités d’air chaud, voire un poste de reprise SMD complet. Quand j'étais adolescent, j'ai vendu mes pistolets d'airsoft sophistiqués et acheté la station de reprise ci-dessous, ainsi que de nombreux autres outils pour accéder à l'électronique. J'ai utilisé la station de reprise pour redistribuer les connexions BGA dans quelques ordinateurs portables et cela a été rentable.

    • Meilleur rapport qualité / prix (fer, air chaud / CMS, retouches BGA)
    • Meilleur rapport qualité prix (fer, air chaud / CMS)
    • Meilleure qualité (fer seulement)
  • Souder. N'oubliez pas que la fumée est toxique et cause des problèmes de santé chroniques. DigikeyAmazon
  • Sertisseuses

    • Voici la paire adéquate la moins chère que j'ai trouvée.
  • Pinces à dénuder. Tout ira bien, mais je recommande vivement le StripMaster d'Ideal Industries. En raison de leur qualité, une paire ne peut pas enlever chaque jauge de fil. Par conséquent, pour les utilisations en dehors de cet Instructable, vous aurez probablement besoin d'une deuxième paire (ou d'inserts de tailles différentes). N'oubliez pas que nous utilisons du fil de calibre 20 dans ce projet.
    • 8-22 Décolleurs ou inserts de jauge
    • 20-30 Strippers ou Inserts Gauge
    • StripMaster Frame, au cas où vous auriez commandé des inserts plutôt qu’une deuxième paire et que vous le regrettiez, comme je l’ai fait.
  • Coupe-fil (les ciseaux ou les coupe-ongles fonctionnent, juste quelque chose avec lequel couper du fil fin)
  • Un analyseur de logique. Techniquement optionnel, il permet de déboguer le logiciel de communication et de vérifier le fonctionnement du matériel.

    • J'utilise l'oscilloscope DSO203 avec un logiciel d'analyseur logique tiers, mais il existe également des analyseurs bon marché. À moins que vous ne sachiez qu'il vous en faut un, choisissez-en un bon marché. Sigrok propose des logiciels open source fonctionnant avec divers appareils.
  • Un voltmètre seraitpratique.

Outils supplémentaires nécessaires à partir de là:

  • Outils de soudure pour montage en surface (température contrôlée: four à refusion et / ou pistolet à air chaud)
    • Voici un instructable sur la fabrication d'un four à refusion
    • Une station de soudage à l'air chaud n'est pas nécessaire à 100% et, autant que je sache, il faudrait en acheter une.
  • Équipement d'inspection optique (tel qu'un microscope USB)
    • C’est le microscope que j’utilise, pour autant que je sache, c’est l’un des meilleurs appareils bon marché.
  • Brucelles de précision pour placer des pièces (aussi petites soient-elles, elles paraîtront énormes quand vous les utiliserez)

    • Voici un ensemble pas cher

    TOUS LES OUTILS D'ICI SONT FACULTATIFS

  • Un émulateur JTag. JTAG a été conçu pour faciliter le contrôle de la qualité des PCB fraîchement assemblés.
    • Assurez-vous que l'émulateur que vous achetez est compatible avec les périphériques que vous utilisez dans votre conception. Celui-ci est utilisé pour l'ESP32. Si vous commandez le programmateur ESP32, examinez l'étape suivante et envisagez de commander la carte de développement ESP32 à partir de là aussi, plutôt que de DigiKey.
  • Soudez l'imprimante / applicateur de pochoir. J'ai acheté le CYBRES SP2421, mais j'ai le sentiment qu'il existe peut-être de meilleures options que je n'ai pas encore trouvées. Au minimum, ajoutez les entretoises à votre panier lorsque vous commandez votre pochoir (chez OSHPark).
  • Machine Pick and Place (pour un assemblage automatisé répétable, davantage pour une production de masse à petite échelle)
    • J'ai acheté LitePlacer (prêté, avec tous mes autres outils), mais je vois une option moins chère, voire meilleure.
    • N'oubliez pas que les services de montage professionnels ne coûtent pas très cher en grande quantité.
  • Imprimante 3D (si vous en avez une) pour tester les conceptions de boîtiers.
  • Fraiseuse CNC (si vous en avez un)
    • Idéal pour la fabrication de boîtiers uniques de qualité supérieure ou d'autres choses comme les moules pour le moulage par injection.
    • Idéal pour fabriquer des pièces mécaniques qui connectent vos circuits au monde réel.
    • Très précieux (en termes de temps) pour la fabrication locale de PCB. Pour les petits circuits, vous devez graver chimiquement des traces, mais vous avez toujours besoin d'un moulin pour Vias, des formes de cartes / découpages, de la panérisation / dépanélisation, etc.
  • Logiciel de conception de circuits imprimés (pour concevoir votre circuit imprimé ou modifier mon design)

    • EagleCAD (associé à Fusion360 pour la modélisation 3D) est ce que j'ai toujours utilisé depuis avant son acquisition par AutoDesk. Si vous avez un design de grande taille ou commercial (vous excluant d'une licence gratuite) et que vous n'avez pas d'argent pour obtenir une licence mise à niveau d'AutoDesk, KiCAD (associé à FreeCAD) est une alternative gratuite et open source, mais non aussi luxueuse. Je pense que KiCAD est une courbe d'apprentissage plus abrupte.

Étape 3: Connectez-vous

Préparation:

Il est judicieux de créer vos logiciels et fonctionnalités avant de vous engager à développer du matériel dédié permanent. Cela minimise les efforts nécessaires si vous découvrez que votre idée ne fonctionne pas, vous permet de la développer le plus rapidement possible et vous permet d'ajouter et de supprimer facilement du matériel avant la conception finale. Donc, pour commencer, nous allons simplement créer un modèle de planche à pain. Vous pouvez vous écarter de cette conception exacte si vous le souhaitez, mais si vous le faites, veillez à lire la fin de cette étape dans laquelle j'explique la pensée qui se cache derrière chaque partie.

Liste des pieces:

Voici les paniers d'achat:

  • Pièces DigiKey (j'utilise digikey parce qu'elles sont proches, c'est donc comme si j'avais "DigiKey Prime")
    • Pièces GridConnect (si vous achetez le programmeur JTAG pour l'ESP32)
      • ESP32 DevKitC Development Board (livré avec des en-têtes femelles)
      • Outil de programmation et de débogage ESP (moins cher que DigiKey, si vous payez déjà pour l'expédition)
        • Ceci est facultatif et n’est utile que lorsque vous réalisez votre circuit imprimé personnalisé.
  • Pièces Amazon
    • Kit de câbles de raccordement AWG 20 (si vous ne possédez pas déjà un câble de calibre 20)
    • Wire Wrap (en option, le ruban électrique fonctionne aussi)
    • Conteneur / Enceinte. J'ai acheté le mien au magasin à un dollar, idem pour l'huile minérale.
    • Huile minérale (Buy 2) Vous n'avez pas besoin de beaucoup pour couvrir les régulateurs, mais plus d'huile = plus de dissipation de chaleur.
    • Liquid Tape, pour sceller le trou dans le boîtier où vos fils sortent.

Assemblée:

Regardez la vidéo pour obtenir des instructions de montage sur le faisceau de câbles. Vous pouvez le désactiver si vous trouvez que le son est digne de ce nom. Quand il arrive à la partie où vous soudez des choses à la carte, référez-vous à cette liste pour les coordonnées sur lesquelles placer chaque connexion.

Souder toutes les pièces à la planche à pain comme indiqué dans la vidéo. J'ai inclus un modèle 3D du prototype (pas de précision esthétique à 100%, mais l'idée est que le modèle 3D vous donne quelque chose que vous pouvez regarder vous-même au cas où la partie suivante créerait de la confusion. Vous pouvez télécharger le fichier ici et l'afficher. il.

La planche à pain comporte des lettres sur l’axe des Y et des chiffres sur l’axe des X. Nous les utiliserons pour spécifier l’emplacement de chaque connexion. Pour le plus haut et inférieur bus d'alimentation, laissez U & L Précisez celui auquel nous faisons référence. Aussi à préciser positif ou négatif bus, nous allons annexer un P ou N en U ou en L. Par exemple, "UP3" ferait référence au 3ème trou du bus d'alimentation positif supérieur (numéroté). En outre, l'ajout de la lettre R, indique que la connexion doit être faite sur le sens inverse côté du plateau.

  • Sauteurs

    • Vert: J25R et J27R, H27R et B27R (soudez l'isolateur avant ce cavalier)
    • Rouge: H8 et H26
    • Jaune: LP24 et A24, LP19 et J19 (Faites ce cavalier en dernier)
    • Blanc: D28R et G28R, D30R et G30R, UP30R et I30R, UP1 et J1
    • Noir: UN6 et J6, LN19 et 19B
  • Résistances

    • R1 (680 Ohms) LP26R & G26R
    • R2 (120 Ohms) H7R et C25R
    • R3 (680 Ohms) B26 et B23
  • Condensateurs (je n'ai pas d'argent pour les commander, donc je n'ai pas les coordonnées exactes)

    • C1(50V 39uF) UP # R & UN # R (N'importe laquelle des colonnes, placez-la près des colonnes avec le numéro le plus élevé, plus près du régulateur)
    • C2 (10V 680uF) LP # R & LN # R (Idéalement dans les colonnes 20-23)
  • Isolateurs

    • En utilisant le double isolateur LTV-826 suggéré, placez la broche 1 (celle avec le point) sur E24et la broche 4 (même côté de l’isolateur mais 3 broches vers le bas, sur E27. Les autres broches sont soudées là où elles se posent sur la carte.
  • Régulateurs (toutes les broches d'entrée sur la colonne 28, les broches de sortie sur la colonne 30)

    • Un régulateur sur les rangées: A, C, E, F, H, J
    • À l’aide d’un conducteur sans isolant, souder toutes les ailettes du haut, en partant de la rangée. UNE, une fois que vous avez connecté les 6 régulateurs, soudez l'extrémité du fil à UN30
  • Faisceau De Câbles MDB
    • Vert (Ligne 6 du BMM) = H25
    • Rouge (MDB Ligne 5) = A23
    • Bleu (MDB Ligne 4) = J24
    • Noir (MDB Ligne 2) = UN29
    • Blanc (MDB Ligne 1) = I28
  • En-têtes de broche (lors de l’insertion du DevKitC, orientez-le de sorte que la broche 5V tombe sur I1et la broche 3v3 se pose sur I19.

    • I1R-I19R, A1R-A19R

C'est la fin de cette étape! Vous devriez maintenant avoir une carte de développement compatible Wi-Fi / Bluetooth qui peut être alimentée et communiquer avec les distributeurs automatiques.

Sélection de pièces:

Cette section est destinée à ceux qui veulent faire les choses un peu différemment. Vous avez peut-être un Arduino ou un framboise pi ou vous avez une pièce de rechange sous la main pour chaque pièce indiquée. Ce que je vais faire est de vous expliquer comment / pourquoi j'ai choisi chaque partie / valeur.

Tout d'abord, tout a besoin d'une source d'énergie.

  • Bien que vous puissiez simplement alimenter le périphérique via le port USB de la carte de développement, cela pose quelques problèmes. Le dernier problème est la raison pour laquelle je n'utilise pas d'alimentation externe telle qu'une Wall Wart.
    1. Vous devez garder un ordinateur portable branché sur un câble USB relativement court et fixe.
    2. Vous ne pouvez pas vraiment fermer la machine complètement, ce qui rend les tests plus difficiles.
    3. Au moins dans mon cas, l’idée était que c’était un appareil sans fil.
    4. La meilleure alternative ne demande pas beaucoup d'effort.
  • J'ai choisi d'utiliser un régulateur linéaire car il est rapide et peu coûteux. Cependant, il doit baisser de 34V à 5V, absorber jusqu'à 45V et émettre une quantité décente de courant. Cela limite un peu les options (des options limitées m'ont amené à décider d'inclure un dispositif de montage en surface dans le modèle de carte de montage), en outre, notre scénario de 34V à 5V pour MDB, cela signifie que nous obtenons une efficacité de 15%, ce qui se traduit par BEAUCOUP de production de chaleur. Les régulateurs produisent tellement de chaleur que la quantité de courant que nous pouvons en extraire est fortement limitée par les propriétés thermiques. Cela dit, je ne pense pas vraiment que tout le monde a un ordinateur indésirable à sa portée, il peut tout simplement lui arracher un dissipateur de chaleur considérable. De plus, ce refroidissement n’était pas suffisant pour l’appareil qui restait inactif. Plutôt que de recourir à une source d'alimentation externe ou à un SMPS plus complexe, j'ai décidé d'ajouter simplement plus de régulateurs linéaires en parallèle et de plonger le dispositif dans Mineral Oil.
    • L'huile minérale est non conductrice et peut être utilisée comme liquide de refroidissement. Si vous essayez de contacter 3M au sujet de la gamme de produits Novec (conductivité thermique supérieure, ignifuge, etc.), vous découvrirez que des réglementations et des exigences environnementales strictes limitent l'accès à ce produit.. En ce qui concerne le refroidissement, ce n'est pas le meilleur liquide de refroidissement, mais sa conductivité thermique est 10 fois meilleure que celle de l'air. En ce qui concerne le récipient en plastique qui contient le liquide, il dépend probablement de son plastique, il est probablement aussi conducteur de la chaleur ou plus conducteur. Bref, le seul goulot d'étranglement pour le refroidissement est la surface des isolateurs, transférant la chaleur à l'huile minérale. C’est la raison pour laquelle des dissipateurs thermiques ont été ajoutés, en particulier si l’on tient compte des valeurs de la fiche technique (qui ont été utilisées pour déterminer si 6 régulateurs = 1 ampère) font référence au montage en surface des régulateurs sur un circuit imprimé à 4 couches avec vias thermiques, etc. Pourquoi 1 ampère? Les cartes de développement devraient nécessiter environ 1 A maximum à tout moment et beaucoup moins lors de la plupart des opérations. La capacité de 1 ampère garantit simplement que le courant ne deviendra pas une cause cachée de comportement erratique plus tard. Enfin, sur l’huile minérale, les isolateurs sont orientés de manière à ce que la convection se produise naturellement, et les côtés ayant la plus grande surface sont ceux où toute l’huile coule.

Ensuite, nous avons besoin d'un processeur.

  • À l'origine, j'utilisais le panneau Photon de Particle pour ce projet. Cela m'a été suggéré par un gars qui souhaitait utiliser son IDE Web avec le périphérique que je fabriquais. À l'époque, je ne connaissais rien derrière Arduino. J'étais donc impressionné par le wifi ET il offert 9 bits UART, alors je viens d'accepter. Si vous avez une raison, vous pouvez utiliser à peu près n'importe quel arduino, ils semblent tous offrir une UART 9 bits. Raspberry Pi ne semble pas, mais il y a une bibliothèque bitbanging ou deux pour cela. Bitbanging, pour moi, semble juste comme beaucoup de déconner pour un résultat inférieur. Comme vous l'avez peut-être remarqué, l'ESP32 ne propose pas d'UART 9 bits. Toutefois, si vous plongez dans la documentation, vous pouvez trouver ou non quelques solutions pour contourner ce problème, telles que la manipulation du bit de parité (facile lorsque envoi, difficile lors de la réception). Si vous avez un câble / adaptateur USB vers UART, il peut être impossible ou non de l’adapter à un UART 9 bits. J'ai parcouru toutes les fiches techniques de chaque puce de pont sur digikey, et seules deux puces offrent un format 9 bits, et elles sont fabriquées par MaxLinear (et non par FTDI), et je n'ai trouvé aucun câble / adaptateur USB. qui utilisent leur puce de pont dedans, donc, si vous avez un adaptateur USB vers UART, il ne supportera probablement pas l’UART 9 bits. Mais comme je l’ai dit, cela ne signifie pas qu’il peut ou ne peut pas être utilisé avec un UART 9 bits, c’est beaucoup plus de travail et de lecture n. Quoi qu'il en soit, lorsque j'ai découvert le module ESP32, j'avais l'intention de l'utiliser dans un circuit imprimé personnalisé. Il se démarquait par un matériel très performant proposant Wi-Fi et Bluetooth à un prix imbattable (puis je découvre que c'est aussi un truc très prisé des amateurs)..
  • Pourquoi n'utilisons-nous pas simplement le processeur d'un ordinateur portable? Ce n'est tout simplement pas l'option la plus simple / la plus facile / la plus rapide.

Enfin, l'isolateur

  • L’isolateur choisi a un temps de montée / descente maximal de 18uS et une

    temps de montée / descente de 3 & 4 us respectivement. Il s'agit d'une différence de 1uS, qui ne déforme pas les communications de données et se rapproche beaucoup de la précision de synchronisation de 1% spécifiée par le protocole (erreur 1uS sur 104uS). Le temps de montée / descente de 18uS, étant cohérent / identique (également inférieur à 104uS), ne fait que compenser / retarder les données de cette durée sans les déformer. Le rapport de transfert actuel atteint son maximum autour de 15mA et il est raisonnable de penser qu'il restera au-dessus de 100% de transfert dans la plupart des situations. C'est pourquoi, pour un prototype rapide, je choisis celui-ci. Aussi parce que je l'ai choisi par hasard quand je ne savais pas que cela importait beaucoup.

Sélection des valeurs de la pièce:

La formule est R1 = Vp / 5mA. Le 5mA est un courant générique / par défaut et peut être ajusté. Le panneau Photon de particules permet jusqu'à 25 mA par broche IO, donc c'est un bon rapport qualité-prix. La particule fonctionne sur 3,3 V, donc Vp = 3,3 V, donc la formule est R1 = 3,3 V / 5 mA = 660 Ohms. En ajustant ceci pour la valeur de résistance standard la plus proche, nous obtenons 680 Ohms. Double vérification du courant que la valeur de résistance plus élevée a pour résultat (I = 3,3 V / 680 Ohms), nous obtenons 4,9mA. Le courant de la broche est suffisamment élevé pour que la plage de valeurs dans la précision / tolérance de la résistance n'ait pas besoin d'être vérifiée.

Formule pour R2 = (Vp - Vf (max)) / (Si * CTR (min)). La 2ème partie (Si * CTR (min)) représente le courant transféré, qui doit être de 15 mA ou plus. En sélectionnant un isolateur avec un rapport de transfert de courant minimal d'au moins 100% à 10 mA, nous constatons que le taux de clics (CTR) est à son maximum, à environ 15 mA. Cela fonctionne, mais n’est en aucun cas une solution à long terme en raison de tolérances serrées. Nous devrons donc trouver un nouveau régulateur pour toute conception sérieuse. En branchant les valeurs de ce régulateur, nous obtenons R2 = (3.3V - 1.4V) / (15mA * 1), le rapport que je viens d’appeler 1 plutôt que d’essayer de comprendre ce qui est sur le graphique, c’est sûr de monter jusqu’à 20mA, gardez à l’esprit que nous limitons les excès de courant de l’autre côté. En résolvant cette équation, nous obtenons 127 ohms et, si nous arrondissons à la valeur de résistance suivante, nous obtenons 120 ohms. En double vérification, cela nous donne un minimum de 15 milliampères des deux côtés.

Formule pour R3 = (5V - Vf) / 10mA. La valeur 10 mA est une valeur aléatoire / générale, et l'isolateur utilisé fonctionne bien avec 5 mA, pour produire 5 mA de l'autre côté. Nous pouvons tirer jusqu'à 15mA, mais nous n'en tirerons que 5mA. Pour ce faire, il suffit simplement de brancher les valeurs dans l'équation. (5v - 1,4V) / 0,01A = 720. Toutefois, il s’agit d’un résultat très proche des 680 ohms utilisés dans R1. Réduisons donc le nombre de pièces uniques et utilisons simplement la même valeur. En double vérification bien sûr, nous n'augmentons que d'environ 0,2mA, donc tout va bien.

Étape 4: Obtenez le code initial configuré et téléchargé

Vous devrez installer l'IDE ARduino, le Arduino-Core pour l'ESP32. Si vous fabriquez un appareil commercial, je vous recommanderais de passer à l'IDE d'Espressif pour l'ESP32. Il sera moins bogué, performera mieux et proposera toutes les fonctionnalités possibles. Ils travaillent toujours sur le port d’Arduino.

Maintenant, vous devez obtenir le code MDB chargé sur votre appareil, le configurer pour votre appareil et commencer à ajouter toutes les fonctionnalités de fantaisie que vous avez imaginées, en le liant au code MDB. Pour moi, cela impliquait de télécharger le manuel et de transcrire toutes les pages pertinentes dans un programme (au départ, je viens de le faire avec le dispositif de paiement Cashles mais je travaille pour ajouter le reste). Au lieu de faire tout cela, vous pouvez regarder mon code. Ce code a subi de nombreux changements depuis ma dernière utilisation, et je n’ai plus accès 24 heures sur 24, 7 jours sur 7 à un distributeur automatique, il peut donc y avoir quelques bogues à résoudre. La finalisation de ce logiciel est ma priorité suivante après la publication de ce fichier instructable. Vous pourrez donc vous en occuper d’ici à ce point. Même si ce n’est pas le cas, il vaut toujours mieux résoudre quelques bugs que de tout écrire à partir de rayure. Assurez-vous de vérifier que votre matériel fonctionne avant de supposer que le code ne fonctionne pas. Connectez un analyseur logique aux broches et comparez ce que votre périphérique reçoit, ce qu’il lit et ce qu’il doit envoyer, à ce qu’il envoie réellement. J'ai inclus quelques images pour aider à clarifier ce que vous devriez voir sur un analyseur logique.

Lorsque vous commencez à travailler avec mon code, il devrait être facile de le suivre également dans le manuel de MDB. Si vous l'utilisez, assurez-vous de soumettre toutes les améliorations / modifications apportées. Ceci est mon premier programme et reste le seul programme sur lequel j'ai jamais travaillé. C'est aussi la première fois que j'utilise github, donc désolé si c'est un peu désorganisé. Que vous utilisiez mon code ou que vous le fassiez vous-même (c'est BEAUCOUP, je dois encore plonger dans un manuel EVA-DTS plus grand pour établir un lien avec le code MDB), le moment est venu de faire communiquer intelligemment votre appareil avec la machine, puis faites votre application et associez-la au code MDB. Obtenez les fonctionnalités principales de votre appareil. Ajoutez des microphones, des moteurs, quels que soient vos besoins, et installez tout cela. Avant de passer à la fonctionnalité et à la conception de votre appareil, il est plus difficile et plus coûteux d'apporter des modifications à des circuits personnalisés.

Pour ceux qui utilisent un matériel différent qui ne prend pas en charge les UART 9 bits:

Si vous avez choisi d’utiliser quelque chose comme un Raspberry Pi ou un câble USB vers UART, cela peut être intéressant. La MDB nécessite une communication à 9 bits de données. Beaucoup de matériel UART ne supporte pas cela. L’ESP32 se trouve être l’un de ces appareils. Non pris en charge ne signifie pas que c'est impossible, et après avoir examiné la documentation sur l'ESP32, je vois différentes façons de le réaliser. Si vous utilisez un matériel différent, voici quelques options que vous pourriez examiner.

  • Envoi de données
    • Calculez manuellement le réglage de parité souhaité pour chaque bit avant l'envoi.
    • Chargement manuel des registres avec les données ET de la parité (ne sait pas si cela est possible sur l'ESP32)
    • Bitbanging (garanti mais gourmand en ressources)
  • Réception de données
    • Réception de données et utilisation de l'interruption / indicateur d'erreur de parité (si votre matériel en est équipé) pour indiquer le 9ème bit de données. (Cela nécessiterait que les données avec une mauvaise parité ne soient pas simplement ignorées)
    • Lire manuellement dans le registre au fur et à mesure que chaque bit entre. (Plus de travail)
    • Bitbanging (garanti mais gourmand en ressources)

Il n’est pas clair à 100% de savoir ce qui fonctionnera en regardant simplement le Manuel de référence technique (du moins sur l’ESP32), car nous utilisons la parité de manière non prévue, il n’y aura donc pas de documentation sur la parité. comment l'utiliser de cette façon. La seule façon de savoir ce qui se passe est de tester du code et de voir ce qui fonctionne. Une dernière remarque est que l’ESP32 dispose d’un registre / interruption "Edge Change", ce qui nous permet de détecter une réinitialisation Hard / Bus et d’être conforme à 100% à la MDB. Une réinitialisation matérielle / bus survient lorsque le bus est actif pendant environ 100 ms, ce qui ne fait pas partie des communications UART. Il est donc agréable que l’ESP32 ait cette capacité. Toutefois, il est inutile de prendre en charge la réinitialisation matérielle / bus, car le protocole spécifie que tous les périphériques qui ne répondent pas reçoivent simplement une commande de réinitialisation adressée (lisible par UART).

Étape 5: Commencez le prototypage

A partir de maintenant, vous devriez en savoir beaucoup plus sur l'électronique. Votre projet s'éloignera probablement aussi de Instructable à ce stade-ci. Par conséquent, la documentation à partir de maintenant changera de vous expliquer comment faire les choses (ce serait un sujet complètement différent de l'électronique / SMT), à mentionner des choses remarquables que j'ai apprises en tant que Je travaillais sur mon propre projet. Espérons qu'il y aura des informations utiles quelque part dans cette étape.

Pour moi, le prototypage consiste à rechercher toutes les pièces et à trouver le coût le plus bas possible, en remplaçant les pièces dans le schéma que vous utilisiez auparavant. Également, beaucoup d'essais et d'erreurs à propos de la conception et de l'assemblage de circuits personnalisés. Vous essayez d’améliorer un Déjà en train de travailler concevez avec des modifications pour trouver l'équilibre optimal entre qualité et prix bas (puis assurez-vous que les modifications ne brisent pas le système). Chaque fraction de centime s’additionne. Assurez-vous de comparer les prix provenant de plus d'une source (Octopart fait du bon travail avec cela) et établissez un équilibre entre le fait de commander à partir d'une source ou de plusieurs sources. Je garde un tableur / nomenclature en open office pour organiser les pièces et tous leurs prix. Je vais inclure un exemple / modèle que vous pouvez utiliser. J'avais l'habitude d'inclure un lien un peu plus fort vers chaque partie où je l'avais trouvé à ce prix, mais je pense que j'ai arrêté de le faire car cela devenait fastidieux à cause du taux auquel je trouverais une meilleure partie. EagleCAD, je crois maintenant, a aussi une sorte de programme de nomenclature. Je suis sûr qu'un simple tableur est moins puissant, mais moins compliqué au début aussi.

Au fur et à mesure que vos conceptions deviennent plus petites, les petits détails ont un impact plus important. L'épaisseur de votre pochoir de soudure, la forme / taille des empreintes de vos passifs, les contraintes mécaniques (cela va commencer à fissurer la céramique et les joints de soudure), etc. Ce document en parle beaucoup, j'aurais aimé en savoir plus ces choses avant que je commence. J'essaie d'utiliser 0402 comme taille standard pour tous mes passifs. Une chose à ne pas oublier est le montage. Pouvez-vous assembler de manière fiable les pièces de cette taille et de celles les plus rapprochées? Ou avez-vous des projets sur la façon de souder une conception à double face?

  • Lisez chaque mot de chaque fiche technique. Un CI d'alimentation n'a pas fonctionné correctement car j'ai oublié une note de bas de page dans un tableau de valeurs.

  • Ne prenez pas de raccourcis, ils n'existent pas.

  • Recherchez des repères pour l'assemblage automatisé.
  • Recherchez la personnalisation si vous voulez en faire quelques copies.

Je recommande l'ESP32 car il offre une alimentation décente, le wifi, le bluetooth et quelques autres petites choses, le tout pour 3,75 $ par module. Bien que je ne sois pas fan des modules, cela est nécessaire pour les petits projets où 10 000 ou plus de frais de licence FCC ne sont pas une option. Vous pouvez utiliser la certification FCC de l’ESP32 dans votre propre conception. Si je ne me trompe pas, tous les appareils électroniques commerciaux doivent être certifiés par la FCC, ce qui coûtera toujours au moins un millier de dollars pour une passe ou un échec. Alors, envisagez l’achat d’un analyseur de spectre pour effectuer des tests préalables. Ne l'achetez pas tant que vous n'en avez pas besoin xD J'en ai acheté un et je ne l'ai jamais utilisé, mais un gros gaspillage d'argent jusqu'à présent.

Pensez à implémenter JTAG pour que votre circuit imprimé s’inspecte numériquement après le montage. Comme mentionné précédemment, l'ESP32 a son propre outil de programmation.

Faites attention aux capacités du service de fabrication de PCB que vous choisissez. Si vous regardez les images dans cette étape, vous verrez la différence entre OSHPark (un service d'amateur général / en vrac) et une entreprise chinoise.

Tirez un étrier ou quelque chose et assurez-vous de savoir quelle taille / petite les pièces que vous utilisez. Sur ce modèle présenté (Proto2, mon premier circuit imprimé), j'ai eu les résistances et les condensateurs, et j'ai pensé "ils avaient l'air beaucoup plus gros à l'écran" xD

"J'espère que vous échouez!" - Dave de EEVBlog dans l'une de ses vidéos. Échec, cela signifie que vous apprenez, et j'ai appris beaucoup de choses chères.

Il se trouve que les fichiers Eagle de ce tableau (Proto2) sont encore (téléchargés).

Voici l'ordre du parc OSH aussi.

Étape 6: essayez à nouveau! et encore! et encore! (Plus de prototypage et beaucoup d'apprentissage)

Vous échouerez et vous essaierez encore! Et vous échouerez encore et vous essaierez encore! (Fichiers de la carte disponibles dans chaque lien). Le dernier bit est ce qui est important, vous volonté réessayer! Avec chaque erreur / échec, vous apprendrez quelque chose de nouveau.

Ce prototype (proto 3 dans les deux premières images), je suis passé à utiliser des passifs réalistes à la main. Cela a bien fonctionné, cependant, j’ai négligé d’examiner d’autres problèmes de taille potentiels et me suis rendu compte que je ne pouvais pas placer le Power IC à la main. C’était aussi trop petit pour qu'OSHPark puisse créer une empreinte de qualité pour, avec masque de soudure entre les pastilles. À ce stade, pressé de faire un MVP en état de marche (j'avais un gars pressé de l'utiliser, donc il y avait un peu de pression), j'ai décidé de simplifier un peu.

Voici le lien de OSHPark vers la carte Proto3.

Proto-4, illustré dans les 3ème et 5ème images, je suis revenu à l’utilisation d’une carte de développement, afin d’éviter le temps et les problèmes liés à la tentative de soudage de ce module, ainsi que les problèmes de wifi auxquels je m'attendais. J'ai également opté pour une alimentation plus simple / plus grande. Malheureusement, j'ai négligé de lire une note de bas de page dans la fiche technique de cette alimentation (maintenant que je commençais à vouloir précipiter les choses) et elle finissait par ne pas fournir la bonne tension 90% du temps. Je crois que je viens de décider de le brancher sur le port USB, et les communications ne fonctionnaient pas non plus! Je ne me souviens pas vraiment de la cause exacte, mais souvenez-vous que j'ai surestimé les isolateurs optiques et que je suppose que chacun d'entre eux est assez rapide. Cependant, je pense que j'ai peut-être confondu les valeurs de résistance dans la précipitation et la perte de sommeil. À l'époque, je vivais avec des chats, auxquels j'étais très allergique, je me levais et chug nyquil (tous les jours), alors la journée était supportable, et un monstre pour lutter contre le nyquil, puis je travaillais toute la journée, puis restais après. pour travailler dessus (ou à la maison), évitez de dormir, respirez un peu d'adrénaline pour que je puisse mieux respirer (les chats me donnaient de l'asthme funky tous les jours) et restiez aussi éveillé. J'ai fait beaucoup de mauvais choix de santé en faveur de l'argent fait.N'oubliez pas de dormir, la perte de sommeil provoque l'insomnie, ce qui entraîne une baisse de productivité. N'oubliez pas de manger, évidemment, cela diminue la productivité. N'oubliez pas de ralentir et de bien faire les choses, sans raccourcis, ou vous perdez votre temps et votre argent (au mieux, vous apprenez à ne pas faire).

Voici le lien de OSHPark à la carte Proto4.

À ce stade, je l'avais eu et j'avais décidé de revenir en arrière et de me concentrer sur la lenteur et la régularité de l'appareil. Mais pas sans un dernier effort pour obtenir un prototype reproductible prêt à l'emploi que je puisse envoyer au gars que je connais et le rendre heureux. Présentation de Proto-5, le modèle "trop ​​simple pour échouer", essentiellement le même circuit que Proto-1, juste un peu plus sophistiqué. Utilisez des en-têtes de broches pour ne pas gaspiller les tableaux de photons dans le cas où un appareil tombe en panne ou ne fonctionne pas, ainsi qu'un tableau Electron (signal de cellule) pourrait y être facilement échangé. Whelp, se dépêchait, oubliait une connexion ou deux, d’une manière ou d’une autre, cela ne fonctionnait pas, même après avoir mis fin à la connexion que j’avais oublié de faire, semblait être un problème d’alimentation, mais je n’étais pas capable de le réparer en soudant plus de condensateurs. Plutôt que d'enquêter sur la cause, étant précipitée, je l'ai simplement laissée tomber et je suis passée à autre chose. Est-ce que tous mes pleurs à l'intérieur, et a continué à avancer.

Voici le lien de OSHPark à la carte Proto5.

Étape 7: Préparez votre projet final et préparez-le pour la production

Je suis finalement revenu et j'ai fait un effort décent pour fabriquer un appareil utilisant le module ESP32 de l'Espressif. La carte a été configurée pour un assemblage plus rapide (dans la plus grande taille qui convienne à mon four grille-pain et à mon applicateur de pochoir à souder). J'ai refait des recherches sur les options d'alimentation et ai obtenu la même réponse que Proto2 & 3. que j’avais une machine de sélection pour aider à l’assemblage (bien que je ne pense plus que ce soit nécessaire). J'ai changé de fabricant de circuits imprimés pour des capacités plus précises et des coûts plus bas, j'ai opté pour une entreprise chinoise (ce que je ne veux pas faire à nouveau). En général, je me suis bien débrouillé et j'ai obtenu un bon conseil. Autant de pannes et de dépenses sur un circuit composé essentiellement de deux isolateurs T-T.

Le lien de OSHPark vers Proto6 est ici. << Cependant, je pense avoir apporté certaines modifications (mineures / non critiques) après avoir soumis ce fichier exact. Notez que les connecteurs MDB indiquent le genre de connecteur utilisé, c’est un moyen simple d’éviter de placer un connecteur du mauvais côté. Je ne peux plus y apporter de modifications, car je n’ai plus de licence pour utiliser Eagle (ainsi que pour les personnes au chômage), mais si vous le faites, je vous recommande de changer l’isolateur pour utiliser deux isolateurs TCP817 au lieu de LTV826S. Ajoutez également JTag à l’ESP32 (page 14) et recherchez les en-têtes qui correspondent à ceux utilisés sur le programmateur ESP32. Utilisez-le pour augmenter la taille des passifs utilisés, et bien sûr ajoutez des Si vous ne le modifiez pas, je vous recommande au moins de revoir la conception et de vous assurer que les pièces de la nomenclature correspondent bien à celles du PCB. Cette dernière conception a subi de nombreuses modifications de dernière minute et Je peux vous dire que la diode de la nomenclature est celle que j’ai décidée, et celle que j’ai utilisée est ici.

Si je ne l’ai pas encore mentionné, il n’existe pas de connecteurs Minifit Jr à montage en surface, aussi, le montage de bord tel que je l’ai fait est la méthode la plus compacte. Un connecteur est livré préchargé avec des broches adaptables en tant que connecteur monté sur le bord. Pour l'autre connecteur, vous devez insérer des connexions serties, et ce, aussi compact que possible. Si vous faites correspondre l'épaisseur du circuit imprimé et le calibre du fil, vous devriez le faire correspondre parfaitement comme ça. Gardez à l'esprit l'impact de ces connecteurs sur le processus d'assemblage en production de masse. J'ai contacté Molex à ce sujet et ils disent que vous devez commander des millions d'unités et des choses de ce type pour créer un nouveau connecteur / personnalisé. Envisagez de créer le vôtre si vous pensez pouvoir le comprendre et que c'est également un problème pour vous (ne pas avoir de connecteur SMT).

La vidéo référençant une machine à commande numérique parle de celle pour laquelle je comptais économiser (pocket nc), pas celle de Shapeoko 3. Ces vidéos dataient d’il ya des années.

Bonne chance dans votre projet de vente, j'espère que cela vous aidera et que vous réussirez.

Runner Up dans le

Concours PCB