Index
Index forum Index forum
Autentificare Autentificare
Inregistrare Inregistrare
Cine este online Cine este online
Galerie imagini Galerie imagini
Calendar evenim. Calendar evenim.
Cautare detaliata Cautare detaliata
Ghid forum Ghid forum
Album astrofoto
Eclisa_Soare_03_10_2005.jpg
Imagine aleatoare
Blog
Inregistreaza-te pe forumul astronomy.ro
Colaboratori

Te intereseaza un domeniu al astronomiei si ai vrea sa scrii pentru siteul nostru? Alatura-te echipei noastre.

Meteo
Vremea in Bucuresti
Statistici forum
Numar total de mesaje in forum: 224735
Numar de utilizatori inregistrati: 2837
Cel mai nou utilizator inregistrat: Adrian T.
Cei mai multi utilizatori conectati au fost 543 la data de Vin Mar 29, 2024
Actualmente sunt 0 utilizatori pe chat   
Aceste date se bazeaza pe utilizatorii activi de peste 5 minute
Legenda
Mesaje noi Mesaje noi
Nu sunt mesaje noi Nu sunt mesaje noi
Forumul este inchis Forumul este inchis

DIY ASCOM powerbox


Du-te la pagina Anterioara  1, 2, 3, 4  Urmatoare
Creaza un subiect nou   Raspunde la subiect  

DIY / ATM / Reparatii

Subiectul anterior :: Subiectul urmator  
Afiseaza mesajele pentru a le previzualiza:   
Autor Mesaj
nobody
Membru
Membru


Data inscrierii: 02 Apr 2010
Mesaje: 4797

Motto: Never ever give up !

Localitate: Nowhere

MesajTrimis: 28 Ian 2024 03:04 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Pai vendorii is permit AI enhacend crapware.

Pentru AVR am mai folosit un compilator dragut, culmea facut in Romanai: http://www.hpinfotech.ro/cvavr-features.html
Merge mai bine ca GCC, mai ailes la constantele stocate in FLASH.
Arduino iti face buffer overflow la stringuri daca n-ai grija, le trateaza ca obiecte, le tot muta si rasmuta pana ajunge de-ti scrie si peste registrii si IO. Cand am facut debugging si m-am uitat in surse, n-avea nici o urma de protectie in bibliotecile de baza. This sht is not for me. Scuze de divagatie, eu am facut scoala pe Z80. 16k ROM, 6k video RAM, si restu pana la 64k, RAM liber.

Ca senzor as alege unu ce are o interfata standad hardware, i2C, SPI, nu bit-bang. Iti mai salveaza timp de procesor si mai putine sanse de rateuri la comunicatie.
Sus
zoth
Membru
Membru


Data inscrierii: 31 Mar 2006
Mesaje: 5528

Motto: decat ceva prost, mai bine nimic bun ...

Localitate: Bucuresti

MesajTrimis: 28 Ian 2024 09:38 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Citat:
... eu am facut scoala pe Z80.


Uau!! inseamna ca nu suntem departe Very Happy , eu am facut-o pe 8080 si apoi am rafinat-o pe Z80.
Poate si din cauza asta nu mi-au mai placut microcontrolerele cu arhitectura lor oarecum impusa ...

Scuze de oftopic si spor pe mai departe!

_________________
Van 8x42ED4; AR60 f14; AR80 f15; TS102SD; Vixen NA130 SSWT
Sus
varadinagypal
Membru
Membru


Data inscrierii: 27 Iul 2013
Mesaje: 186



Localitate: Cluj-Napoca

MesajTrimis: 28 Ian 2024 15:51 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

offtopic, dar na, am pornit ceva aici,

Sunt putin mai tinerel se pare, eu am inceput cu asm x86 pe de o parte, si citind codul sursa de librarii din delphi proaspat aparut pe cealalta parte. De aceea recunosc cand cineva bate campii ca legacy code, dar pe vremea aia era bun - nu, nene, nici in urma cu treizeci de ani nu se scriau balarii cum intalnesc mai peste tot.

Eh, stringuri, folosesc exclusiv partea de C in arduino, pana si cu ESP32. Fara C++, tocmai ca sa nu am surprize. Am dispozitive care ruleaza brici de luni de zile, si se reseteaza doar cand se ia curentul. Iar cu constantele in flash, subscriu, am mai scris cod javascript ca sa genereze cod C in diferite gusturi: cu FP, cu concatenari sau zstringuri ca sa vad cand cum arata binarul respectiv ramii disponibili.

La locul lor, sunt dispozitive foarte mega capabile jucariile astea arduino. Iar legat de vendorii profi, va pot arata document public de la Renesas in care le cere utilizatorilor sa nu foloseasca mijlocul ramilor daca cpu ruleaza la 240MHz ca apar flag-uri de paritate, nu si erori, dar flag-uri.
Sus
valy
Membru
Membru


Data inscrierii: 21 Iul 2005
Mesaje: 10653



Localitate: Bucuresti

MesajTrimis: 28 Ian 2024 19:12 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Tot offtopic, dar cred ca Arduino este mai curand pt. rapid prototyping, nefiind un sistem sa zicem "critical mission aerospace grade"...totusi.


nobody a scris:
.. in schimb procesorul principal e pe rezonator ceramic, de te doare capul daca ai nevoie de un timing mai precis.
Deci d'aia imi "sarea pasi" cand l-am pus sa comande PWM un motor!?
Sus
nobody
Membru
Membru


Data inscrierii: 02 Apr 2010
Mesaje: 4797

Motto: Never ever give up !

Localitate: Nowhere

MesajTrimis: 29 Ian 2024 19:59 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Rezonatorul ala ceramic iti baga un drift care se acumuleaza in timp.
Toleranta la asta folosit pe Arduino e de +-0.5% ... nu pare mult la prima vedere, dar un ceas cu pendula e mult mai precis.
Culmea e ca la procesorul cu USB de pe aceeasi placa au folosit un cuart de aceeasi frecventa... de ce ?
Pentru ca in toleranta aia nu ar functiona partea de USB.
Si tot culmea este ca puteau folosi acel clock si la procesorul principal, ca are iesire de buffered clock pe un pin care sta nefolosit.
Adica o carpeala hardware.

Pe forumuri raspunsul este "da la ce-ti trebuie asa precizie?" ... ca sa reglez un ceas cu cuc, nu invers.

Nu stiu de ce "sarea pasi" la tine, nu cred ca are legatura cu acest drift, poate altceva, de exemplu milisecunda bisecta Arduino:
millis() is incremented (for 16 MHz AVR chips and some others) every 1.024 milliseconds, then incrementing by 2 (rather than 1) every 41 or 42 ticks, to pull it back into synch; thus some millis() values are skipped Rolling Eyes
Sus
valy
Membru
Membru


Data inscrierii: 21 Iul 2005
Mesaje: 10653



Localitate: Bucuresti

MesajTrimis: 29 Ian 2024 21:15 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Parca am folosit micros(), nu mai stiu exact..

Nu e o gresala in specs, milis se incrementeaza la 1024 microseconds?
Sus
varadinagypal
Membru
Membru


Data inscrierii: 27 Iul 2013
Mesaje: 186



Localitate: Cluj-Napoca

MesajTrimis: 29 Ian 2024 21:50 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Legat de Arduino, eu as aprecia aspectul ca exista in primul rand ca idee. E un layer de abstractizare, un standard chiar portabil, decent pentru serial, decent pentru i2c, decent pentru GPIO, decent pentru intreruperi si decent pentru timp. Nu e aero-space-medical-automotiv ready, si ce, nici nu pretinde ca ar fi, deci e within specs. Au si familia Portenta.

Function/prototype hoisting cand ai un singur fisier, sau macar in cadrul aceluias fisier, la fel mi se pare o idee buna. Deci serios, warning: implicit declaration of function cand e acolo cu trei linii mai jos? Who needs that? Am vazut cod serios stricand stackul la variadic arguments, ca insista ca functia din acelasi fisier nu ar avea antetul declarat, si zbam, byebye double, ca remapat la int32 (arhitectura) si arrivederci stack.

Plus, sa nu uitam ca ESP32 are nucleu Arduino, are si microul RP2040, nu e doar familia AVR.

Nu vreti sa stiti cate artificii am vazut in cod "profi", cat scarpinat la picioare de lemn, roti reinventate sub forma nitel patratica, las' ca merge si asa, si pentru ca acei genii - stiti voi, garda veche - nu au scris absolut niciun layer de abstractizare, functii inline macar, macrouri macar, ci au trantit copy-paste-paste-paste dar cu variabilele locale pe unde si ce, cateodata shadowed global, cateodata nu, ca "economisim la callstack", nici dumnezeul nu mai face ca acel business logic sa ruleze pe alt micro fara sa rescrii din temelie.

Daca e sa aleg intre Arduino si demiurgii din garda veche (in afara de chiar top gen Knuth si din astia, ori cu kernelul), aleg Arduino x100.
Sus
varadinagypal
Membru
Membru


Data inscrierii: 27 Iul 2013
Mesaje: 186



Localitate: Cluj-Napoca

MesajTrimis: 29 Ian 2024 22:03 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Oh, Renesas Synergy mai e cat de cat decent ca RTOS, cu niste mentiuni de rigoare: timpul e un pain in the ass, calibrarea rtc-ului e un pain in the ass, filesystem-ul e un pain in the ass la patrat rau de tot, networking-ul e un pain in the ass ca-i poti otravi lejer packet pool-ul, plus, acum s-a bagat microsoft, ca nu au stricat deja destul in lume, isi mai acapareaza domenii de stricat. Dar siliconul e acceptabil. Am mai pomenit de parity in rami.

Ei, arduino uno rev4 e bazat pe silicon renesas, nu mai e avr. DAR: ramane interfata soft. Pentru ca e una sa numeri bitii din registri si alta sa scrii programe, ie business logic.
Sus
nobody
Membru
Membru


Data inscrierii: 02 Apr 2010
Mesaje: 4797

Motto: Never ever give up !

Localitate: Nowhere

MesajTrimis: 30 Ian 2024 16:33 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

La UNO R4 au rezolvat cu cuartu' ... l-au scos de tot ... au trecut pe oscilatorul intern +-2%

P.S. Pentru mine ideea de 'microcontroller' este legata de 'real-time operating'. Mi se apre ca Arduino se indeparteaza de acest concept tocmai pe principiul 'las' ca merge si asa'.
Sus
varadinagypal
Membru
Membru


Data inscrierii: 27 Iul 2013
Mesaje: 186



Localitate: Cluj-Napoca

MesajTrimis: 30 Ian 2024 22:55 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

@nobody si ceilalti, va invit la acest fir din forum, pentru a-i lasa aer colegului cu proiectul, ca ne-am cam bagat peste el ca niste Very Happy Very Happy derbedei Very Happy Very Happy cu offtopic-ul nostru

https://www.astronomy.ro/forum/viewtopic.php?p=230039
Sus
AVD
Membru
Membru


Data inscrierii: 04 Iun 2022
Mesaje: 87



Localitate: Dudu

MesajTrimis: 07 Feb 2024 17:07 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Dupa ceva timp de lucrat si testat, am revenit cu versiunea 2. Imbunatatita si rafinata.


https://github.com/florindumitrescu94/DashBoard_PowerBox_V2

Imbunatatiri fata de prima versiune:

-Cate o siguranta resetabila de 2.5A pe fiecare iesire si o siguranta mare de 15A pe intrare
-Protectie la tensiune inversa
-Comutatie a celor 4 mufe DC prin P-MOS
-Automatizare a incalzitoarelor anti-roua (momentan, doar prin atasarea unor termistori ce vor fi montati sub incalzitoare, dar planuiesc sa gasesc o metoda de a controla puterea doar pe baza conditiilor atmosferice (dew point, umiditate relativa si temperatura ambientala)


Documentatia completa poate fi gasita pe pagina Wiki.

varadinagypal - Multumesc de sugestiile si exemplele de documentatie. Sper ca am facut o treaba macar pe jumatate buna cu aceasta noua versiune Very Happy

Orice sugestie este binevenita
Spor la construit!
Sus
varadinagypal
Membru
Membru


Data inscrierii: 27 Iul 2013
Mesaje: 186



Localitate: Cluj-Napoca

MesajTrimis: 08 Feb 2024 18:54 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

da Smile
Sus
nobody
Membru
Membru


Data inscrierii: 02 Apr 2010
Mesaje: 4797

Motto: Never ever give up !

Localitate: Nowhere

MesajTrimis: 11 Feb 2024 00:08 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Felicitari pentru progresele de la Layer 1 !

Acu' la layere superioare:
Citat:
Measuring voltage, current, power and total power consumption

Since we are dealing with mostly PWM controlled power, calculating the current usage without implying a means to average out the readings will yeld to very jumpy and innacurate results. Therefore, I have implemented an array that gets updated over time, then average the sum of all the values in the array to obtain the average current usage over 150 cycles. The GET_POWER() function runs in a loop everytime.

To determine the total power consumption since device has been connected, we need to measure the total power consumption in W*h per each cycle, then add that up to a total. Since the Arduino Nano floating point only allows for 2 decimals of precision, we need to first calculate the power in milliseconds, then divide that power by 3600000 (number of milliseconds in an hour).


Nu prea am inteles la ce te referi cand zici ca float are numai 2 zecimale precizie.
In principiu are 23 de biti brut (fara semne si exponent).
Dar poti folosi intregi daca alegi subunitati de masura mai potrivite si mai intuitive, de ex. mV, uV, mA, uA ...
Asa eviti si multe impartiri, coversii de tip (multe implicite/ascunse), confuzii si alte complicatii inutile.

Cu un layer si mai sus, mie mi se pare ca functia GET_POWER() face altceva decat crezi sau intentionezi.
Poate am inteles gresit, te rog sa ma corectezi daca-i cazul.

PWR_TOTAL vrea sa fie energia in Wh consumata/acumulata pe tot timpul functionarii ca un contor de consum de la instalatia electrica.
Iei un timestamp 'time1' la inceputul masuratorii.
Iei un burst 150 de samples de tensiune si faci media aritmetica in V.
Iei un burst 150 de samples de curent si faci media aritmetica in A.
Valoarea asta medie o salvezi intr-un array (wrap arround) care tine ultimele 150 de medii.
Parcurgi tot array-ul si calculezi media pe ultimele 150 de medii ca un filtru pentru fluctuatiile date de PWM.
Calculezi puterea mendie PWR = VOLT * AMP in W.
Iei un timestamp 'time2' la sfarsitul masuratorii.

Apoi integrezi energia consumata inmultind puterea medie PWR cu timpul cat a durat masuratoarea (time2-time1) si adaugand-o la consumul cumulat anterior in Ws (PWR_TOTAL_S). Aici poate mai bine folosesti submultiplii zeicmali de genul mWh, uWh. Dar nu asta e problema, ci acel interval de timp subliniat mai sus. Tu acumulezi numai energia doar din timpul masuratorii, nu de la o masuratoare la alta. asta se poate corecta usor folosind un timestamp anterior de cand ai apelat ultima data PWR_TOTAL.
Cred ca mai poti simplifica masuratorile si mediile intr-un singur ciclu, masori alternativ curentul si tensiunea (si la tensiune poti avea fluctuatii in timpul PWM) sa fie cat mai apropiate si faci o medie generala de putere, sau energie consumata.
Sus
AVD
Membru
Membru


Data inscrierii: 04 Iun 2022
Mesaje: 87



Localitate: Dudu

MesajTrimis: 11 Feb 2024 02:24 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Mulțumesc!

Și mulțumesc de observația legata de timpul între ciclurile de rulare ale Get_power.. nu mi-am dat seama ca vor fi câteva milisecunde pierdute în care nu masor nimic. Legat de precizie, am încercat sa atribui unei variabile raportul a altor doua variabile, care îmi rezulta 0.9834(..). În momentul când am folosit acea variabila intr-o formula, a fost tratata ca 0.1. Când am încercat sa folosesc un calcul care sa îmi măsoare energia consumata direct în Wh, din nou, m-am lovit de aceeași problema. Energia consumata în 20mS era 0.000ceva. Formula folosita anterior era energia_totala += (puterea*delta_t)/3600000. Aceasta formula rezulta 0.000ceva și era trunchiat la 0.00. Pe parcursul întregii seri, energia_totala a rămas 0 (dacă adaugi 0.00 la 0, tot 0 ramane). Scrie lucrul asta și pe site-ul arduino (și double tot aceeași problema are), dar poate nu m-am exprimat eu corect..

Get_power se ocupa de măsurarea tuturor datelor despre energia electrica (curent, tensiune, putere, energie consumata). Am încercat sa fac media curentului intr-un singur ciclu și varia foarte mult, asa ca am mers pe o medie pe un timp mai lung, in care orice schimbare brusca este amortizata.
Sus
nobody
Membru
Membru


Data inscrierii: 02 Apr 2010
Mesaje: 4797

Motto: Never ever give up !

Localitate: Nowhere

MesajTrimis: 11 Feb 2024 04:22 Download mesaj
Titlul subiectului:
Raspunde cu citat (quote)

Ai niste exemple concrete sa le testez ?
O bucata de cod care nu functiona cum te asteptai sau chiar exemple de pe site-ul arduino.

Probleme de genul asta se pot rezolva cu 'type casting', chiar compilatorul iti mai da warning-uri ca este o situatie ambigua. Asta daca nu sunt chiar bug-uri, double e cam buggy in AVR gcc, dar float ar trebui sa functioneze.

P.S.
Daca e vorba de rotunjiri si trunchieri de precizie la float ca aici:
https://forum.arduino.cc/t/strange-float-or-rounding-error/469408
atunci este si o problema de optimizare a formulelor, sau a unitatilor de masura alese.
Float-ul poti sa-l consideri ca o scara logaritmica, rezolutia este relativa la ordinul de marime.
De ex. daca aduni un numar mic la un numar mare, vei pierde din precizie la numarul mic, sau il pierzi chiar de tot.
Sus
Afiseaza mesajele pentru a le previzualiza:   
Creaza un subiect nou   Raspunde la subiect   DIY / ATM / Reparatii Du-te la pagina Anterioara  1, 2, 3, 4  Urmatoare

Download topic
Pagina 2 din 4
 
Mergi direct la:  
Nu puteti crea un subiect nou in acest forum
Nu puteti raspunde in subiectele acestui forum
Nu puteti modifica mesajele proprii din acest forum
Nu puteti sterge mesajele proprii din acest forum
Nu puteti vota in chestionarele din acest forum
Nu puteti atasa fisiere in acest forum
Puteti descarca fisiere in acest forum
© 2015 astronomy.ro
Termeni si conditii generale      Termeni si conditii forum      Contact