Inhoudsopgave:
- Benodigdheden
- Stap 1: Maak het ontwerp in InkScape
- Stap 2: Importeer de.dxf in EasyEDA om de aangepaste vorm te maken
- Stap 3: Plan de componenten die u gaat gebruiken, inclusief SMD-assemblage
- Stap 4: Bouw het schema, maak het Arduino programmeerbaar
- Stap 5: voeg deze componenten toe aan de PCB met "Update PCB"
- Stap 6: Leid de componenten op de printplaat
- Stap 7: voeg meer componenten toe totdat het ontwerp voltooid is, roteer indien nodig
- Stap 8: Bestel de PCB en voeg optioneel SMD-build toe
- Stap 9: Maak een prototype van de software (.ino-bestand bijgevoegd)
- Stap 10: Un-box en bewonder uw nieuwe PCB's! Optioneel - Extra onderdelen solderen
- Stap 11: Programmeer het bord met een ArduinoISP-programmeur
- Stap 12: Geniet van uw project
Video: Leer hoe u een op maat gemaakte PCB ontwerpt met EasyEDA Online Tools - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:15
Ik heb altijd al een aangepaste PCB willen ontwerpen, en met online tools en goedkope PCB-prototyping is het nog nooit zo eenvoudig geweest als nu! Het is zelfs mogelijk om de componenten voor opbouwmontage goedkoop en eenvoudig in een klein volume te monteren om de moeilijke soldeertaak te besparen! Ik heb 10x PCB's met montage besteld voor minder dan US $ 50. Hoewel PCB's een belangrijke functie vervullen, is de lay-out van de componenten een belangrijk onderdeel van hoe het eruit ziet. Ik heb de componenten op het bord gedraaid om uit te lijnen met de punten van de ster.
Dit instructable leert je:
- Hoe de aangepaste PCB-vorm te tekenen in InkScape (gratis, open source grafische tool)
- Hoe EasyEDA circuit & PCB-ontwerptools te gebruiken (gratis en online, geen installatie vereist!)
- Hoe de SVG in EasyEDA te importeren voor aangepaste PCB-vorm en zeefdruk?
- Hoe een eenvoudig 'Arduino' programmeerbaar MCU-ontwerp te ontwerpen?
- Hoe JLCPCB-oppervlaktemontage te gebruiken om de planken gemaakt en geassembleerd te krijgen?
Kenmerken van "The Star"
- Aangepaste 5-punts stervormige PCB
- Geanimeerde verlichting - 10x LED's per zijde, dubbelzijdig
- Arduino programmeerbare ATMEGA328P microctroller
- 2x knoppen voor interactiviteit - je zou een eenvoudig spel kunnen maken
- micro-USB-voeding (optie)
- Netwerk meerdere sterren voor grotere animaties (optie) met seriële communicatie
BIJGEWERKT 02APR2020 na ontvangst van de borden.
Benodigdheden
Zie BOM-bestand (Bill of Materials) en schematische PDF bijgevoegd.
Zie volledig schema bijgevoegd.
Hier is een link naar het EasyEDA-project van een latere stap -
Stap 1: Maak het ontwerp in InkScape
Laten we eerst de vorm van de PCB en eventuele zeefdrukkunst ontwerpen om op de PCB te gaan.
- Download en installeer inkscape
- Een nieuw document maken
- Gebruik het rechthoekgereedschap om een rechthoek van 100x100 mm te maken. JLCPCB biedt goedkopere PCB's onder deze maat.
- Gebruik het polygoongereedschap om een stervorm te maken die binnen de rechthoek past
-
Voeg andere details toe, bijv. kleine sterafbeeldingen binnen de omtrek, waar ik de LED's zal plaatsen
- Begin met het toevoegen van de vormen voor één punt van de ster, b.v. de top
- Voeg een afgeronde hoek toe (voor de veiligheid!) met een beziercurve
- Selecteer alle vormen op dit punt en groepeer ze samen
-
We kunnen deze groep dan kopiëren en roteren naar de andere punten van de ster
"Bewerken -> Kloon -> Maak betegelde klonen"
-
Als je de hoeken hebt afgerond, moeten we de punten verwijderen die niet langer nodig zijn
- Om dit te doen, heb ik handmatig de rechte lijnen getekend die de bochten verbinden
- Verwijder vervolgens de originele ster
Bewaar 2 versies van deze afbeelding
- A: zeefdruk - Compleet beeld met alle details die gebruikt zullen worden voor de zeefdruk
- B: bordomtrek - zoals hierboven, maar verwijder alle details in het midden en laat alleen de omtrek over. Dit bepaalt de vorm van de printplaat.
Sla. DXF-versies van beide bestanden op
- bestand -> Opslaan als ->.dxf
- Gebruik de standaarden
Voorbeeld inkscape.svg- en.dxf-bestanden bijgevoegd.
Stap 2: Importeer de.dxf in EasyEDA om de aangepaste vorm te maken
Deze stap maakt een nieuw project op de EasyEDA online tool en importeert de.dxf om de vorm van de PCB en zeefdruk in te stellen. EasyEDA is een gratis online schema- en PCB-editor. Ik koos dit omdat het gemakkelijker was dan het downloaden en installeren van een van de vele beschikbare tools. Het lijkt geweldig voor mijn behoeften en integreert goed met JLCPCB voor PCB-prototypes en LCSC-onderdelen.
Project en PCB maken
- Ga naar https://easyeda.com/ en maak een gratis account aan.
-
Maak een nieuw project in uw werkruimte
Bestand sla het schema op
-
Klik met de rechtermuisknop op de projectnaam en "Nieuwe PCB"
- OK de standaardinstellingen (100x100mm)
- Opmerking - we kunnen later terugkomen en het schema bewerken en componenten toevoegen
-
Importeer het bordoverzicht
- Bestand -> DXF importeren
- Selecteer het.dxf-bordoverzichtsbestand van inkscape
- Controleer of Layer is ingesteld op 'BoardOutLine'
- Klik op 'Importeren'
- Plaats het binnen de bestaande rechthoek van 100x100
- Verwijder de rechthoek, de nieuwe stervorm is de BoardOutLine
- Controleer of het op de roze BoardOutLine-laag staat, zo niet, selecteer het en verander de laag in het paneel rechtsboven
-
Importeer de zeefdrukafbeelding
- Bestand -> DXF importeren
- Selecteer het.dxf-zeefdrukbestand van inkscape
- Controleer of Laag is ingesteld op 'TopSilkLayer'
- Klik op 'Importeren'
- Plaats het bovenop de omtrek van het bord (zoom in met muiswiel voor nauwkeurigheid)
-
Controleer de resultaten door een voorbeeld van het 3D-voorbeeld te bekijken
Klik op het 'camera' icoon en '3d view'
Volgende stap - componenten toevoegen:)
Stap 3: Plan de componenten die u gaat gebruiken, inclusief SMD-assemblage
Nu we een aangepaste vorm hebben, kunnen we componenten gaan toevoegen.
U kunt componenten gewoon rechtstreeks in de PCB-editor plaatsen, maar het is beter om ze in de schematische weergave toe te voegen en vervolgens op 'Update PCB' te klikken om ze aan de PCB toe te voegen.
Opmerking - om te profiteren van de PCB-assemblagediensten die worden aangeboden door JLCPCB (https://jlcpcb.com/smt-assembly), is het belangrijk om componenten te gebruiken uit een specifieke lijst die ze hebben.
-
Download de XLS onderdelenlijst
- Momenteel -
- Die is gekoppeld vanaf:
Onderdelen keuze:
-
baseren
De goedkoopste optie is om onderdelen uit hun 'basis'-lijst te gebruiken, aangezien deze al op hun pick-and-place-machines zijn geladen
-
verlengen
Er zijn extra 'uitgebreide' onderdelen, maar er zijn extra kosten voor elk onderdeel. bijv. de LED's en ATMEG328P die ik in dit project gebruik, zijn beide uitgebreid, maar alle discrete weerstanden, condensatoren en de keramische resonator zijn standaardonderdelen
-
andere - later handmatig aan het bord toegevoegd
Ik heb ervoor gekozen om de USB-connector, drukknoppen en programmeerkop handmatig toe te voegen
De bijgevoegde afbeelding is een screenshot van de subset van onderdelen die ik in het project heb gebruikt. Ik heb een kolom "MyProject" toegevoegd om me te helpen filteren op de componenten waar ik om geef. Ik koos voornamelijk 0805-voetafdrukken om het solderen gemakkelijker te maken. De kristal/keramische resonator kan moeilijk met de hand te solderen zijn.
Het LCSC-onderdeelnummer, b.v. C14877, kan direct in de schema- (en PCB-)editor worden gebruikt.
Samenvatting van stuklijst
- C84258. - koele witte LED, zeer helder (zelfs met 2x LED's die een 150R-weerstand delen op 5v) en mooie diffuser gebouwd
- C7171 - 10uF ontkoppelingskap x2
- C17444 - 12K weerstand voor RESET pin pull-up x1
- C17471 - 150R weerstand in serie met LED's x10
- C21120 - 220nF ontkoppelingskap x2
- C13738 - 16MHz keramische resonator met geïntegreerde kappen
- C14877 - ATMEGA328P MCU
Stap 4: Bouw het schema, maak het Arduino programmeerbaar
De kern van dit ontwerp is een ATMEGA328P die wordt gebruikt in veel Arduino's, waaronder Uno, Nano en Pro Mini. Dit betekent dat het mogelijk is om de Arduino IDE te gebruiken voor het schrijven van de code en het programmeren van het bord.
Ik heb dit bord ontworpen om een minimaal aantal componenten te gebruiken om de kosten te verlagen en het bord eenvoudig te houden, maar toch te laten programmeren via de ISP 'In System Programming'-header alsof het een Arduino Nano is.
Begrijp de pinout
Zie het pinout-diagram bijgevoegd van https://github.com/MCUdude/MiniCore om te zien hoe de fysieke pinnen van de MCU worden toegewezen aan arduino-pinnamen. bijv. fysieke MCU-pin 1, (linksboven) is ook Arduino-pin 3 (met het label D3 op een nano), bestuurd door PD3 in de MCU. Vanuit het oogpunt van arduino IDE hoef je alleen de arduino-pin '3' te kennen.
Minimale componenten om een nano na te bootsen:
- De ATMEGA328P
- Ontkoppelcondensatoren om de voeding soepel te laten verlopen
-
ISP 'In systeemprogrammering'-header in plaats van USB-programmering
- 6-pins header die kan worden geprogrammeerd vanaf een andere Arduino met ISP-programmeurafbeelding
- Opmerking - USB/serieel programmeren is niet mogelijk zonder een USB-naar-serieel-converter
- Zie
-
16MHz keramische resonator
- Dit is vereist als je een Nano nabootst, aangezien dit altijd een externe resonator van 5V en 16MHz is
- Merk op dat de meeste 3- of 4-pins resonatoren niet de afzonderlijke condensatoren nodig hebben die een kristal nodig heeft
Alternatieve, nog minimalere componentenset met MiniCore
Als je het kristal of de resonator niet wilt of hebt, kun je de interne 8MHz-oscillator in de ATMEGA328P gebruiken. Je moet een andere bootloader laden om dit in te schakelen, b.v. de MiniCore-bootloader, zie GitHub voor meer info.
https://github.com/MCUdude/MiniCore
Begin nu met het toevoegen van de componenten:
- Klik met de rechtermuisknop op "plaats onderdeel"
- Voer in het zoekvak het onderdeelnummer uit de spreadsheet / LCSC in, b.v. C14877 voor de ATMEGA328P-AU
- Plaats het op het schema
-
Herhaal dit voor de andere componenten - doppen, weerstanden, LED's
eerst een van elk onderdeel, kopieer en plak ze vervolgens naar wens rond het ontwerp
Stap 5: voeg deze componenten toe aan de PCB met "Update PCB"
Een leuke functie van de online-editor van EasyEDA is de mogelijkheid om wijzigingen aan te brengen in het schema en vervolgens de PCB bij te werken.
- Druk in de schema-editor op bestand opslaan
-
Dan, de "Update PCB" knop in de werkbalk
- Er verschijnt een venster om u te vertellen wat er is gewijzigd
- 'Wijzigingen toepassen'
- De nieuwe componenten worden nu in de rechterbenedenhoek geplaatst
-
Verplaats ze naar waar je ze wilt hebben
- druk op de spatiebalk om 90 graden te draaien
- gebruik het muiswiel om te zoomen
-
Let op de 'rattenlijnen' die laten zien waar de componenten moeten worden aangesloten
gebruik componentrotatie om de bedrading gemakkelijk te maken
- Om componenten aan de onderkant te plaatsen, klikt u op een component en wijzigt u in de rechterbovenhoek TopLayer in Bottom Layer
Stap 6: Leid de componenten op de printplaat
Sluit nu de componenten aan zoals aangegeven door de ratlines
- Gebruik de 'track'-knop in de werkbalk
- Klik op het ene onderdeel en vervolgens op het volgende
- Gebruik via's om verbinding te maken tussen lagen
-
Voeg een grondvlak toe over de hele toplaag om automatisch alle grondpennen te verbinden
- Gebruik de knop 'kopergebied' om een rechthoek te tekenen die het hele bord bedekt. De tool vult automatisch het juiste gebied en maakt standaard verbinding met het GND-net
- Voeg nog een vlak toe op de onderste laag voor VCC
- Open de 3D-weergave om uw voortgang te controleren
Ik heb ervoor gekozen om de routing heel direct en netjes te houden. Ik keek naar de PCB-lay-out om te kiezen welke pin van de MCU op elke LED moest worden aangesloten om de routering te vereenvoudigen en deel uit te maken van het ontwerpproces.
Het is gemakkelijk om terug te schakelen naar de schematische viewer en een netnaam aan de pin toe te voegen, b.v. U1 pin 23 maakt verbinding met net LED4. Plak hetzelfde netlabel op de LED, update de print en leid de baan.
** Hier is een link naar het project op de EasyEDA-website:
easyeda.com/neil.parris/thestar-instructab…
Stap 7: voeg meer componenten toe totdat het ontwerp voltooid is, roteer indien nodig
Blijf LED's, knoppen, enz. toevoegen.
U kunt elk onderdeel op maat roteren, b.v. voor een ster met 5 punten is elk punt 72 graden uit elkaar. Om de juiste hoeken voor de LED's en andere componenten te krijgen, typt u 72 in het rotatievak en drukt u op de spatiebalk om 90 graden per keer te draaien totdat u het resultaat krijgt waarnaar u op zoek bent. Soms heb je andere hoeken nodig die verband houden met 72, b.v. 90 - 72 = 18. Of 2x 18 = 36. Met 18/36/72 en de 90 graden rotaties kun je uitlijnen op alle hoofdassen van de ster.
Zie bijgevoegde PDF van het volledige schema [merk op dat dit een iets ander ontwerp is dan de eerdere schermafbeeldingen, maar dezelfde principes]
Stap 8: Bestel de PCB en voeg optioneel SMD-build toe
Als je het ontwerp hebt voltooid, het hebt bekeken en hebt gecontroleerd of er geen fouten zijn, ga je gang en genereer je de Gerber-bestanden. Het zal u vragen om Design Rule Checks (DRC's) uit te voeren. Controleer of er geen fouten zijn en sla de Gerber-bestanden op voor fabricage, of open JLCPCB rechtstreeks vanuit de editor.
Als u de SMD-productieservices wilt gebruiken, sla dan ook de BOM (stuklijst) en het pick-and-place-bestand op (dit vertelt de machines waar uw componenten moeten worden geplaatst)
Doorloop het bestelproces en controleer de oriëntatie van alle gepolariseerde componenten zoals LED's, condensatoren, resonatoren en de MCU zelf!
Voor 10 geassembleerde kaarten (zonder de USB- en programmeerheader) moest ik ongeveer GBP £ 35 verzenden (ongeveer USD $ 45, afhankelijk van de wisselkoers).
Kijk uit voor update-e-mail en volg je bord en bouw via de JLCPCB-website.
Stap 9: Maak een prototype van de software (.ino-bestand bijgevoegd)
In afwachting van de komst van de borden, is het tijd om de software te gaan schrijven:)
Ik heb een Arduino Nano op een breadboard geplaatst en de LED's op dezelfde plaats aangesloten en dezelfde verbindingen om de PCB na te bootsen. Het zou dan mogelijk moeten zijn om dezelfde software rechtstreeks op de printplaat te laden, zij het met een ISP-programmer Arduino.
De code maakt gebruik van arrays om het programmeren eenvoudiger te maken. Ik heb ook de bibliotheek "FastLED.h" geïmporteerd omdat deze een aantal handige hulpfuncties heeft, zoals sin8()
Hier zijn enkele hoogtepunten:
Deze array wijst de Arduino-pinnen toe aan de LED1 tot 10. LED1 is verbonden met het equivalent van Arduino A2 en LED10 is verbonden met D4
- // maak een array van de fysieke pinnamen die zijn aangesloten op LED1, LED2 etc. op LED10
- const byte ledpins = {A2, A3, A1, A0, 9, 10, 6, 5, 3, 4};
De hoofdlus is een eenvoudige software-PWM-routine die 'pwm_now' vergelijkt met de huidige 'led_brightness'-waarde.
Dit is momenteel testcode om te experimenteren met een paar lichtpatronen.
Stap 10: Un-box en bewonder uw nieuwe PCB's! Optioneel - Extra onderdelen solderen
Geniet van het uitpakken en bewonder je eigen aangepaste PCB:)
Met de SMD-assemblage had ik alle belangrijke componenten aan één kant gesoldeerd om me een werkend apparaat te geven.
Optioneel - soldeer extra componenten:
- Micro-USB-connector voor voeding (niet programmeren)
- Drukknoppen - om het interactief te maken
- LED's op de achterkant - maak het dubbelzijdig!
Stap 11: Programmeer het bord met een ArduinoISP-programmeur
Dit is het leuke. Laden van de Arduino-bootloader en de code op de PCB!
Een paar dagen na het schrijven van dit instructable arriveerden de boards! 10x boards, allemaal fantastisch goed gemaakt, en de componenten netjes gesoldeerd, en allemaal perfect werkend.
Sluit een reserve Arduino aan als ArduinoISP-programmeur
Ik gebruik een Arduino Nano op een klein breadboard bedraad als een ArduioISP-programmeur. Dit betekent dat het verbinding maakt van de IDE via USB naar nano, die vervolgens verbinding maakt met het doelapparaat via de 6-pins programmeerconnector.
De pinout is hetzelfde als een nano IP-connector, eigenlijk alleen MISO/MOSI/RST/SCK/5V/GND
Zie deze link voor meer details:
1 - MISO
2 - +5V
3 - SCK
4 - MOSI
5 - RST => aangestuurd vanaf pin 10 van de Arduino nano
6 - GND
Laad de ArduinoISP-schets in de programmer
- Voorbeelden -> 11. ArduinoISP -> ArduinoISP
- Opmerking - bij het uploaden van deze afbeelding naar de programmeur moet de condensator tussen pinnen RST en GND worden verwijderd. Zet deze terug voordat je de programmer gaat gebruiken.
Upload de bootloaded en code naar het doelbord
-
Sluit de programmer aan op het doel met de 6-pins connector
Je kunt gewoon een 6x pin-header op de printplaat houden zonder te solderen door hem schuin te houden zodat hij goed contact maakt
-
Als je de 16MHz keramische resonator op het bord hebt, en je bent blij om de pinout in kaart te brengen om overeen te komen met de arduino nano, programmeer dan het bord gewoon als een Arduino nano, maar met de volgende instellingen:
- Bord: "Arduino Nano"
- Verwerker: "ATmega328P"
- Programmeur: "Arduino als ISP"
-
Upload de bootloader
Dit stelt de zekeringen in de MCU in om het 16MHz externe kristal of de resonator in te schakelen. Als je dit niet hebt, gebruik dan een alternatieve bootloader, b.v. minicore
-
Upload je code
Belangrijk - omdat we de code met de programmer downloaden, moet je op SHIFT drukken als je op de knop UPLOAD (=>) drukt. Dit verandert de programmering van de normale 'upload' via seriële poort, om in plaats daarvan 'upload met programmer' naar de ISP-pinnen te gebruiken
Als het bovenstaande is gelukt, zou je nu veel knipperende LED's moeten hebben!:
Stap 12: Geniet van uw project
Ik hoop dat je dit instructable nuttig hebt gevonden. Ik heb vele uren met deze tools geëxperimenteerd om interessante PCB's te maken en heb de online tools erg handig gevonden.
Dit specifieke ontwerp is relatief eenvoudig qua circuit, maar interessant qua fysieke lay-out. Het zou ook een goede decoratie zijn voor de feestdagen!
Tweede prijs in de PCB Design Challenge
Aanbevolen:
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime-interface maakt in ARDUINO met PROCESSING !!!!): 5 stappen (met afbeeldingen)
SCARA-robot: leren over voorwaartse en inverse kinematica!!! (Plot Twist Leer hoe u een realtime interface maakt in ARDUINO met PROCESSING !!!!): Een SCARA-robot is een zeer populaire machine in de industriewereld. De naam staat voor zowel Selective Compliant Assembly Robot Arm als Selective Compliant Articulated Robot Arm. Het is in feite een robot met drie vrijheidsgraden, de eerste twee displ
Maak op maat gemaakte in-ear monitors! (DIY IEM): 10 stappen (met afbeeldingen)
Maak op maat gemaakte in-ear monitors! (DIY IEM): Custom In-ear monitors (CIEM), veel gebruikt door muzikanten en artiesten. Deze oortelefoons zijn op maat gemaakt voor het oor van het individu voor superieure isolatie en comfort. Het begon toen ik een paar CIEM's wilde, gewoon om te beseffen dat de kosten voor een goed
Een op maat gemaakte iPad-hoes maken: 4 stappen
Hoe maak je een op maat gemaakte iPad-hoes: Oud en nieuw komen samen en maken iets nog beters. Dit combineert mijn twee van mijn favoriete dingen, strips en hoesjes. Ik was enthousiast om het te maken, en ik ben dol op de materiaalcombinatie van het linnen en papier op deze hoes. Het is niet te moeilijk, gewoon nerd ou
Op maat gemaakte computermonitor: 4 stappen
Op maat gemaakte computermonitor: Heb je je ooit afgevraagd wat je zou gaan doen met die oude, stoffige, maar toch werkende monitor in die donkere hoek van je huis? Welnu, in deze Instructable zal ik je laten zien hoe je die door ziekte getroffen monitor kunt veranderen in een coole, hippe monitor die klaar is om te worden gepu
Gemakkelijk op maat gemaakte batterijhouders: 3 stappen
Gemakkelijke aangepaste batterijhouders: ik had een goede manier nodig om acht "D"-celbatterijen te bewaren voor een project waaraan ik werkte, maar ik had niets geschikts. Ik wilde niet opraken en houders kopen (hoewel dat de juiste manier zou zijn om het te doen) en ze gewoon aan elkaar plakken was niet goed