Teade

Collapse

Foorumi reeglid.

Foorumi reeglistik on uuendatud. Palume tutvuda ja arvesse võtta.
See more
See less

Projekt "Auto aju"

Collapse
X
 
  • Filter
  • Kellaaeg
  • Show
Clear All
new posts

    Projekt "Auto aju"

    Loon uue teema "Auto aju", kus loodan ka siinsete inimeste kommentaare, soovitusi, ettepankuid ja miks ka mitte konstruktiivset kriitikat. Postitused stiilis jama või miks sellist jama teha vms siis ei ole oodatud, eks igaüks ise teab millega oma aega sisustada Kui keegi aga tahab teada miks ma seda teen, siis ütlen, hobi pärast.
    Millega on tegemist, tegemist on ühe vana auto nö noorendamisega, täpsemalt siis 87 a Mercedes G klassi 460 mudelile 2003 aasta mudeli 463 välimuse andmine. Autole teen nii tehnilise kui välimuse upgrade kuid siin ma ei sooviks arutada muid auto ehituse üksikasju kui ainult elektroonika aga kui kedagi huvitab siis kogu blogi asub siin: http://gmersu.blogspot.com/
    Asja juurde siis, soovin G460 sõjaaegsed kellad (tahhomeeter, spido jne) vahetada uuema põlvkonna sarnase vastu. Kõige sarnasem, peaaegu samasugune on W203 Mercedesel aastast 2000 (C klass), samuti tulevad sellelt autolt ka armatuuris olevad nuppude paneelid. W203 -e kellad ja nupud on originaalis omavahel ühendatud CAN b võrgu kaudu kus toimub kogu andmevahetus, on veel ka CAN C aga see peamiselt mootori ja pidurite ja abs jne komponentidega suhtleb. Ostsin endale CAN232 nimelise gateway ja üritasin can -i lahti häkkida. Mingil määral see mul ka õnnestus aga kuna Mercedes on oma koodid salastanud, siis kõike sniffida oleks juba raske, kui mitte võimatu, mõned koodid nagu immoga seotu on veel ka krüptitud. õnnestus tulesid lülitada, suundasid jne aga näiteks spidokat ilma mõlema CAN -ita ei saa, CAN c aga soovib kiiruse infoks abs andurite infot, abs -i mul aga pole . Seega otsustasin CAN -i mitte kasutada vaid luua oma "aju" koos vastava kommunikatsioonivõrguga.
    Istusin täna pool päeva ja tegin endale selgeks kõigepealt mida mul vaja on ning joonistasin plokkskeemina üles.
    Vaja on mida:
    1. Andurite sisendmoodulit
    2. Kliima kontrollpaneeli moodulit
    3. Armatuuri nupupaneeli moodulit
    4. ühte RS232 gateway -d
    5. Täiturmoodulid (releed)
    6. Kellaploki moodulit

    Nupupaneelide nupud ühendaksin auto elektrist nö lahti otse kontrolleri sisendiks, moodulid ühendaksin omavahel I2C võrgu kaudu ning võrgu otsa istutaksin ühe RS232 silla, et saaks arvutiga sellesse kõigesse sekkuda.
    Praeguse idee järgi võiks kogu arhitektuur olla tesentraliseeritud, et vältida vastakate korralduste andmist. Keskmoodul võiks olla RS232 gateway kes käib küsib koguaeg kõikide moodulite käest nende objektide seise ja reageerib siis vastavalt. Näiteks nupupaneeli nuppu kui vajutada ja lahti lasta siis nupupaneeli kontroller lihtsalt paneb nupu ledi põlema ja registreerib oma registris, et see nupp on aktiveeritud, kellelegi muule ta seda ise ei ütle. Nüüd kui skaneeriv moodul tuleb küsib selle mooduli käest mis seisus nupp on ja saab vastuseks, et aktiine, saadab vastava korralduse mingit releed lülitada täiturmoodulis, ise nupupaneeli moodul kuhugi mingit inffi ei saada.

    Toon ära ka plokkskeemi:
    Lisatud failid
    viimati muutis kasutaja karuanton; 23 m 2012, 00:09.

    #2
    Vs: Projekt "Auto aju"

    Miks see asi nii keeruline peab olema? Miks on sinu kolme elemendiga süsteem (sisendite jaoks prose, väljundite jaoks prose, nende omavahelise suhtluse vahele prose) parem kui kasutada ühte kontrollerit, kus on sisend ja väljund sama prose küljes?

    Comment


      #3
      Vs: Projekt "Auto aju"

      Iseenesest õigustatud küsimus, võib olla olen oma mõtlemisega puusse pannud aga seletan siis miks.
      Kliimaplokis on 8 sisendit ning 3 - 4 ledi. Kuna kliimaplokk asub armatuuris, releeplokk sinna aga ei mahu ja asub juhi jalgade peal, peaks nende omavahele vedama ca 14 juhet = 28 oksüdeerivat kontakti (see ju auto ja veel maastur mis niiskes keskkonnas sõidab), mis aga oleks minumeelest mõttetu. Sama ka armatuuri nupupaneeliga kus on ka ca 8 sisendit ja 6 ledi. Andurite mooduli ca 16 sisendiga paneksin üldse kapoti alla, sealt peaksin siis mingi 20 juhet tooma. Lisaks kui soovin navis või kellade plokis temperatuure näha, peaksin ikkagi võrgu püsti seadma, et andurite ja kliimaplokk infot mitmele soovijale jagaks.
      Teine küsimus on jah see, et kas on nii tsentraliseeritult teha, võib olla tõesti oleks õigem võtta CAN -st eeskuju kus kõik moodulid broadcastiks koguaeg oma infot võrku. Kardan natukene seda lahendust suure töömahu pärast mis collisioonide ja ummikute vältimiseks teha tuleks.
      Aga sellises stiilis küsimused on head, tekitavad arutelu mis viib tõeni
      viimati muutis kasutaja karuanton; 23 m 2012, 11:13.

      Comment


        #4
        Vs: Projekt "Auto aju"

        Ise kasutasin ühes projektis pordilaienduskici PCA9555, üle i2c siini 2 8bitilist IO porti ehk siis 16 otsa, mida seadista kas sisendiks või väljundiks. Kindlasti on neid ka teisi olemas. Lisaks ühele I2C siinile sai neid ikka omajagu paralleeli panna. Nendega jääks topelt prosed ja neile koodi kirjutamine ära.

        Comment


          #5
          Vs: Projekt "Auto aju"

          Esmalt postitatud Eggy poolt Vaata postitust
          Ise kasutasin ühes projektis pordilaienduskici PCA9555, üle i2c siini 2 8bitilist IO porti ehk siis 16 otsa, mida seadista kas sisendiks või väljundiks. Kindlasti on neid ka teisi olemas. Lisaks ühele I2C siinile sai neid ikka omajagu paralleeli panna. Nendega jääks topelt prosed ja neile koodi kirjutamine ära.
          Jah, selle teema tegemise üks põhjustest nagu ka teises teemas mainisin, on see, et ei tea uutest tehnoloogiatest suurt midagi ja vanadki ununenud, tänud soovituse eest.
          See oleks sobiv kivi küll, kuidas teda juhitakse, nagu i2c eprommi?

          Comment


            #6
            Vs: Projekt "Auto aju"

            Midagi sellist jah, atmega168 peal jooksev librari on olemas ka, kui huvi on. Mitte kõige ilusam, aga töötav.

            Comment


              #7
              Vs: Projekt "Auto aju"

              Esmalt postitatud Eggy poolt Vaata postitust
              Midagi sellist jah, atmega168 peal jooksev librari on olemas ka, kui huvi on. Mitte kõige ilusam, aga töötav.
              Tänud, küsin kui vaja peaks olema aga usun, et kindlasti mingid 'ilusad' tootja enda loodud libraryd on ka olemas. Iseenesest ei tohiks see eprommist lugemisest väga erineda, mõlemal puhul loetakse mingilt i2c aadressil oleva device mingil aadressilt miskit või kirjutatakse siis sinna, suht standartne teema peaks olema.
              viimati muutis kasutaja karuanton; 23 m 2012, 16:27.

              Comment


                #8
                Vs: Projekt "Auto aju"

                Üks lihtne ja universaalne lahendus oleks kasutada nihkeregistrit.
                Ühendus tuleb kaabeliga 5-6 soont:
                maa
                pinge
                laadimine12
                takt
                sisu

                Kui uMasin on 5 V siis registrid võiks olla 12 V, 3-4 optronit vahel. Mõjub tervisele hästi

                Programm siis algul otsustab mis seisus peavad olema väljundid, paneb selle tabelisse kirja.
                Siis saadab pulsi et laadida sisendid nihkeregistrisse. Sama pulss võib laadida ka väljundid.
                Kuib sellest võib tekkida pahandusi siis laadib kaks pulssi. Ja nihutab rigistrisse.

                Seega:

                while(1){
                Teha_Väljund();
                Laadimine();
                for (i=0; i<maks; i++) {
                Valja=Tv[i];
                Takt();
                Ts[i]= Sisse;
                }
                Teha_Sisend();
                }

                Alamprogrammid paika ja ongi kogu lugu.

                Kui otsida siis PISOPO nihkeregistreid peaks valmis kujul leiduma.
                Ja lühikesed jupid annab panna sinna lähedale kus neid vaja on.

                Comment


                  #9
                  Re: Vs: Projekt &quot;Auto aju&quot;

                  Teine teema, mille üle natuke mõelda on valitud andmesiin. I2C nüüd küll sellisesse keskkonda mõeldud pole, see mõeldud pigem ühe plaadi peal kiipide ühendamiseks kui mööda autot ringi vedamiseks. Müra liiga palju, paketid kaovad ära. Ideaalne oleks sinna CAN bus panna. Võibolla sobiks ka USART (synkroon UART). CAN klotse müüakse ka eraldi kiipidena, saaksid UARDI või SPI või I2C külge panna.

                  Comment


                    #10
                    Esmalt postitatud A.R. poolt Vaata postitust
                    Üks lihtne ja universaalne lahendus oleks kasutada nihkeregistrit.
                    Ühendus tuleb kaabeliga 5-6 soont:
                    maa
                    pinge
                    laadimine12
                    takt
                    sisu
                    ...
                    Alamprogrammid paika ja ongi kogu lugu.

                    Kui otsida siis PISOPO nihkeregistreid peaks valmis kujul leiduma.
                    Ja lühikesed jupid annab panna sinna lähedale kus neid vaja on.
                    Jah, see oleks siis kui üks moodul loeb sisendist infot ja määrab vastavalt sellele infole otse teise mooduli väljundi ehk point to point või pigem ühe mooduli jaotamine kahte ossa. See pole paha mõte aga miinus on antud kontekstis see, et kui sama mooduli küljes on nii sisendid kui väljundid, tekitab see nagu enne mainisin kümneid võimalikke halva ühendusega lisakontakte kuna nupud ja releed asuvad ca kuni 1,5 juhtmepikkuse meetri kaugusel üksteisest. Lisaks jääks see sisenditest tulev info ainult selle mooduli teada, kelladeplokis näiteks ei saa ma sellel puhul temperatuuri näidata, kui just ka kelladeplokk pole sama mooduli küljes, mis aga oleks oma kümnete ledide tõttu ebaotstarbekas. Kui aga juba ka sellele moodulile võrk külge panna, siis pole ju enam vajadust selliste 'suurmoodulite' järele, ka paarikontaktiliste nuppude taha võiks pisikese pic -i panna. Mida vähem juhtmeid, seda vähem probleeme, seega kui võimalik oleks kuidagi paari juhtmelisse digikanalisse kogu inff ajada, oleks suurem nii töökindlus kui lihtsam ka ehitamine.
                    Aga ettepanekud on kõik teretulnud

                    Esmalt postitatud bloody-orc poolt Vaata postitust
                    Teine teema, mille üle natuke mõelda on valitud andmesiin. I2C nüüd küll sellisesse keskkonda mõeldud pole, see mõeldud pigem ühe plaadi peal kiipide ühendamiseks kui mööda autot ringi vedamiseks. Müra liiga palju, paketid kaovad ära. Ideaalne oleks sinna CAN bus panna. Võibolla sobiks ka USART (synkroon UART). CAN klotse müüakse ka eraldi kiipidena, saaksid UARDI või SPI või I2C külge panna.
                    Mnjah, olen can -ga jännanud küll, ostsin lausa ühe can232 ülemineku sellejaoks kunagi. Mida võin öelda, lihtsate killast see can minujaoks pole. Kui panna kokku kaks mingit tehase can plokki, jah siis pole suurt probleemi, kirjuta ainult soft mis andmeid võrku saadab ja sealt võtab aga kui ise hakata can -i protokolli endaga jändama, kogu selle collisioonide teooriaga jändama, ma ei tea, mulle tundus see liiga keeruline, et seda kasutada. Ei ole mõtet niipalju aega kulutada sellise asja peale. Aga noh, võib olla ma lihtsalt ei leidnud õigeid lahendusi. Ja pole see can ka mingi imetrikk, vii aga üks juhtmetest maha või pidevasse toitesse, on samuti kogu võrk halvatud.
                    Kas i2c just õige on, selles pole ma isegi kindel, kunagi sai kasiino mänguautomaadid rs485 -ga kokku ühendatud, ka see toimis aga millegipärast on mul kehvad mälestused sellest , ei tea miks, ei mäleta enam. I2C -ga aga olen ühendanud asju ka mitmekümne meetri kauguselt ja toimis nagu mäletan, suht mürakindel minumeelest see I2C.
                    USART -i kohta ei oska praegu öelda, on see sobiv või ei.

                    Teine teema on see, et kui minna broadcast lahendusele, ehk kõik moodulid saadavad eetrisse koguaeg kogu infot, nagu auto CAN -i ideoloogia, siis ei saa eriti I2C -d kasutada, I2C -ga saab minuteada ainult point to point lahendust, broadcast pole võimalik. Sellel puhul võib olla RS485 või mida sellel puhul soovitaksite?
                    Võiks olla näiteks nii, et paketi pikkus on kindel, näiteks 32baiti, paketi header kõigepealt ca8 baiti, siis aadress kellelt 2 - 3 baiti, siis data ja lõpuks veel mingi hunnik footer baite + chechksum. Kõik moodulid koguaeg kuulavad kogu liiklust ja kui leiavad, et neile on mõni aadressi info oluline, siis kuulavad seda infot edasi ehk teisisõnu adressaati ei ole, on ainult saatja aadress. Mitte üks moodul vaid üks nupp/andur oleks üks aadress, ühe mooduli sees oleks palju aadresse.
                    viimati muutis kasutaja Scott; 26 m 2012, 05:44. Põhjus: kokku

                    Comment


                      #11
                      Vs: Projekt &quot;Auto aju&quot;

                      See mitme soone probleem on muidugi tõsine. Fi-s ehitasime süsteemi kus kanti rööpi üle 16 signaali.
                      Oma tehtud koks kaablite kaudu. Vast 50 m oli kaugemad seadmed.
                      Kahesoonelise seerial voolu kaudu oli ühenduses arvuti ja trükkplaatide sisestuslaud.
                      Vahemaa oli ca 1 km. Kuna sooni oli kaablis palju siis panime 5 paari prooviks järjest ja seega töötasime 5 km
                      pikkuse kaabliga. Paar aastat, probleeme polnud.

                      See, mida ma eelmises loos kirjeldasin oli sisuliselt selle masina
                      http://www.youtube.com/watch?feature...&v=bzIlZTB_R5I tulede osa.
                      Lihtsalt üks töötav näide.

                      See vilkuvate ja kiirelt süttivate tulede vahe on nihkeregistri taktpulsi pikkuses.
                      Kokku on seal nii kasutusel 32 erinevat väljundit.
                      Kaks digisisendit on ka kasutuses. Seega oleks võimalus ka infot vajadusel arvutisse lugeda.

                      Selles skeemis ma temperatuuri ei mõõtnud.
                      Demoprogrammi näites mida kasutasin oli aga sees ka temperatuuri mõõtmine.
                      Mul jäi kivis need 13 analoogsisendit lihtsalt üle.

                      Kui ühenduskaabli koormustakistused on väiksemad ja taktid pikemad on ka töökindlus üha parem.

                      Seega, arvan et NII saab teha aga NII EI PEA tegema.

                      Comment


                        #12
                        Esmalt postitatud A.R. poolt Vaata postitust
                        See mitme soone probleem on muidugi tõsine. Fi-s ehitasime süsteemi kus kanti rööpi üle 16 signaali.
                        Oma tehtud koks kaablite kaudu. Vast 50 m oli kaugemad seadmed.
                        Kahesoonelise seerial voolu kaudu oli ühenduses arvuti ja trükkplaatide sisestuslaud.
                        Vahemaa oli ca 1 km. Kuna sooni oli kaablis palju siis panime 5 paari prooviks järjest ja seega töötasime 5 km
                        pikkuse kaabliga. Paar aastat, probleeme polnud.

                        See, mida ma eelmises loos kirjeldasin oli sisuliselt selle masina
                        http://www.youtube.com/watch?feature...&v=bzIlZTB_R5I tulede osa.
                        Lihtsalt üks töötav näide.
                        ...
                        Seega, arvan et NII saab teha aga NII EI PEA tegema.
                        Kui ma nüüd su jutust õieti aru sain siis soovitad siiski ptp ühendust ja ilma võrguta, see tundub mulle esialgu keerulisem, pikemaid juhtmeid ja rohkemaid ühendusi vajav. Minumeelest kõige lihtsam oleks ikkagi microkontroller, võrgu driver, ja täiturmoodulil ka soovitatud transistoride kogumikkivi releede ette, kokku kolm kivi ja kõik.
                        Ma küll jõuliselt kaitsen oma arvamust aga ootan siiski kõiki pakutavaid lahendusi.

                        Lisan ka täiendatud plokkskeemi ver2, kus lisandusid roolinupumoodul, randmenupumoodul ning sild navisse (automakk arvuti)
                        Lisatud failid
                        viimati muutis kasutaja Scott; 26 m 2012, 05:45. Põhjus: kokku

                        Comment


                          #13
                          Vs: Projekt &quot;Auto aju&quot;

                          Esmalt postitatud karuanton poolt Vaata postitust
                          Ma küll jõuliselt kaitsen oma arvamust
                          Aga keegi ei keela ju teha nii nagu tahad.
                          Probleemi ju pole.

                          Mina tegin nii nagu pidasin õigeks.
                          Kasutasin neid kogemusi mis on ajapikku kogunenud.

                          Tee Sina samamoodi.

                          Comment


                            #14
                            Vs: Projekt &quot;Auto aju&quot;

                            Kas kellelgi on reaalselt toimivaid kogemusi avr -i otsas can -i tööle saamisega, seda nii lugemisel kui kirjutamisel, näiteks mpc2515 draiveriga?

                            Nii, tellisin MCp2515 ja MCP2551 ära, kui kohale jõuab, hakkan uuesti CAN -i katsetama. Olles hulga kirjandust nüüd läbi lugenud, tundub ikkagi ainuõige lahendus antud vajaduseks oleks CAN.
                            viimati muutis kasutaja karuanton; 25 m 2012, 11:58.

                            Comment


                              #15
                              Nii, hulga vett on voolanud merre vahepeal ehk vahepeal peab tööd ka tegema
                              Tegin salongi kliimaploki ühendamise plokkskeemi ära.

                              Seega, saame:
                              4 analoogsisendit potekatest
                              4 1/0 tüüpi sisendit nuppudest
                              5 1/0 tüüpi väljundit ledide jaoks
                              2 CAN liini väljundit

                              Praeguse seisu järgi läheb kasutusse kombinatsioon Atmega8, MCP2515 ja MCP2551. Atmega8 kuna sellele on librareid palju erinevaid saada ja üldse on hea ja võimekas kivi

                              Sai valmis ka esimene versioon kliimamooduli skeemist. Kuna olen üle 10a elektroonikast eemal olnud, võib täiesti mingeid vigu sees olla. Kui keegi leiab miski vea või on mingi asja suhtes parem mõte, oleks tore kui ütleks.
                              Click image for larger version

Name:	kliimamooduli_skeem.png
Views:	1
Size:	29,2 KB
ID:	867106
                              Lisatud failid
                              viimati muutis kasutaja Scott; 31 m 2012, 23:26.

                              Comment

                              Working...
                              X