Lav en enhed / funktion til salgsautomater: 7 trin (med billeder)

Lav en enhed / funktion til salgsautomater: 7 trin (med billeder)

Indholdsfortegnelse:

Anonim

Vil du tilføje en funktion til en salgsautomat? Måske er der en på din lokale makerspace, måske den i mancellen, eller måske vil du bare lave en funktion for automater verden over. Hvis du har lyst til at lave en ny funktion til automater, læs videre!

Fra projekter, der er så store som at sætte en truende AI Chatbot med ansvar for maskinen, til ting så små og enkle som en Free-Vend-knap på din telefon, har en af ​​disse funktioner det samme behov for at kommunikere med automaten. Nemmere sagt end gjort! Hvad jeg vil vise dig, er hvordan man laver en "blank" enhed, der kan forbinde automater og wifi / bluetooth. Tænk på det som en tom check, strømmen er der, du får det til at gøre det, du vil have det til at være!

forsyninger:

Trin 1: Hvad er MDB?

Hvis du laver en enhed, der snakker til automater, skal du tale deres sprog. Det sprog er 'MDB'. Det fulde navn er "MDB / ICP", som står for "Multi Drop Bus / Internal Communication Protocol".

Dette er den mest anvendte standard for kommunikation mellem enheder i en salgsautomat, i hvert fald i USA. Vedligeholdt og ejet af NAMA (National Automatic Merchandising Association) og EVA (European Vending Association), den blev udviklet tilbage i begyndelsen af ​​90'erne og har standardiseret måden salgsautomater kommunikerer på, så dele til automater (billacceptorer, møntskiftere osv..) at arbejde i enhver vending af enhver mærke / model så længe den maskine, der understøtter standarden.

Der er mange maskiner, der stadig bruger den ældre teknologi og ikke har opgraderet endnu, så vær sikker på, at maskinerne, som din enhed er beregnet til, har MDB-funktioner. Ud over at tjekke manualen til din specifikke maskine, er det let at indikere, at din maskine har MDB-kapacitet, at der er ledningsnet til en 2x3 Molex Minifit Jr-stik. Jeg har medtaget et billede af en kvindelig MDB-stik (den er kønnet af metalkontakterne).

Hvordan virker det?

Nu er det meningen at se "MDB Explained" videoen. Jeg føler mig lidt dårlig ved at bruge denne fyrs video til at fremme alternativer til sine produkter (han virker så venlig og ophidset), så hvis du har penge, overveje at købe sin MDB til USB-produkter eller ansætte ham til at designe dig et brugerdefineret produkt i stedet for gør det selv.

Én bemærkning, jeg vil tilføje, er udtrykket "Multidrop Bus" også et teknisk (non-vending) udtryk, så hvis man gør internet-søgninger efter MDB, er det bedst at bruge det fulde navn "MDB / ICP" og / eller måske tilføj ordet "vending" derinde.

De to andre videoer af hans du kan tjekke ud, hvis du kan lide, men jeg føler det er meget kortere at forklare i ord:

  • MDB har en master & slave konfiguration, hvor VMC er mesteren, og alle periferiudstyr er slaverne.

  • Det VMC / Master, initierer og slutter al kommunikation og periodisk afstemninger (kontrol af) eksterne enheder / slaver.

  • Den Perifere / Slave, lytter til al kommunikation fra VMC, og venter på en kommando, der skal adresseres til den, før du siger noget til VMC / Master.

  • På denne måde taler kun en perifer til VMC på ethvert tidspunkt, hvilket er nødvendigt i en Multidrop-konfiguration (teknisk term).

Hvilke perifere muligheder er der?

MDB-standarden tillader i øjeblikket disse enheder:

  • Coin Changers (Tager ændringer og giver ændring)
  • Bill Acceptors (Tar regninger, og nyere modeller kan give regninger)
  • Cashless Betalingsenheder (Accepterer digitale betalingsformer)
    • Kan bruges af andre grunde, som f.eks. Adgang til maskinens display og tastatur, få salgsopdateringer eller overføre filer. Hvis du laver en tilfældig funktion, skal du have standard på at have det som denne slags perifer på grund af den strøm, den har over maskinen.
  • Kommunikation Gateways (For eksterne datakommunikationsenheder er DEX den dominerende revisionsstandard)
  • Universal Satellite Devices (Kort sagt, en salgsautomat / add-on, der har brug for værtsmaskinen til betaling accept)
  • Coin Hoppers (Bulk mønt dispensing, som en skifte maskine)

Et par ekstra ting at vide:

  • UART, er en generel / ikke-vending standard for overførsel af serielle data. Formatet af serielle data og datahastigheden kan konfigureres. De fleste hardware har et UART-kredsløb, der kan konfigureres til dine behov.
    • UART-indstillingerne for MDB er 9600NRZ, 9-N-1

      • 9600 står for en Baud rate på 9600, aka 9600 bits per sekund, hvilket betyder, at hver bit er 104uS lang.
      • Det NRZ står for non-return-to-zero, hvilket i de fleste tilfælde er underforstået / standard.
      • Det 9 står for 9 databit, 8 er standard og 9 er usædvanligt. Mere om dette senere.
      • Det N står for ingen paritetskontrol.
      • Det 1 står for 1 stopbit.
  • RS232, der er mange MDB til RS232 Adaptere. Dette skyldes, at RS232 er / var en populær standard, der forud for MDB, som er let og almindeligt anvendt med UART, hvilket gør det let at tilpasse til MDB. Jeg anbefaler at holde sig væk fra RS232, hvis der ikke er nogen stærk grund til at bruge det. Markedet er oversvømmet med det, og det er en forældet standard, der normalt er vejledende for, at designerne bruger det, sidder fast i gamle (mindre effektive / udførende) måder. Det samme gælder for gennemgående kredsløb, men det er et andet emne.
  • USB, hvorfor laver de ikke USB-adaptere? Godt spørgsmål!

    • Der er en enkelt tovejs datalinje i USB2.0. MDB / UART bruger separate adskilte transmitter og en modtagelinjer separat.
    • USB3.0 har en separat Transmit and Receive linje, men den (såvel som USB2.0) er differentieret signaleret, hvor MDB / UART bruger Single Ended-signalering. Jeg udfordrer nogen til at lave en USB2.0 og / eller USB-C til MDB-adapter uden at bruge nogen integrerede kredsløb (opamps tilladt, skiftregister kun hvis 100% er nødvendigt), indsæt det i afsnittet "Jeg lavede det", hvis du gøre.
    • For de der undrer om USB til UART-adaptere kan du have de eneste to chips der eksisterer, som jeg er klar over at understøtte 9 bit UART, begge er lavet af MaxLinear, og ingen af ​​dem er blevet brugt i en USB til UART-adapter. Ingen af ​​FTDI's chips understøtter 9 bit UART, og selvom vi finder vej til at få det til at fungere, ville det være lidt ekstra arbejde (software drivere, COM-porte osv.), Når vores første prioritet er hurtig og nem grunden til at vi bruger et udviklingsudvalg i stedet.
  • EVA-DTS er en salgsautomatisk specifik datastandard, som du bør være opmærksom på, hvis du laver et produkt. Det giver et ensartet format for alle salgsrelaterede data. DTS står for "Data Transfer Standard".

Den nyeste version af MDB-standarden findes her. Hvis du vælger et periferi, du vil lave, skal du skimme over hele sektionen for at gøre dig opmærksom på alle de funktioner / muligheder, den har.

Trin 2: Nødvendige værktøjer

Du skal lave en breadboard-version af din MDB-enhed, før du opretter en brugerdefineret version. Før du starter, skal du bruge nogle værktøjer.

De primære to steder at bestille dele, vil være DigiKey og Amazon. Jeg vælger Amazon, hvis du har et Amazon-medlemskab og / eller dette ville være den foretrukne metode, når ting ikke kan findes på DigiKey. Det ville være bedst at få alt i en vogn (eller to) og holde af med at bestille, indtil du har fået delene udtaget fra næste trin også.

Værktøjer Nødvendigt til breadboard-versionen:

  • Loddekolbe. Selv om du kun har brug for et strygejern til dette instruktionsboks, anbefaler jeg at få varmluftfunktioner, hvis ikke en fuld på SMD rework station. Da jeg var teenager, solgte jeg mine fancy airsoft våben, og købte rework stationen nedenfor, sammen med en masse andre værktøjer til at komme ind i elektronik. Jeg har brugt rework stationen til at reflow BGA forbindelser i et par laptops og det har betalt for sig selv på den måde.

    • Bedste værdi (Iron, Hot Air / SMD, BGA omarbejde)
    • Bedste værdi (Iron, Hot Air / SMD)
    • Bedste kvalitet (kun jern)
  • Lodde. Glem ikke røgen er giftig og forårsager kroniske helbredsproblemer. DigikeyAmazon
  • krymper

    • Her er den billigste passende par jeg fandt.
  • Wire strippere. Enhver vil gøre, men jeg anbefaler stærkt Ideal Industries 'StripMaster. På grund af kvaliteten af ​​dem kan et par ikke strimmelere hver trådmåler, så til brug uden for denne instruktionsbog vil du sandsynligvis komme ind i et behov for et 2. par (eller forskellige størrelser). Husk at vi bruger 20 gauge wire i dette projekt.
    • 8-22 Gauge Strippers eller Inserts
    • 20-30 Guage Strippers eller Inserts
    • StripMaster Frame, hvis du bestilte indlæg i stedet for et 2. par, og fortryde det, som jeg gjorde.
  • Wire cutters (saks eller negle clippers arbejde, bare noget at skære tynd wire med)
  • En logisk analysator. Teknisk valgfrit, men det hjælper med at debug kommunikationssoftware og verificere hardwareværker.

    • Jeg bruger DSO203-oscilloskopet med 3rd party logic analyzer software, men der er også billige analysatorer. Medmindre du ved, du har brug for en fancy, bare få en billig en. Sigrok tilbyder open source software, der arbejder med en række forskellige enheder.
  • Et voltmeter ville værepraktisk.

Yderligere værktøjer kræves fra da af:

  • Overfladebeslag loddeværktøjer (Temperaturstyret: Reflow Ovn og / eller varmluftspistol)
    • Her er en instruktion om at lave en reflowovn
    • En varmluftsolde station er ikke 100% nødvendig, og så vidt jeg ved, er du nødt til at købe en.
  • Optisk kontroludstyr (såsom et USB-mikroskop)
    • Dette er det mikroskop, jeg bruger, så vidt jeg ved, det er en af ​​de bedste billige.
  • Præcisionspincetter til placering af dele (så små som disse er, de vil virke enorme, når du bruger dem)

    • Her er et billigt sæt

    ALLE TOOLS FRA HER PÅ ER OPTIONEL

  • En JTag-emulator. JTAG blev lavet for at gøre det let at tjekke friskmonterede PCB'er.
    • Sørg for, at emulatoren du køber er kompatibel med de enheder, du bruger i dit design. Denne bruges til ESP32. Hvis du bestiller ESP32 Programmerer, skal du kigge på næste trin og overveje at bestille ESP32-udviklingskortet derfra, i stedet for DigiKey.
  • Lodde stencil printer / applikator. Jeg købte CYBRES SP2421, men mener, at der kan være bedre muligheder jeg ikke har fundet endnu. Som et minimum skal du tilføje afstandsstykker til din kurv, når du bestiller din stencil (fra OSHPark).
  • Pick and Place maskine (til gentagelig automatiseret samling, mere til småskala masseproduktion)
    • Jeg købte LitePlacer (på et lån med alle mine andre værktøjer), men jeg ser en billigere muligvis bedre mulighed.
    • Husk, at professionelle forsamlingstjenester ikke er meget dyre i større mængder.
  • 3D-printer (hvis du har en), til testning af kabinetdesign.
  • CNC Mill (hvis du har en)
    • Perfekt til at lave engangsklasser af høj kvalitet eller andre ting som forme til sprøjtestøbning.
    • Perfekt til at lave mekaniske dele, der forbinder dit kredsløb med den virkelige verden.
    • Meget værdifuldt (tidvis) til fremstilling af PCB'er lokalt. For små kredsløb vil du kemisk ætsere spor, men har stadig brug for en møll til Vias, bordformer / udskæringer, panelering / depanelisering mv.
  • PCB Design Software (At designe dit printkort eller ændre mit design)

    • EagleCAD (parret med Fusion360 til 3D modellering) er det, jeg altid har brugt siden, før den blev købt af AutoDesk. Hvis du har et stort eller kommercielt design (diskvalificere dig fra en gratis licens) og ikke har penge til et opgraderet licens fra AutoDesk, er den gratis og åbne kilde, men ikke så luksuriøse alternativer, KiCAD (parret med FreeCAD). KiCAD jeg føler er også en stejlere indlæringskurve.

Trin 3: Opret forbindelse

Forberedelse:

Det er smart at lave din software og funktioner, før du forpligter dig til at udvikle permanent dedikeret hardware. Dette minimerer indsatsen, hvis du opdager, at din ide ikke virker, giver dig mulighed for at udvikle det så hurtigt som muligt, og lader dig nemt tilføje og fjerne hardware før dit endelige design. Så for at starte ud, vil vi bare lave en brødbrætmodel. Du kan afvige fra dette præcise design, hvis du vil, men hvis du gør det, skal du læse slutningen af ​​dette trin, hvor jeg forklarer tanken bag hver del.

Liste over dele:

Her er indkøbskurvene:

  • DigiKey Parts (Jeg bruger digikey fordi de er tæt ved, så det er som om jeg har "DigiKey Prime")
    • GridConnect Dele (Hvis du køber JTAG programmereren til ESP32)
      • ESP32 DevKitC Development Board (leveres med kvindelige overskrifter)
      • ESP Programmering og Debugging Tool (billigere end DigiKey, hvis du allerede betaler for forsendelse)
        • Dette er valgfrit, og virkelig kun nyttigt, når du laver dit brugerdefinerede printkort.
  • Amazon Dele
    • 20 AWG Hookup Wire kit (hvis du ikke allerede har 20 gauge wire)
    • Wire Wrap (valgfrit, elektrisk tape fungerer også)
    • Container / kabinet. Jeg købte min i dollarbutikken, det samme for mineralolien.
    • Mineralolie (Køb 2) Du behøver ikke meget at dække regulatorerne, men mere olie = mere varmeafledning.
    • Liquid Tape, for at forsegle hullet i kabinettet, hvor dine ledninger kommer ud.

Montage:

Se videoen for monteringsvejledning på ledningsnetværket, du kan dempe det, hvis du finder lyden super cringe værdig. Når det kommer til den del, hvor du lodde ting til brødbrættet, henvises til denne liste for koordinater for at placere hver forbindelse.

Lod alle dele til brødbrættet som vist i videoen. Jeg har medtaget en 3D-model af proto board (ikke 100% nøjagtigt æstetisk, men ideen er, at 3D-modellen giver dig noget, du kan se på dig selv, hvis den næste del er forvirrende. Du kan uploade filen her og se det.

Brødbrættet har bogstaver på Y-aksen og tal på X-aksen. Vi vil bruge disse til at angive, hvor hver forbindelse lander. For øverst og nederste power bus, lad U & L Angiv, hvilken vi refererer til. Også at specificere positiv eller negativ bus, vi vil tilføje en P eller N til U eller L. For eksempel vil "UP3" henvise til den øverste positive power bus '3. hul (som nummereret). Desuden tilføjelsen af ​​brevet R, angiver, at forbindelsen skal foretages på bagside side af bestyrelsen.

  • Jumpers

    • Grøn: J25R & J27R, H27R & B27R (lodd isolatoren før denne jumper)
    • Rød: H8 & H26
    • Gul: LP24 & A24, LP19 & J19 (Gør denne jumper sidste)
    • Hvid: D28R & G28R, D30R & G30R, UP30R & I30R, UP1 & J1
    • Sort: UN6 & J6, LN19 & 19B
  • modstande

    • R1 (680 ohm) LP26R & G26R
    • R2 (120 ohm) H7R & C25R
    • R3 (680 ohm) B26 & B23
  • Kondensatorer (jeg har ikke penge til at bestille dem, så de har ikke nøjagtige koordinater)

    • C1(50V 39uF) OP # F & UN # R (Enhver af kolonnerne skal du bare placere i nærheden af ​​de højere kolonner, tættere på regulatoren)
    • C2 (10V 680uF) LP # R & LN # R (Ideelt inden for søjlerne 20-23)
  • isolatorer

    • Brug den foreslåede LTV-826 dobbelt isolator, sæt pin 1 (den med prikken) på E24, og pin 4 (samme side af isolatoren men 3 ben nedad, på E27. De andre stifter bliver loddet, hvor de lander på pcb'en.
  • Regulatorer (Alle indgangsstifter på kolonne 28, udgangsstifter på kolonne 30)

    • En regulator på rækker: A, C, E, F, H, J
    • Ved hjælp af en dirigent uden isolering, lader alle loddene sammen, startende fra række EN, når du har tilsluttet alle 6 regulatorer, lod den ende af ledningen til UN30
  • MDB Wiring Harness
    • Grøn (MDB Line 6) = H25
    • Rød (MDB linje 5) = A23
    • Blå (MDB linje 4) = J24
    • Sort (MDB Linje 2) = UN29
    • Hvid (MDB linje 1) = I28
  • Pin Headers (når du sætter DevKitC i, skal du orientere det, så 5V-stifter tændes I1, og 3v3 pin lander på I19.

    • I1R-I19R, A1R-A19R

Det er slutningen på dette trin! Du skal nu have et wifi / bluetooth-aktiveret udviklingskort, der kan drives af og kommunikere med automater.

Udvælgelse af dele:

Dette afsnit er beregnet til dem, der ønsker at gøre tingene lidt anderledes. Måske har du en Arduino, eller en hindbær pi, eller du har tilfældet en udskiftningsdel til rådighed for hver af de nævnte dele. Hvad jeg vil gøre er at gå igennem hvordan / hvorfor jeg valgte hver del / værdi.

For det første har alt brug for en strømkilde.

  • Mens du bare kunne strømforsyne enheden via udviklingsportens USB-port, udgør det nogle få problemer. Det sidste spørgsmål er grunden til, at jeg ikke bruger en ekstern strømforsyning som en vægvorte.
    1. Du skal holde en bærbar computer tilsluttet et relativt kort og stationært USB-kabel.
    2. Du kan ikke helt lukke maskinen helt, hvilket gør testningen tingene sværere.
    3. I hvert fald i mit tilfælde var ideen, at det er en trådløs enhed.
    4. Det bedre alternativ er ikke en masse indsats.
  • Jeg valgte at bruge en lineær regulator, fordi den er billig og hurtig. Men det skal falde 34V ned til 5V, tage i op til 45V, og lægge en anstændig mængde strøm. Dette begrænser mulighederne lidt (begrænsede muligheder fik mig til at beslutte at medtage en overflademonteringsenhed i breadboardmodellen), og vores 34V til 5V-scenario for MDB betyder det, at vi får 15% effektivitet, hvilket betyder at der er en masse varmegenerering. Regulatorerne har faktisk så meget varme, der genereres, at mængden af ​​strøm, vi kan komme ud af dem, er stærkt begrænset af termiske egenskaber. Når det er sagt, tænker jeg ikke rigtig på, at alle har en junkcomputer der ligger rundt, de kan bare rive en betydelig køleskab ud af, også dette var næppe tilstrækkelig afkøling til enheden, der bare sad der i det væsentlige tomgang. I stedet for at benytte en ekstern strømforsyning eller en mere kompleks SMPS har jeg besluttet at blot tilføje flere lineære regulatorer parallelt og nedsænke enheden i mineralolie.
    • Mineralolie er ikke ledende og kan bruges som kølevæske. Der er ingen tilgængelige mere avancerede former for dette, hvis du prøver at kontakte 3M om deres Novec produktlinje (højere termisk ledningsevne, brandhæmmende mv.) Vil du i sidste ende finde ud af, at der er strenge miljøregler og krav, der begrænser adgangen til produktet. Hvad angår køling, er det ikke det bedste kølevæske, men det har 10x bedre varmeledningsevne end luft. Med hensyn til plastbeholderen, der holder væsken, afhænger det af plasten, det er enten det samme som termisk ledende eller mere ledende, så kort sagt er den eneste flaskehals til afkøling isolatorernes overflade, overførsel af varmen til mineralolien. Derfor blev heatsinks tilføjet, især i betragtning af dataarkværdierne (som blev brugt til at bestemme 6 regulatorer = 1 Amp) henviser til regulatorerne, der er overflademonteret til et 4-lag PCB med termiske viaser og lignende. Hvorfor 1 amp? Udviklingsbrættet skulle have brug for ca. 1 Amp til enhver tid og meget mindre under de fleste operationer. 1 Amp kapacitet sikrer kun, at strømmen ikke bliver en skjult årsag til uregelmæssig adfærd senere. Endelig orienteres isolatorerne på mineralolie, så konvektion forekommer naturligt, og siderne med mest overflade er hvor hele olien flyder over.

Dernæst har vi brug for en processor.

  • Jeg brugte oprindeligt Particle's Photon Board til dette projekt, det blev foreslået til mig af en fyr, der ønskede at bruge deres web IDE med den enhed, jeg lavede, og på det tidspunkt vidste jeg intet forbi arduino, så var imponeret over, at der var wifi og det tilbød 9 bit UART, så jeg var lige enig. Hvis du har en grund til det, kan du bruge stort set enhver arduino, de synes alle at tilbyde 9 bit UART. Hindbær pi synes ikke at, men der er et bitbang bibliotek eller to for det. Bitbanging, for mig, virker bare som en masse rystende for et dårligere resultat. Som du måske har bemærket, tilbyder ESP32 ikke 9 bit UART, men hvis du dykker dybt ind i dokumentationen, kan du måske ikke finde nogle få måder, som du kan arbejde rundt om, f.eks. Manipulere paritetsbiten (let når afsendelse, hårdt ved modtagelse). Hvis du har et USB til UART-kabel / adapter, er det måske ikke muligt at tilpasse det til 9 bit UART. Jeg har søgt igennem alle datablade på hver brochip på digikey, og kun to chips tilbyder 9 bit uart, og de er lavet af MaxLinear (ikke FTDI), og jeg har ikke kunnet finde nogen USB-kabler / adaptere der bruger deres brochip i det, så hvis du har en USB til UART-adapter, understøtter det sandsynligvis ikke 9 bit UART. Men som jeg sagde, betyder det ikke, at det kan eller ikke kan bruges med en 9 bit UART, det er bare meget mere arbejde og læsning af n ting. Anyway, da jeg opdagede ESP32-modulet, havde jeg til hensigt at bruge det i et brugerdefineret printkort, og det stod som meget veludstyret hardware, der tilbød wifi og bluetooth til en uovertruffen pris (så finder jeg ud af, at det også er en meget populær hobbyistisk ting).
  • Hvorfor bruger vi ikke bare en bærbar computers processor? Det er simpelthen ikke den enkleste / nemmeste / hurtigste løsning.

Endelig isolatoren

  • Den valgte isolator har en maksimal stigning / faldstid på 18uS og en typisk

    stigning / faldstid på henholdsvis 3 og 4 u. Dette er en 1uS forskel, som ikke forvrænger datakommunikation og falder temmelig tæt på 1% timing nøjagtigheden, som protokollen specificerer (1uS fejl ud af 104uS). 18uS af stigning / falde tid, er konsistent / identisk (også under 104uS), udelukker blot / forsinker dataene den tid, uden at forvrænge den. Det nuværende overførselsforhold er ved at være højst omkring 15mA, og det er rimeligt at tro, at det vil forblive over 100% overførsel i de fleste situationer, så for en hurtig prototype vælger jeg denne. Også fordi jeg plukket det tilfældigt tilbage, da jeg ikke vidste, at disse ting var meget vigtige.

Valg af delværdier:

Formel er R1 = Vp / 5mA. 5mA er en generisk / standard strøm og kan justeres. Particle's Photon Board giver op til 25mA pr. IO pin, så det er en god værdi. Partikel virker på 3,3 V, så Vp = 3,3 V, derfor er formlen R1 = 3,3 V / 5mA = 660 Ohm. Justering af dette til den nærmeste standardmodstandsværdi får vi 680 Ohm. Dobbeltklik på den strøm, som den højere modstandsværdi resulterer i (I = 3,3 V / 680Ohms), vi får 4.9mA. Pin-strømmen er høj nok til, at værdien inden for modstandens nøjagtighed / tolerance ikke skal kontrolleres.

Formel for R2 = (Vp - Vf (max)) / (Hvis * CTR (min)). 2. del (Hvis * CTR (min)) repræsenterer overført strøm, som skal være 15mA eller mere. Ved at vælge en isolator med et minimumstrømoverførselsforhold på mindst 100% @ 10mA, finder vi, at CTR tilfældigvis ligger højest ved ca. 15mA. Dette virker, men er på ingen måde en langsigtet løsning på grund af tætte tolerancer, så vi bliver nødt til at finde en ny regulator i alle seriøse designs. Plugging i værdierne af denne regulator får vi R2 = (3.3V - 1.4V) / (15mA * 1), forholdet jeg bare kaldte det 1 i stedet for at prøve at finde ud af, hvad der er på grafen, er det sikkert at gå op til 20mA, husk at vi begrænser overskydende strøm på den anden side. Løsningen af ​​denne ligning får vi 127 ohm, som hvis vi runder til den næst laveste modstandsværdi, får vi 120 ohm. Dobbelt kontrol, dette giver os mindst 15 milliamps på begge sider.

Formel for R3 = (5V - Vf) / 10mA. 10mA er en tilfældig / generel værdi, og den anvendte isolator fungerer godt med 5mA, for at producere 5mA på den anden side. Vi kan tegne op til 15mA, men vil kun tegne 5mA. For at gøre dette er det lige så enkelt som at sætte værdierne i ligningen. (5v - 1,4V) / 0,01A = 720. Dette er dog meget tæt på de 680 ohm, der anvendes i R1, så lad os reducere den unikke deltælling og bare bruge den samme værdi. Dobbelt kontrol selvfølgelig, vi stiger kun ca. 0,2 mA, så alt er godt.

Trin 4: Få den oprindelige kode konfigureret og uploadet

Du skal installere ARduino IDE Arduino-Core til ESP32. Hvis jeg laver en kommerciel enhed, vil jeg anbefale at skifte til at bruge Espressifs egen IDE til ESP32. Det vil være mindre buggy, udføre bedre, og sørg for at tilbyde alle mulige funktioner. De arbejder stadig på at færdiggøre havnen til Arduino.

Nu skal du hente MDB-koden på din enhed, konfigurere den for din enhed, og start med at tilføje alle de fancy funktioner, du har tanke på, og knytte den til MDB-koden. For mig betød dette at downloade manualen 313 Page MDB v4.2 og transskribere alle relevante sider til et program. (I første omgang har jeg lige gjort det med Cashles Payment Device, men jeg arbejder på at tilføje resten). I stedet for at gøre alt det, kan du kigge på min kode. Denne kode er gennemgået mange ændringer siden jeg sidst brugte den, og jeg har ikke adgang til en salgsautomat døgnet rundt, så der kan være nogle få fejl at træne. Afslutningen af ​​denne software er min næste prioritet efter at have offentliggjort dette instruerbar, så det kan blive taget hånd om, når du kommer til dette punkt, og selv om det ikke er, er det stadig meget bedre at udarbejde nogle få fejl end at skrive det hele fra kradse. Sørg for at kontrollere, at din hardware fungerer, før du antager, at koden ikke virker. Tilslut en logisk analysator til stifterne og sammenlign hvad din enhed modtager, til hvad den læser, og hvad din enhed skal sende til, hvad den faktisk sender. Jeg har medtaget nogle billeder for at gøre det klart, hvad du skal se på en logisk analysator.

Når du begynder at arbejde med min kode, skal det være nemt, hvis du følger med det i MDB manualen også. Hvis du bruger det, skal du sørge for at indsende eventuelle forbedringer / ændringer, du foretager. Dette er mit første program og er stadig det eneste program jeg nogensinde har arbejdet på. Også det er min første gang at bruge github, så undskyld hvis det er lidt uorganiseret. Uanset om du bruger min kode eller går på den selv (det er en masse, skal jeg stadig dykke ind i en større EVA-DTS manual til at linke til MDB-koden), det er på tide at få din enhed til at kommunikere intelligent med maskinen, og lav derefter din ansøgning og link den til MDB-koden. Få din enheds hovedfunktionalitet til at gå. Tilføj mikrofoner, motorer, uanset hvad din funktion har brug for og få alt det, der er sat op. Få din enheds funktionalitet og design færdiggjort, inden du går videre, da det er sværere og dyrere at foretage ændringer i brugerdefinerede kredsløb.

For dem der bruger anden hardware, der ikke understøtter 9 bit UART:

Hvis du har valgt at bruge noget som en raspberry pi eller et USB til UART-kabel, kan dette være interessant. MDB kræver 9 data bit kommunikation. En masse UART-hardware understøtter ikke dette. ESP32 tilfældigvis er en af ​​disse sådanne enheder. Ikke understøttet betyder ikke, at det er umuligt, og efter at have kigget på dokumentationen på ESP32 kan jeg se et par forskellige måder, hvorpå vi kan få det til at ske. Hvis du bruger anden hardware, er disse nogle få muligheder, du kan se på.

  • Afsendelse af data
    • Manuelt beregne den ønskede paritetsindstilling for hver bit før afsendelse.
    • Manuelt indlæser registre med dataene, og pariteten (uklart, hvis dette kan gøres på ESP32)
    • Bitbanging (garanteret men ressourceintensiv)
  • Modtage data
    • Modtage data, og ved hjælp af paritetsfejl afbryd / flag (hvis din hardware har det) for at fortælle hvad den 9. databit er. (Dette ville kræve, at data med dårlig paritet ikke kun kasseres)
    • Manuel læsning fra registret bit for bit, da hver bit kommer ind. (Mere arbejdskrævende)
    • Bitbanging (garanteret men ressourceintensiv)

Det er ikke 100% klart, hvad der vil fungere, bare ved at se på den tekniske referencemanual (i hvert fald på ESP32), da vi bruger pariteten på måder, det ikke var beregnet til at blive brugt, så der bliver ikke dokumentation på hvordan man bruger det på denne måde. De eneste rigtige måder at vide, hvad der sker, er at teste nogle kode ud og se, hvad der virker. En sidste bemærkning er, at ESP32 har et "Edge Change" register / interrupt, som giver os mulighed for at registrere en hard / bus reset og have 100% MDB compliance. En hard / bus reset er, når bussen trækkes aktiv i omkring 100 mS eller deromkring, noget der ikke er en del af UART-kommunikation, så det er dejligt at ESP32 sker for at have denne kapacitet. Funktionen Hard / Bus er imidlertid ikke nødvendigvis understøttet, da protokollen specificerer, at alle eksterne enheder, der ikke reagerer på det, blot får en adresseret (UART-læsbar) nulstillingskommando, der sendes til dem.

Trin 5: Start Prototyping

Herfra burde du vide meget mere om elektronik. Dit projekt vil sandsynligvis også afvige fra denne vejledning på dette tidspunkt, så dokumentationen herfra vil ændre sig fra at fortælle dig, hvordan man gør ting (det ville være et helt andet elektronik / SMT-emne) for at nævne bemærkelsesværdige ting, jeg iagttog som Jeg arbejdede på mit eget projekt. Forhåbentlig er der nyttige oplysninger et sted i dette trin.

Prototyping til mig, undersøger alle dele og finder den lavest mulige pris og erstatter de dele i skematikken, som du tidligere skulle bruge. Også en hel del forsøg og fejl, som du lærer om design og montering af brugerdefinerede kredsløb. Du forsøger at forbedre på en arbejder allerede design med ændringer for at finde den optimale balance af billig og kvalitet (så sørg for ændringerne ikke bryde systemet). Hver brøkdel af en øre tilføjer. Sørg for at sammenligne priser fra mere end én kilde (Octopart gør et godt stykke arbejde med dette) og afbalancere, om det er værd at bestille fra en kilde eller flere kilder. Jeg holder et regneark / BOM i åbent kontor for at organisere delene og alle deres priser. Jeg vil medtage et eksempel / skabelon, du kan bruge. Jeg plejede at inkludere en bit.ly link til hver del, hvor jeg fandt det til den pris, men jeg tror jeg stoppede med at gøre det fordi det blev kedeligt på grund af den rate, jeg ville finde en bedre del. EagleCAD Jeg tror nu har også en slags BOM-program. Jeg er sikker på, at et simpelt regneark er mindre kraftigt, men også mindre kompliceret.

Da dine designs bliver mindre, har de små detaljer en større indvirkning. Tykkelsen af ​​din lodde stencil, formen / størrelsen af ​​dine passives fodspor, mekanisk stress (det vil begynde at knække keramik og loddetaljer) osv. Dette dokument tales om meget af det, jeg ville ønske jeg havde vidst om Disse ting før jeg begyndte. Jeg forsøger at bruge 0402 som standardstørrelse for alle mine passiver. En ting du skal huske på er samling, kan du pålideligt samle delene den størrelse og det tætte sammen? Eller har du planer om, hvordan man lader et dobbeltsidet design?

  • Læs hvert eneste ord i hvert dataark, jeg har haft en strøm, IC virker ikke korrekt, fordi jeg savnede en fodnote i en tabel med værdier.

  • Tag ikke genveje, de eksisterer ikke.

  • Slå op fiducials til automatiseret samling.
  • Slå op panelering, hvis du vil lave et par kopier af det.

Jeg anbefaler ESP32 på grund af det tilbyder anstændigt strøm, wifi, bluetooth og nogle andre små ting alt for $ 3,75 pr. Modul. Selvom jeg ikke er fan af at bruge moduler, er det nødvendigt for mindre projekter, hvor 10 grand eller mere i FCC licensgebyrer ikke er en mulighed. Du kan udnytte FCC-certificeringen af ​​ESP32 i dit eget design. Hvis jeg ikke tager fejl, skal alle kommercielle elektronik blive certificeret af FCC, som altid koster mindst tusind eller to for et pass eller en fejl. Så overveje at købe en spektrumanalysator til at lave nogle forprøvninger. Køb ikke det, før du har brug for det xD Jeg købte en og har aldrig brugt det, bare et stort spild af penge hidtil.

Overvej at gennemføre JTAG for at få dit printkort digitalt at inspicere sig efter samling. Som tidligere nævnt har ESP32 sit eget programmeringsværktøj.

Vær opmærksom på mulighederne i PCB-fabrikationstjenesten du vælger. Hvis du ser på billederne i dette trin, vil du se forskellen mellem OSHPark (en general / bulk hobbyist service) og nogle kinesiske firmaer.

Træk en tykkelse eller noget ud og sørg for, at du ved, hvor stor / lille de dele du bruger. På denne model vist (Proto2, min første PCB) fik jeg modstande og kondensatorer og tænkte "de så meget ud på skærmen" xD

"Jeg håber du fejler!" - Dave fra EEVBlog i en af ​​hans videoer. Manglende betyder, at du lærer, og dreng gjorde jeg meget dyrt læring.

Jeg tilfældigvis har Eagle-filerne til dette bestyrelse (Proto2) stadig (uploadet).

Her er OSH Park Order også.

Trin 6: Prøv igen! og igen! og igen! (Flere prototyper og masser af læring)

Du vil mislykkes, og du vil prøve igen! Og du vil mislykkes igen, og du vil prøve igen! (Board filer tilgængelige i hvert link) Den sidste bit er, hvad der er vigtigt, dig vilje Prøv igen! Ved hver fejl / fejl vil du lære noget nyt.

Denne prototype (proto 3 i de to første billeder) skiftede jeg til at bruge mere realistisk håndplacerbare passiver. Det gik godt, men jeg forsømte at se på andre potentielle størrelsesproblemer og kom til den erkendelse, at jeg ikke rigtig kan give plads til Power IC, og det var også for lille til, at OSHPark kunne lave et kvalitetsfodaftryk for, med loddemaske mellem puderne. På dette tidspunkt skyndte mig at lave en fungerende MVP (jeg havde en fyr ivrig efter at bruge den, så der var lidt pres), besluttede jeg at forenkle lidt.

Her er OSHPark linket til Proto3 bordet.

Proto-4, vist i 3.-5. Billeder, gik jeg tilbage til at bruge et udviklingsbord for at undgå tid og problemer forbundet med at forsøge at sikre, at modulet blev loddet korrekt og undgå problemerne med wifi, som jeg havde forventet. Jeg skiftede også til en enklere / større strømforsyning. Desværre forsømte jeg at læse en fodnote i dataarket for denne strømforsyning (nu hvor jeg begyndte at skynde mig igennem ting), og det endte ikke med at give den rigtige spænding 90% af tiden. Jeg tror, ​​at jeg lige har besluttet at drive den gennem USB-porten, og kommunikationen fungerede heller ikke! Jeg kan ikke rigtig huske den nøjagtige årsag, men husk at tænke på, at jeg virkelig overvurderede optiske isolatorer og bare antaget, at hver enkelt er hurtig nok, men jeg tror, ​​at jeg måske bare har blandet modstandsværdierne i rush og taber søvn. Dengang boede jeg med katte, som jeg var meget allergisk over for, jeg ville vågne op og chug nyquil (dagligt), så dagen var tålelig og et monster til at modvirke nyquilen, så gå og arbejde en hel dag og derefter blive bagefter at arbejde på disse ting (eller arbejde hjemmefra), hoppe over søvn, indånder nogle adrenalin, så jeg kunne trække vejret bedre (katte gav mig nogle funky astma på det daglige) og holde mig også vågen mere. Jeg lavede en masse dårlige sundhedsvalg til fordel for givet'n er færdig.Glem ikke at sove, søvnløshed forårsager søvnløshed, hvilket fører til nedsat produktivitet. Glem ikke at spise, selvfølgelig det reducerer produktiviteten. Glem ikke at bremse og gøre tingene rigtigt, ingen genveje, eller du spilder tid og penge (i bedste fald lærer du hvad du ikke skal gøre).

Her er OSHPark linket til Proto4 bordet.

På dette tidspunkt havde jeg haft det og besluttet at gå tilbage og fokusere på at gøre enheden sådan som den burde være, langsom og stabil. Men ikke uden en sidste lav indsats skudt for at få en klar til brug reproducerbar prototype, som jeg kan sende til den fyr, jeg kendte, og gøre ham glad. Introduktion til Proto-5, den "for simple to fail" model, stort set det samme kredsløb som Proto-1, er bare en smule mere avanceret. Brugte pin headers, så jeg ikke ville spilde foton boards i tilfælde af en enhed bryder eller fungerer ikke, også så et Electron (celle signal) bord kunne nemt byttes ind. Whelp, rushing det, glemte en forbindelse eller to, på en eller anden måde det fungerede ikke selv efter at have brugt forbindelsen, jeg glemte at lave, syntes at være et problem med strømforsyningen, men jeg kunne ikke rette det ved at lodde på flere kondensatorer. I stedet for at undersøge årsagen, blev det forhastet, faldt jeg lige og flyttede til en gang. Gjorde alle mine grædende internt og fortsatte fremad.

Her er OSHPark-linket til Proto5-bordet.

Trin 7: Få dit endelige design og få det til produktionsklar

Jeg gik endelig tilbage og satte en anstændig indsats i at lave en enhed ved hjælp af Espressifs ESP32-modul. Bestyrelsen blev paneleriseret til hurtigere montering (i den største størrelse, der passer til min brødristersovn og loddeslipsapplikator), undersøgte jeg strømforsyningsoptionerne og kom op med det samme svar som Proto2 & 3, så gjorde det ved at bruge den lille IC nu at jeg havde en pick-and-pacemaskine til at hjælpe med montering (selv om jeg ikke tror, ​​det er nødvendigt længere). Jeg skiftede pcb fabrikanter for mere præcise muligheder og lavere omkostninger, gik med en kinesisk virksomhed (noget jeg ikke vil gøre igen). Generelt fik jeg min handling sammen og fik et anstændigt bord lavet. Så mange fejl og udgifter over et kredsløb, der grundlæggende er to isolatorer T-T.

OSHPark-linket til Proto6 er her. << Selvom jeg tror, ​​at jeg lavede nogle (mindre / ikke-kritiske) ændringer efter at have indsendt denne nøjagtige fil. Bemærk mærkning af MDB-stikkene, der angiver det køn af stik, der går der, det er en nem måde at undgå at sætte et stik på den forkerte side. Jeg kan ikke ændre på dette, da jeg ikke længere har tilladelse til at bruge Eagle (også arbejdsløse dårlige ting), men hvis du gør det, anbefaler jeg at skifte isolatoren for at bruge to TCP817 isolatorer i stedet for LTV826S. Tilføj også JTag, mens du er på den til ESP32 (side 14, og find de overskrifter, der matcher dem, der bruges på ESP32-programmøren til at bruge til det. Du er velkommen til at øge størrelsen af ​​de anvendte passiver og selvfølgelig tilføje ekstra hardware du personligt har brug for. Hvis du ikke ændrer det, anbefaler jeg, at du mindst gennemgår designet og sørger for, at BOM-delene er dem, der passer til printkortet. Dette sidste design gik gennem mange sidste minutsændringer og Ændringer. Jeg kan fortælle dig, at diode i BOM er en jeg besluttede imod, og den jeg egentlig brugte er her.

Hvis jeg ikke har nævnt det endnu, er der ingen overflademonterede Minifit Jr-stik, så kantmontering dem, som jeg har, er den mest kompakte metode til at gøre det. Der er en stik, der kommer forudindlæst med stifter i den, som kan tilpasses som en kantmonteret stik. Til den anden konnektor skal du indsætte krympede forbindelser, og dette er så kompakt som det bliver. Hvis du matcher PCB-tykkelsen og trådmåleren, burde du have den så god sammen som den passer godt sammen. Husk hvordan disse stik påvirker monteringsprocessen i masseproduktion. Jeg har kontaktet Molex om det, og de siger, at du skal bestille millioner af enheder og ting sådan at have en ny / brugerdefineret konnektor lavet. Overvej at lave din egen, hvis du tror du kan finde ud af det, og det er også et problem for dig (uden at have en SMT-stik).

Videoen refererer til en CNC-maskine, taler om en jeg planlagde at spare op for (lomme nc), ikke Shapeoko 3. Disse videoer var år siden.

Held og lykke med dit vending projekt, jeg håber det hjælper og du lykkes.

Runner Up i

PCB Contest