Elevatordesign – elektronik

29. april 2023 – elektronikken påbegyndt

Steppermotorerne er ankommet. Og testet.

De føles meget kraftige.

Desuden har jeg tegnet et diagram for en ESP32 med de to steppere (som på billedet) samt en DCC dekoder, 6 switche til at føle de 6 niveauer (som var min oprindelige ide – det skal ændres til 2 switche som endestop og 4 IR sensorer til at sikre, at ingen tog kommer i klemme) og et lille OLED display til at informere om hvad elevatoren foretager sig. Det skal gennemgås jvf. denne guide om GPIO portene.

Det ser sådan ud som “fuglerede” – minus micro-switchene:

Jeg har også overvejet en MP3 afspiller, der kunne sige noget i retning af “kører op” og “femte etage”.

Jeg får brug for mange flere switche og også nogen optiske sensorer. Det betyder, at jeg muligvis får brug for at udvide antallet af I/O porte vha. en MCP23017 IC.

23. september 2023 – Tanker om styringen

Der er langt igen:

  • Der skal designes færdig
  • Mekanikken skal realiseres
  • Elektronik med switche, display, DCC interface osv. skal realiseres
  • Selve møblet med elevatorstole, ramme, fastgørelse af mekanik etc.
  • Skinner og strømforsyning til samme
  • Software

Mekanikken skal på sin vis “bare” købes ind, 3D-printes og skrues sammen. Det er nok det mindste af det. Der er ikke så meget at rafle om. Det hele skal skrues sammen omkring V-slot profilet.

Elektronikken består af en ESP32 (hjertet/computeren), en masse switche m.v. som sensorer, et display, et DCC interface, måske ekstra I/O porte, en microSD kortlæser og måske ikke så meget mere.

Udfordringen med switchene er at få dem anbragt præcist nok til at kunne bruge dem til at vide, at skinnerne er i en højde, så et tog kan køre ud eller ind af elevatoren. Der skal således være en switch pr. etage i hver side. (Troede jeg. Men det er der ingen grund til. Se software afsnittet. Der skal kun bruges en switch i hver side, der indikerer et endestop. Softwaren skal sørge for, at hver etage kan findes præcist ud fra disse endestop positioner samt viden om, hvor mange steps, der er til de enkelte etager.) Derudover fire IR-sensor til sikring af, at toget er helt inde i elevatoren, før det tillades at sætte elevatoren i bevægelse. 

Displayet skal kort sagt vise, hvad der foregår. Altså modtagne ordrer, igangværende proces og øjeblikkelig status.

DCC interfacet, som i store træk består af en optokobler og et par modstande (identisk med det, jeg allerede bruger ifbm. sporskiftedekoderne) skal bruges til at modtage kommandoer fra ECOS. Eller fra JMRI (scripts) via ECOS.

“Møblet” er præcisions-snedkerarbejde. Og det er ikke min stærke side. Så det kommer til at tage tid. Og der er en problematik omkring behov for både MDF og spånplade i flere tykkelser. Det er ikke bare at købe en enkelt plade og få den skåret ud.

Udfordringen med skinnerne er at få stabil strømtilførsel når og kun når elevatoren er i korrekt højde. Jeg har købt nogen små kontaktplader. Det skal forsøges, om de kan anbringes præcist nok til at kunne fungere. Plan B er ledninger, hvor udfordringen er at få dem ført mellem ramme og elevatorstol uden at være i vejen og uden at knække efter nogen tids brug.

13/9-2024: Tilbage til elektronikken

Jeg er kommet meget videre det seneste årstid som beskrevet andetsteds. Men i dag kom jeg tilbage til elektronikken, idet jeg – fuldstændig problemløst – skiftede den lille 0,98” skærm ud med en på 2,42”. Det gjorde lige pludselig teksten læsbar.

Desuden forsøgte jeg at få IR sensorerne til at fungere. Jeg har købt disse:

Jeg troede, at det var simple IR dioder og IR photo transistorer. Men det er kun transmitteren. Receiveren er beregnet til at modtage signaler, der er moduleret med en 38 kHz bærebølge, som det f.eks. er tilfældet med de fleste fjernbetjeninger til TV m.v. Jeg forsøgte at lave en 38 kHz firkantgenerator vha. en 555 timer kreds, så transmitteren kunne “tale samme sprog”. Men det fik jeg ikke til at fungere. Og jeg har ikke et oscilloskop, der kan fortælle mig, hvad der er galt.

14/9-2024: Firkantgeneratoren fungerer

Mit oscilloskop kan faktisk fungere op til 200 kHz. Det var bare et spørgsmål om at dreje rigtig meget på hjulet for at justere trigger niveauet. Og efter at have tilføjet et par manglende forbindelser i fuglereden og justeret på trimmer potentiometeret er det faktisk tæt på en 38 kHz firkant. Men modtageren blinker i stedet for at lyse konstant (selvom det ser fint ud på billedet), så det duer ikke. Jeg køber nogen IR foto dioder.

Selve dioderne skal anbringes i portalerne. Og måske også de to modstande. Derfra skal der føres tre ledninger til elektronikboksen. Diagrammet for en sensor er simpelt (forsøg med netop de dioder, jeg har købt, har dog vist, at modstandene skal være hhv. 100 ohm og 1 megaohm):

Gennem grundig research (dvs. få sekunder på Google) har jeg fundet frem til, at anoden (+ siden) svarer til der hvor pilen i diodesymbolet peger fra – altså opad på ovenstående tegning, mens katoden (- siden) svarer til der hvor pilen peger hen – altså nedaf på ovenstående tegning. Ydermere er katoden (- siden) det korte ben på en LED / fotodiode, hvilket også gerne skulle være der, hvor der er en flad side på den ellers runde diode.

Derudover har jeg opgivet at få anbragt de bittesmå kontakter til skinnestrøm præcist nok bag på elevatorstolene til at få dem til at fungere. I stedet bruger jeg nogen relæmoduler. Og her er der mindst to muligheder:

  1. Anbringe relæerne bag på elevatorstolene sammen med en ESP8266 til at styre dem. Det giver behov for 6 ledninger: Stel, 5V, to til I2C og to til skinnestrømmen. Det er næsten det samme som hvis jeg bare fører skinnestrømmen op (hvilket giver 7 ledninger. Men relæerne skal være et eller andet sted alligevel, og med en ESP8266 i elevatorstolen kan jeg tilføje noget andet sjovt, f.eks. udkørselssignaler inde i elevatoren.
  2. Lidt simplere: Anbringe relæerne i den store elektronikkasse. Så kan jeg nøjes med en MCP23017 port expander. Og jeg har allerede en MCP23017 og to relæmoduler med hhv. 4 og 8 relæer. Altså netop nok til denne løsning.

16/9: MCP23017 tilføjet

Både i diagrammet og i min fuglerede / mock-up – dog kun med et 4-relæ modul.

20/9: Fysisk opbygning

Første tanker tænkt: Jeg 3D printer nogen kasser til hhv.

  • Displayet (anbringes øverst til højre længst fremme i rammen). I samme kasse skal sidde et lille print med konnektorer: DB9 til elektronikboksen. Og tre-polede til hver stepper driver og hver endestop switch.
  • Resten af elektronikken inklusive relæer men eksklusive stepper drivere (anbringes i bunden af rammen midtfor).
  • Ledningssamlingerne ved enden af cable chain bag på stolene.

Den store elektronikboks skal designes, så USB stikket i ESP32 kan bruges til at forbinde elevatoren til min PC, og så der er konnektorer til alle forbindelser eksternt såvel som internt i elevatoren.

Stepper drivere skrues fast øverst lige over stepmotorerne. 20 volt strømforsyningen forbindes direkte til stepper drivere. Ingen grund til en samlekasse.

Ledninger kan føres inde i V-slots. Men jeg tænker, at det er bedre med nogen ganske almindelige kabel kanaler rundt i bagkanten af rammen. Dog er det oplagt at føre ledninger til IR sensorer og endestop switche inde i V-slots.

Jeg har forskellige konnektorer på lager:

Øverst til højre er en samlemuffe, som jeg tænker at bruge i kassen bag på stolene til at få stelforbindelsen til de seks spor samt den nede fra elektronikboksen forbundet med hinanden.

Den grønne i midten bruger jeg til at forbinde elektronikboksen til DCC, dvs. min ECOS.

3 stk. DB9 (nederst til højre) bruges i elektronikboksen til:

  • Forbindelsen op til toppen, dvs. stel + DIR + PUL til hver stepper driver samt de 4 forbindelser til displayet. Det giver umiddelbart 10 ledninger. Men tre af dem er stel. Så det er i virkeligheden 8. Dvs., at jeg måske kan få forbindelsen til de to endestop switche med også. For der er jo egentlig en 10’ende forbindelse i DB9 stikket i form af skærmen. Ellers må det blive DB25. Sådan nogen har jeg også.
  • Hver elevatorstol, dvs. 6 relæoutput med DCC+ og en ledning med DCC- Eller måske skal cable chains rent faktisk komme direkte ud af elektronikboksen uden konnektorer?

Fire stk. af de tre-polede nederst til venstre tænker jeg at bruge til IR sensorer.

Fra den øverste fordelerboks (displayet) køres forbindelserne videre til steppere og endestop switche via fire stk. af de trepolede stik til venstre på billedet.

22/9 – 24/9: Print layout design

Diagram og GPIO numre opdateret for at undgå eksterne pull-up modstande. Dels for forenklingens skyld og dels for at spare strøm:

Desuden har jeg tegnet, hvordan de ret få komponenter kan anbringes på et hulprint i el-boksen i bunden af elevatoren. Men det fungerer ikke rigtigt. Problemet er, at det ikke er særlig smart at anbringe selve elektronikken og de 3-polede konnektorer på samme hulprint. Det vil være bedre at anbringe elektronikken og dermed USB stikket vandret og konnektorerne lodret. Og for at få det gjort rigtigt må jeg hellere designe en 3D printet kasse samtidig. Og det kan jeg ikke (færdig-)gøre før jeg også har cable chains i hånden. For de skal på en eller anden måde “komme ud af” samme kasse.

26/9: IR LED og fotodioder modtaget

Endnu en lille overraskelse. Jeg havde troet, at fotodioden i ovenstående diagram ville gå i mætning så snart den fik en smule IR lys, så jeg dermed kunne bruge en digital indgang med intern pull-up på ESP32. Men det er vist ikke tilfældet. I stedet har jeg leget lidt med at læse den analoge værdi på indgangen. Og den er 4095 med mindre jeg giver den meget direkte lys med IR LED’en. Det kræver lidt mere research, før jeg er helt sikker på, hvordan jeg skal håndtere dem.

27/9: IR detektion fungerer

Der skulle lige gøres et par ændringer.

For det første bruger jeg nu GPIO 36, som ikke har intern pull-up. I går brugte jeg GPIO 4 med intern pull-up aktiveret.

For det andet ændrede jeg formodstanden til LED’en fra 220 til 100 ohm. Det kommer af, at Ali Express oplyser, at spændingsfaldet over LED’en er ca. 1,5 volt og den anbefalede strøm igennem den er 20 mA. Det giver R = U / I = (3,3 – 1,5) V / 0,02 A = 90 ohm. Det burde give mere lys ud af dioden.

Og endelig er pull-up modstanden til fotodioden nu 100 kohm i stedet for 10. Det giver bedre følsomhed.

30/9: Ny portaltype 3D printet

Dermed gik jeg fra 5 mm til 3 mm IR LED og fotodiode. Det nedsatte følsomheden, som jeg har fået tilbage ved at gå helt op på 1 Mohm som pull-up til fotodioden.

4/10-2024: IR modtager tilføjet

Jeg har som beskrevet ovenfor fået en del IR modtagere til overs. Så hvorfor ikke bruge en af dem til at modtage kommandoer fra fjernbetjeningen til mit TV? Som tænkt så gjort:

8/10: Portaler samlet

To ud af fire portaler loddet sammen i den forstand, at de to modstande, LED, fotodioden og et tre-leder kabel er forbundet:

10/10: Anbring elektronikken ovenpå

De sidste to portaler loddet sammen.

Desuden nogen nye ideer om montering af elektronikken: Indtil videre har jeg tænkt det som om skinnestrømmen skal komme fra bunden og op i elevatorstolene, fordi kabelkæderne skal have noget at ligge på. Men hvorfor kan de ikke ligge på elevatorstolene og gå op i toppen af elevatoren? Selvfølgelig kan de det.

Og når vi nu er oppe i toppen, så kan jeg lige så godt anbringe alt elektronikken – inklusive display og IR modtager – inde i samme kasse. Og den kasse kan ligge sammen med strømforsyningen til stepper motorerne oven på elevatorrammen. Derved bliver montagen af elevatoren nemmere, fordi elektronik og kosteskafte ikke slås om pladsen. Og jeg sparer et 10-leder kabel (11, hvis IR modtageren tælles med) og gør derved kablingen simplere.

Jeg er begyndt at tegne elektronikboksen. Tanken er en ret firkantet kasse, men med display og IR modtager, der går ned om kanten af rammen. Lige nu er de blot tegnet udenfor kassen. Desuden mangler der åbninger midtvejs på hver side til ledninger til skinnestrøm inde i elevatorerne, huller bagerst til stik til IR sensorer, endestop kontakter og stepper drivere samt et hul til USB stikket på ESP32 og DCC fra ECOS’en.

24/10: Print-layout og anbringelse af ledninger, stepper drivere osv. overvejet. Driverne kan ikke så godt puttes ind i elektronikboksen. De består af én stor køleplade. Så de skal kunne komme af med varmen. Jeg tænkte først på at anbringe driverne inde i rammen. Men nej. Det bliver bedst at anbringe det hele oven på. Driverne og strømforsyningen kan bare ligge løst. De går ingen steder, eftersom de vil ligge bag elektronikboksen og to kabelkanaler, som skal indeholde ledninger mellem elektronikboks og IR sensorer hhv. end-stop switche. Den røde plade på denne tegning er toppen af rammen:

Print layoutet har også fået en næste iteration, samtidig med, at jeg har besluttet mig for, at ledninger til skinnestrøm og stepper motorer skal ned gennem et par store huller midt i elektronikboksen. Lige under disse huller skal skinnestrømmen ledes gennem cable chains, der går lidt ned på bagsiden af hver elevatorstol.

26-27/10-2024: Kabinet til display og IR modtager designet og 3D printet. Desuden er elektronikken loddet sammen. Der er loddet ledninger i printet til relæmoduler, display og IR modtager, dvs. de enheder, der sidder inde i samme kasse som printet. Alle andre enheder forbindes via stik.

28/10 Elektronikken testet

Alt undtagen I2C (dvs. display og relæer) og DCC fungerede.

For I2C var alt galt. Jeg havde glemt ledningerne til 3,3 volt, data og clock. Jeg havde fået monteret 3,3 volt og stel til displayet forkert. Og jeg havde fået monteret pull-down modstande i stedet for pull-up. Det tog lidt tid at hitte ud af. Jeg testede helt uden modstandene. Og det virkede halvdelen af tiden. Det var bl.a. det, der forvirrede mig.

Og så manglede der også lige en 5 volt forsyning til DCC interfacet (dvs. optokobleren).

Alle fejlene kan i øvrigt ses på billedet ovenfor, som jeg faktisk anvendte til at finde fejlene.

11/11-24: Elektronikboksen udprintet

Låget passer lidt for godt. Jeg har haft det på og kunne kun få det af igen vha. to plastik-“brækjern”. Så der skal lige slibes lidt.

Translate »