Hoe SPI / I2C op Raspberry Pi in te schakelen (en waarvoor deze te gebruiken)

Hoe SPI / I2C op Raspberry Pi in te schakelen (en waarvoor deze te gebruiken) / DIY

De Raspberry Pi kan voor bijna alles worden gebruikt. Van thuismediacenters tot speciale retro gaming-setups, het is veilig om te zeggen dat de Pi en vergelijkbare computers met één board alomtegenwoordig worden.

Wanneer je begint te experimenteren met de GPIO-pinnen op Raspberry Pi, wordt het nog interessanter. We hebben al besproken wat al die pins doen, dus laten we nu kijken naar hoe je de SPI- en I2C-protocollen op je Pi kunt inschakelen en waarom je misschien wilt.

Wat is SPI op Raspberry Pi?

Voordat we gaan duiken, laten we kort zien wat deze twee protocollen doen.

SPI (of seriële perifere interface) maakt het mogelijk voor een microcontroller zoals de Pi om met meer dan 100 randapparatuur tegelijk te communiceren. De microcontroller werkt als een “meester” voor alle “slaaf” componenten, en kan met hoge snelheid communiceren. Dit diagram schetst een eenvoudige SPI-verbinding:

Beeldcredits: Cburnett / wikipedia.org

Als dit je eerste keer is dat je over SPI leest, kan het behoorlijk intimiderend lijken, maar blijf erbij! SCLK is de kloksnelheid die door de master is ingesteld en die de snelheid bepaalt waarmee informatie tussen de apparaten wordt gedeeld.

Bij elke cyclus (of “Kruis aan”) van de klok, verzenden zowel master als slave één bit informatie. Dit is wat de MOSI (Master Out Slave In) en MISO (Master In Slave Out) pinnen zijn voor.

De SS of Slave Select-pin (met CE0 of CE1 op de Pi) wordt gebruikt om een ​​slave-apparaat te laten communiceren met de master - of niet - op een gegeven moment. In de meeste gevallen heeft elk slave-apparaat een eigen SS-pin nodig, maar het kan de SCLK-, MOSI- en MISO-pins delen.

Sommige apparaten kunnen zijn “daisy chained” om een ​​SS-pin te delen, waarbij de totale pinnen tot vier worden gehouden, plus twee voor kracht en aarde. SPI staat bekend als ongelooflijk snel en wordt veel gebruikt in schuifregisters of ADC's (Analoog naar Digitaal converters) om gegevens tussen apparaten door te geven.

Augmented Startups YouTube-kanaal heeft een eenvoudig te volgen primer voor SPI die het protocol verder uitlegt:

Hoe SPI op Raspberry Pi in te schakelen

Om SPI op uw Raspberry Pi in te schakelen, open Raspi-config vanaf de terminal door in te voeren:

sudo raspi-config

Navigeren naar Koppelingsopties, en selecteer in het volgende menu P4 SPI Schakel automatisch laden van SPI-kernelmodule in / uit. kiezen Ja bij de prompt van het venster. SPI is nu ingeschakeld!

U kunt ook SPI inschakelen vanuit de /boot/config.txt het dossier. Open een terminalvenster en voer het volgende in:

sudo nano /boot/config.txt

Zoek naar een regel die luidt # Dtparam = spi = op en verwijder de # symbool. Welke manier u ook SPI inschakelt, herstart uw Pi en SPI worden ingeschakeld.

Wat kunt u doen met SPI op Raspberry Pi?

Hoewel er honderden verschillende projecten zijn die gebruikmaken van veel verschillende SPI-randapparatuur, is een goed startersproject het programmeren van uw eigen RFID-lezer.

We gebruikten de MFRC-522-lezer in onze DIY Smart Lock met Arduino en RFID-zelfstudie DIY Smart Lock met Arduino en RFID DIY Smart Lock met Arduino en RFID Hier is hoe een eenvoudig RFID-gebaseerd slim slot te bouwen met een Arduino als de backbone en een paar goedkope componenten. Lees verder . Voor een Raspberry Pi-gearomatiseerde introductie tot RFID, bekijk piddlerintheroot's grondige Instructable.

Dit soort setup is niet alleen voor hobby-elektronica. In onze verzameling van de beste Raspberry Pi-projecten De 13 beste Raspberry Pi-projecten van 2017 De 13 beste Raspberry Pi-projecten van 2017 U zult versteld staan ​​van deze indrukwekkend creatieve projecten van Raspberry Pi. Meer lezen, we hebben een volledig MES-systeem geïnstalleerd dat werkt met Raspberry Pi en RFID, als onderdeel van een grootschalige fabrieksoperatie in Europa.

Wat is I2C op Raspberry Pi?

I2C is een communicatieprotocol gemaakt door Phillips Electronics, dat een golf van gebruik heeft gezien in op microcontrollers gebaseerde hobbyprojecten. De reden hiervoor is duidelijk - het gebruikt slechts twee draden in plaats van SPI's minimum vier. Het wordt ook goed ondersteund door zelfgemaakte bibliotheken. Er zijn veel componenten ontworpen voor gebruik met I2C op Raspberry Pi. Hoewel het langzamer is dan SPI, werkt het nog steeds snel genoeg voor de meeste dagelijkse toepassingen.

Net als SPI heeft het protocol een meester apparaat, zoals de Pi, en a slaaf apparaat, zoals een scherm, schuifregister of motorstuurprogramma.

De eerste verbinding tussen de apparaten is de SCL (Seriële klok) die door de master is ingesteld om de overdracht van gegevens te synchroniseren. De tweede regel is de SDA (Seriële gegevens) die de gegevens heen en weer overbrengen tussen alle apparaten op de I2C-bus.

Het masterapparaat begint met communicatie met een begin bit en een zeven bit hex-adres. Dit moet overeenkomen met het slave-apparaat zodat ze kunnen communiceren. Dit is hoe zoveel apparaten kunnen worden gebruikt met slechts twee draden.

Het masterapparaat geeft vervolgens aan of het wil lezen of schrijven (R / W) de slaaf, voordat een bevestiging of ACK terug.

Een eenvoudig te volgen en diepgaande blik op I2C wordt nog een keer gegeven door YouTuber Augmented Startups:

Hoe I2C op Raspberry Pi in te schakelen

I2C is ook ingeschakeld op de Pi via de Raspi-config menu. Open de terminal en voer het volgende in:

sudo raspi-config

Gebruik de pijltjestoetsen om te selecteren Koppelingsopties, gevolgd door P5 I2C Activeren / deactiveren automatisch laden van I2C-kernelmodule. Bevestig dat je het protocol wilt inschakelen en je zou een bevestigingsscherm moeten zien.

Net als bij SPI kunt u I2C ook inschakelen door uw config.txt-bestand aan te passen. Open een terminal en voer het volgende in:

sudo nano /boot/config.txt

Wijzig #dtparam = i2c_arm = op, verwijderen van de # symbool.

Start je Pi opnieuw op en I2C is klaar voor gebruik!

Wat kun je doen met I2C op Raspberry Pi?

I2C is geweldig voor elk project waarvoor een groot aantal uitgangen nodig is. Een typisch gebruik is voor LCD-schermen, die tot 16 pins nodig hebben om te gebruiken. I2C brengt dit terug naar slechts twee voor communicatie en twee voor kracht en aarde.

Veel LCD-schermen worden geleverd met een I2C “rugzak” bevestigd, waardoor ze veel eenvoudiger in te stellen zijn en de rest van uw Pi-pinnen vrijmaken voor andere sensoren en randapparatuur.

TheRaspberryPiGuy heeft een gedetailleerde YouTube-tutorial over het instellen en gebruiken van een LCD-scherm met I2C op Raspberry Pi

Met behulp van SPI en I2C worden pins sparen!

SPI en I2C op Raspberry Pi zijn zeker niet voor complete hobby-elektronica beginners, maar ze zijn ook niets om bang voor te zijn.

Voordat je gaat duiken, is het een goed idee om onze beginnershandleiding voor Raspberry Pi te volgen om de basis te leren.

Het werken met enkele voorbeeldprojecten is de beste manier om te leren en we zien ernaar uit om te zien wat je bedacht! Wie weet wat rare en prachtige creaties van Raspberry Pi 10 Weirdest Raspberry Pi-projecten 10 Weirdest Raspberry Pi-projecten Er is een gekke wetenschapper in ieder van ons, en de Raspberry Pi laat je innerlijke loon naar buiten komen en spelen. Soms worden dingen raar. Echt raar. Lees Meer dat je gaat maken?

Ontdek meer over: Raspberry Pi.