Selkeämpi ohjelma Solixiin

Hei,

Löytyykö täältä apua/osaajaa hiukan selkeyttämään www.solixi.fi sivulta lötyvää ohjelmaa.
Eli tuossa tieto mitä välitetään peilien moottoreille on melko vähäistä, joten tuo uudistustarkoituksena ollut CAN-väylä on ehkä hieman turhan järeä tuohon tarkoitukseen. Parempi voisi olla esimerkiksi one-wire väylä tai i2c-väylä. Prosessorit olisivat noilla väylillä hieman halvempia.

Tuossa prototyypissä oli sanottu että siinä on käytössä nytkin 2 ohjainyksikköä, joten voisi olla järkevämpää laittaa toinen ohjainyksikkö sisälle vesisäiliön läheisyyteen ja toinen katolle keräimen ja peilien läheisyyteen ja näiden kahden ohjainyksikön välille vaikka CAN-väylällä tiedon siirto, toteutus tavasta riippuen riittäisi tähänkin välille i2c-väylä. Katolla olevalla ohjainyksiköllä ohjattaisiin peilejä kuten tuossa prototyypissä nytkin. Johtojen pituus tippuisi paljon kun ohjain yksikkö olisi lähellä peilejä.

Terveisin,
Terke

Luin huonosti tuon koodin läpi. Tuon voisi siistiä, mutta se vaatisi uudelleenkirjoittamisen.

Ensin tulisi kirjoittaa miten tuo toimii, sitten katsoa mitä oikeasti tarvitaan ja miten voi toimia paremmin. Tämän jälkeen luoda ohjelmaan selkeä rakenne. Yksi asia, yksi funktio ja eteen static niin se päätyy koodiin ilman call ja ret käskyjä tai kontekstin vaihtoa.

Mitä tulee ohjaukseen niin raudan voisi tosiaan hajauttaa. Peileille oma ohjailija-yksikkö, joka tietää varsien asennon. Leikitään vaikka niin, että siellä on trapetsiruuvi, ylä- ja alarajakytkin, joka ei säry talvella. Buutissa ajetaan peili päästä päähän. askelten määrä otetaan talteen. Ainoa ält mitä jätetään peileille on ohjaaminen. Peilien ohjausohjelmistosta saadaan näin pienempi ja paremmin hallittava.

Yhteyden voi tosiaan tehdä RS-485:llä ja tunkea vaikka modbusprotokollan. Sen läpi voi kysyä on-off tietoja ja numeroita tai ohjata niitä. Tällä tavalla päästään vaikka erillisillä inputeilla rajakytkinten tiedot, liikkeen asentotiedot (olo, min, max) numeerisesta outputista ja yhdellä ohjausrekisteri tiedolla voidaan ajaa peilin akseli haluttuun asentoon.

Toisaalla sitten lasketaan asennot ja ohjauslogiikka.

Koska RS485 on väylä, voidaan järjestelmään lisätä peilien ohjauslaitteistoja julmetusti (255)

Toisaalta peilien ohjausjärjestelmä voisi olla suunniteltu siten, että laite tietäisi peilien akselien vaikutuksen peilin asentoon ja niitä ajettaisiin matriiseilla. Silloin kerrottaisiin Auringon paikka ja laskettaisiin se vektori, jonne halutaan peilin näyttävän. Peili tarvitsisi kalibroida asemiinsa, jotta tämä onnistuu. automaagisesti. Yksi vektori kertoisi milloin peili normaali osoittaisi keräimen keskelle ja toinen voitaisiin sitten määrittää vakka ajamalla auringon (jonka sijaintivektori tiedetään) mukaan. Näistä kahdesta voidaan sitten ratkaista ihan lineaarisesti 3D matriisilaskennalla. Tätä on siis syytä miettiä, miten asennus tehdään näppärästi.

Ei. En ala tekemään. Jos teen niin rakennan oman lankun, viritän Green arraysin GA144:n ja kokeilen mitä sillä voi tehdä.

OK.
Kiitos asiantuntevasta vastauksesta. Miten olisi toteutus/kokeilu ehdottamallasi tavalla? Olen joka tapauksessa jo tilaamassa pelkän keräimen. Haluaisin lisätä sen tehoa aurinkoa seuraavilla peileillä .
T.Terke