Ja da sam na tvom mestu PCB dizajn bih ostavio za kraj.
Mnogo te posla čeka ( a i izmena ) do tog trenutka.
Prvo napravi blok šemu onoga što želiš. I oko ovoga na izgled jednostavnog koraka ima puno posla.
Potom detaljna razrada svih pojedinačnih blokova.
Svaki taj blok kada jednom savladaš i uradiš, ostaje "GOTOV" za dalju upotrebu u narednim PLC.
Evo, za početak uradi Full šemu digitalnog ulaza sa optokaplerom ( dobar izbor je 6N137) , i predvidi :
- low pass na ulazu sa promenljivom vremeskom konstantom ( kasnije ćeš videti zašto)
- prenaponsku zaštitu ulaza optokaplera
- LED diodu za signalizaciju aktivnog ulaza
- decoupling napajanja 6N137
- sekundarni low-pass filter
- malu vrednost pull-up otpornika (recimo 1Kohm)
***
Savet : počni da koristiš LTspice ili neki drugi simulacioni program.
Tako ćeš moći da testiraš recimo taj digitalni ulaz i vidiš gde si, odnosno šta si uradio i šta da menjaš !
***
Mani se u startu kompaktnog dizajna, biće jako puno PROPOtipova ...
To ostavi za kraj kada uspešno sastaviš svoj prvi PLC iz pojedinačnih blokova (PCB) i sve to proradi u industrijskim uslovima.
07-17-2017, 11:34 AM (This post was last modified: 07-17-2017, 12:16 PM by mikikg.)
Evo kako izgleda jedan iz 2016. godine
Izvinjavam se na "neredu", to je primerak koji mi stoji kuci za pisanje programa, za orman naravno to treba lepo sve da se ozici ...
BTW: Out kartice imaju jednu zanimljivu caku, ima globalni veoma brz lacujuci strujni limit za karticu (50A) i vracam nazad u kontroler signal o gresci.
U ovom konkretnom primerku nije implementirana funkcija reseta te strujne zastite ali ostavljena ta mogucnost, inace veoma veoma korisna funkcija jer mogu da "skeniram" jedan po jedan izlaz i da eventualno nadjem koji konkretan izlaz aktivira zastitu
BTW2: Po Macolinom proverenom receptu, Input i Ouput kartice mogu da se prepakuju da budu NPN ili PNP tipa (pozitivna ili negativna logika), takodje na "mother board" preko dzumpera biram da li je prikljucena kartica input ili output sto je zgodno jer ne treba uvek jedna ista postavka, biram sta mi treba ... MCP23S17 je zaduzen za I/O, njega konfigurisem iz SW prema postavci kartica ...
BTW3: Mother board cak ima mali proto prostor gde mogu da dodam nesto sto jos ne znam sta je, vec mi je super to odradilo posao jer sam tu uglavio FRAM memoriju
07-17-2017, 12:30 PM (This post was last modified: 07-17-2017, 12:42 PM by mikikg.)
Jedan zanimljiv i koristan detalj koji se tice terminacije vodova.
Kada sam postavio ovu FRAM SPI memoriju, nije htela da radi. Gledao sa osciloskopom komande koje ulaze, sve to OK po DS ali nista ne izlazi iz memorije, mrtva linija 0 V ... i sta je i sta je ...
Slucajno uocim neke "iglice" na linijama za izlaz podataka (SO - Slave Ouput)!? Kakve crne iglice, tu treba da bude pravougaoni signal i skontam da memorija ne moze da savlada parazitivni kapacitet te linije, proradi interna strujna zastita na izlazu tog chipa! Vrlo zanimljivo jer je ta strujna zastita reagovala u okviru od nekoliko nano sekundi, od jednog bita (_|---|_) ostane samo prednja ivica (_|____).
Resenje je jedan seriski otpornik koji mora fizicki da se postavi tamo gde je izlaz, tek tada je proradilo sve kako treba!
Upravo tako. Koliko god PLC spolja izgledao kao trivijalan uredjaj (skenira ulaze, izvrsava program i upisuje nesto na izlaze), glavna fora pri projekrovanju PLC-a je koncept istog. Kada se blokovski postavi koncept, onda tek treba da pricamo o stepenima zastite itd.
Mislim da Maksa treba da kaze koliko diskretnih ulaza/izlaza zeli, naponske nivoe, modularnost, komunikaciju itd. zeli, pa tek onda da krenemo svi da razradjujemo semu i dodjemo do finalne. Kada se to uradi, tek onda treba da se krene sa projektovanjem PCB-a i to vrlo pazljivo.
Kod projektovanja PLC-a, treba koristiti viseslojnu PCB i SMD komponente, posto se nivoi smetnji smanjuju 10-100x.
Ako neko moze da nadje ovu knjigu, moze dosta korisnih informacija da dobije vezano za EMC zastite: https://www.amazon.com/EDN-Designers-Gui...075067654X
Takodje odlicna literatura je EMC for product designers od Tim Williams-a.
07-17-2017, 09:00 PM (This post was last modified: 07-17-2017, 09:02 PM by me[R]a.)
(07-17-2017, 11:34 AM)mikikg Wrote: ... MCP23S17 je zaduzen za I/O, njega konfigurisem iz SW prema postavci kartica ...
Mene zanima kako se u praksi pokazao MCP23X17 nisam ga do sad koristio a imao bi potrebe.
Zanima me kad se koristi kao ulazni expander i to kad se koristi button tj. kako resava debounce...
koliko sam video u pdf okine Interrupt kad dodje do promene na portovima. Nisam brzinskim citanjem video za debounce.
07-17-2017, 09:25 PM (This post was last modified: 07-17-2017, 10:13 PM by mikikg.)
MCP nema nista specificno vezano za debouncing, to mora da se resava na programskom nivou u MCU ali je zato brz kao metak, (konfigurabilan potpuno isto kao PIC-evi, ulazno izlazni HW je prakticno isti kao kod PIC ali nema procesora), mozes da ga prozivas kojom hoces brzinom, u sustini ne brze od 10-20 kHz, ne treba brze od toga, paket citanja ili pisanja moze da bude vrlo kratak, reda 3-4 bajtova na SPI 10 MHz. Moze i preko HW interapt linija da se izbegne pulling, kako kome treba ili moze da realizuje.
Takodje mi se svidja sto ima izvedene pinove za HW adrese, korisno kada se povezu vise komada, onda svi idu na jedan isti SPI bus bez posebnih Chip Select linija nego imaju jednu zajednicku.
Ostala specifikacija ista kao kod PIC-eva, 25mA po izlazu, ima konfigurabilan Pull Up/Down i td.
U praksi mi radi OK, mada ih nisam ugradio toliko koliko je npr Macola pa ne mogu pouzdano da tvrdim ali po njegovoj preporuci sam i dosao do tih expandera i kaze da ih je ugradio gomilu i da mu svi rade odlicno.
PS: Macola mi je rekao da za svaki slucaj izvedem RESET liniju za MCP upravljivu iz kontrolera da bi mogao u slucaju nuzde (zaglavio se MCP) da ih resetujem jer moram da budem apsolutno siguran kada inicializujem reset rutinu da su svi izlazi pogaseni, to su zahtevi u industriji.
Evo na stolu zbog testiranja FRAM vrtim jedan ciklus skoro pola miliona puta, ni jedan problem oko MCP, ali ipak u industriji moraju da se predvide i takve stvari da je moguce i on da se zaglavi i da postoji mehanizam koji to moze nekako da resi, bezbednost ljudi i opreme je u pitanju ako to ne radi kako treba!
Zato sam uslikao i onu crvenu pečurku jer je ona vrlo vrlo bitan detalj u celoj prici koja povlaci celu postavku iza sebe kako da se sve to odradi ...
Neke stvari idu preko expandera, neke ne mogu, sve ima svoje ...
Miki super je ovo resenje PLC sastavljen iz vise modula. Gde si radio I/O kartice jer vidim da je dvoslojna pa predpostavljam da je zahtevna za izradu u kucnim uslovima.
Imam neku mother board sa ebay koja bi u kombinaciji sa tim I/O karticama bila super za neki mini PLC na kome bih vrsio testiranje SW.
Probaću nešto nacrtati za početak samo da krenem s mjesta, mislim na šemu, pa ćemo onda gledati šta dalje.
Već sam gore napisao, ići ću na neki osnovni plc za početak, da imam neku osnovu za dalje, klasični digitalni izlazi i ulazi, tako isto i sa analognim pinovima, i samo ću ostaviti konektor da mogu priključiti lcd, definitivno to je sve što hoću za početak.
E sad ono što me malo buni je to šta se sve treba kasnije dodatno pisati i prepravljati u samom kodu kada se koristi MAX i MCP?
A do tada neka neko prebaci ove postove u novu temu.
07-17-2017, 11:31 PM (This post was last modified: 07-17-2017, 11:31 PM by Macola.)
(07-17-2017, 08:02 PM)mikikg Wrote: Po DS taj MAX14850 je odlican izolator, nisam jos prakticno probao, nadam se da cu uskoro ...
Jedan komad može istovremeno da "vuče" jedan I2C port i jedan SPI port, pri čemu bi se !CS za SPI izvodili eksternim optokaplerima.
Bidirekcioni izolacioni kanali: IOA1, IOB1 i IOA2, IOB2 su pravljeni za dvosmerni I2C dok su ostala četiri (dva u jednom i dva u drugom smeru) pogodni za SPI, sa jednim dodatnim izveštajem sa sekundarne strane, npr. "SPI device ready" ili neki err izveštaj...
Dodatna pogodnost je što se bilo koja strana može napajati različitim naponskim nivoima (3-5.5V) što taj čip prirodno čini odličnim level translatorom između 5V i 3v3 logike, bilo u kom od smerova.
Takođe košta svega 2,84$ na DigiKey, što je jevtino za takav i tako brz izolator. I više nego odlična sprava!
(07-17-2017, 11:34 AM)mikikg Wrote: ... MCP23S17 je zaduzen za I/O, njega konfigurisem iz SW prema postavci kartica ...
Mene zanima kako se u praksi pokazao MCP23X17 nisam ga do sad koristio a imao bi potrebe.
Zanima me kad se koristi kao ulazni expander i to kad se koristi button tj. kako resava debounce...
koliko sam video u pdf okine Interrupt kad dodje do promene na portovima. Nisam brzinskim citanjem video za debounce.
Izvrsno YuMERA!
Dosta komada MCP23S17 (SPI) sam upotrebio u praksi i pokazali su se kao izvrsni ekspanderi.
SPI verzije tog čipa (MCP23017 je I2C verzija) su pored konzumacije nešto više pinova zahvalni zbog brzine i 8 hw adresa.
Na primer, refreš svih 16 izlaza na jednom čipu (ako je tako konfigurisan) traje tipičnih 7,5uS sa SPI na 10MHz...
Mana bilo kog i bilo čijeg in/out ekspandera je da su to leč naprave, koje će zauvek držati poslednje upisano out stanje, sve dok ima napajanja.
Stoga se jedan od pinova na MCU konfiguriše kao output i dejstvom na dole, tj. niskim stanjem, preko eksternog PNP tranzistora, obezbeđuje napajanje celoj SPI garnituri ekspandera koji su zaduženi za izlaze.
U slučaju obaranja master MCU, njegovi pinovi se po resetu uvek inicijalno konfigurišu kao inputi High-Z, taj pin se jednostavno "otpusti" i obori napajanje SPI out ekspanderima, čim ih i resetuje (ako je njihov reset pin vezan za njihov nterni Vdd). To trenutno deaktivira sve pokrenute izlaze, tj. izaziva SVE-STOP stanje.
Taj pin se prilikom inicijalizacije MCU proglašava outputom, potom pre inicijalizacije SPI povuče jednom na dole i nigde se više dalje ne pominje u sw. Njegova je uloga, kao što rekoh, da inicijalizuje i "drži" napajanje SPI out ekspandera dok je MCU "živ".
Gde je neophodna ekstremnija pouzdanost, tu se pravi hardverski watch-dog (sa NE555 na primer) kao monostabil koji "šutne" napajanje SPI grupe, a jedan pin od ekspandera se zaduži za CLRWDT. Samo to zahteva neprestano "posećivanje" SPI bus od strane MCU...
Generalno postoje različiti stepeni pouzdanosti koji su zahtevani u nekoj digitalnoj kontrolnoj logici.
Najekstremniji slučajevi pouzdanosti se prave tako što MCU uvek kreće iz RESET stanja, samo jednom "provuče" svoj kod, potom storira bitne varijable i stek, na primer u FRAM koji je MIKI pomenuo (u te svrhe je se u najranijim vremenima procesne kontrole koristila magnetna memorija sa jezgrima, a ponegde i dan danas) i odlazi u RESET stanje iz kog se ponovo "budi" i uzima svoje poslednje stanje iz tog svog NV-RAM.
Dakle, jedan programski ciklus, potom reset i otpočetka. NV-RAM beleži potrebno i eventualne err koje se potom mogu ispraviti.
Takve stvari su na primer povoljne u uslovima visoke radijacije gde začas neka brza čestica koja prođe kroz sve to kao kroz sir i može da okine neki flop u CPU ili "istrese" neku ćelijicu RAM, i sve ode u PM jer će CPU garant zaglaviti (ako ne zna koja mu je sledeća pozicija PCL).
RESET se događa bezuslovno hardverskom napravom, i to veoma jednostavnom i što glupljom (par diskretnih komponenti) i sve može da se počne iz početka, sa dupliranim ili čak utrostručenim kopijama prethodnih stanja u NV-RAM.
Tako je moguće "sampopravljanje" u najsurovijim uslovima, kao npr u kosmosu...
Sve zavisi koliki stepen pouzdanosti se traži, a ne postoji nigde 100.0%.
-------------------------------------------------------
MCP23X17 su jako moćni ekspanderi i imaju dva nezavisno konfigurabilna 8-bit porta.
Kao ulazi mogu biti obični, a može se konfigurisati generisanje interrupt (pull-down) impulsa, na izlazu, koje ima svaki od portova kao open drain izlaz. To omogućava i žičanu OR logiku gde se svi takvi mogu vezati paralelno sa jednim pull-up otpornikom i afektovati jedan jedini pin zadužen za ext. ISR na MCU.
Pojedinačnim portovima, koji se konfigurišu kao ulazi, može se dodeliti interrupt osobina pojedinačno po pinu, ili grupno na bilo kakvu promenu u odnosu na prethodno pročitanu vrednost...
Dakle, kada se dogodi prekid na nekom od MCP23x17, MCU "ode" na SPI bus i "sazna" što pre ko je to izazvao..
Kao ulazi imaju dobru marginu šuma, posebno na 5V logici koja prirodno ima bolju marginu šuma od logike sa nižim naponima.
Interni debounce ne postoji u njima.
Dobri konstruktori se ne oslanjaju posebno na sw debounce jer to je izmišljeno za igranje na stolu i za vremenske sekvencijalne automate tipa nekih linija za pakovanje ili protočnih peći gde koja desetina mS nije od značaja (poput mnogih uobičajenih industrijskih PLC renomiranih proizvođača, gde je latencija ulaza rada 1-50mS, a za brže i preciznije se mora kupiti značajno skuplji modul sa brzim inputs male latencije).
Dobar konstruktor će svaki od inputa imunizovati sa RCD filtrima, gde se osim dobrog "debounce" dobija pouzdana zaštita od "ubijanja" konkretnog input, pojavama poput strmih naponskih tranzijenata velike amplitude.
Onda nema potrebe za boljim debounce od dva uzastopna čitanja sa nekim poznatim razmakom koji se namesti prema tom RCD filtru...
To je takođe neuporedivo brže "posmatranje" ulaza nego sw debounce (a manje se i čuka po tastaturi :-)
(07-17-2017, 10:22 PM)Makso Wrote: Stigoh i ja da se javim, puno postova iznad...
Probaću nešto nacrtati za početak samo da krenem s mjesta, mislim na šemu, pa ćemo onda gledati šta dalje.
Već sam gore napisao, ići ću na neki osnovni plc za početak, da imam neku osnovu za dalje, klasični digitalni izlazi i ulazi, tako isto i sa analognim pinovima, i samo ću ostaviti konektor da mogu priključiti lcd, definitivno to je sve što hoću za početak.
E sad ono što me malo buni je to šta se sve treba kasnije dodatno pisati i prepravljati u samom kodu kada se koristi MAX i MCP?
A do tada neka neko prebaci ove postove u novu temu.
Makso,
Koncepcija nekog PLC ne može biti toliko univerzalna ukoliko nemaš gomilu raznih hw modula i snažan MCU sa adress-data bus-om koji se proteže kroz sve prikačene module.
Gde nisu potrebni neki posebno brzi događaji, koriste se razne kraće dometne ili dalje dometne komunikacije sa manje žica, poput: MODBUS, CAN, CAN open i td, i td...
Onaj moj mini PLC, koga si uzeo kao prvobitni uzor, prvenstveno je bio korišćen za manje brizgaljke za plastiku, gde je uglavnom bilo potrebno nešto digitalnih IN-OUT, sa visokom imunošću na " elektronsko đubre" od smetnji, i eventualno do dva pwm za pokretanje dva servo ili proporcionalna hidr. ventila. (pokreće već bar 18-19 godina nešto oko koju stotinu nekih mašina)
Kapacitet mu je bio 24 dig IN-OUT tipično.
Za neke masivnije potrebe je rađen bitno veći model sa gomilom ADC, DAC, IN-OUT i slično, prema potrebama.
Za neke prelazne varijante od 24-48 IN-OUT, malom miniju sam "na sprat" stavljao ekspandersku pcb sa npr. dva MCP23S17. Tako je "minić" mogao da se rastegne do nekih 50-tak IN-OUT, a ranije su bila 4 PCF8574A (8 bit I2C exp.).
-----------------------------------------
Osnovna stvar je da odrediš ciljnu grupu sprava koje će pokretati neki PLC.
Apsolutna univerzalnost ne postoji a dovoljno dobru možeš dobiti pomoću skupih PLC renomiranih proizvođača, gde dodatni specijalizovani moduli obično koštaju daleko više nego sam master PLC...
Kada iskristališeš šta to želiš kontrolisati, lako gradiš neki PLC.
A ako gradiš modularno sa na primer nečim kao što je blue-pill ili neki arduino manjeg kapaciteta, onda ostavi jedan USART, jedan I2C, jedan SPI, jedan ADC, 4 pwm i na to kači module po potrebi. Kada sve to rezervišeš od pinova, malo toga će ti ostati slobodno na master MCU...
Pojavom ovih novih i ultrajevtinih MCU, poput blue-pill ili arduino mini i sl. dobija se mogućnost multi procesorske saradnje sa više komada takvih, pomoću na primer jako "tvrdog" MODBUS (hardverski lejer je RS485 koji se može vući do 1200 metara sa 9K6 brzinom, a na koju desetinu metara će raditi lagodno sa 115k200).
Međutim, to kao i sve na ovom svetu ima jednu nezgodnu manu: mora se pisati više softvera, uskladiti međusobna saradnja modula po svim pitanjima, a pogotovo po pitanjima kada s dogodi neka greška bilo gde. To pak povlači gomilu koda i veoma mnogo vremena za test pouzdanosti.
Privatno, daleko više volim jedan MCU koji je brži i sa mnogo više pinova, jer se sve drži u "jednoj kutiji" i lakše se vlada tim.
Naravno i neuporedivo brže radi.
Sada već postoji gomilčina 32 bit MCU, sa dve tone pinova na sebi i gomilom MHZ takta, sa hw FPU i još ko zna kakvih čuda poput Texas "Sitara" i slično.
Na žalost, tu je situacija kao kod ovih novih "pametnih" telefona: nudi ti kameru, internet, fotoaparat, igrice, a do samog telefona jedva dođeš kroz meni, i to kad ti najviše treba to baguje po malo :-)
Ti besovi su napravljeni kao da se čitav život nameravaš baviti jednim od njih i traže da se masivno zagreje stolica (ne ona retka :-) ako misliš da im priđeš na niskom nivou koji je najefikasniji.
Zato se nemoj razočarati kada neki besan ARM Cortex (sa visokim sw pristupom) neku savim jednostavnu stvar izvrši sporije od običnog malog 8 bit arduinčeta, pogotovo kod nekih jednobitnih akcija.
Zbog visokog pristupa, koji je lakši i nudi veću kompatibilnost među modelima, onaj moćni na 180MHz "pojede" 50 instrukcija za istu stvar koja se kod onih malih 8 bit, u asm odradi sa jednom instrukcijom. Kada mu se priđe na vrlo niskom nivou, onda je to "zver".
Ne treba pucati topom na komarca, i ako sad top jevtino košta, jer sve ima svoju dimenziju, posebno zbog besprekidne promene i pojavljivanja novih modela mesečno.
Si Labs je na primer firma koja mnogo radi za vojsku. Imali su još 2005. garituru 8 bit MCU na 100MHz sa na primer 24 bit ADC... Sigurno to nisu slučajno pravili. Sve ima svoju upotrebnu svrhu.
Mene matorog već boli glava jer ponovo grejem stolicu da na vrlo niskom nivou ukrotim raznorazne Cortex Mx.
Od onih HAL biblioteka se ježim, a ništa bolje ne mislim o celom Arduino konceptu.
Ako tačno znaš šta želiš raditi sa tim PLC kog želiš kreirati, daćemo ti ovde jezgrovit i dobar savet u roku od pola sata, da ti sve radi na keca, što se hardvera tiče.
Ali najteže je dogovoriti se sa samim sobom i kad se to dogodi ostalo je samo rutina.
07-18-2017, 07:32 AM (This post was last modified: 07-18-2017, 07:39 AM by Želja.)
(07-18-2017, 12:23 AM)Macola Wrote: Dobri konstruktori se ne oslanjaju posebno na sw debounce jer to je izmišljeno za igranje na stolu i za vremenske sekvencijalne automate tipa nekih linija za pakovanje ili protočnih peći gde koja desetina mS nije od značaja (poput mnogih uobičajenih industrijskih PLC renomiranih proizvođača, gde je latencija ulaza rada 1-50mS, a za brže i preciznije se mora kupiti značajno skuplji modul sa brzim inputs male latencije).
Dobar konstruktor će svaki od inputa imunizovati sa RCD filtrima, gde se osim dobrog "debounce" dobija pouzdana zaštita od "ubijanja" konkretnog input, pojavama poput strmih naponskih tranzijenata velike amplitude.
Onda nema potrebe za boljim debounce od dva uzastopna čitanja sa nekim poznatim razmakom koji se namesti prema tom RCD filtru...
To je takođe neuporedivo brže "posmatranje" ulaza nego sw debounce (a manje se i čuka po tastaturi :-)
****
Ne treba pucati topom na komarca, i ako sad top jevtino košta, jer sve ima svoju dimenziju, posebno zbog besprekidne promene i pojavljivanja novih modela mesečno.
07-18-2017, 11:48 AM (This post was last modified: 07-18-2017, 12:20 PM by mikikg.)
BTW: U vezi Arduina kao SW postavke, moram malo da "branin" taj pristup.
Verujte mi kada vam kazem da to uopste nije tako lose, da ne ulazim u IDE i komentarisem koliko je lep/ruzan/upotrebljiv/neupotrebljiv graficki interefejs, pricam samo o upotrebljivosti generisanog CODE-a.
Te Arduino biblioteke nisu nista bolje/losije od HAL biblioteka, hajde da kazem da su mozda 5-10% sporije nego HAL (i to samo za neke stvari) ali su zato organizovane i logicnije za laksu upotrebu drasticno. Kada se zadje malo dublje u te biblioteke videcete da su one napravljene isto onako kako je i HAL napravljen, to i ne moze drugacije, to su te iste naredbe i funkcije.
Poenta je u tome kada se jednom inicializuje neka periferija, UART, PWM i tako dalje, posle toga je nebitno vise sa cime se dalje pise program a prosli ste jedan korak koji vam je drasticno ustedeo vreme posebno za pocetnike koji ne poznaju dovoljno HW unutar MCU.
Daje, niko vam ne brani da "mesate" Arduino logiku sa bilo kojom drugom logikom pisanja programa, moze isto tako lepo da se pristupi svim registrima preko jedne komande tipa RCC->nekireg = 1;, to se izvsava isto kao da ga je kompajlirao Keil, GCC ili Arduino.
Dalje, IF, THEN, ELSE i ostale logicke i matematicke operacije su iste kao i kod drugih platformi, ne postoji razlika da lije to Keil ili Arduino, to isto radi, ne postoji nikakav "overhead" na te stvari/funkcije.
Samo hocu da kazem da sa Arduinom moze drasticno da se ubrza razvoj i za one malo iskusnije posle da te iste programe malo optimizuju gde se neke Arduino funkcije zaobidju pa se gadjaju direktno registri.
Aurduino platforma uopste nije losa, dobro to radi, on ispod koristi isti kompajler kao i npr ST-ov SystemWorkbench tj ARM-GCC ... sve je to jedno isto samo kod Arduino je dodat jos jedan sloj abstrakcije i to su se ljudi koji su to pisali stvarno potrudili da napisu najbolje sto znaju. Programeri koji pisu Arduino CORE biblioteke su veoma iskusni, ne pise to bas svako i tek tako i takodje njima ogromnu pomoc daju ljudi koji te biblioteke koriste i daju komentare kada nesto ne radi ili buguje, milioni ljudi koristi tu platformu i to je izuzetno korisna stvar jer se tako "peglaju" biblioteke.
Arduino je zgodan odprilike za upotrebu do ovih "malih" STM32F103C8 kontrolera, za one malo ozbiljnije kontrolere iz F4xx serije vec je potrebnija neka ozbiljnija platforma posebno ako se koriste DSP ili FPU funkcije ili se koristi neki specifican modul poput I2S ili interfejsa za kamere i slicno. Arduino i nema podrsku za te stvari i izgleda da se nisu ni trudili da to dodaju jer je to jedan drugi nivo pristupa problemu.
Quote:"Od onih HAL biblioteka se ježim, a ništa bolje ne mislim o celom Arduino konceptu."
Miki,
Da se razumemo u startu. Nemam ja ništa protiv HAL i Arduino. Imam samo loše privatno mišljenje o tome i objasniću zašto.
To su vrlo efikasni slojevi apstakcije koji jako štede vreme i skup programerski rad. To su naravno pisali veoma moćni programeri kojima je najniži nivo pristupa veoma jasan jer drugačije to ne bi mogli ni napraviti.
Takođe podržavam miksovanje oba načina u cilju postepenog pretapanja "lakih" programerskih želja u one koje su moćnije u niskom pristupu. Sa tiim stvarima je jako olakšan početak bilo kome, a oni inventivniji će sami zakopati malo dublje.
Ono zbog čega imam loše mišljenje o takvim "Lego" platformama je to što "osuđuju" korisnika na jedan masovno usvojen način razmišljanja, poput modnih stvari, društvenih mreža, "globalnog zagrevanja" i ostalih sličnih stvari koji osrednjavaju metod razmišljanja i svode ga na sličan.
Mislim da je moje najmoćnije intelektualno oruđe upravo atipičan način i model razmišljanja, koji je u nekim trenucima izgenerisao veoma posebna i ultra efikasna rešenja, sa neuobičajeno jednostavnim sastavom, koja uporno i dobro rade decenijama (jednostavno imam korpus delikti za tu tvrdnju)...
Nekako mi taj nametnuti "Lego kocke" način ne prija i gledaću da ga što pre zaobiđem jer mi narušava baznu različitost koja čini moju suštinu.
Po pravu slobode mišljenja ću zadržati stav da i dalje mislim isto o takvim načinima (uz potpuno ograđivanje od njihove dobre efikasnosti u nekim zonama primene).
Možda sam konzervativan i možda sam malo i zadrt, pa mislim da za poređenje recimo mogu upotrebiti opet "pametni" telefon:
Omasovljeni korisnik se mora brinuti o NJEMU kao da je mali član porodice.
Čuva ga, hrani ga (punjačem), pazi da ga ne povredi, posvećuje mu dnevno koji sat ili više, drži svoj život u toj malenoj kutijici, a pri tom vrlo izložen javnom pogledu i još misli da je to dobro, raduje se informacijama iz NJEGA, tuguje zbog informacija u NJEMU, stiče samopouzdanje zbog sasvim neistinitih predstava o sebi, a koje su mu stigle upravo iz NJEGA a na osnovu "ja tebi care, ti meni serdare", slika sam sebe i divi se tome gledajući u NJEGA, svima se proserava deleći detalje iz svog privatnog malenog života, koji je 1/7.500.000.000 u moru toga na ovom svetu, smatra da je poznavanje rukovanja NJIM deo opšteg obrazovanja i osnovni element kulture...
I naravno, bez obzira na sitne različitosti sadržaja o pojedincu, najveća većina vlasnika se ponašaju po jedno te istom šablonizovanom modelu.
-----------------------
Skoro nešto odem da obiđem jednu prirodnu lepotu u nekom solidno zabačenom mestu. Glupi "pametni" telefon mi u džepu, sa neaktiviranim aplikacijama, onako čisto ako me neko slučajno pozove...
Parkiram, na njemu se sam pali displej i piše: "vi ste na (piše lokacija), da li želite da priložite fotografiju mesta na google mape?"
Moja reakcija: "Mrš u tri lepe PM!" Power off!
Iz škole se prisećam istorijskih činjenica o posledicama omasovljenog modela razmišljanja koje su dva puta ovaj svet odvela u krvavi ćorsokak...
---------------------------
Izvini Miki, ali zadržaću svoje privatno loše mišljenje o bilo čemu što kanališe razmišljanje grupi ljudi, makar to bili i programeri.