Home > Technologie > Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

0
Advertisement

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wenn Sie eine Menge von Leiterplatten (Printed Circuit Board), werden Sie wollen eine Art von QA, um sicherzustellen, dass Ihre Boards funktional und ohne Mängel sind. Die beliebteste Methode für In-Circuit - Test ist die Verwendung von einem Bett aus Nägeln Befestigung. Es gibt viele sehr teure Lösungen, aber Sie werden hier lernen, wie Sie Ihr eigenes Bett von Nagel-Tester, indem Sie einfach mit einem 3D-Drucker zu erstellen.

Ich habe eine Menge von Design und Software für Test-Boards und es ist alles offene Quelle geschrieben, so können Sie auch nutzen, und verwenden Sie es (Bur respektieren die Lizenz bitte, wenn Sie es ändern, lassen Sie Ihre Änderungen!) .

Schritt 1: Der RAMBo-Controller

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

In diesem Instructable, werde ich darüber , wie eine Testvorrichtung für eine zu bauen Rambo 3D - Drucker - Controller als ein Beispiel dafür , wie eine Testvorrichtung für Ihre Elektronik zu entwerfen. Ich werde mich aber auch darauf konzentrieren, wie ich mein Design für eigene Boards anpassen kann.

Ich habe zwei Testvorrichtungen gebaut, eine für die Rambo 1.1B und später eine für die Rambo 1.3L - Controller. Das zweite Design ist etwas anders als das erste, mit nur wenigen Verbesserungen, die es einfacher zu bauen und zu verwenden, aber ich werde Bilder / Videos vor allem von meinem RAMBo 1.1B-Design zeigen, da das ist die, die ich die meisten Dokumentation für.

Offensichtlich, während diese instructable auf das Design für die RAMBo konzentrieren, müssen Sie berücksichtigen, dass jede PCB wird anders sein und wird daher unterschiedliche Anforderungen. In unserem Fall, wenn Sie den Aufbau eines 3D-Druckers oder CNC-Controller, die meisten Dinge hier passen, sonst müssen Sie sich anzupassen. Zum Beispiel müssen Sie nicht brauchen, um Motoren zum Testen Ihrer Schrittmotoren zu verwenden, oder Sie können unterschiedliche Widerstandswerte für die Prüfung Ihrer Stromschienen benötigen.

Schritt 2: Sammeln Sie Ihre Materialien

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Erste Dinge zuerst, müssen Sie einige Materialien zur Hand haben, bevor Sie ein PCB-Tester zu bauen:

  1. Eine Leiterplatte zum Testen (offensichtlich)
  2. Ein 3D-Drucker für die 3D-gedruckten Teile Ihrer Prüfvorrichtung. (Eine andere offensichtliche Anforderung!)
  3. Ein 3D-Modell Ihrer Leiterplatte
  4. Einige Pogo-Stifte und -Buchsen
  5. Thermoplastischer Heatset-Einsatz (optional)
  6. Ein Testcontroller
  7. Epoxidkleber
  8. Eine hölzerne Platte für Ihre Befestigung (ich verwendete eine 300x300 Millimeter-Platte)
  9. Female-Female Steckbrücken
  10. Stapelbar (für Arduino-Schilde) Header (optional)
  11. Gewindestangen
  12. Einige grundlegende Nüsse u. Bolzen, zum alles unten zu halten
  13. Jede zusätzliche Hardware benötigt für die Prüfung Ihrer spezifischen Karte (Motoren, Widerstände, Kupfer-Board, etc ..)

Wenn Sie eine Prüfvorrichtung für ein RAMBo aufbauen, werden die folgenden zusätzlichen Elemente benötigt:

  1. 100 KOhm Widerstände x4
  2. 4,7 KOhm Widerstände x3
  3. 47 KOhm Widerstände x3
  4. NEMA17 Motoren x5
  5. Optische Endanschläge x5
  6. Ein kleines Proto Board
  7. Stiftleisten
  8. Ein Netzteil

Das erste nicht offensichtliche Element auf der Liste ist ein 3D-Modell Ihrer Platine. Sie müssen ein generieren OpenSCAD Modell der PCB Sie testen möchten. Es gibt eine EagleToOpenScad ULP (geschrieben von Steve Kelly) für Eagle , die in diesem Fall sehr nützlich, einfach die ULP ausführen, wählen Sie (20) Dimension, extrudieren, regelmäßige Löcher, Pension und Skip Vias dann das scad Modell der PCB erzeugen (Siehe Bilder oben). Andere PCB-Design-Software kann ein ähnliches Skript haben, oder Sie können Ihre Dateien in das Eagle-Format exportieren.

Sie müssen auch einige Pogostiften und ihren Aufnahmen, ich zwei Arten von Pogo-Pins verwendet haben, die P100-A2 und P100-F1 sowie die R100-2W Behälter. Der P100-A2 verfügt über einen flachen Kopf (konkav) für den Kontakt mit gelöteten Stiften unterhalb der Platine, während der P100-F1 eine spitze (konvexe) Spitze zum Einstechen in nicht gelötete Stifte oder Vias aufweist.

Ich habe auch Heatset - Einsätze verwendet 94180A331 von der McMaster-Carr für M3 Schrauben , die ich gefunden habe , sehr nützlich zum Niederhalten Stücke der gedruckten Teile zusammen. Die Heatset-Einsätze sind jedoch nicht notwendig, da Sie immer noch ein Standard-Nuss-Schraube-System verwenden können, aber ich ziehe es vor, die Heatsets zu verwenden, da sie sehr praktisch und zuverlässig sind.

Schließlich benötigen Sie einen Controller. Grundsätzlich bedeutet dies, dass Sie eine Art von elektronischen Controller mit viel GPIO benötigen, um zu sehen und poke an den verschiedenen Verbindungen, die Sie mit dem DUT (Device Under Test) machen werden. Dies kann alles von einem Arduino zu einem Beaglebone oder Ihr eigenes Board als Controller verwendet werden. Im Fall unserer RAMBo-Test-Jig-Beispiel, habe ich eine zweite RAMBo-Board als Controller, da es viele Erweiterungs-Ports hat.

Sehen Sie sich das oben gezeigte Video an, um eine Übersicht über alle Elemente zu erhalten, die für den Aufbau der RAMBo 1.1B-Testvorrichtung benötigt werden. Beachten Sie, dass die dort aufgelistete Platine mit meinem aktualisierten Design nicht mehr benötigt wird, aber es kann trotzdem nützlich sein, um alles sauberer und leichter mit dem Controller zu verbinden (wenn die gleiche Platine wie der Controller verwendet wird). Beachten Sie auch die Verwendung von ICSP-Programmiergeräten, Motoren und Opto-Endstopps, die speziell für die Prüfung der RAMBo sind, benötigen Sie sie möglicherweise nicht für Ihre Platine, wenn sie nicht benötigt wird. Außerdem werden die ICSP-Programmierer nicht für RAMBo benötigt, es sei denn, Sie müssen leere Platinen testen, frisch aus dem Fließband.

Schritt 3: Erstellen Sie Ihre 3D-gedruckten Teile

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Es gibt ein paar Elemente, die gedruckt werden müssen, und es wird einige Zeit dauern, so können Sie den Druck einige, während Sie Ihre 3D-Modell Ihrer Leiterplatte vorzubereiten.

Quelle SCAD - Code für alle 3D - Druckteile (mit der vorab generierten STL - Dateien) sind auf meinem GitHub hier: https://github.com/kakaroto/RAMBO-Test-Jig

Die README-Datei wurde aktualisiert, um zu erklären, was jede Datei ist und wie alles zusammen passt, aber wir werden hier mehr Details erfahren.

Beginnen Sie also zuerst mit dem Drucken der folgenden Elemente:

  1. Fußstck x 5
  2. Clamp.stl x 2
  3. Controller_spacer.stl x 4 (wenn Sie 4 Bohrungen für Gewindestangen haben)
  4. Bottom_spacer.stl x 8 (wenn Sie 4 Bohrungen für Gewindestangen haben)
  5. Board_spacer.stl x 4 (wenn Sie 4 Bohrungen für Gewindestangen haben)
  6. Motor_mount.stl x 5 (Wenn Sie 5 Motoren testen müssen)
  7. Opto_mount.stl x 5 (Wenn Sie 5 Motoren testen müssen)
  8. Simple_encoder.stl x 5 (Wenn Sie 5 Motoren testen müssen)

Wenn Sie eine RAMBo Test-Jig, dann möchten Sie auch die folgenden ausdrucken:

  1. RAMBo_bottom_plate.stl x1
  2. RAMBo_middle_plate.stl x1
  3. RAMBo_top_plate.stl x1

Die Pogo-Stifte benötigen ein stabiles 'Schienensystem', um mit Ihrem Board ausgerichtet zu werden. Zu diesem Zweck werden wir 2 Kopien Ihrer Leiterplatte drucken, eine untere, die die Buchse des Steckers hält und eine mittlere, die die Oberseite des Steckers hält.

Durch das Verbinden dieser beiden Plastikplatten mit einem Abstandshalter mit konstanter Größe können Sie dann Ihre Pogo-Stifte einstecken und sie werden perfekt mit den Vias auf Ihrer Platine ausgerichtet und nehmen Kontakt mit Ihrem Board auf, sobald es eingesetzt ist. Wir benötigen auch eine obere Platine für das Herunterdrücken auf Ihre Platine, um einen guten Kontakt mit den Pogo-Pins herzustellen. Sie können auch auf der obersten Bord, Pogo-Pins für alle Prüfpunkte auf der Platine. Allerdings würde ich vorschlagen, jeder Testpunkt, der getestet werden muss, um in eine kleine Via, so dass es durch die Pogo-Pins von der Unterseite der Leiterplatte gestochen werden kann, da es alles viel einfacher machen wird.

Wenn Sie eine RAMBo-Prüfvorrichtung aufbauen, können Sie mit dem nächsten Schritt fortfahren, andernfalls lesen Sie weiter.

Während alle gängigen Teile sind zu drucken, was Sie tun müssen, ist ein 3D-Design Ihrer Platine zu erstellen. Verwenden Sie das EagleToOpenSCAD ULP Skript bereits erwähnt Ihre board.scad Datei zu erstellen.

Dann sollten Sie einen Blick auf die RAMBo.scad-Datei, dann bearbeiten Sie Ihre generierte board.scad (aus dem vorherigen Schritt) und machen es so ähnlich aussehen. So fügen Sie das am Anfang der Datei enthalten, dann die Moduldefinition ändern , um die board_thickness und hole_size als Funktionsargumente hinzuzufügen. Sie sollten dann die Löcher für die Gewindestangen ändern in die poly_circle - Funktion und den Radius zu M3_RADIUS (oder einen anderen Wert , je nachdem , welche Art von Montagelöchern Sie verwenden) eingestellt. Ändern Sie auch jeden Kreis in einen Aufruf zu:

  Loch (r = Lochgröße);

Die Lochfunktion ist in common.scad definiert , und es wird nur ein Quadrat zu erstellen, können Sie es auch bearbeiten Kreise oder poly_circles zu verwenden, aber ich habe quadratische Löcher gefunden viel effektiver sein , zum Halten der Pogostiften mit einem guten Lochgröße Genauigkeit, wenn 3D gedruckt.

Sie werden feststellen, dass ich alle Lochtypen in verschiedenen Abschnitten gruppiert habe, zum Beispiel:

  [...] if (ENDSTOP_YMAX) {<br> übersetzen ([13.335.36.830]) Loch (r = Lochgröße);  If (ENDSTOP_POWER) {translate ([15.875.36.830]) Loch (r = Lochgröße);  Übersetzen ([18.415,36.830]) Loch (r = Lochgröße);  }} If (ENDSTOP_XMAX) {translate ([3.175,36.830]) Loch (r = Lochgröße);  If (ENDSTOP_POWER) {translate ([5.715.36.830]) Loch (r = Lochgröße);  Übersetzen ([8.255.36.830]) Loch (r = Lochgröße);  }} If (THERMISTOR0) ​​{translate ([87.413,60.203]) Loch (r = Lochgröße);  Übersetzen ([87.413,57.663]) Loch (r = Lochgröße);  } If (THERMISTOR1) {translate ([87.413,52.329]) Loch (r = Lochgröße);  Übersetzen ([87.413,49.789]) Loch (r = Lochgröße);  } [...]

Du musst das nicht wirklich tun, aber ich dachte, es wäre praktisch, jedes Loch auf diese Weise zu trennen, es erlaubte mir auch, Löcher und Drucktafeln nur mit den erforderlichen Löchern zu aktivieren / deaktivieren, um den Druckvorgang zu beschleunigen. Was Sie jedoch tun möchten, ist, die Löcher durch Vias gegen Testpunkte zu gruppieren, falls Sie Testpunkte haben, die Sie von oben auf dem Board pochen möchten.

Sobald Sie Ihre board.scad angepasst haben, dann RAMBo_bottom_plate.scad öffnen und es zu einem board_bottom_plate.scad speichern und den Aufruf der Rambo - Funktion in einem Aufruf an das Board der Funktionsnamen zu ersetzen. Grundsätzlich, was diese Akte tut, ist, eine Vereinigung von zwei Brettern zu drucken, die erste eine 1 Millimeter-Stärke mit 1.5x1.5 Millimeter-Bohrungen und die anderen 4.5 Millimeter-Stärke mit 1.65x1.65 Millimeter-Löchern. Die kleineren 1,5-mm-Löcher werden gerade groß genug sein, um den Steckstift des Pogo-Stifts durchzulassen, aber nicht den größeren Teil des Behälters durchlassen, während die 1,65 mm-Löcher gerade groß genug für den größeren Teil des Behälters sind. Mit dieser Kombination von Löchern von 1,5 mm und 1,65 mm wird die Pogo-Stiftaufnahme fest in die Löcher eingepasst.

Sie sollten dann bearbeiten Sie die RAMBo_middle_plate.scad Datei, speichern Sie sie in eine neue Datei und ändern Sie den Aufruf von RAMBo in einen Aufruf der Name Ihres Boards.

Ich habe die Lochgröße für die mittlere Platte auf 1,65x1,65 mm Löcher eingestellt, die nicht groß genug ist, um die Oberseite der Aufnahmen zu halten, aber es war genug, um einen Bohrer zu fahren, und ein 5/64 "Bohrer macht es die perfekte Größe Sie können es möglicherweise ändern, um 1,95 oder 2,0 mm Löcher zu verwenden und sehen, ob die Buchse passt, ist das, was die Datei calibration_test.scad ist für verschiedene Größen zu testen (die Genauigkeit und Kalibrierung der einzelnen Drucker ist anders, so dass es erforderlich sein könnte Um diese Kalibrierung zuerst trotzdem zu tun).

Sobald Sie fertig sind, sollten Sie die RAMBo_top_plate.scad zu Ihrem Board passen. Diese Datei tut ein paar Dinge, zuerst wird es eine Karte mit allem, was deaktiviert (jetzt wäre die Zeit zu deaktivieren Bodenlöcher und ermöglichen Top-Löcher für Testpunkte) zu drucken, fügt es ein Loch für den Kondensator und der Sicherungshalter, die herausragen Der RAMBo, müssen Sie diese zu entfernen und fügen Sie verschiedene Löcher irgendwo für Ihr Board, wenn es auch große Kondensatoren hat. Es fügt größere Löcher für die M3 Gewindestangen, weil die obere Platte wird eingefügt und entfernt werden oft, so dass größere Löcher hier erforderlich sind. Wenn Sie pogo Stifte auf dem oberen Brett aber verwenden, mögen Sie die M3 Löcher die gleiche Größe halten, wie sie sein sollten, aber es ist etwas härter, es durch die Gewindestangen zu schieben. Es fügt auch Abstandshalter hinzu, die auf die Platte heruntergedrückt werden, und einen Vorsprung für das Klemmsystem. Es wird M3 Löcher für die Klammern und eine Mutter Loch hinzufügen, oder wenn Sie die Verwendung von Heatset Einsätze für die Klemme (aktiviert standardmäßig in configuration.scad), wird es nur hinzufügen, Löcher für die M3 Heatset-Insert.

Sobald Sie mit allen Modifikationen für Ihr Board fertig sind, generieren Sie die STL-Datei aus dem scad und drucken Sie diese Teile als gut.

Schritt 4: Vorbereiten der 3D-bedruckten Teile

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Der nächste Schritt besteht darin, die 3D-bedruckten Teile für die Verwendung mit der Prüfvorrichtung vorzubereiten. Die obere Platte zum Beispiel müssen Wärmeeinsetzeinsätze darin installiert haben. Gleiches gilt für die Motorhalterung und die Opto-Endanschlaghalterung. Wenn Sie keine Hitzesatz-Einsätze verwenden möchten, können Sie sie in der Datei configuration.scad deaktivieren und die STL regenerieren, dann können Sie Schrauben und Muttern verwenden, um alle Komponenten zu sichern.

Das mittlere Brett muss auch vorbereitet werden, indem es mit einem 5/64 "Bohrgerät darin bohrt. Ich denke wirklich, dass die Lochgröße im scad zu 2.0 Millimeter vor Druck geändert werden sollte, aber ich habe es nicht persönlich geprüft Hängt hauptsächlich davon ab, wie gut Ihre X / Y / E Schritte Kalibrierung Ihres Druckers ist.

Beachten Sie, dass im Gegensatz zu dem, was das obige Video sagt, sollten Sie nicht bohren die untere Platte, wie das Design geändert hat und die untere Platte hat zwei Größen für das Loch je nach Schicht Höhe, ist es besser, Pinzette verwenden, um sicherzustellen, dass das untere Loch Ist groß genug, um die Pogo-Pin passen.

Schritt 5: Bohren Sie die Holzplatte

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Der nächste Schritt wird sein, das Holz für unsere 3d gedruckten Stücke zu bohren. Das Video oben zeigt eine Zusammenfassung meines ersten Entwurfs, aber es hat sich seitdem erheblich geändert.

Das erste Bild zeigt das fertige Redesign und Sie werden einige Unterschiede feststellen. Hier sind die Unterschiede zu beachten, wenn Sie die Bohrungen:

  1. Der Regler sitzt unter dem Prüfstand
  2. Es gibt 5 Fuß anstelle von 4, mit einem Recht in der Mitte der Platte
  3. Die Motoren sind nun nach innen gerichtet
  4. Die Motoren sind jetzt auf jeder Seite der Platte, anstatt in einer 'L' Formation
  5. Es gibt Löcher unterhalb des Endanschlags und direkt unterhalb der Mitte der Motorhalterung für Verdrahtung unterhalb der Platte
  6. Es gibt Löcher auf einer Seite des Jig-Turms für die Endstopp / Motorleitungen zu durchlaufen

Zuerst sind der Steuerpult und der Prüfvorrichtungturm an der gleichen Stelle, also müssen Sie nicht Platz für zwei Bretter in der Platte machen und es bildet es sauberer und weniger eines Durcheinanders mit Drähten.

Nachdem die Motoren auf das Zentrum ausgerichtet sind, ist es leichter, die Prüfspitze zu transportieren, da sie robuster ist, sie hilft auch bei der Verdrahtung der Endanschläge. Wie Sie sehen können, sehen die Motor- und Endanschlagverdrahtung unterhalb der Platte, um uns einen saubereren Blick zu geben.

Ich würde vorschlagen, die Bohrung des Bereiches für das Proto Board bis zum Ende zu lassen, nachdem alles auf den Teller gelegt wurde.

Schritt 6: Vorbereiten der Proto Board

Das Proto Board enthält alles, was Sie brauchen könnten und wird die Spannungsteiler für die Prüfung der Stromschienen Spannungen haben. Im Falle Ihres eigenen Board, müssen Sie herausfinden, was drin gehen muss, aber im Falle unserer RAMBo-Test-Jig, hier ist, was wir tun:

Ein Spannungsteiler für das Wärmebett, Heizung und 5V-Stromversorgungsschienen ein 4.7KOhm und einen 47KOhm Widerstand verwenden, so werden wir Lot eine 3x1 Stiftleiste, dann drei 4.7KOhm Widerstände, eine andere 3x1 Stiftleiste, drei 47KOhm Widerstände dann haben andere 3x1 männlichen Header, wie Sie in dem Video oben sehen können.

Für die Thermistor-Messungen verwenden wir vier 100KOhm-Widerstände und verbinden sie zwischen den Stiften der Thermistoren. Daher verwenden wir einen 4x1-Stecker, vier 100KOhm-Resistoren und einen weiteren 4x1-Stecker.

Im neuen Test Jig-Design habe ich auch auf der Proto-Platine ein USB-Kabel mit männlichen Headern gelötet, so dass ich den USB direkt an die Platine anschließen konnte durch den Test ig.

Schritt 7: Montage der Prüfvorrichtung

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Der nächste Schritt besteht darin, den Testturm zu montieren, indem man die Gewindestangen in die Montagelöcher unserer Leiterplatten mit dem dazwischen liegenden Leiterplattenabstandhalter einführt. Vergewissern Sie sich, dass die Karten korrekt ausgerichtet sind, mit der Oberseite nach oben und ausgerichtet. Dann sichern Sie mit Nüssen, um sicherzustellen, dass es eng ist.

Anschließend stecken Sie die Pogo-Steckdose in die Löcher, bis alle Steckdosen eingesteckt sind und die gleiche Höhe haben, wie sie ausgerichtet werden müssen.

Beachten Sie, dass in dem Video, zeige ich eine leere Platine am unteren Rand der Baugruppe, aber die neue bottom_board-Design wird ein größeres und ein kleineres Loch, dass die Steckdosen in Platz halten, ohne die Notwendigkeit für eine Leiterplatte. Dies ist vor allem nützlich, wenn Sie auf kleine Vias oder Testpunkte stecken wollen und der Pogo Pin nicht in die blanke Platine passen (im Falle des RAMBo sind die Vias für die Stepper VRef in der Tat zu klein, so dass es wouldn ' T passen eine Pogo-Pin, deswegen musste ich die Platine von dort entfernen).

Sobald alle Steckdosen eingesteckt sind, stecken Sie die Pogo-Pins in diese ein. Beachten Sie, dass, wenn Sie an einem gelöteten Stift stoßen müssen, verwenden Sie die flachen Kopf pogo Stifte, wenn Sie an einem nicht gelöteten Stift oder einem kleinen Durchgang stoßen müssen, verwenden Sie die pogo Stifte mit einem spitzen Kopf.

Sobald Sie fertig sind, legen Sie den Prüfling auf die Baugruppe und achten Sie darauf, dass alle Pogo-Pins korrekt ausgerichtet sind und die Platine berühren.

Sie können dann mit Epoxidkleber, um sicherzustellen, dass die Pogo-Stifte an Ort und Stelle gesichert sind und nicht aus der Baugruppe fallen. Verwenden Sie Epoxidkleber auf der Oberseite des unteren Brettes, nicht auf dem mittleren Brett, da, sobald trocken, der Epoxidkleber ganz sicher die Pogo Stifte vom Bewegen verhindern und Sie würde nicht wollen, es auf der Unterseite zu tun, wie sie gutes verhindern kann Kontakt mit den Drähten später.

Schritt 8: Einbau der Motoren

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Der Rest ist hier die Motoren. In unserem Fall mit dem RAMBo, wollen wir die Schrittmotor-Treiber zu testen, so müssen wir es mit einer Kodierung Flagge auf Motoren und einem optischen Endanschlag zu testen.

Wir müssen nur die Motoren auf der Holzplatte mit dem Motor montieren. Schrauben Sie den Opto-Halter auf den Motor und montieren Sie den optischen Anschlag. Anschließend stecken Sie das simple_encoder Flag in die Motorwelle und halten es mit einer M3-Gewindestange oder einer M3x5-Schraube fest.

Wir führen die Drähte in die Löcher in der Holzplatte und nehmen sie von der Seite des Jig-Turms ab, an der sich die Motoren anschließen.

Sie sehen, wie die Verdrahtung unterhalb der Holzplatte im Bild oben aussieht.

Schritt 9: Vorbereiten der Steuerung

Abhängig von Ihrer Wahl der Controller, müssen Sie einige Vorbereitung zu tun. Wenn Sie mit einem arduino, beaglebone oder andere Art von Controller mit direkten GPIO, dann müssen Sie wahrscheinlich nicht alles tun. Wenn Sie jedoch Ihre eigenen Board als Controller, wie ist unser Fall hier mit dem RAMBo, dann müssen Sie möglicherweise einige Vorbereitung zu tun.

Wir werden die T0, T1, T2 und T3 I / O für analoge Eingänge auf dem Controller verwenden, aber diese sind durch Widerstände und Kondensatoren an der Schaltungsplatine beschädigt, so dass wir diese entlöten müssen, um sicherzustellen, dass der angegebene analoge Wert genau das ist Wert wollen wir es sein.

Wir müssen auch die Analog-Ext-Erweiterungskarte verwenden, damit wir einen Header an sie löten.

Sie erhalten dann den Upload müssen Testen Firmware auf Ihrem Controller. Stellen Sie sicher, dass Sie die Hex-Datei der kompilierten Test-Jig-Firmware behalten, da Sie sie auch zum Testen der DUT-Geräte benötigen.

Schritt 10: Anschließen der Drähte

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Möglicherweise ist hier die schwierigste Aufgabe, jedes Kabel korrekt anzuschließen, ohne irgendwelche Verwirrung zu erzeugen.

Eine große Hilfe ist der Quellcode der RAMBo-Uploader-Software, die für andere Boards leicht anpassbar ist und eine Pin-Mapping-Klasse zur Verfügung stellt:

  <P> Klasse RAMBoPinMapping (TestPinMapping): <br> "" Die Pin-Zuordnungen für die verschiedenen RAMBo-Funktionen "</ p> <p> # [X-min, Y-min, Z-min, X-max , Y-max, Z-max] EndstopTargetPins = [12, 11, 10, 24, 23, 30] # [EXT2-10, EXT2-12, EXT2-14, EXT2-16, EXT2-18, EXT2-20] EndstopControllerPins = [83, 82, 81, 80, 79, 78] EndstopNames = [ "X-Min", "Y-Min", "Z-Min", "X-Max", "Y-Max", "Z -Max "] </ p> <p> # [Bett, Fan2, Fan1, Heat1, Fan0, Heat0] MosfetTargetPins = [3, 2, 6, 7, 8, 9] # [MX1-5, MX1-4, MX2-5, MX2-4, MX3-5, MX3-4] MosfetControllerPins = [44, 32, 45, 31, 46, 30] MosfetNames = [ "Heat-Bed", "Fan-2", "Fan-1 "," Heat-1 "," Fan-0 "," Heat-0 "] </ p> <p> Für die Trigger- / Monitorstifte des Steppers verwenden wir vorhandene MOSFET-Verbindungen # Die Opto-Endstops der Stepper werden jedoch überwacht die Firmware # Bits [2..6] von Arduino PORTJ verwendet, die ist: # [EXT2-9, EXT2-11, EXT2-15, EXT2-17, EXT2-19] StepperTriggerPin = MosfetTargetPins [0] # = 3 = Bed StepperMonitorPin = MosfetControllerPins [0] # = 44 = MX1-5 </ p> <p> # [Analog-EXT-8, Analog-EXT-6, Analog-EXT-5, Analog-EXT-4, Analog-EXT- 3] VRefPins = [8, 6, 5, 4, 3] AchsNamen = [ "X", "Y", "Z", "E0", "E1"] [T & sub0 ;, T & sub1; , T2, T3] ThermistorPins = [0, 1, 2, 7];  ThermistorNames = [ "T0", "T1", "T2", "T3"] </ p> <p> # [T3, T2, T0] PowerRailPins = [7, 2, 0] </ p> <p> PowerRailNames = [ "Extruder Schiene", "Bettgitter", "5V-Schiene"] </ p> <p> # [I2C_SDA, I2C_SCL] I2CTargetPins = [20, 21] </ p> <p> I2CControllerPins = [20, 21] </ p> <p> # [SPI_SCK, SPI_SS, SPI_MISO, SPI_MOSI] SPITargetPins = [52, 53, 50, 51] SPIControllerPins = [52, 53, 50, 51] </ p> <p> # Bed Steuerung PowerPin = 3 </ p>

Sie können einfach die Pins vom Ziel (der DUT) an den Controller, um alles zu verbinden. Es gibt ein paar Dinge zu beachten, wenn:

  • Die Motoren werden über die Pogo-Pins direkt mit dem Prüfling verbunden
  • Die Opto-Endstopps müssen die VCC- und GND-Pins mit den vorhandenen Pins des Controllers verbinden
  • Der Ground von der Stromversorgung muss sowohl mit dem Controller als auch mit dem Target verbunden sein (sowohl Target als auch Controller müssen die Erde teilen)
  • Die Thermistoren vom Target verbinden sich mit der Proto-Platine zwischen den Pins der 100KOhm-Widerstände
  • Die Stromschienenstifte beziehen sich tatsächlich auf die Leistung nach dem Durchlaufen des Spannungsteilers auf der Proto-Platine (sonst wird der Controller gebraten).
  • Das Netzteil muss ein ATX-Netzteil sein und sein PS-ON-Draht (der grüne Draht) muss mit dem PowerPin des Controllers verbunden sein (der Erdungsanschluss auf dem Bett mosfet), so dass der Controller die Stromversorgung ein- und ausschalten kann Erforderlich.

Sobald Sie alles angeschlossen haben, sind Sie bereit für einen Testlauf.

Schritt 11: Alles zusammenbauen

Sobald alles angeschlossen und auf der Holzplatte montiert ist, ist Ihre Prüfspitze bereit.

Ich habe es jedoch sehr nützlich gefunden, die Drähte auf eine Platine mit stapelbaren Arduino-Headern anzuschließen, die Sie dann einfach auf Ihren Controller stecken können.

Werfen Sie einen Blick auf das Video oben, dass eine Übersicht über die Test-Jig für RAMBo 1.3L und wie man alles bei der Verwendung der blanken Leiterplatten.

Schritt 12: Testen Sie Ihr Board

Sobald Sie alles verbinden, ist alles, was bleibt, um Ihr Board zu testen. Sie werden die brauchen Rambo-Uploader Software von meinem GitHub - Repository (stellen Sie sicher , dass Sie die 'v2' Zweig Kasse).

Das RAMBoTest.py Skript ist die wichtigste ausführbare Datei für ein Board Rambo zu testen.

Sie können den Tester mit:

  Sudo ./RAMBoTester.py <br>

Sie können auch spezifische Tests als Argumente ausführen, zum Beispiel:

  Sudo ./RAMBoTester.py "Motoren 1/16 Schritt" "Versorgungsspannungen" "Mosfets Low"

Wenn Sie einen Test deaktivieren müssen, können Sie es programmgesteuert in RAMBoTester.py durch Bearbeiten der Datei und Hinzufügen einer Zeile ähnlich wie:

  R.GetTest ( "Programm-Hersteller-Firmware") enabled = False

Es gibt auch viele Konfigurationsoptionen, mit denen Sie in der config / configuration.py-Datei spielen können.

Schritt 13: Tester-Software

Wie man eine benutzerdefinierte "Bett von Nägeln" Tester für Ihre 3D-Drucker-Elektronik zu bauen

Wenn Sie jedoch keine Rambo Karte verwenden, müssen Sie die Anpassung Software auf dem Board. Die Software wurde vor kurzem von Grund auf neu geschrieben, um einen einfachen Port in andere Boards zu ermöglichen. Grundlegendes Verständnis der Python-Programmierung ist jedoch erforderlich.

Das neue Design ermöglicht einen modulareren Ansatz, bei dem jeder Test durch ein einzigartiges Objekt repräsentiert wird und jeder Testtyp in seiner eigenen Klasse implementiert ist. Einige Basisklassen stehen zur Verfügung, um die grundlegende Funktionalität der Testfälle, des Logging-Mechanismus und der Testlogik zu bewältigen.

Die Tests / Module enthalten Basisklassen und Testmodule. Die Basisklassen sind:

  • TestCase: Dies ist die Basisklasse für einen Testfall, der implementiert wurde, um eine bestimmte Funktion zu testen
  • TestContext: Dies ist die Basisklasse für den Kontext, der den Tests während der Ausführung zugewiesen wird
  • TestRunner: Dies ist die Basisklasse der Runner-Klasse, die jeden Test in der Test-Suite ausführt.

Es gibt ein paar allgemeine Tests, wie die TestGPIO in gpio.py und TestAnalog analog.py , die sich spezifischer Testklassen haben , die von ihnen ableiten, wie TestMosfets und TestEndstops , die aus TestGPIO ableiten und TestThermistors, TestVRefs und TestSupplyRails , die aus TestAnalog ableiten . Es gibt auch einige spezifische Tests wie der ProgramFirmware , die ein Test - Wrapper für avrdude und TestMotors , die Schrittmotoren testen und überprüfen sie richtig funktionieren.

Um einen neuen Test zu implementieren, müssen Sie aus der Testcase - Klasse abgeleitet sind , und überschreiben Sie die _test und _verify Methoden. Die _test Methode muss , um den Test auszuführen , mit was auch immer im Kontext - Objekt verfügbar ist (dazu später mehr) , während die _verify Methode auf einen Wert in der ENUM - Teststatus der 'self.status' gesetzt werden muss.

Das Kontextobjekt , das auf die _test und _verify Methoden übergeben wird ist ein Objekt , das von Testcontext leitet, sein Zweck ist , um Informationen zwischen den Tests zu bestehen, die von den Testfällen verwendet werden kann. Beispielsweise die Schnittstelle die DUT zuzugreifen , ist in context.target zur Verfügung , während der Regler als context.controller verfügbar ist. Außerdem werden die meisten Tests erfordern den Zugriff auf bestimmte Felder aus dem Objekt context.pinmapping.

Sie müssen eine Klasse von Testcontext , um die erforderlichen Informationen zu den Testfällen, abzuleiten. Die meisten speziell, in der abgeleiteten Klasse, müssen Sie ein self.pinmapping Objekt instanziiert. Wenn Sie die Stromversorgung vor und nach einem Testlauf zum Beispiel an die Macht brauchen ein / aus, können Sie es tun durch Überschreiben der TestingStarted und TestingEnded Methoden.

Schließlich müssten Sie eine neue Klasse für das Board zu implementieren , die von Testrunner ableitet. Dieses ist einfach, müssen Sie einfach eine self.tests Variable eine Liste von Testcase Objekte zu definieren , enthält und das Rück den Kontext Sie über das Kontext Eigenschaft erstellt.

Sie können dann Ihre Testrunner - Objekt erstellen und die Run - Methode aufrufen , um alle Tests laufen, oder Sie können eine Liste von spezifischen Tests geben zu laufen , wenn Sie es wünschen.

Es gibt viel mehr, was über die Software gesagt werden kann, wie tödliche, erforderliche, _finally Testfälle, oder wie das Protokollierungssystem zu konfigurieren, um eine Datenbank zu verwenden, oder wie die Zusammenfassung der Testausführung zu erhalten, oder um bestimmte deaktivieren Tests, was jeder Test Status bedeutet, etc .. Allerdings ist der Quellcode ziemlich einfach und gut dokumentiert und Sie können eine Menge Dinge, indem Sie den Code zu entdecken.

Ich verlasse Sie mit einem Mockup einer potenziellen GUI für die Testsoftware, in der die GUI dynamisch aus jeder TestRunner-Instanz generiert werden kann und die Kontrolle der einzelnen Tests für den Benutzer.

Schritt 14: Schlussfolgerung

Es gibt so viele Elektronik-Optionen für 3D-Drucker in diesen Tagen und für jeden, viele weitere Klone. Leider ist die Mehrheit der Elektronik Menschen kaufen sind kaum getestet und wird oft brechen leicht aufgrund fehlender QA. Hoffentlich wird dieses Projekt es Elektronikherstellern, Wiederverkäufern oder Druckerherstellern erleichtern, ihre Elektronik vor dem Versand an den Kunden zu testen und so die Zuverlässigkeit ihrer Boards, den Ruf ihrer Marke und die Zufriedenheit ihrer Kunden zu verbessern.

Das Testen einer Karte dauert etwa 50 Sekunden, wovon mehr als 40 Sekunden zum Hochladen der Firmware und zum Überprüfen des Uploads erforderlich sind. Es dauert nur wenige Sekunden, um Boards zu wechseln, also ist dies eine sehr schnelle und nützliche Methode, besonders wenn der Hersteller bereits eine eigene Firmware auf das Board hochladen muss, fügen Sie 30 Sekunden pro Board und Sie sicherstellen, dass es keine Defekte gibt Verursachen dem Kunden etwas Frustration und Sie vermeiden Rückkehr.

Insgesamt habe ich in der Nähe von 2 Monaten arbeitete an der Gestaltung dieser Maschine sowie Software-Entwicklung. Es gab viele Iterationen und viele Fehlversuche. Ich hoffe, dass die breitere Gemeinschaft von meinen Anstrengungen profitieren und das Gründungsprinzip der Open Source nutzen kann, um das Rad neu zu erfinden und die Arbeit von anderen wiederzuverwenden und zu verbessern.

Related Reading