Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Raspberry Pi-sensoren

In dit artikel, door Rushi Gajjar , auteur van het boek Raspberry Pi Sensors, ziet u de basisvereisten die nodig zijn voor het bouwen van de RasPi-projecten. Je kunt geen dag zonder elektronica, toch? Elektronica is overal, van je tandenborstel tot auto's en ook in vliegtuigen en ruimteschepen. Dit artikel helpt je de concepten van elektronica te begrijpen die erg handig kunnen zijn tijdens het werken met de RasPi.

Je hebt misschien veel elektronica-gerelateerde boeken gelezen en ze hebben je misschien verveeld met concepten toen je echt projecten wilde maken of bouwen. Ik geloof dat er een reden moet zijn om uitleg te geven over elektronica en haar toepassingen.

Zodra u de elektronica kent, zullen we de communicatieprotocollen en hun gebruik met betrekking tot communicatie tussen elektronische componenten en verschillende technieken om dit te doen doornemen. Nuttige tips en voorzorgsmaatregelen worden vermeld voordat u met GPIO's op de RasPi gaat werken. Dan zul je de functionaliteiten van GPIO begrijpen en de LED laten knipperen met behulp van shell-, Python- en C-code.

Laten we enkele grondbeginselen van elektronica bespreken.

(Zie hier voor meer bronnen met betrekking tot dit onderwerp.)

Basisterminologieën van elektronica

Er zijn tal van terminologieën die worden gebruikt in de wereld van de elektronica. Van de hardware tot de software, er zijn miljoenen concepten die worden gebruikt om verbazingwekkende producten en projecten te creëren. U weet al dat de RasPi een computer met één bord is die een groot aantal ingebouwde elektronische componenten bevat, wat ons zeer comfortabel maakt om de verschillende elektronische apparaten die via de GPIO-poort zijn aangesloten, te bedienen en te koppelen. In het algemeen, als we het over elektronica hebben, is het alleen de hardware of een circuit dat bestaat uit verschillende geïntegreerde circuits (IC's ) met verschillende weerstanden, condensatoren, inductoren en nog veel meer componenten. Maar dat is niet altijd het geval; als we onze hardware bouwen met programmeerbare IC's, moeten we ook zorgen voor de interne programmering (de software). In een microcontroller of microprocessor, of zelfs in het geval van de RasPi, kunnen we het programma (technisch gezien, permanent branden/dumpen van de programma's) in de IC's invoeren, zodat wanneer de IC wordt ingeschakeld, het de stappen volgt die zijn geschreven in de programma en gedraagt ​​zich zoals we willen. Dit is hoe robots, uw wasmachines en andere huishoudelijke apparaten werken. Al deze apparaten hebben verschillende ontwerpcomplexiteiten, afhankelijk van hun toepassing. Er zijn enkele functies die zowel door software als hardware kunnen worden uitgevoerd. De ontwerper moet de afweging analyseren door met beide te experimenteren; de decoderfunctie kan bijvoorbeeld in de software worden geschreven en kan ook op de hardware worden geïmplementeerd door logische IC's aan te sluiten. De ontwikkelaar moet de snelheid, grootte (zowel in hardware als in software), complexiteit en nog veel meer parameters analyseren om dit soort functies te ontwerpen. Het punt van het bespreken van deze theorieën is om een ​​idee te krijgen van hoe complex elektronica kan zijn. Het is erg belangrijk voor u om deze terminologieën te kennen, omdat u ze vaak nodig zult hebben tijdens het bouwen van de RasPi-projecten.

Wie heeft spanning ontdekt? Oké, dat is nu niet belangrijk, laten we het eerst begrijpen. Het basisconcept volgt de fysica achter de stroming van water. Water kan op twee manieren stromen; de ene is een waterval (bijvoorbeeld van een bergtop naar de grond) en de tweede is een krachtige stroming met behulp van een waterpomp. Het concept achter het begrijpen van spanning is vergelijkbaar. Spanning is het potentiaalverschil tussen twee punten, wat betekent dat een spanningsverschil de stroom van ladingen (elektronen) van het hogere potentiaal naar het lagere potentiaal mogelijk maakt. Om het voorgaande voorbeeld te begrijpen, moet u rekening houden met bliksem, die kan worden vergeleken met een waterval, en batterijen, die kan worden vergeleken met een waterpomp. Wanneer batterijen op een circuit zijn aangesloten, pompen chemische reacties erin de stroom van ladingen van de positieve pool naar de negatieve pool. Spanning wordt altijd vermeld in volt (V). De AA-batterijcel levert meestal 3V. Trouwens, de term spanning is vernoemd naar de grote wetenschapper Alessandro Volta, die de voltaïsche cel uitvond, die toen bekend stond als een batterijcel.

Stroom is de stroom van ladingen (elektronen). Telkens wanneer een spanningsverschil wordt gecreëerd, zorgt dit ervoor dat stroom in een vaste richting vloeit van de positieve (hogere) aansluiting naar de negatieve (lagere) aansluiting (bekend als conventionele stroom). Stroom wordt gemeten in ampère (A). De elektronenstroom vloeit van de negatieve pool van de batterij naar de positieve pool. Om verwarring te voorkomen, volgen we de conventionele stroom, die loopt van de positieve pool naar de negatieve pool van de batterij of de bron.

De betekenis van het woord 'weerstaan' in het Oxford-woordenboek is 'proberen te stoppen of te voorkomen'. Zoals de definitie zegt, verhindert een weerstand eenvoudig de stroomstroom. Als er stroom door een weerstand vloeit, ontstaat er een spanningsval. Deze daling hangt rechtstreeks af van de hoeveelheid stroom die door de weerstand vloeit en de waarde van de weerstand. Er is een formule die wordt gebruikt om de hoeveelheid spanningsval over de weerstand (of in het circuit) te berekenen, ook wel de wet van Ohm genoemd (V =I * R ). Weerstand wordt gemeten in ohm (Ω). Laten we eens kijken hoe weerstand wordt berekend met dit voorbeeld:als de weerstand 10Ω is en de stroom die uit de weerstand vloeit is 1A, dan is de spanningsval over de weerstand 10V. Hier is nog een voorbeeld:wanneer we LED's aansluiten op een 5V-voeding, dan schakelen we een weerstand van 330Ω in serie met de LED's om te voorkomen dat de LED's door te hoge stroom afblazen. De weerstand laat er wat spanning in vallen en beveiligt de LED's. We zullen veel weerstanden gebruiken om onze projecten te ontwikkelen.

Een weerstand dissipeert energie in de vorm van warmte. In tegenstelling daarmee slaat een condensator energie op tussen zijn twee geleidende platen. Vaak worden condensatoren gebruikt om de in filtercircuits geleverde spanning te filteren en om heldere spraak in versterkercircuits te genereren. Het concept van capaciteit uitleggen zal te zwaar zijn voor dit artikel, dus laat me tot het belangrijkste punt komen:als we batterijen hebben om energie op te slaan, waarom moeten we dan condensatoren in onze circuits gebruiken? Er zijn verschillende voordelen van het gebruik van een condensator in een circuit. Veel boeken zullen je vertellen dat het werkt als een filter of een overspanningsonderdrukker, en ze zullen termen gebruiken als stroomafvlakking, ontkoppeling, DC-blokkering, enzovoort. In onze toepassingen, wanneer we condensatoren met sensoren gebruiken, houden ze het spanningsniveau enige tijd vast, zodat de microprocessor genoeg tijd heeft om die spanningswaarde te lezen. De gegevens van de sensor variëren sterk. Het moet stabiel zijn zolang een microprocessor die waarde leest om foutieve berekeningen te voorkomen. De houdtijd van een condensator is afhankelijk van een RC-tijdconstante, die zal worden uitgelegd wanneer we deze daadwerkelijk gaan gebruiken.

Nu is er een interessant punt om op te merken:wanneer er spanning beschikbaar is op de terminal maar er geen componenten zijn aangesloten over de terminals, is er geen stroom, wat vaak een open circuit wordt genoemd. Wanneer daarentegen twee terminals zijn aangesloten, met of zonder een onderdeel, en de lading mag stromen, wordt dit een kortsluiting, aangesloten circuit of gesloten circuit genoemd.

Hier is een waarschuwing voor u:sluit de twee klemmen van een voeding zoals batterijen, adapters en opladers niet kort (rechtstreeks aan elkaar). Dit kan ernstige schade veroorzaken, waaronder brandschade en defecte onderdelen. Als we een geleidende draad zonder weerstand aansluiten, laten we eens kijken wat de wet van Ohm oplevert:R =0Ω dan I =V/0, dus I =∞A. In theorie wordt dit oneindig (ontelbaar) genoemd en praktisch betekent het een vuur of een explosie!

In de elektrische theorie, wanneer de stroom die door een component vloeit, niet in paden wordt verdeeld, is het een serieverbinding. Als de stroom die door elke component vloeit hetzelfde is, wordt gezegd dat die componenten in serie staan. Als de spanning over alle componenten hetzelfde is, wordt gezegd dat de verbinding parallel is. In een circuit kan er een combinatie zijn van serie- en parallelle verbindingen. Daarom mag een circuit niet puur een serie of een parallel circuit zijn. Laten we de circuits bestuderen die in het volgende diagram worden getoond:

Op het eerste gezicht lijkt dit cijfer complex met veel notaties, maar laten we elk onderdeel afzonderlijk bekijken. De afbeelding links is een serieschakeling van componenten. De batterij levert spanning (V ) en huidig (Ik ). De richting van de stroom wordt met de klok mee weergegeven. Zoals uitgelegd, is in een serieschakeling de stroom die door elke component vloeit hetzelfde, maar de spanningswaarden over alle componenten zijn verschillend. Vandaar, V =V1 + V2 + V3 . Als de batterij bijvoorbeeld 12V levert, is de spanning over elke weerstand 4V. De stroom die door elke weerstand vloeit is 4 mA (omdat V =IR en R =R1 + R2 + R3 =3K ).

De afbeelding rechts geeft een parallelle verbinding weer. Hier krijgt elk van de componenten dezelfde spanning, maar de stroom is verdeeld in verschillende paden. De stroom die uit de positieve pool van de batterij vloeit, is I, die is verdeeld in I1 en I2. Wanneer I1 naar het volgende knooppunt stroomt, wordt het opnieuw in twee delen verdeeld en door R5 en R6 gevlogen. Daarom, in een parallelle schakeling, I =I1 + I2 . De spanning blijft over alle weerstanden gelijk. Als de batterij bijvoorbeeld 12V levert, is de spanning over alle weerstanden 12V, maar de stroom door alle weerstanden zal anders zijn. In het voorbeeld van een parallelle verbinding kan de stroom die door elk circuit vloeit worden berekend door de vergelijkingen van stroomdeling toe te passen. Probeer het eens te berekenen!

Wanneer er een combinatie is van serie- en parallelschakelingen, heeft dit meer berekeningen en analyse nodig. De wetten, knooppunten en maasvergelijkingen van Kirchhoff kunnen worden gebruikt om dergelijke soorten circuits op te lossen. Dat is allemaal te ingewikkeld om in dit artikel uit te leggen; je kunt alle standaard boeken over circuittheorie raadplegen en er expertise in opdoen.

De huidige wet van Kirchhoff:op elk knooppunt (knooppunt) in een elektrisch circuit is de som van de stromen die naar dat knooppunt stromen gelijk aan de som van de stromen die uit dat knooppunt stromen.

De spanningswet van Kirchhoff:de gerichte som van de elektrische potentiaalverschillen (spanning) rond een gesloten netwerk is nul.

Pull-up en pull-down weerstanden zijn een van de belangrijke terminologieën in het ontwerp van elektronische systemen. Zoals de titel al zegt, zijn er twee soorten trekweerstanden:pull-up en pull-down. Beide hebben dezelfde functionaliteit, maar het verschil is dat de pull-up-weerstand de terminal naar de geleverde spanning trekt en de pull-down-weerstand de terminal naar de grond of de gemeenschappelijke lijn trekt. Het belang van het aansluiten van een trekweerstand op een knooppunt of terminal is om het logische niveau terug te brengen naar de standaardwaarde wanneer er geen invoer aanwezig is op die specifieke terminal. Het voordeel van het opnemen van een pull-up- of pull-down-weerstand is dat het circuit gevoelig wordt voor ruis en dat het logische niveau (1 of 0) niet kan worden gewijzigd door een kleine variatie in termen van spanningen (vanwege ruis) op de terminal. Laten we eens kijken naar het voorbeeld in de volgende afbeelding. Het toont een pull-up-voorbeeld met een NOT-poort (een NOT-poort geeft een omgekeerde uitvoer in zijn OUT-aansluiting, dus als logische één de invoer is, is de uitvoer logisch nul). We zullen de effecten met en zonder de pull-up-weerstand bekijken. Hetzelfde geldt voor de pull-down-weerstand.

Over het algemeen hebben logische poorten een hoge impedantie aan hun ingangsklem, dus als er geen verbinding is op de ingangsklem, wordt dit zwevend genoemd. Nu, in de voorgaande afbeelding, wordt de meest linkse verbinding niet aanbevolen, omdat wanneer de schakelaar open is (UIT-status), deze de ingangsklem laat zweven en eventuele ruis de ingangsstatus van de NIET-poort kan veranderen. De reden van het geluid kan van alles zijn. Zelfs de open klemmen kunnen als antenne fungeren en kunnen ruis veroorzaken op de pin van de NOT-poort. Het circuit dat in het midden wordt weergegeven, is een pull-up-circuit zonder weerstand en het wordt ten zeerste aanbevolen om het niet te gebruiken. Dit soort verbinding kan een pull-up worden genoemd, maar mag nooit worden gebruikt. Wanneer de schakelaar gesloten is (AAN-status), krijgt de VCC een direct pad naar de grond, wat hetzelfde is als kortsluiting. Er zal een grote hoeveelheid stroom van VCC naar aarde vloeien en dit kan uw circuit beschadigen.

De meest rechtse figuur toont de beste manier om omhoog te trekken omdat er een weerstand is waarin enige spanningsval zal optreden. Wanneer de schakelaar open is, wordt de aansluiting van de NIET-poort naar de VCC gestuurd (naar boven getrokken), wat de standaard is. Wanneer de schakelaar gesloten is, wordt de ingangsklem van de NIET-poort met de grond verbonden en ervaart deze de logische nultoestand. De stroom die door de weerstand vloeit, is deze keer nominaal. Bijvoorbeeld, als VCC =5V, R7 =1K en I =V/R , dan is I =5mA, wat zich in de veilige regio bevindt. Voor het voorbeeld van een pull-downschakeling kan er een uitwisseling zijn tussen de schakelaar en een weerstand. De weerstand wordt aangesloten tussen de aarde en de ingangsklem van de NIET-poort. Houd er bij het gebruik van sensoren en IC's rekening mee dat als er een aantekening is van het gebruik van pull-ups of pull-downs in datasheets of technische handleidingen, het wordt aanbevolen om ze te gebruiken waar nodig.

Communicatieprotocollen

Het is tot nu toe veel theorie geweest. Er kunnen tal van componenten zijn, waaronder IC's en digitale sensoren, als randapparatuur van een microprocessor. Er kan een grote hoeveelheid gegevens zijn met de randapparatuur en het kan nodig zijn om deze naar de processor te sturen. Hoe communiceren ze? Hoe begrijpt de processor dat de gegevens erin komen en door de sensor worden verzonden? Er is een seriële of parallelle datalijnverbinding tussen IC's en een microprocessor. Parallelle verbindingen zijn sneller dan de seriële, maar hebben minder de voorkeur omdat ze meer lijnen nodig hebben, bijvoorbeeld 8, 16 of meer. Een PCI-bus kan een voorbeeld zijn van parallelle communicatie. Meestal is de processor in een complex of high-density circuit aangesloten op veel randapparatuur, en in dat geval kunnen we niet zoveel vrije pinnen/lijnen hebben om een ​​extra enkel IC aan te sluiten. Voor seriële communicatie zijn maximaal vier lijnen nodig, afhankelijk van het gebruikte protocol. Toch kan niet gezegd worden dat seriële communicatie beter is dan parallel, maar seriële communicatie heeft de voorkeur wanneer er een laag aantal pinnen in beeld komt. Bij seriële communicatie worden gegevens via frames of pakketten verzonden. Grote gegevens worden in brokken opgedeeld en door een frame of een pakket over de lijnen verzonden. Wat is nu een protocol? Een protocol is een reeks regels die moeten worden gevolgd bij het koppelen van de IC's aan de microprocessor, en het is niet beperkt tot de verbinding. Het protocol definieert ook de dataframestructuren, framelengtes, spanningsniveaus, datatypes, datasnelheden, enzovoort. Er zijn veel standaard seriële protocollen zoals UART, FireWire, Ethernet, SPI, I2C en meer. De RasPi 1-modellen B, A+, B+ en RasPi 2-model B hebben één SPI-pin, één I2C-pin en één UART-pin beschikbaar op de uitbreidingspoort. We zullen deze protocollen één voor één bekijken.

UART is een veel voorkomende interface, of protocol, dat in bijna elke pc of microprocessor wordt aangetroffen. UART is de afkorting van Universal Asynchronous Receiver and Transmitter. Dit wordt ook wel de RS-232-standaard genoemd. Dit protocol is full-duplex en een complete standaard, inclusief elektrische, mechanische en fysieke kenmerken voor een bepaald geval van communicatie. Wanneer gegevens over een bus worden verzonden, moeten de gegevensniveaus worden aangepast aan de RS-232-busniveaus. Variërende spanningen worden verzonden door een zender op een bus. Een spanningswaarde groter dan 3V is logisch nul, terwijl een spanningswaarde kleiner dan -3V logisch één is. Waarden tussen -3V en 3V worden ongedefinieerde toestanden genoemd. De microprocessor stuurt de gegevens naar de transistor-transistor-logica (TTL ) peil; wanneer we ze naar de bus sturen, moeten de spanningsniveaus worden verhoogd tot de RS-232-standaard. Dit betekent dat om de spanning van logische niveaus van een microprocessor (0V en 5V) naar deze niveaus en terug om te zetten, we een niveauverschuiver-IC zoals MAX232 nodig hebben. De gegevens worden verzonden via een DB9-connector en een RS-232-kabel. Niveauverschuiving is handig wanneer we over een lange afstand communiceren.

Wat gebeurt er als we verbinding moeten maken zonder deze extra level shifter IC's? Deze verbinding wordt een NULL-verbinding genoemd, zoals weergegeven in de volgende afbeelding. Het kan worden opgemerkt dat de zend- en ontvangstpinnen van een zender kruiselings met elkaar zijn verbonden en dat de grondpinnen worden gedeeld. Dit kan handig zijn bij communicatie op korte afstand. In UART is het erg belangrijk dat de baudrates (symbolen die per seconde worden overgedragen) tussen de zender en de ontvanger overeenkomen. Meestal gebruiken we 9600 of 115200 als baudrates. Het typische frame van UART-communicatie bestaat uit een startbit (meestal 0, dat de ontvanger vertelt dat de datastroom gaat starten), data (meestal 8 bit) en een stopbit (meestal 1, dat de ontvanger vertelt dat de verzending is voltooid). voorbij).

Voor meer details:Raspberry Pi-sensoren


Productieproces

  1. Huidige sensoren hebben een lage drift, hoge nauwkeurigheid
  2. Meet temperaturen met een 1-draads DS18B20-sensor en Raspberry Pi
  3. Temperatuurbewaking op de Raspberry Pi
  4. Raspberry Pi 2 weerstation
  5. Analoge sensoren zonder analoge ingangen op de Raspberry Pi
  6. Raspberry Pi universele afstandsbediening
  7. Een stukje Raspberry Pi
  8. Java ME 8 + Raspberry Pi + Sensors =IoT World (deel 1)
  9. Cycle Chaser
  10. Analoge sensoren lezen met Raspberry Pi en Zabbix Supervisor
  11. Raspberry Pi diefdetector