- Projektin kulku:
- Projektivaatimukset
- Piirikaavio:
- Asenna Raspberry Pi -oskilloskoopin riippuvuudet:
- Vadelma Pi -oskilloskoopin Python-koodi:
- Vadelma Pi -oskilloskooppi toiminnassa:
Hei kaverit, tervetuloa tämän päivän viestiin. Yksi mielenkiintoisimmista tekijöistä valmistajana on tietää, kuinka kehittää välitystyökaluja, et koskaan jumissa minkään projektin parissa, kun sinulla on tällainen monipuolisuus. Joten tänään jaan miten rakentaa Vadelma Pi -pohjainen välitön versio yhdestä tärkeimmistä sähkö- / elektroniikkateollisuuden työkaluista; Oskilloskooppi.
Oskilloskooppi on elektroninen testauslaite, joka mahdollistaa erilaisten signaalijännitteiden visualisoinnin ja havainnoinnin, yleensä kaksiulotteisena käyränä, jossa yksi tai useampi signaali on piirretty ajan suhteen. Tämän päivän projektissa pyritään toistamaan oskilloskoopin signaalin visualisointimahdollisuudet käyttämällä Raspberry Pi: tä ja analogisesta digitaaliseen muunninmoduulia.
Projektin kulku:
Oskilloskoopin signaalin visualisoinnin toistaminen Vadelma Pi: llä edellyttää seuraavia vaiheita;
1. Suorita tulosignaalin digitaalimuunnos analogiseksi
2. Valmistele saadut tiedot esitystä varten
3. Piirrä tiedot reaaliaikakaavioon
Tämän projektin yksinkertaistettu lohkokaavio näyttäisi olevan alla oleva kaavio.
Projektivaatimukset
Tämän hankkeen vaatimus voidaan jakaa kahteen:
- Laitteistovaatimukset
- Ohjelmistovaatimukset
Laitteistovaatimukset
Tämän projektin rakentamiseen tarvitaan seuraavat komponentit / osa;
- Vadelma pi 2 (tai mikä tahansa muu malli)
- 8 tai 16 Gt: n SD-kortti
- LAN / Ethernet-kaapeli
- Virtalähde tai USB-kaapeli
- ADS1115 ADC
- LDR (valinnainen testattavaksi)
- 10k tai 1k vastus
- Hyppääjän johdot
- Leipälauta
- Näyttö tai jokin muu tapa nähdä pi: n työpöytä (VNC mukaan lukien)
Ohjelmistovaatimukset
Tämän projektin ohjelmistovaatimukset ovat periaatteessa python-moduulit ( matplotlib ja drawow ), joita käytetään tietojen visualisointiin, ja Adafruit-moduuli liitäntään ADS1115 ADC-sirun kanssa. Näytän, kuinka nämä moduulit asennetaan Raspberry Pi: lle, kun jatkamme.
Vaikka tämä opetusohjelma toimii käytetystä vadelma pi -käyttöjärjestelmästä riippumatta, käytän Raspberry Pi stretch -käyttöjärjestelmää ja oletan, että olet perehtynyt Vadelma Pi: n asentamiseen Raspbian stretch -käyttöjärjestelmällä, ja tiedät kuinka SSH: n voi sisällyttää vadelmaan pi käyttäen pääteohjelmistoa, kuten kitti. Jos sinulla on ongelmia tämän kanssa, tällä sivustolla on tonnia vadelma Pi -oppaita, jotka voivat auttaa.
Kun kaikki laitteistokomponentit ovat paikallaan, luodaan kaaviot ja yhdistetään komponentit yhteen.
Piirikaavio:
Muuntamaan analogiset tulosignaalit digitaalisiksi signaaleiksi, jotka voidaan visualisoida Raspberry Pi: llä, käytämme ADS1115 ADC -piiriä. Tästä sirusta tulee tärkeä, koska Raspberry Pi: llä, toisin kuin Arduinolla ja useimmilla mikro-ohjaimilla, ei ole sisäistä analogista digitaalimuunninta (ADC). Vaikka olisimme voineet käyttää mitä tahansa vadelma pi -yhteensopivaa ADC-sirua, pidän parempana tätä sirua korkean resoluution (16 bittiä) ja sen hyvin dokumentoidun tietolomakkeen ja Adafruitin käyttöohjeiden vuoksi. Voit myös tarkistaa Raspberry Pi ADC -opetusohjelmamme saadaksesi lisätietoja siitä.
ADC on I2C-pohjainen laite, ja se tulisi liittää Raspberry Pi -laitteeseen alla olevien kaavioiden mukaisesti.
Selvyyden vuoksi kahden komponentin välinen nastaliitäntä kuvataan myös alla.
ADS1115- ja Raspberry Pi -liitännät:
VDD - 3,3 V
GND - GND
SDA - SDA
SCL - SCL
Kun kaikki liitännät on tehty, käynnistä pii ja asenna alla mainitut riippuvuudet.
Asenna Raspberry Pi -oskilloskoopin riippuvuudet:
Ennen kuin aloitamme python-komentosarjan kirjoittamisen tietojen hakemiseksi ADC: stä ja piirtämään ne reaaliaikaiseen kaavioon, meidän on otettava käyttöön vadelma pi: n I2C-tietoliikenneliitäntä ja asennettava aiemmin mainitut ohjelmistovaatimukset. Tämä tehdään alla olevissa vaiheissa, joten sitä on helppo seurata:
Vaihe 1: Ota käyttöön Raspberry Pi I2C -liitäntä
Ota I2C käyttöön suorittamalla päätelaite;
sudo raspi-config
Kun määrityspaneelit avautuvat, valitse käyttöliittymävaihtoehdot, valitse I2C ja napsauta Ota käyttöön.
Vaihe 2: Päivitä Vadelma pi
Ensimmäinen asia, jonka teen ennen projektin aloittamista, on Pi: n päivittäminen. Tämän kautta olen varma, että kaikki käyttöjärjestelmän asiat ovat ajan tasalla, enkä koe yhteensopivuusongelmia minkään uusimman ohjelmiston kanssa, jonka päätän asentaa Pi: lle. Suorita tämä suorittamalla alle kaksi komentoa:
sudo apt-get päivitys sudo apt-get päivitys
Vaihe 3: Asenna Adafruit ADS1115 -kirjasto ADC: tä varten
Kun päivitys on valmis, olemme nyt valmiita asentamaan riippuvuudet alkaen Adafruit python -moduulista ADS115-sirulle. Varmista, että olet Raspberry Pi -hakemistossa suorittamalla;
cd ~
asenna sitten rakentamisen välttämättömyydet suorittamalla;
sudo apt-get install build-essential python-dev python-smbus git
Kloonaa sitten kirjaston Adafruit git -kansio suorittamalla;
git-klooni https://github.com/adafruit/Adafruit_Python_ADS1x15.git
Vaihda kloonatun tiedoston hakemistoon ja suorita asennustiedosto;
cd Adafruit_Python_ADS1x1z sudo python setup.py asennus
Asennuksen jälkeen näytön tulisi näyttää alla olevalta kuvalta.
Vaihe 4: Testaa kirjasto ja 12C-viestintä.
Ennen kuin jatkat loppuprojektia, on tärkeää testata kirjasto ja varmistaa, että ADC pystyy kommunikoimaan vadelma pi: n kanssa I2C: n kautta. Tätä varten käytämme kirjaston mukana toimitettua esimerkkikomentosarjaa.
Vaihda hakemisto esimerkkihakemistoon, kun olet vielä Adafruit_Python_ADS1x15-kansiossa;
CD-esimerkkejä
Suorita seuraavaksi sampletest.py-esimerkki, joka näyttää ADC: n neljän kanavan arvon taulukkomuodossa.
Suorita esimerkki seuraavilla tavoilla:
python simpletest.py
Jos I2C-moduuli on käytössä ja yhteydet ovat hyvät, sinun pitäisi nähdä tiedot alla olevan kuvan mukaisesti.
Jos tapahtuu virhe, tarkista, että ADC on kytketty hyvin PI: hen ja I2C-tiedonsiirto on käytössä Pi: ssä.
Vaihe 5: Asenna Matplotlib
Tietojen visualisoimiseksi meidän on asennettava matplotlib- moduuli, jota käytetään piirtämään kaikenlaisia kaavioita pythonissa . Tämä voidaan tehdä juoksemalla;
sudo apt-get install python-matplotlib
Sinun pitäisi nähdä tulos, kuten alla oleva kuva.
Vaihe 6: Asenna Drawnow python -moduuli
Viimeiseksi meidän on asennettava vedetty python-moduuli. Tämä moduuli auttaa meitä tarjoamaan reaaliaikaisia päivityksiä datakaavioon.
Tulemme asentamista drawnow kautta python asennusohjelmaa; pip , joten meidän on varmistettava, että se on asennettu. Tämä voidaan tehdä juoksemalla;
sudo apt-get asenna python-pip
Voimme sitten käyttää pip -ohjelmaa vetopaketin asentamiseen suorittamalla:
sudo pip asenna vedetty
Sinun pitäisi saada alla olevan kuvan kaltainen tulos sen suorittamisen jälkeen.
Kun kaikki riippuvuudet on asennettu, olemme nyt valmiita kirjoittamaan koodin.
Vadelma Pi -oskilloskoopin Python-koodi:
Tämän Pi-oskilloskoopin python-koodi on melko yksinkertainen, varsinkin jos tunnet python- matplotlib- moduulin. Ennen kuin näytän meille koko koodin, yritän jakaa sen osiin ja selittää, mitä koodin jokainen osa tekee, jotta sinulla voi olla tarpeeksi tietoa laajentaa koodia tekemään enemmän tavaroita.
Tässä vaiheessa on tärkeää vaihtaa näyttöön tai käyttää VNC-katseluohjelmaa, mikä tahansa, jonka kautta näet Raspberry Pi: n työpöydän, koska piirrettävä kaavio ei näy päätelaitteessa.
Kun näyttö on käyttöliittymänä, avaa uusi python-tiedosto. Voit kutsua sitä haluamallesi nimelle, mutta minä kutsun sitä scope.py.
sudo nano scope.py
Kun tiedosto on luotu, tuomme ensin käyttämämme moduulit;
tuonti aikaa tuonti matplotlib.pyplot kuin plt alkaen drawnow tuonti * tuonti Adafruit_ADS1x15
Seuraavaksi luomme ADS1x15-kirjaston instanssin, joka määrittelee ADS1115 ADC: n
adc = Adafruit_ADS1x15.ADS1115 ()
Seuraavaksi asetamme ADC: n vahvistuksen. Vahvistusalueita on erilaisia, ja ne olisi valittava sen jännitteen perusteella, jota odotat ADC: n tulossa. Tätä opetusohjelmaa varten arvioimme 0 - 4,09v, joten käytämme vahvistusta 1. Saat lisätietoja vahvistuksesta tarkistamalla ADS1015 / ADS1115-tietolomakkeen.
GAIN = 1
Seuraavaksi meidän on luotava taulukon muuttujat, joita käytetään piirrettävän datan tallentamiseen ja toinen, joka toimii laskennana.
Val = cnt = 0
Seuraavaksi tiedämme aikomuksemme tehdä juoni interaktiiviseksi tunnetuksi, jotta voimme piirtää tiedot eläviksi.
plt.ion ()
Seuraavaksi aloitetaan jatkuva ADC-muunnos määrittelemällä ADC-kanava, tässä tapauksessa kanava 0, ja määritämme myös vahvistuksen.
On huomattava, että kaikki ADS1115: n neljä ADC-kanavaa voidaan lukea samanaikaisesti, mutta yksi kanava riittää tähän esittelyyn.
adc.start_adc (0, voitto = GAIN)
Seuraavaksi luoda funktion def makeFig , jotta luoda ja asettaa ominaisuudet kuvaajan joka pitää live juoni. Ensinnäkin asetamme y-akselin rajat ylim-toiminnolla , jonka jälkeen syötämme käyrän otsikon ja etiketin nimen, ennen kuin määritämme piirrettävät tiedot sekä sen juonityylin ja värin käyttämällä plt.plot (). Voimme myös ilmoittaa kanavan (kuten kanava 0 ilmoitettiin), jotta voimme tunnistaa jokaisen signaalin, kun ADC: n neljää kanavaa käytetään. plt.legendiä käytetään määrittämään, mihin haluamme tietoa signaalista (esim. kanava 0), joka näkyy kuvassa.
plt.ylim (-5000,5000) plt.title ('Oskilloskooppi') plt.grid (True) plt.ylabel ('ADC-lähdöt') plt.plot (val, 'ro-', label = 'lux') plt.legend (loc = 'oikeassa alakulmassa')
Seuraavaksi kirjoitamme while- silmukan, jota käytetään jatkuvasti lukemaan tietoja ADC: ltä ja päivitämme kuvaajan vastaavasti.
Ensimmäinen asia, jonka teemme, on ADC-muunnosarvon lukeminen
arvo = adc.get_last_result ()
Seuraavaksi tulostamme arvon päätelaitteeseen vain antamaan meille toisen tavan vahvistaa piirretty data. Odotamme muutaman sekunnin tulostuksen jälkeen, sitten liitämme tiedot luetteloon (val), joka on luotu tallentamaan kyseisen kanavan tiedot.
tulosta ('Channel 0: {0}'. format (value)) time.sleep (0.5) val.endend (int (value))
Soitamme sitten vetoa päivittää juoni.
veto (makeFig)
Sen varmistamiseksi, että viimeisimmät tiedot ovat käytettävissä kaaviossa, poistamme tiedot indeksistä 0 jokaisen 50 datanlaskun jälkeen.
cnt = cnt + 1 if (cnt> 50): val.pop (0)
Siinä kaikki!
Täydellinen Python koodia annetaan lopussa tämän opetusohjelman.
Vadelma Pi -oskilloskooppi toiminnassa:
Kopioi koko python-koodi ja liitä aiemmin luomaasi python-tiedostoon, muista, että tarvitsemme näytön, jotta juoni voidaan tarkastella, joten kaiken tämän pitäisi tehdä joko VNC tai yhdistetyn näytön tai näytön kanssa.
Tallenna koodi ja suorita käyttämällä;
sudo python -alue.py
Jos käytit muuta nimeä kuin scope.py, älä unohda muuttaa sitä vastaavaksi.
Muutaman minuutin kuluttua sinun pitäisi nähdä ADC-tiedot tulostuvan päätelaitteeseen. Joskus saatat saada varoituksen matplotlibiltä (kuten alla olevassa kuvassa näkyy), joka on estettävä, mutta se ei kuitenkaan vaikuta näytettäviin tietoihin tai juoniin. Varoituksen estämiseksi seuraavat koodirivit voidaan kuitenkin lisätä koodimme tuontirivien jälkeen.
Tuo varoitukset tuoda matplotlib.cbook warnings.filterwarnings (“ignore”, category = matplotlib.cbook.mplDeprecation)
Siinä se tässä opetusohjelmassa kaverit, jotta oskilloskooppi voidaan testata kokonaan, voit liittää analogisen laitteen, kuten potentiometrin, ADC: n kanavaan, ja sinun pitäisi nähdä tiedot muuttuvat potentiometrin jokaisessa käännöksessä. Tai voit syöttää siniaallon tai neliöaallon tuloksen testaamiseksi.
Kiitos lukemisesta, jos sinulla on kysyttävää tai jotain, jonka haluat minun lisäävän, jätä minulle kommentti.
Ensi kerralla, jatka tekemistä!