Satura rādītājs:

Ar XOD darbināma uzlādējama saules lampa: 9 soļi (ar attēliem)
Ar XOD darbināma uzlādējama saules lampa: 9 soļi (ar attēliem)

Video: Ar XOD darbināma uzlādējama saules lampa: 9 soļi (ar attēliem)

Video: Ar XOD darbināma uzlādējama saules lampa: 9 soļi (ar attēliem)
Video: Нино Фрассика: из книги Сани Джезуальди #SanTenChan он читает некоторые религиозные афоризмы. 2024, Novembris
Anonim
Ar XOD darbināma uzlādējama saules lampa
Ar XOD darbināma uzlādējama saules lampa

Lielākajā daļā mājas preču un datortehnikas veikalu ir pieejamas lētas saules dārza/gājēju lampas. Bet, kā saka vecais teiciens, jūs parasti saņemat to, par ko maksājat. Parastās lādēšanas un apgaismojuma shēmas, ko tās izmanto, ir vienkāršas un lētas, taču iegūtā gaismas jauda nav nekas cits kā iespaidīgs (un tik tikko nepietiek, lai ikviens, kas izmanto jūsu celiņu, redzētu, kurp viņi dodas!)

Šis ir mans mēģinājums izveidot ārpus tīkla apgaismojuma moduli, kas ir ievērojams uzlabojums, lai gan tas joprojām ir salīdzinoši lēts. Dodot tai dažas "smadzenes". XOD.io ir jauna IDE, kas ir saderīga ar Arduino iegulto izstrādes platformu, kur var grafiski "rakstīt" kodu. Vide pārveido jūsu grafisko skici līdz mūsdienīgam C ++, kas ir ārkārtīgi efektīvs, lai ģenerētu kompaktu kodu, un ģenerē avotu, kas ir pilnībā saderīgs ar Arduino IDE krājumu, neprasot papildu ārējās atkarības. Tādā veidā pat mazus, lētus mikrokontrollerus ar ierobežotiem programmu un datu glabāšanas resursiem var izmantot sarežģītu uzdevumu veikšanai.

Šis projekts parāda, kā divus ar Arduino saderīgus ATTiny85 mikrokontrollerus, kas darbojas kopā, var izmantot, lai pārvaldītu lampas jaudas prasības. Pirmais procesors apstrādā uztveršanas vides datus no ārējās aparatūras, bet otrais mēģina savākt lielāko daļu enerģijas no saules dienas laikā, un pēc tam kontrolē lieljaudas gaismas diodes apgaismojumu, jo akumulators izlādējas naktī. Otrais procesors savu darbu veic, kompakti īstenojot “izplūdušās loģikas” vadību. Abu mikroshēmu programmatūra tika izstrādāta tikai XOD vidē.

1. darbība. Nepieciešamie materiāli

Arduino IDE, jaunākā versija, ar ATTinyCore paplašinājumu, kas instalēts no "Boards" pārvaldnieka

Sparkfun USBTinyISP ATTiny programmētājs, 11801 vai līdzvērtīga Sparkfun produkta lapa

Pololu regulējams zemsprieguma pastiprinātājs ar izslēgšanas ieeju, U1V11A vai līdzvērtīga Pololu produkta lapa

Lieljaudas balta vai RGB gaismas diode ar radiatoru, parasto anodu, Adafruit 2524 vai līdzvērtīgu Adafruit produktu lapu

Mikroshēma ATTiny85 8 kontaktu DIP iepakojumā, 2 Mouser produkta lapa

8 kontaktu DIP IC ligzdas, 2

Lielapjoma uzglabāšanas kondensators, 16 v 220 uF

Izejas kondensators, 6.3v 47uF

Strāvas ierobežošanas rezistori, 50 omi 1/4 vati

i2c pievilkšanas rezistori, 4.7k, 2

Paneļa sprieguma sajūtas dalītāja rezistori, 1/4 vati, 100k, 470k

Pašreizējais jutības rezistors, 10 omi 1⁄2 vati 1% pielaide

Apvedceļa kondensatori, 0.1uF keramika, 2

2 3,7 v 100mAh uzlādējams litija jonu akumulators, PKCELL LP401 vai līdzvērtīgs

Mucas kontaktdakšas ieejas ligzda panelim, 1

Mini spaiļu bloki 3”x3” lodēšanas spilventiņu plāksne un plāns viendzīslas vads savienojumu veidošanai

Pārbaudei gandrīz noteikti būs nepieciešams osciloskops, multimetrs un stenda barošanas avots

2. darbība: vides iestatīšana

Vides iestatīšana
Vides iestatīšana

XOD vide neatbalsta ATTiny procesoru sēriju, taču, izmantojot pāris trešo pušu bibliotēkas no Arduino Visuma, ir vienkārši pievienot atbalstu šai AVR sērijai. Pirmais solis ir instalēt bibliotēku “ATTinyCore” no Arduino IDE nolaižamās izvēlnes “Tools → Board → Board Manager”. Pārliecinieties, ka iestatījumi, kas parādīti pievienotajā attēlā, ir pareizi - atcerieties, ka pirms koda augšupielādes ir jānospiež "Burn bootloader", lai mainītu sprieguma un pulksteņa ātruma iestatīšanas drošinātājus!

Šīs bibliotēkas avota kods ir pieejams vietnē

Vēl viena noderīga bibliotēka no krātuves ir “FixedPoints”, kas ir fiksēta punkta matemātikas apkopojuma laika ieviešana Arduino atbalstītajiem procesoriem. ATTiny ir ierobežota SRAM un programmas atmiņa, un tas ļoti palīdz, samazinot galīgo skices lielumu, lai vispārējai datu glabāšanai izmantotu 2 baitu veselu skaitli, nevis peldošā komata veidu, kas prasa 4 baitus AVR. Jāizlabo arī izpildes ātrums, jo ATTiny nav aparatūras pavairošanas vienības, daudz mazāk aparatūras peldošā punkta!

Avota kods ir pieejams:

Apmācība par to, kā izveidot, pārvietot un izvietot XOD grafiskās skices vietnē: https://github.com/Pharap/FixedPointsArduino, palīdzēs daudz saprast, kā tika izveidoti iekļautie avota faili.

3. darbība: dizaina pārskats

Dizaina pārskats
Dizaina pārskats
Dizaina pārskats
Dizaina pārskats

Uz tāfeles divi ATTiny85 procesori ir savienoti, izmantojot i2c saskarni, un tiek izmantoti kopā, lai pārvaldītu saules paneļa sprieguma uztveršanu, strāvu, kas no pastiprinātāja pārveidotāja ieplūst akumulatorā, kamēr panelis ir apgaismots, akumulatora spriegumu un akumulatoru temperatūra.

Pastiprinājuma pārveidotājs ir gatavs modulis, kura pamatā ir Texas Instruments TPS6120 IC, kas var pazemināt līdz 0,5 voltiem ieejas spriegumu un palielināt to no 2 līdz 5 voltiem. Sensora kodols sastāv no vairākiem funkcionāliem blokiem. Galvenais pulkstenis sāk darboties, tiklīdz jaudas pārveidotājam tiek pievadīta jauda no saules paneļa ieejas. Tādējādi sākas skices izpilde, un vispirms ir jānosaka, vai panelis ir pietiekami apgaismots, lai nodrošinātu akumulatora uzlādes strāvu.

Saules paneļa spriegums tiek nodots, izmantojot divus digitālos filtrus, un, ja tas pārsniedz noteiktu slieksni, sistēma nosaka, ka panelis ir izgaismots, un pārslēdz galveno pulksteni pašreizējās sajūtas monitorā. Šis ir atšķirīgi konfigurēts mikroshēmas analogo ciparu pārveidotāja kanāls, kas uztver spriegumu 10 omu 1% pielaides rezistorā, kas virknē savienots starp pastiprinātāja pārveidotāja izeju un akumulatora ieeju. Kad panelis nav apgaismots, šis ATTiny nosūta signālu otrajam ATTiny, liekot pārraudzīt LED jaudu, nevis uzlādes jaudu, un izslēgt pastiprinātāja pārveidotāju un izolēt ieeju, lai akumulators neizvadītu strāvu atpakaļ caur paneli.

Otrajā ATTiny kodolā darbojas LED kontrolieris un akumulatora uzlādes uzraudzības sistēma. Paneļa sprieguma, akumulatora sprieguma un akumulatora uzlādes strāvas dati tiek nosūtīti uz šo kodolu apstrādei, izmantojot neskaidru loģikas tīklu, kas mēģina ģenerēt atbilstošu PWM signālu, lai to lietotu SHTDN tapai, tādējādi kontrolējot akumulatoram nosūtītās strāvas daudzumu lai to uzlādētu, kad tas ir izgaismots-tas ir maksimālās jaudas punktu izsekošanas (MPPT.) pamata veids. Tas arī saņem signālu no sensora kodola, kas norāda, vai tai vajadzētu ieslēgt vai izslēgt LED, atkarībā no sensora dienas izvades/ nakts flip flop.

Kad gaismas diode ir aktīva naktī, šis ATTiny uzrauga akumulatora sprieguma datus, kas tam nosūtīti no sava drauga, un savu mikroshēmas temperatūras sensoru, lai iegūtu aptuvenu aprēķinu par to, cik daudz gaismas tiek iespiests gaismas diodē (akumulatora spriegums samazinās un mikroshēmas temperatūra palielinās, strāvai izvelkot tās tapas.) Izplūdušās loģikas tīkls, kas saistīts ar LED PWM plāksteri, mēģina izlemt, cik daudz akumulatora enerģijas vēl ir pieejams, un samazināt gaismas diodes intensitāti, kad akumulators ir izlādējies.

4. darbība: pielāgotu ielāpu izveide no XOD Core Library

Pielāgotu ielāpu izveide no XOD Core Library
Pielāgotu ielāpu izveide no XOD Core Library
Pielāgotu ielāpu izveide no XOD Core Library
Pielāgotu ielāpu izveide no XOD Core Library

Šim dizainam tika izmantoti vairāki pielāgoti ielāpu mezgli, no kuriem dažus var viegli izveidot tikai no iekļautajiem XOD mezgliem, un daži tika ieviesti C ++.

Pirmais no diviem pielāgotajiem plākstera mezgliem attēlos ir eksponenciāla slīdošā vidējā filtra ieviešana. Šis ir zemu pieskaitāmu zemas caurlaidības digitālais filtrs, ko skicē izmanto sērijveidā, vienu reizi, lai filtrētu ienākošo saules paneļa spriegumu loģiskajam kodolam, un vēlreiz, lai barotu sprūdu, kas nosaka ilgtermiņa apkārtējo apgaismojumu. Skatiet Wikipedia ierakstu par eksponenciālu izlīdzināšanu.

Mezgla struktūra attēlā ir tikai tieša grafiska attēlojuma pārneses funkcija rakstā, kas savienota kopā, izmantojot saites no atbilstošām ievadēm līdz izejām. Bibliotēkā ir atlikšanas mezgls, kas ļauj izveidot atgriezenisko saiti (XOD brīdinās, ja izveidosit atgriezeniskās saites cilpu, neievietojot aizkavi, kā aprakstīts XOD izpildes modelī.) Ar šo detaļu rūpēsies plāksteris darbojas labi, tas ir vienkārši.

Otrais pielāgotais plākstera mezgls ir XOD komplektā iekļautā krājuma flip-flop variācija, kas tiek padota ar filtrētā paneļa spriegumu. Tas tiek fiksēts augstu vai zemu atkarībā no tā, vai ieejas signāls ir virs vai zem noteikta sliekšņa. Apraides mezgli tiek izmantoti, lai Būla izejas vērtības pārvērstu impulsa datu tipā, lai aktivizētu flip flop, kad stāvoklis pāriet no zemas uz augstu. Cerams, ka šī plākstera mezgla dizainam vajadzētu būt nedaudz pašsaprotamam no ekrānuzņēmuma.

5. darbība: pielāgotu ielāpu izveide, izmantojot C ++

Pielāgotu ielāpu izveide, izmantojot C ++
Pielāgotu ielāpu izveide, izmantojot C ++

Īpašām prasībām gadījumos, kad vajadzīgā mezgla funkcionalitāte būtu pārāk sarežģīta, lai to varētu viegli attēlot grafiski, vai kuras paļaujas uz Arduino bibliotēkām, kas nav dzimtā Arduino vidē, XOD ļauj tiem, kam ir zināmas zināšanas par C/C ++, rakstīt sakodiena lieluma gabalus kodu, kuru pēc tam var integrēt ielāpā tāpat kā jebkuru citu lietotāja izveidotu vai krājuma mezglu. Failu izvēlnē atlasot “izveidot jaunu ielāpu”, tiek izveidota tukša lapa, ar kuru var strādāt, un ievades un izvades mezglus var ievilkt no galvenās bibliotēkas sadaļas “mezgli”. Tad mezglu "nav ieviests xod" var ievilkt, un, noklikšķinot uz tā, tiks parādīts teksta redaktors, kurā vajadzīgo funkcionalitāti var ieviest C ++. Šeit ir aprakstīts, kā rīkoties ar iekšējo stāvokli un piekļūt ieejas un izejas portiem no C ++ koda.

Kā piemērs pielāgotu ielāpu ieviešanai C ++, divi citi pielāgoti ielāpi draivera kodolam tiek izmantoti, lai aprēķinātu vadītāja kodola barošanas spriegumu un kodola temperatūru. Kopā ar izplūdušo tīklu tas ļauj aptuveni aprēķināt atlikušo akumulatora enerģiju, kas pieejama, lai barotu gaismas diodes, kad ir tumšs.

Temperatūras sensora plāksteri baro arī ar barošanas sprieguma sensora izeju, lai iegūtu labāku novērtējumu - sensora kodola temperatūra ļauj iegūt aptuvenu aprēķinu par to, cik daudz enerģijas tiek sadedzināts gaismas diodēs, un apvienot to ar barošanas sprieguma rādījumu, kad izlādējot akumulatoru, tiek veikts aptuvens aprēķins par atlikušo akumulatora enerģijas daudzumu. Tam nav jābūt īpaši precīzam; ja kodols “zina”, ka gaismas diodes patērē lielu strāvu, bet akumulatora spriegums strauji samazinās, iespējams, var droši teikt, ka akumulatora enerģija neturpināsies daudz ilgāk, un ir pienācis laiks lampu izslēgt.

6. solis: būvniecība

Būvniecība
Būvniecība
Būvniecība
Būvniecība
Būvniecība
Būvniecība

Es izveidoju projektu uz neliela prototipēšanas dēļa gabala ar vara spilventiņiem caurumu daļām. Ligzdu izmantošana IC palīdz daudz programmēšanai/modificēšanai/testēšanai; USBTiny ISP no Sparkfun ir līdzīga ligzda, tāpēc divu mikroshēmu programmēšana sastāv tikai no programmētāja pievienošanas datora USB portam, augšupielādētā XOD koda no iekļautajiem Arduino.ino failiem ar atbilstošiem tāfeles un programmētāja iestatījumiem, un pēc tam viegli noņemiet mikroshēmas no programmētāja ligzdas un ievietojiet tās protoboard ligzdās.

Uz Pololu TPS6120 balstīts pastiprinātāja pārveidotāja modulis ir uz stāvvadītāja paneļa, kas pielodēts protoboardā uz tapu galviņām, tāpēc ir iespējams ietaupīt vietu, uzstādot dažus komponentus zem tā. Savā prototipā zem tā es ievietoju divus 4,7 k pullup rezistorus. Tie ir nepieciešami, lai i2c kopne starp mikroshēmām darbotos pareizi - bez tiem komunikācija nedarbosies! Plāksnes labajā pusē ir saules paneļa kontaktdakšas ieejas ligzda un ieejas uzglabāšanas kondensators. Lai iegūtu pēc iespējas zemāku pretestību, vislabāk ir mēģināt savienot domkratu un šo vāciņu tieši kopā, izmantojot lodēšanas "vadus", nevis savienojuma vadu. Pēc tam tiek izmantoti cietā lodēšanas savienojumi, lai uzglabāšanas kondensatora pozitīvo spaili savienotu tieši ar pastiprināšanas moduļa ieejas sprieguma spaili, bet pastiprināšanas moduļa zemējuma tapu - tieši pie ligzdas zemējuma tapas.

Pa labi un pa kreisi no ligzdām diviem ATTinys ir 0,1uF despike/deglitching kondensatori. Šīs sastāvdaļas ir arī svarīgas, lai tās neatstātu, un tām jābūt savienotām ar IC strāvas un zemējuma tapām pēc iespējas īsākā un tiešākā ceļā. 10 omu strāvas jutības rezistors atrodas kreisajā pusē, tas ir savienots saskaņā ar pastiprinātāja pārveidotāja izeju un katra puse ir savienota ar sensora kodola ieejas tapu - šīs tapas ir iestatītas darbam kā diferenciāls ADC, lai netieši izmērītu strāva akumulatorā. Savienojumus starp i2c kopnes IC tapām un pastiprinātāja pārveidotāja izslēgšanas tapu utt. Var izveidot, izmantojot savienojuma vadu protoboarda apakšpusē, ļoti plāns savienojuma vads tam lieliski darbojas. Tas atvieglo izmaiņas un arī izskatās daudz kārtīgāk nekā džemperu skriešana starp caurumiem augšpusē.

LED modulis, kuru izmantoju, bija trīs krāsu RGB iekārta, mans plāns bija, lai visas trīs gaismas diodes būtu aktīvas, lai iegūtu baltu krāsu, kad akumulators bija gandrīz pilnībā uzlādēts, un lēnām izgaismotu zilo LED dzeltenā krāsā, kad uzlāde bija izlādējusies. Bet šī funkcija vēl ir jāīsteno. Viena balta gaismas diode ar vienu strāvas ierobežošanas rezistoru darbosies arī labi.

7. darbība: pārbaude, 1. daļa

Pārbaude, 1. daļa
Pārbaude, 1. daļa

Pēc abu ATTiny IC programmēšanas ar iekļautajiem skiču failiem, izmantojot USB programmētāju no Arduino vides, tas palīdz pārbaudīt, vai divi prototipa kodoli darbojas pareizi, pirms mēģināt uzlādēt akumulatoru no saules paneļa. Ideālā gadījumā tas prasa pamata osciloskopu, multimetru un stenda barošanas avotu.

Pirmā lieta, kas jāpārbauda, ir tā, ka nekur uz tāfeles nav īssavienojumu, pirms pievienojat IC, akumulatoru un paneli to kontaktligzdām, lai izvairītos no iespējamiem bojājumiem! Vienkāršākais veids, kā to izdarīt, ir izmantot stenda barošanas bloku, kas šādas situācijas gadījumā var ierobežot tā izejas strāvu līdz drošai vērtībai. Es izmantoju savu padeves komplektu pie 3 voltiem un 100 mA robežas, kas savienots ar saules paneļa ieejas ligzdas spailēm ar pozitīvajiem un negatīvajiem barošanas vadiem. Ja nav instalēti nekas cits kā pasīvie komponenti, barošanas bloka pašreizējā monitorā nedrīkst būt reģistrēts strāvas patēriņš. Ja ir ievērojama strāvas plūsma vai strāvas ierobežošana, kaut kas ir nogājis greizi, un ir jāpārbauda tāfele, lai pārliecinātos, ka nav nepareizi pieslēgtu savienojumu vai kondensatoru ar pretēju polaritāti.

Nākamais solis ir nodrošināt, lai pastiprinātāja pārveidotājs darbotos pareizi. Uz tāfeles ir skrūves potenciometrs, kuram joprojām ir pievienots barošanas avots un četras pārveidotāja tapas ir pieslēgtas potenciometram ar nelielu skrūvgrieža galu, līdz spriegums moduļa izejas spailē ir aptuveni 3,8 līdz 3,9 volti. Šī līdzstrāvas vērtība darbības laikā nemainīsies, vadītāja kodols kontrolēs vidējo izejas spriegumu, pulsējot moduļa izslēgšanas tapu.

8. darbība: pārbaude, 2. daļa

Pārbaude, 2. daļa
Pārbaude, 2. daļa
Pārbaude, 2. daļa
Pārbaude, 2. daļa

Nākamā lieta, kas jāpārbauda, ir tā, ka i2c komunikācija darbojas labi, un dēļa strāvas padevei var uzstādīt sensora kodolu IC. Osciloskopā jābūt pulsējošiem signāliem gan fiziskās mikroshēmas 5., gan 7. tapā, šim mikroshēmas i2c draiverim mēģinot nosūtīt datus savam draugam. Pēc vadītāja kodola izslēgšanas var uzstādīt un vēlreiz pārbaudīt savienojumu ar osciloskopu, abās līnijās jābūt redzamai lielākai impulsu secībai. Tas nozīmē, ka mikroshēmas pareizi sazinās.

Tas palīdz, ja akumulators ir nedaudz uzlādēts pēdējai pilnai pārbaudei. Lai to paveiktu, var izmantot arī stenda barošanu, ja strāvas ierobežojums ir iestatīts uz aptuveni 50 mA un spriegums joprojām ir 3,8 volti, atstājot LiPo akumulatoru tieši savienotu uz dažām minūtēm.

Pēdējais solis ir pārbaudīt visu sistēmu - ja viss ir savienots, ja panelis ir pārklāts desmit vai 15 sekundes, gaismai vajadzētu iedegties, izmantojot vadītāja kodola PWM izeju. Ja panelis atrodas spilgtā saules gaismā, akumulatoram vajadzētu uzlādēties no pastiprinātāja pārveidotāja izejas. Izplūdušo loģikas tīklu var netieši pārbaudīt, vai tas darbojas pareizi, aplūkojot PWM līniju, kas vada pastiprinātāja pārveidotāja izslēgšanas tapu; palielinoties apgaismojumam ar akumulatoru ar zemu uzlādes līmeni, impulsa platumam vajadzētu palielināties, parādot, ka, saules gaismai kļūstot pieejamākai jaudai, vadītāja kodols signalizē, ka akumulatoram jānosūta lielāka jauda!

9. solis: Pielikums par izplūdušo loģiku

Pielikums par izplūdušo loģiku
Pielikums par izplūdušo loģiku

Neskaidra loģika ir mašīnmācīšanās paņēmiens, ko var izmantot aparatūras sistēmu vadībā, ja daudzos kontrolējamās sistēmas parametros ir nenoteiktība, skaidri ievadot izejas vadības risinājumu mērķim, kuru ir grūti pierakstīt matemātiski. Tas tiek panākts, izmantojot loģiskās vērtības, kas atrodas kaut kur starp 0 (nepatiess) un 1 (patiess), paužot nenoteiktību vērtībā, kas vairāk līdzinās cilvēkam (“lielākoties patiesa” vai “nav īsti patiesa”), un ļaujot iegūt pelēko zonu starp apgalvojumiem, kas ir 100% patiesi un 100% nepatiesi. Tas tiek darīts, vispirms ņemot paraugus no ievades mainīgajiem, uz kuriem jāpieņem lēmums, un tos “izplūduši”.

Jebkuras izplūdušas loģikas sistēmas sirds ir “neskaidra asociatīvā atmiņa”. Tas atgādina matricu, kur akumulatora uzlādes ķēdes gadījumā tiek saglabāta 3x3 vērtību kopa, kas svārstās no 0 līdz 1. Matricas vērtības var aptuveni saistīt ar to, kā cilvēks domā par to, kādam vajadzētu būt PWM faktoram, kas kontrolē pastiprinātāja pārveidotāja SHTDN tapu, atkarībā no tā, kā iepriekš minētā dalības funkcija kvalificē noteiktu ievades kopu. Piemēram, ja paneļa ieejas spriegums ir augsts, bet akumulatorā ieplūstošā strāva ir zema, tas, iespējams, nozīmē, ka var patērēt vairāk enerģijas un PWM iestatījums nav optimāls, un tas ir jāpalielina. Un otrādi, ja paneļa spriegums samazinās, bet lādētājs joprojām mēģina ievietot lielu strāvu akumulatora enerģijā, tas arī tiks izšķiests, tāpēc vislabāk būtu samazināt PWM signālu uz pastiprinātāja pārveidotāju. Kad ievades signāli ir “izplūduši” izplūdušā kopā, tie tiek reizināti ar šīm vērtībām, līdzīgi kā vektors tiek reizināts ar matricu, lai radītu pārveidotu kopu, kas atspoguļo to, cik lielā mērā “zināšanas” satur šūnu matricas daļa ir jāiekļauj galīgās kombinācijas funkcijā.

Izmantojot mezglu “neīstenots-in-xod”, kas ļauj XOD mezgliem, kas ievieš pielāgotu funkcionalitāti, ir pārāk sarežģīti, lai tos būtu saprātīgi izgatavot no krājumu celtniecības blokiem, un nedaudz Arduino stila C ++, asociatīvās atmiņas, svēršanas funkcijas un izplūdes veidotājs , kas līdzīgs šajā atsaucē aprakstītajiem blokiem: https://www.drdobbs.com/cpp/fuzzy-logic-in-c/184408940, ir vienkārši izgatavojams un daudz vieglāk eksperimentējams.

Ieteicams: