Monthly Archives: January 2024

AI žudo internetą (ir youtube)

Neseniai žiūrėjau vieną tokį kaip ir “mokslinį” kanalą ir jo autorius skundėsi, kad pastaruoju laiku labai sumažėjo jo filmų peržiūros. Jis pabandė pasiieškoti pagal raktinius žodžius savo filmukų- ir jie pasirodė tik kažkelintam youtube puslapyje. O pirmosiose vietose pasipylė kažkaip panašios stilistikos “click bait” filmukai su AI generuotu “Screenshot”. Ir kas baisiausia, video vaizde buvo jo kadrai ir panašus į jo balsas. Balsas kažkaip ir panašus, bet kartu ir nelabai natūralus- tai buvo AI treniruotas pagal jo balsą. O youtube kol kas nelabai moka ieškoti “kopyraitų” pagal vaizdą…

Kitas gyvenimiškas vaizdelis- man migruojant iš seno kompiuterio į naują šiuos puslapius prireikė senai primirštų žinių apie linux. Ir pastebėjau, kad pirmieji atsakymai guglėje kažkokie labai gražiai surašyti, ir kaip į temą, bet nelabai padeda. Ir aš prisiminiau, kad panašiai skambėjo ChatGPT kai aš bandžiau šnekėti apie chemiją ir labai konkrečia jos sritį- PGM analizę keramikoje. Kaip ir esu šioks toks to reikalo specialistas ir ta tema domisi gana siauras žmonių ratas kuris visiškai nesidalina informacija viešai. Taiva- visi puslapiai buvo generuoti AI.

Ir paskutinis variantas. Naujam kompe pasileidžiau youtube ir pagalvojau kad noriu foninės muzikos. Pagal mano norus išmetė daug playlistų ir paspaudžiau pirmuosius. Skamba melodija, pradeda dainuoti- kažkas netaip. Balsas kaip ir panašus į Stingo, Bono, Axl ar net Fredžio, bet kažkaip ne ta tonacija ir skambesys…

Shazamas kaip ir nežino kas taip. Aš kaip ir melodijas atpažinau, bet panašu, kad dainuoja AI. Taigis, muzika pavogta, kaip ir “koveris” ir kaip guglė automatiškai nieko nesuseks. Ir manau pergeneruoti tokį “video kanalą” yra kaip apsysioti trys pirštus.

Toks AI panaudojimas užsidirbti pinigėliams manau kasa didelį kapą internetui kuri męs naudojam.

Galvaninis ryšis indaplovėje

Prisiprašė žmogus patikrinti kažkokios firmos indaplovę. Nes žmogui leido tarpinė, nu tai išardė, pataisė, sujungė ir pasijuto magiško dūmelio kvapas. Ir nebeveikia. Žmogus yra kokių 90% detalių tiekėjas į kromelį, tai negalėjau atsisakyti.

Va tokis PCB ir jame sudegė vienas PNP tranzistorius SOT-23 korpuse. Kas įdomiausia, būtent toks tranzistorius ir buvo kromelyje- valio, sunaudojom 1 tranzistorių. Apie 12999 vienetai dar liko.

Plačiau analizuojant schemą pastebėta anomalija kuri kiek mane nustebino. Nuotraukoje matosi, kad naudojama TOP, TINY ar kokia VIPER mikroschema maitinimo šaltinyje (prie didelio, 400V, elektrolito) ir net kažkoks transformatorius yra. Tačiau netikėtai testeris parodė, kad yra tiesioginis galvaninis ryšis tarp procesoriaus ir 230V jungties. Ir ne per PE laidininką. Schemos skambinimas parodė, kad išlygintas 230V minusas tiesiogiai prijungtas prie procesoriaus žemės ir automatiškai prie LED indikacijos ir visų mygtukų. Teoriškai, jei pažeisti LED ekraniuką, prakrapštyti bet kurį mygtuką ar jutiklį, visi šitie pažeidimai pavojingi smalsiems pirščiukams! Kodėl?!

Jei yra kažkoks TINY ir transformatorius, tai padaryti maitinimo šaltinį izoliuota yra juokų darbas- trafo apvijos ir viena foto pora atbuliniam ryšiui. Pats “pažadinimas” irgi įdomus (iki galo neišsiaiškinau), bet maitblokis pasileidžia nuo įtampos impulso tiesiai iš tinklo grandinių per mygtuką ir “užsirakina” (latch) per minėtą PNP tranzistorių. Tada jau pasileidžia MCU (beja tai STM32, tik ne F šeimos) ir jis pradeda nagrinėti ir valdyti indaplovę.

Pakeitus tranzistorių, valdymo schema veikia. Ar veikia indaplovė aš nežinau, nes neturiu pačios indaplovės ir nežadėjau jos taisyti. Svarbu pasileidžia elektronika ir net rodo laiką ir klaidos kodą.

Bet minus 230V ant mygtukų ir LED man vistiek nepatinka.

ARM48: USB HID host

Jei naudojamas STM32 čipas palaiko USB HOST režimą, tai prijungti USB įrenginį labai paprasta. Mano hardwarė labai paprasta- čipas ir dvi USB jungtys. Viena jungtis suprogramuota kaip virtualus COM portas skirta peržiūrėti rezultatus, o kita USB jungtis tai USB host. Čia galima prijungti pelę ir klavietūrą. Kiti HID įrenginiai nepalaikomi.
Primenu, kad HID klavietūra palaiko iki 6 klavišų nuspaudimus (neįskaitant modifikatorius: shift, control, alt…) ir atskirai siunčiami klavišų paspaudimai ir atleidimai.
Kad viskas veiktu, tereikia savo programoje pasirašyti callbacką:

  1. void USBH_HID_EventCallback(USBH_HandleTypeDef *phost)
  2. {
  3. char txt_buf[100];
  4. char t[4];
  5.  
  6. strcpy(t,"[x]");
  7. if(USBH_HID_GetDeviceType(phost) == HID_MOUSE) // if the HID is Mouse
  8. {
  9. HID_MOUSE_Info_TypeDef *Mouse_Info;
  10. Mouse_Info = USBH_HID_GetMouseInfo(phost); // Get the info
  11. int8_t dX_Val = Mouse_Info->x; // get the delta x value (note unsigned - signed conversion)
  12. int8_t dY_Val = Mouse_Info->y; // get the delta y value
  13.  
  14. int len = sprintf (txt_buf, "dX=%d, dY=%d, Button1=%d, Button2=%d, Button3=%d\r\n", dX_Val, dY_Val, Mouse_Info->buttons[0],Mouse_Info->buttons[1], Mouse_Info->buttons[2]);
  15. user_usb_tx((uint8_t *) txt_buf,len);
  16. }
  17. if(USBH_HID_GetDeviceType(phost) == HID_KEYBOARD)
  18. {
  19.  
  20. HID_KEYBD_Info_TypeDef *Keyboard_Info;
  21. Keyboard_Info = USBH_HID_GetKeybdInfo(phost); // get the info
  22. txt_buf[0]=0;
  23. unsigned char i;
  24. for(i=0;i<6;i++)
  25. {
  26. if(Keyboard_Info->keys[i] != OLDKEYS[i] )
  27. {
  28. if (Keyboard_Info->keys[i]==0) {strcat(txt_buf,"UPKEY:"); hex8(txt_buf,OLDKEYS[i]);t[1]=Scan2Char(OLDKEYS[i]); strcat(txt_buf,t);}
  29. else if (OLDKEYS[i]==0) {strcat(txt_buf,"DOWNKEY:"); hex8(txt_buf,Keyboard_Info->keys[i]);t[1]=Scan2Char(Keyboard_Info->keys[i]); strcat(txt_buf,t);}
  30. else {strcat(txt_buf,"ERR:"); hex8(txt_buf,Keyboard_Info->keys[i]); strcat(txt_buf,"-");hex8(txt_buf,OLDKEYS[i]);}
  31. }
  32. OLDKEYS[i]=Keyboard_Info->keys[i];
  33. }
  34. strcat(txt_buf,"\r\n");
  35. user_print_usb( txt_buf);
  36. }
  37. }

Pačiam HID reporte visada transliuojami visi nuspausti klavišai, todėl, jei reikia susiderinti su PS2 ar senesniu standartu, reikia tikrinti, koks klavišas nuspaustas ir koks paleistas. Ta daro ciklas 24-33 eilutėse.
Rezultatas:


UPKEY:12[o]
DOWNKEY:13[p]
UPKEY:13[p]
DOWNKEY:2F[[]
UPKEY:2F[[]
DOWNKEY:30[]]
UPKEY:30[]]
DOWNKEY:31[\]
UPKEY:31[\]
DOWNKEY:04[q]
DOWNKEY:16[s]
DOWNKEY:07[d]
DOWNKEY:09[f]


DOWNKEY:2C[ ]
UPKEY:16[s]
UPKEY:07[d]
UPKEY:09[f]
UPKEY:04[q]
UPKEY:2C[ ]
DOWNKEY:0B[h]
UPKEY:0B[h]

Visas demo softo source code čia: STM32CubeMX USB host HID demo source code.

Nerusiškas auksas

Paprastai šnekama, kad tarbiniai žmonės dėjo daug aukso ant detalių… tačiau spėju, kad dėl savo atsilikimo, męs nematėm vakarietiško aukso.

Čia buvo kažkokia radija ar šiaip hifi. Deja ją sulaužė jau tie, kurie atvežė plokštes į supirkimą. Komplekte dar buvo keturi paprasti NPN tranzistoriai. O dryžuotų buvo daugiau, bet užteko vieno kolekcijai.

Spėju, kad kokie nors 70-tieji metai. Bet darlingtonas macnas- jei čia BD700, tai 70..80V ir apie 8A. 70W išskiriamos galios? Gamintojas Motorola. Mažiukas irgi visas auksinis. Dar patinka, kad ant metalo yra BCE raidelės. Pas mažylį- centrinė koja B, bet tvirtinimo detalė C.

Tranzistoriai gyvi, tačiau kiniškas matuoklis nesugebėjo išmatuoti. O kas per MPS007 aš neradau.

Su Naujais, 2024 metais!

Sveikinu visus su Naujais Metais!

(Nu nepatinka mano telefonui ta bjauri mėlyna spalva. Pakeisti negaliu, o nenaudoti irgi negaliu, nes turiu ekraniukų gal 100 vienetų.)

Ką čia palinkėti? Kaip senas diedas- laimės ir sveikatos! Kaip elektronikos megėjas- mažiau magiškų dūmų, ir nepaimti lituoklio už ne to galo. Kaip kompiuteristas- kad mažiau reikėtu migruoti visą softą į kitos kartos OS. Kaip chemikas- kad nusėstu kai reikia nusodinti, kad ištirptu kai reikia ištirpinti. Kaip megėjas statybininkas- kad nereikėtu bendrauti su tikrais statybininkais.