Category Archives: Analogue

ARM47 ir PID dalis #4

O dabar pašnekėsim apie STM32F4 serijos variantą ir source code. Pirmiausia- kodėl 4 serija? Todėl, kad tokia PCB pasitaikė po ranka. Ir tikrai ne dėl kažkokio mistinio FPU ar net DSP. Ir dar neaišku, ar mano turimas MCU yra originalas, o ne koks nors permarkiruotas šlamštas. Šaltinis solidus, bet kodėl jie juos išmetė? Reikia surasti kur nors panaudotą procesorių ir palyginti.

Source code yra sugeneruotas su CubeMX programa, kompiliuota su gcc. Ryšiai su kubiko paprogramėm tik per callback. Ir tai tik naudojam USB biblioteką (virtualus COM portas) ir taimerių pertraukimus. ADC skaitom blokavimo režime.

Pats PID skaičiavimas, float variantas visiškai toks pats kaip ir teoriniam variante:

float pid_generic(float measured, float setpoint, float amplif)
{
float output;
float deritative;
float error;
float proportional;
 
error = (setpoint - measured)/10;
proportional = error;
 
integral=integral + error * pid_dt;
deritative = (error - old_error) / pid_dt;
old_error = error;
 
output = (PID_KP * proportional + PID_KI * integral + PID_KD * deritative) * amplif;
 
return output;
}

Atsirado papildomas parametras “amplif” – tai bendro rezultato daugiklis, kaip ir sustiprinimas (ar susilpninimas). Teoriškai tą patį galima atlikti su pagrindiniais parametrais (P, I, D), bet taip lengviau priderinti prie “krosnelės” galingumo: kaitinimas dirba su integer skaičiais, ir PID rezultatas apsiapvalina. Taip prarandam “jautrumą”. Ir dar temperatūros parodymus pasmulkinam- tik dėl koeficientų.

uint32_t CalcTemp(void)
{
uint32_t a;
a=median_filter(adc_read_blocking(ADC_CHANNEL_4));
a=median_filter(adc_read_blocking(ADC_CHANNEL_4));
//a=median_filter(adc_read_blocking(ADC_CHANNEL_4));
// 786 - max t, 0.62V ->1655
// 3529 - kambario t, 2.83V -> 283
return (4096-a)/2; //12 bitų max apverčiam ir pašalinam LSB.
}
 

Dėl ADC blogumo, matuojam kelis kartus, invertuojam (dėl schemotechnikos išėjimas mažėja didėjant temperatūrai) ir pašalinam mažiausią bitą, nes jis rodo kvailystes. Funkcija “median filter” vogta iš interneto. Tai funkcija, kuri teoriškai turi išfiltruoti sporadiškus nukrypimus: jei eina 5, 6, 4, 3, 100 – tai tas šimtas kaip ir ne į temą. Kiek veikia per daug netikrinau. Manau, reikia dar padidinti buferį.

  1. readtemp=CalcTemp();
  2. pwm=PID(readtemp, SETTEMP);
  3. SetPWM(pwm);

O čia pats pagrindinis ciklas, kuris kartojamas sistemingai: 1 – nuskaitom, 2 – paskaičiuojam. 3 – valdom kaitinimą.

Visas likęs source kodas aptarnauja kontrolerio valdymą per terminalą (galima keisti parametrus) ir duomenų išmetimą analizei. Tai tik eksperimentinis variantas- darbiniam trūksta dar visokių apsaugų, normalaus valdymo ir indikacijos. Ir aišku, išėjimas čia PWM, kad tinkama mažam rezistoriui, bet ne tikram šildytuvui. Dar nesugalvojau, kaip padaryti korektiškai proporcinį valdymą realiai rėlei ar 50Hz simistoriniam reguliatoriui. Jei užteks kantrybės, tema bus vystoma.

Pats pilnas STM32F446 PID controller source code skirtas gcc ir kartu CubeMX projekto failas (versija užrakinta posto datai, galimi patobulinimai). Prie papildų- median filter, ftoa ir usb paprogramės. Visa mano kūryba “USER” aplanke.

Uher report 4000 ir 4200

Tai grynas 1966 metų produktas. Tačiau jau gryni tranzistoriai. Tai Uher Report 4000 serijos reporterių magnetofonai. Blogos būklės tokie magiukai parduodami už metalo laužo kainą, geri- artėja prie 500€. Visi magnetofonai turi vieną nemalonų defektą- greičių perjungimas ir ryšis su capstan’ų atliekamas frikcionu. O per tiek metų guma suakmenėja ir nebėra gero kontakto. O dar papildomai atsiranda visokie ūžesiai ir braškėjimai. Kiti dirželiai perkami internetuose ir lengvai keičiami.

Uher report 4200
Čia “stereo” versija. Tačiau tai ne tas stereo kur visi naudoja, o “vienpusis”, nes magiukas turi galvą tik su dviem takeliais per visą juostą.
“Rankinė greičių dėžė” dešinėje aparato iš tikro ir yra rankinė greičių dėžė, čia persijungia juostos traukimo greitis ir įsijungia motoriukas.

They had four speeds: 7½ inches per second (i.p.s. or in/s), 3¾ i.p.s., 1⅞ i.p.s., and 15/16 i.p.s. [19 cm per second (cm/s), 9.5 cm/s, 4.75 cm/s, and 2.38 cm/s].

Continue reading →

Švilpiko dienos radija

Nu gal ne visai, originale tai Panasonic RC-6025, o pas mane Sanyo Sterocast RM5320, tikriausiai 1972 metų gamybos (gali būti ir su kitu brendu, kad ir Siemens alpha). Tikrai japoniška, nes visur tik “made in Japan”, ant garsiakalbio Sanyo ir panašiai.
Sanyo sterocast
Kodėl žinau, kad yra kitu brendų? Ogi todėl, kad pirmoji radija kur pirkau buvo Siemens. Bet ji ne tik su sugadintu motoriuku (plastikinis dantratis be dantų), bet ją man dar ir stiprokai sudaužė- 70-tųjų plastikas labai trapus.
Continue reading →

UP2NV – bandom remontuoti

Nutariau kiek paremontuoti jau žinomą transyverį UP2NV. Sukonstravau kiek geresnę anteną, netgi su nauja antena pagavau kelias radijo stotis dienos metu. Pradėjau nagrinėtis kaip veikia siuntimas. Pas telegrafą ateina du valdymo laidai- “siuntimas” ir “raktas”. Siuntimas eina tiesiai į rėlę, o “raktas” eina į kelis mazgus- siuntimo modulį ir monitorinimo generatorių kuris daro “pyyp” kai sujungiami kontaktai. Netgi ir nesiuntimo režime. Tačiau jis to nedarė. Tiek to. Siuntimo režime kita radija CW režime užfiksavo ne tik siuntimą, bet kad tas CW užmoduliuotas 50/100Hz. Vadinasi vėl negyvi kondensatoriai. Dar buvo pastebėta, kad relės kai kada nesuveikia. Ko pasekoje CW duoda nuspaustą “raktą” kai jis nenuspaustas- siųstuvas spjauna pilną galią.

Pradėjau lupti modulį su monitorinimo generatorium, nes pamačiau vieną palaidą laidą. Ir iškarto supratau, kad tai ne pramoninis aparatas- remontuoti labai sunku, nes laidai per trumpi. Negalima ištraukti modulį remontui. Reikia numontuoti šoninę sienelę, kad išlituoti patį moduliuką. Dar bėda- ant laidų pynės beveik neliko numeracijos. Tai dabar bus pisliavos surenkant. Ir iškarto buvo pastebėta, kad schema PCB kažkokia supaprastinta (neatitinka literatūrai). Ir dar iškarto buvo pastebėta, kad vienas tranzistorius pramuštas kiaurai per E-C:
Rusiskas tranzistorius
Continue reading →

FM trukd… stotis

Labai labai senai rašiau apie FM generatorių. Tada dar nebuvo visokių Kinų su jų aliekspresais ir šiaip buvo kitaip. Dabar galima nusipirkti moduliukus ir padaryti tą patį kompaktiškiau ir gal geriau (bent jau taip atrodo).
Istorija tokia- buvo lempinis generatorius, poto kažkoks kastruotas stiprintuvas, poto prie lempinio prisukom kinišką stiprintuvą. O poto paprašė manęs padaryti “campus radio”. Ilgai negalvojau, ir sudėjau kiniškus modulius į vieną dėžutę:
FM moduliatorius ir stiprintuvas
Papildomai stabilizatorius (5V, 7805) moduliatoriui ir reguliuojamas (LM317) galios stiprintuvui. Metalinis korpusas, biški kondensatorių ir feritinių elementų… (grynas analogas, dėl trukdžių).

Prisipažinsiu, kiek galingesnės “radio” technikos nekonstravau. Bet šiokius tokius pagrindus turiu. Bet šis konkretus projektas kiek užkniso, pagrinde dėl kiniškų modulių ir nulio dokumentacijos. Ir aišku dėl … skaitmeninio amžiaus. Ne tik laboratorinis maitblokis, bet ir skaitmeninis multimetras pradeda durniuoti ir rodyti nesamones jei tik kiek padidini galią. Ir ten tikrai ne vatai, o vato dalys. O aš nebeatsimenu, kur turiu dar tarybini multimetrą… nežinau kiek srovės ir kiek įtampos ši dėžutė ima.
Kita bėda- fazendoje (ir kogero šiaip namuose) nėra kiek padoresnės FM radijukės. Kiniškos pigios taip pat, kaip ir skaitmeniniai multimetrai gauna insultą ir neveikia prie siuntiko. Kiek pagelbėjo senovinis sudaužytas JVC boomboxas, ten grynas analogas- tačiau arti stiprintuvo signalą pasigauna gal per penktadalį skalės.
Prie tokių trukdžių, net pats moduliatorius grybavo- nuotraukoje matosi kairėje trys juodi laidai- tai audio įėjimas. Per juos pasigaudavo gliukus- tik bandymų metodų radau poziciją kur netrukdė.

Po keletos valandų eksperimentų pradėjo “švariai” groti ir aš jau pradėjau džiaugtis- pasirodo per anksti. Matyt suknistas kiniškas moduliatorius svaidosi harmonikas į visas puses. Nėra jos tokios stiprios- aš tikrai nepagaunu mano transliacijos “kitoje vietoje” nei nustatyta, bet kažkodėl tikros radio stotys pradeda blogai groti. Per kur “muša” aš nežinau…

Nutariau kiek pristabdyti eksperimentus… kieme gražiai nulijo stiprus lietus, gražus ir gaivus oras… staiga namiškiai sako, vėjas ir lietus “nusuko” anteną- TV neveikia. ¿Qué? Ogi šis siųstuvas užmuša dar ir skaitmeninę televiziją. Nu čia tai tikrai harmonikos. Va dabar dar ir filtrą reikės konstruoti. Ir dar pertvarą tarp moduliatoriaus ir stiprintuvo.

Bandau pasigaminti vektorinį displėjų

Yra vienas porūšis displėjuose- vektoriniai. Tai labai reta egzotika, aš pats mačiau tik vieną kartą gyvai, netgi su šviesos plunksna. Tačiau neseniai sužinojau, kad buvo gaminamas buitinis žaidimų kompiuteris su vektoriniu displėju. Ir tai ne Atari Asteroids, o tikras mažas žaidimų kompiuteris su keičiamais kartridžais.
Kompiuteris vadinasi Vectrex. Deja jis kiek retesnis ir todėl stipriai brangesnis. Tačiau yra pagamintas konstruktorius- Scopetrex. Jei turi visas detales, tai PCB kainuoja kažkur 20€. Tačiau konstruktorius tai tik kompiuteriukas, o jungiasi tipo prie osciloskopo. Deja veikiančio su CRT nebeturiu, o ant skaitmeninio (bent jau mano) vaizdas tragiškas. Todėl kilo mintis pasigaminti kažką panašaus į vektorinį monitorių. Juolab, kad po kelių mėnesių laukimo į rankas papuolė du CRT “monitoriai”: vienas su žaliu ekranu, Japoniškas; o tuo tarpu kitas- tarybinio ūkio pasiekimas, monitorius БОСИ… Kodėl “BOSI”? Toks keistokas pavadinimas kaip tarybiniui produktui? Ogi nežinau. Nes visas “kompleksas” vadinosi 2Р22 (2R22), o BOSI išsišifruojasi kaip “блок отоброжения симбольной информаци” (simbolinės informacijos rodymo blokas). Kodėl ne “monitorius”? Todėl, kad priešas nesusigaudytu. Kito varianto nematau.
blokas bosi
Realiai tai CRT monitorius su keistoka skleistine- ji neturi autogeneracinio režimo. Kad veiktu skleistinė, BOSI turi gauti tikslius sinchroimpulsus. Tik tada pradeda viskas veikti ir užsižiebia monitorius.
Continue reading →

M-C9001N CRT monitorius

Mano kitam “konstruktoriui” reikia totalios egzotikos- vektorinio displėjaus. Skaitmeninis osciloskopas vos vos rodo vaizdo užuomazgas, o kineskopiniai seniai sudeginti. Todėl pradėjau ieškoti mažų, juodai-baltų televizorių/monitorių. O tokių jau nelabai yra. Ypač, kai reikia, kad veiktu nuo žemos įtampos ir dydis neper baisiausias. Mūsuose (darbe) jau seniai tokios senovės neatneša. Ir o stebukle, vakar atvežė ypač seno ekskliuzyvo. Pusiau tarybinės, pusiau Bosch gamybos CNC staklės valdymo blokus ištrauktus “bulgarkės pagalbą”. Nors blokus sumetė į krūvą, esantys monitoriai nesudužo. Gaila, bet CNC staklės buvo modernizuotos, tai dauguma monitorių buvo spalvoti, dideli CRT ir net vienas LCD. Originalūs buvo tik du- vienas tarybinis, o kitas Panasonic/Matsushita/Bosch M-C9001N:

CRT M-C9001N display
Nors buvo apipiltas vandeniu, tepalu ir dulkėmis, korpusas susilankstė nuo smūgio į betoną, viduje esantis CRT monitorius visiškai sveikas. Biški pakibirkščiavo ir veikia. Reikėjo tik prisukti “brightness” kintamą rezistorių ir paduoti video signalą. Vartoja apie 13W iš 12V maitinimo. Ir šviečia FallOutiškai, žaliai.

CRT M-C9001N display
Čia matosi, kad CNC staklėsė dirbo ilgai. Labai ilgai.

Dar liko tarybinis monitorius, kuris biški labiau išlenktas ir kiek didesnis. Jei jis pasileis, tai žaliasis nebus gadinamas- labai jau hipsteriškai jis atrodo. Nes norint perdaryti iš skanuojančio monitoriaus į vektorinį, tenka beveik pilnai išmesti visus vidurius. Tai geriau išmesti tarybinius Jerevano kondikus (ir KM-kes), nei kuklius Japoniškus komponentus.

P.S. Dar radau 3 vnt. 5.25″ FDD ir “clicker” klavietūrą. Irgi ekskliuzyvai.