Raspberry Pi Pico als weerstandsmeter

Raspberry Pi Pico als weerstandsmeter met behulp van de A-Vision Experiment assist

Het principe

Een waarde van een weerstand kan op verschillende manieren worden berekend. Volgens de wet van Ohm (I = V/R) wordt de waarde van een weerstand berekend als R = V/I.

Om de waarde van een weerstand te meten, hebben we een constante voeding (V) en een nauwkeurige referentieweerstand nodig.

Met behulp van het volgende schema kunnen we de weerstandswaarde berekenen.

Het gebruik van een referentiespanning van 3,3 Volt geeft een constante stroom (I) door de weerstanden. Deze stroom kan worden berekend door de 'meetspanning' te meten, zodat we de spanningsval over de bekende referentieweerstand weten.

Hierbij wordt ervan uitgegaan dat de stroom die door het meetcircuit wordt getrokken bijna niets bedraagt.

Dan kan de onbekende weerstandswaarde nu als volgt worden berekend:

calculate current

calculate unkown resistor

De waarde I vervangen door de berekende stroom formule.

substitute current

Door dit verder te vereenvoudigen krijgen we de volgende formule om de onbekende weerstand te berekenen.

final formula

De Raspberry Pi Pico aansluiten

Het volgende schema toont de verbinding met een Raspberry Pi Pico

In dit schema hebben we enkele extra's toegevoegd voor betere prestaties en nauwkeurigheid.

Er wordt geen aparte powersupply gebruikt, alle benodigde stroom komt van de USB aangesloten op de computer.

Software installeren op de Pico

Ten eerste is een STOP-knop toegevoegd om een eenvoudigere installatie van software op de Raspberry Pi Pico mogelijk te maken.
Hoe dit werkt is als volgt.

  1. Als u op de STOP-toets drukt, worden de programma('s) op de Pico gestopt.
  2. Druk tijdens het indrukken van de STOP-knop ook op de BOOTSEL-knop op de Pico.
  3. Laat vervolgens de STOP-knop los, hiermee wordt de Pico in een USB-schijfmodus opgestart.
  4. Nu kunt u de software naar het Pico USB-schijf kopiëren, dit zal de Pico automatisch resetten.

Schakelen tussen referentieweerstanden

Om de meetnauwkeurigheid te verbeteren, zijn twee P-Channel MOSFET's toegevoegd die het mogelijk maken om tussen twee referentieweerstanden te schakelen. Eén van 10kOhm voor het meten van weerstanden tot ongeveer 15kOhm, en één van 100kOhm voor het meten van weerstanden groter dan 15kOhm.

De omschakeling is gebaseerd op de gemeten spanning, wanneer deze meer dan 2,1 V bereikt, schakelt deze over naar de 100kOhm referentieweerstand en wanneer deze onder 0,4V zakt, schakelt het over naar de 10kOhm.

Dit resulteert in een nauwkeuriger meetresultaat.

Monitoring van het resultaat

De software stuurt de resultaten via de seriële interface (GPIO0 als TxD en GPIO1 als RxD).

De Txd (GPIO0) wordt aangesloten op de RxD op de USB naar SERIAL connector op de Experiment assist board, en de RxD (GPIO1) wordt aangesloten op de TxD op de USB naar SERIAL connector op de Experiment assist board.

Ook moet de GND van de USB naar SERIAL connector op de Experiment assist board worden aangesloten op de GND van de Raspberry Pi Pico.

Verbetering van de nauwkeurigheid

Boven een spanningsmeting van 2,1V en lager dan 0,4V wordt de nauwkeurigheid minder. Dit kan worden verbeterd door extra referentieweerstanden en automatisch schakelen toe te voegen op basis van deze gemeten waarden.

Met behulp van het bovenstaande schema zijn de metingen het meest nauwkeurig tussen 1,5kOhm en 150kOhm.

Gebruikte softwaretools

Windows 10 Raspberry Pi Pico C++ ontwikkeling

Om de Raspberry Pi Pico C++ ontwikkelomgeving op een Windows 10 systeem te installeren hebben wij gebruik gemaakt van de procedure zoals beschreven op-

https://notenoughtech.com/featured/c-c-and-micropython-sdk-for-raspberry-pi-pico-on-windows/

USB naar SERIAL uitlezen

Voor het monitoren van de resultaten via de USB naar SERIAL op de Experiment assist board, hebben we Mputty gebruikt, dit kan worden gedownload van-

https://ttyplus.com/downloads/

De volgende configuratie wordt gebruikt:

Drivers voor de USB naar SERIAL op het Experiment assist board worden geleverd bij het Experiment assist board zelf.

Overzicht Raspberry Pi Pico weerstandmeter op een Experiment assist board

Overzicht Raspberry Pi Pico weerstandmeter op een Experiment assist board

Het gebruik van het Experiment assist board samen met 400-pins breadboard maakt experimenteren hiermee heel eenvoudig.

De monitor is aangesloten op het ingebouwde USB naar SERIAL circuit, dit voorkomt dat u opnieuw verbinding moet maken met de USB-poort telkens wanneer de Pico in de USB-schijfmodus wordt gezet.

De code

De code is niet echt zo complex, het is in feite het lezen van de gemiddelde meetspanning en vervolgens het toepassen van de formule op de meting.

In pseudocode is het als volgt-

> Initialisatie. 
> Herhaal voor altijd:
  1. Meet de gemiddelde spanning over XX-monsters.
  2. Selecteer referentieweerstand op basis van gemeten spanningswaarde.
  3. Formule toepassen om onbekende weerstandswaarde te berekenen.
  4. Uitvoer metingen via UART.

De volledige C-code is online beschikbaar op https://github.com/A-Vision-Software/raspberry-pi-project-examples/tree/main/resistormeter

 


37 sensors kit

De compleet waardeloze, bruikbare en nuttige onderdelen van de 37 in 1 sensor kit

news

De 37 in 1 sensor kit, je ziet ze overal, en soms voor een spotprijs (zoals op AlIExpress).

Een complete set van 37 sensors en actuators.

Een referentie naar deze modules met code voorbeelden is te vinden op TkkrLab.

Hier een overzicht van de verschillende componenten met onze beoordeling-

JOYSTICK

joystick

  • Soort: analoge ingangen
  • Opmerking: om deze te kunnen gebruiken zijn 2 analoog naar digitaal omzetters nodig, deze is standaard aanwezig op een Arduiono, maar niet op een Raspberry Pi
  • Beoordeling: NUTTIG

FLAME

vlam detectie

  • Soort: digitale ingang
  • Opmerking: dit is een soort IR detectie en reageert niet alleen op vlammen
  • Beoordeling: WAARDELOOS

RGBLED

RGB LED

  • Soort: digitale uitgang
  • Opmerking: leuke om eens te proberen, maar heeft verder geen meerwaarde, helemaal omdat er ook een SMD RGB RED is opgenomen in de kit
  • Beoordeling: WAARDELOOS

HEARTBEAT

hartslag meter

  • Soort: digitale in/uitgang
  • Opmerking: het nut en een toepassing hiervoor ontschiet me even, wellicht dat je het één maal probeert, verder niet
  • Beoordeling: WAARDELOOS

magic light cup

  • Soort: digitale in/uitgang
  • Opmerking: wederom, een leuk speeltje, maar geen nuttige toepassing
  • Beoordeling: WAARDELOOS

HALLSENSOR

hall magnetic sensor

  • Soort: digitale ingang
  • Opmerking: detectie van een magneet kan handig zijn bijvoorbeeld bij ramen e.d.
  • Beoordeling: BRUIKBAAR

relay

  • Soort: digitale uitgang
  • Opmerking: een 220V lamp kan hiermee worden aangestuurd
  • Beoordeling: NUTTIG

LINEARHALL

linear hall magnetic sensor

  • Soort: digitale ingang
  • Opmerking: naast de andere meet compacte hall sensor lijk mijn dit helemaal overbodig
  • Beoordeling: WAARDELOOS

SMDRGBLED

SMD RGB LED

  • Soort: digitale uitgang
  • Opmerking: leuke om eens te proberen en het RGB principe te leren, maar heeft verder geen meerwaarde
  • Beoordeling: BRUIKBAAR

7COLORFLASH

7 kleuren flash LED

  • Soort: digitale uitgang
  • Opmerking: het enige wat deze doet is van kleur veranderen wanneer een signaal is aangesloten
  • Beoordeling: WAARDELOOS

TILTSWITCH

mercury tilt switch

  • Soort: digitale ingang
  • Opmerking: geen idee waarom iemand handmatig een module wil bewegen om te experimenteren
  • Beoordeling: WAARDELOOS

18B20TEMP

DS18B20 temperatuur sensor

  • Soort: digitale ingang
  • Opmerking: Accurate temperatuurmeting met het 1-wire protocol
  • Beoordeling: NUTTIG

BIGSOUND

geluid detectie

  • Soort: digitale/analoge ingang
  • Opmerking: een niet zo nauwkeurige geluidsniveau meter, misschien handig voor een klapper lamp toepassing
  • Beoordeling: BRUIKBAAR

TOUCH

touch sensor

  • Soort: digitale ingang
  • Opmerking: leuk idee, maar geen voordeel t.o.v. b.v. een drukknop
  • Beoordeling: WAARDELOOS

TWOCOLOR

twee kleuren LED

  • Soort: digitale uitgangen
  • Opmerking: naast de mini twee kleuren LED is dit nutteloos
  • Beoordeling: WAARDELOOS

LASEREMIT

laser LED

  • Soort: digitale uitgang
  • Opmerking: wel leuk om eens te proberen, verder geen toepassing kunnen vinden
  • Beoordeling: BRUIKBAAR

BALLSWITCH

tilt switch

  • Soort: digitale ingang
  • Opmerking: naast de kwik kantelschakelaar heeft deze toch de voorkeur
  • Beoordeling: BRUIKBAAR

ANALOGTEMP

analoge temperatuur sensor

  • Soort: analoge ingang
  • Opmerking: om deze te kunnen gebruiken is een analoog naar digitaal omzetter nodig, deze is standaard aanwezig op een Arduiono, maar niet op een Raspberry Pi
  • Beoordeling: BRUIKBAAR

SMALLSOUND

geluid detectie

  • Soort: digitale/analoge ingang
  • Opmerking: een niet zo nauwkeurige geluidsniveau meter, misschien handig voor alarm signaal detectie
  • Beoordeling: WAARDELOOS

DIGITALTEMPERATURE

digitale temperatuur sensor

  • Soort: digitale uitgang
  • Opmerking: de detectie temperatuur is in te stellen met een potmeter, moeilijk in te regelen
  • Beoordeling: WAARDELOOS

MINITWOCOLOR

mini twee kleuren LED

  • Soort: digitale uitgangen
  • Opmerking: met deze rood / groen LED kun je dus 3 kleuren maken
  • Beoordeling: BRUIKBAAR

BUTTON

drukknop

  • Soort: digitale ingang
  • Opmerking: je hebt meestal wel meer dan één ingang nodig
  • Beoordeling: BRUIKBAAR

PHOTORESISTOR

  • Soort: analoge ingang
  • Opmerking: om deze te kunnen gebruiken is een analoog naar digitaal omzetter nodig, deze is standaard aanwezig op een Arduiono, maar niet op een Raspberry Pi
  • Beoordeling: NUTTIG

IREMITTER

IR LED

  • Soort: digitale uitgang
  • Opmerking: hiermee kun je wellicht een TV afstandsbediening maken
  • Beoordeling: NUTTIG

TRACKING

line tracking

  • Soort: digitale ingang
  • Opmerking: werkt met infrarood licht reflectie en kan ook gebruikt worden voor andere doeleinden
  • Beoordeling: BRUIKBAAR

BUZZER

actieve buzzer

  • Soort: digitale uitgang
  • Opmerking: geeft een geluidsignaal zodra een positief signaal wordt aangeboden
  • Beoordeling: NUTTIG

REEDSWITCH

reed switch

  • Soort: digitale ingang
  • Opmerking: je hebt een redelijke magneet nodig en naast andere magneet detectie modules heeft dit geen meerwaarde
  • Beoordeling: WAARDELOOS

SHOCK

shock detection

  • Soort: digitale ingang
  • Opmerking: aardbeving detectie in Nederland? Misschien in Groningen, voor de rest niet zo spannend
  • Beoordeling: WAARDELOOS

TEMPHUMIDITY

temperatuur en luchtvochtigheid

  • Soort: digitale ingang
  • Opmerking: bruikbaar voor specifieke doeleinden, werkt met een speciaal protocol -> voorbeeld
  • Beoordeling: BRUIKBAAR

IRRECEIVER

IR RECEIVER LED

  • Soort: digitale ingang
  • Opmerking: draadloze communicatie door middel van IR lichsignalen
  • Beoordeling: NUTTIG

AVOIDANCE

avoidance

  • Soort: digitale ingang
  • Opmerking: deze werkt ook met infrarood licht reflectie alleen op grotere afstanden dan de lijnvolger
  • Beoordeling: BRUIKBAAR

PASSIVEBUZZER

passive buzzer

  • Soort: digitale uitgang
  • Opmerking: er moet een pulserend signaal worden aangeboden om geluid te maken, ideaal voor b.v. een piano experiment
  • Beoordeling: BRUIKBAAR

MINIREEDSWITCH

mini reed switch

  • Soort: digitale ingang
  • Opmerking: naast een standaard reed-schakelaar is deze compleet nutteloos
  • Beoordeling: WAARDELOOS

ROTARY

rotary encoder

  • Soort: digitale ingang
  • Opmerking: zeer handig voor menu besturing, variable instellen en meer van dat soort toepassingen -> voorbeeld
  • Beoordeling: NUTTIG

ANALOGHALL

analoge magneet detectie

  • Soort: analoge ingang
  • Opmerking: erg traag is detectie, naast de digitale magneet detectie heeft dit geen meerwaarde, verder is hiervoor een analoog naar digitaal omzetter nodig voor het gebruik
  • Beoordeling: WAARDELOOS

TAPSWITCH

tap switch

  • Soort: digitale ingang
  • Opmerking: vergelijkbaar met de schokdetectie, niet erg nuttig als ingang
  • Beoordeling: WAARDELOOS

LIGHTBLOCKING

light blocking

  • Soort: digitale ingang
  • Opmerking: deze heeft een nauwe spleet waarin gedetecteerd wordt of er zicht iets bevindt, moeilijk te bedienen
  • Beoordeling: WAARDELOOS

Conclusie

Van de 37 in 1 sensor kit hebben we slecht 8 als nuttig ervaren, dit zijn de componenten die je ook daadwerkelijk in de praktijk zou kunnen gaan gebruiken.

12 van de 37 vonden we wel bruikbaar, maar hebben niet direct een praktische toepassing voor gevonden.

Dan blijven er nog 17 over die waardeloos zijn en beter vervangen kunnen worden door andere sensoren of actuatoren.

Verder is het opmerkelijk dat er veel modules zijn met vergelijkbare functies (4x magneet detectie, 2x geluid detectie, 4x IR licht detectie, 4x LEDs, 3x temperatuur detectie).

De prijzen variëren van €10 tot wel €30 per set.

De componenten die we echt missen in de 37 in 1 sensor kit zijn-

Bekijk onze experiment toebehoeren

MAX7219 8x8 dot-matrix analoge klok

MAX7219 8x8 dot-matrix, licht gevoelige, analoge klok

MAX7219 8x8 analoge klokVoor dit project gaan we een MAX7219 8×8 dot-matrix display aansturen (analoge klok). De intensiteit gaan we aansturen aan de hand van een lichtmeting.

We maken het aansturingsprogramma met Python 3.


Installatie

Je hebt nodig-

Voordat je begint even dit-

De hardware aansturing van de MAX7129 maakt gebruik van de SPI interface, en de aansturing van de ADS1015 gebruikt de I²C interface.
Om deze te kunnen gebruiken moeten ze worden aangezet op de Raspberry Pi. Dit kan worden gedaan met het raspi-config programma op de Raspberry Pi.
We zullen ook SSH aanzetten op de Raspberry Pi om via Windows de Raspberry Pi te kunnen benaderen/programmeren.

Verder wordt in deze uitleg gebruik gemaakt van het Windows programma Thonny voor het programmeren met Python.

MAX7219 8×8 dot-matrix display

Voor het aansturen van de MAX7219 8×8 dot-matrix display maken we gebruik van de LUMA Display drivers voor MAX7219.
Het is belangrijk deze te installeren en te testen alvorens dit project verder te programmeren.

Voor de installatie wordt verwezen naar. – https://luma-led-matrix.readthedocs.io/en/latest/install.html
Na installatie wordt aangeraden om met behulp van het test programma examples/matrix_demo.py te controleren of het goed functioneert.

ADS1015 analoog naar digitaal omzetter

Voor het uitlezen van de ADS1015 wordt gebruik gemaakt van de Python Package adafruit-ads1x15. Deze is eenvoudig te installeren door de instructies te volgen op. – https://learn.adafruit.com/raspberry-pi-analog-to-digital-converters/ads1015-slash-ads1115#python-package-index-install-2002658-11
Ook hiervoor wordt aangeraden met het testprogramma examples/simpletest.py te controleren of het goed functioneert.


De MAX7219 analoge klok

Vanzelfsprekend is het een uitdagin om een analoge klok te presenteren op een 8×8 dot-matrix display. En omdat een 8×8 display geen centrum punt heeft hebben we gekozen voor een 7×7 presentatie.

Uitgaande van positie 0,0 voor de LED links-onder hebben we een centrum punt op positie 4,4. Vanuit daar wordt er een korte lijn gemaakt voor de uren presentatie. En een lange lijn voor de minuten presentatie.

Omdat we niet elke minuut kunnen weergeven is ervoor gekozen alleen de 0,5,10,15,20 … 55 minuten weergave te tonen.

MAX7219 clock center
Centrum punt van de klok

MAX7219 clock 5.00h
Klok 5.00 uur

MAX7219 clock 6.55h + second
Klok 6.55 uur met seconde LED

 

 

 

 

 

 

 

 

 

 

Voor elke wijzer positie (0 t/m 12) maken we een subroutine in Python voor het weergeven van de korte en lange lijn (voorbeeld hieronder).

def eleven(draw,small=False):
    if small:
        draw.line((4, 4, 6, 3), fill="white")
    else:
        draw.line((4, 4, 7, 2), fill="white")

We maken ook een subroutine om voor elk getal (0 t/m 12) de juiste subroutine aan te roepen.

def number(draw, n=0, small=False):
    if n == 0:
        zero(draw,small)
    if n == 1:
        one(draw,small)
    if n == 2:
        two(draw,small)
    if n == 3:
        three(draw,small)
    if n == 4:
        four(draw,small)
    if n == 5:
        five(draw,small)
    if n == 6:
        six(draw,small)
    if n == 7:
        seven(draw,small)
    if n == 8:
        eight(draw,small)
    if n == 9:
        nine(draw,small)
    if n == 10:
        ten(draw,small)
    if n == 11:
        eleven(draw,small)
    if n == 12:
        twelve(draw,small)

Nu we dat voor elkaar hebben kunnen we aan de hand van de tijd de juiste wijzers (lijnen) aansturen. Hiervoor zijn twee subroutines gemaakt, één voor de grote wijzer en één voor de kleine wijzer.

def big_hand(draw):
    now = datetime.datetime.now()
    h = now.hour
    m = now.minute
    s = now.second 
    number(draw, round(m/5))
    if (s % 2) == 0:
        draw.point((0, 0), fill="black")
    if (s % 2) == 1:
        draw.point((0, 0), fill="white")

def small_hand(draw):
    now = datetime.datetime.now()
    h = now.hour
    m = now.minute
    s = now.second 
    if h >= 12:
        h = h - 12
    number(draw, round(h + m/60), True)

We verwerken deze code wordt daarna allemaal in de hoofdroutine (zie volledige code).

Meten van hoeveelheid licht.

ADS1015 LDR

De licht hoeveelheid wordt gelezen met een LDR (licht gevoelige weerstand). Deze wordt daarvoor aangesloten op een analoge ingang module (ADS1015).

We sluiten de LDR aan tussen de GND en de analoge ingang AD0. En de 100Kohm weerstand sluiten we aan tussen de analoge ingang AD0 en de +5V. Hierdoor krijgt de analoge ingang een spanning afhankelijk van de lichtinval op de LDR.
Hoe meer licht op de LDR, hoe minder de spanning op de analoge ingang.

Zie aansluitschema rechts.

Voor het uitlezen van de lichtwaarde en aansturen van de LED display intensiteit wordt een aparte subroutine gemaakt.

def brightness():
    light = adc.read_adc(0, gain=1)
    if light >= 512:
        light = 512
    b = (16 - round(light/16))*16
    if b >= 256:
        b = 255
    if b < 0:
        b = 0
    device.contrast(b)

Deze subroutine nemen we ook in de hoofdroutine op. Daardoor wordt iedere keer de LED display intensiteit aangepast.

Het mooie van de gebruikte adafruit-ads1x15 Python Package is dat we niet zelf I²C routines hoeven te programmeren. Dat maakt het implementeren weer een stukje eenvoudiger.

De volledige code voor de MAX7219 analoge klok kun je downloaden vanf GitHub.

 

MAX7219 analoge klok experimenteer set CL001

We hebben een experimenteer set beschikbaar gemaakt zodat je direct kunt beginnen met het maken van dit project.

Het experimenteer set CL001 kun je vinden in onze webshop.


Welke programmeertaal moet je gebruiken voor het programmeren van een Raspberry Pi?

Python

De meest populaire programmeertaal voor de Raspberry Pi is Python. Hiervoor is tevens veel (community) support beschikbaar.

Zeker voor de ‘beginner’ is Python de meest logische keuze.

Nuttig in toepassingen in verschillende industrieën, zoals webontwikkeling, GUI, automatisering en machine learning, het leren van Python-programmeertaal is de veiligste en gemakkelijkste manier om te beginnen!

  • Gebruiksgemak: eenvoudig
  • Doelgroep: algemene gebruikers, studenten, ontwikkelaars
  • Moet u deze taal als beginner met programmeren gebruiken? Ja.

Een voorbeeld van een Python programma voor het aansturen van LEDs/buzzer en uitlezen van Ultrasoon afstandmeter kun je vinden in onze Raspberry Pi parkeerhulp.

Bekijk onze Raspberry Pi parkeerhulp Python voorbeeld

C(++)

Een meer geavanceerde programmeertaal is C/C++.

De belangrijkste kenmerken van C/C++ programmeertaal zijn onder meer toegang op laag niveau tot geheugen, een eenvoudige reeks trefwoorden en een strakke stijl. Al deze zijn verzorgd en geschikt voor het gebruik van systeemprogrammering, zoals de ontwikkeling van een besturingssysteem of compiler.

  • Gebruiksgemak: eenvoudig, hoewel het een beetje cryptischer in zijn stijl is in vergelijking met andere talen
    • Neemt ongeveer een week om te leren, met een leven lang om onder de knie te krijgen
  • Doelgroep: algemene gebruikers, ontwikkelaars die bedrijfstoepassingen willen ontwikkelen, toepassingen die berekeningen vereisen, ontwikkeling van compilers, enz.
    • Beter dan Python voor processen die snelle verwerking (realtime) vereisen.
  • Moet u deze taal als beginner met programmeren gebruiken? Een voorzichtig Ja, maar zeker voor diegene met gevorderde programmeer ervaring een aanrader.

 

Natuurlijk zijn er ook andere mogelijke programmeertalen die gebruikt kunnen worden in combinatie met bovenstaande programmeertalen.

Denk dan bijvoorbeeld aan een webinterface (HTML/JavaScript) die communiceert met een programma/driver geschreven in C++.


Raspberry Pi experimenteren

Raspberry Pi als lesmateriaal

Raspberry Pi 400 Experimenteer uitbreidingDe Raspberry Pi is een ideale micro computer om te leren programmeren.

 

Naast dat het een zeer betaalbare microcomputer is (al vanaf 15 Euro), geeft het ook veel mogelijkheden om verschillende electronica experimenten uit te voeren.

Nu de Raspberry Pi organisatie een computer in een toetsenbord heeft uitgegeven, wordt dit nog makkelijker gemaakt als lesmateriaal.

Voor de standaard Raspberry Pi en de Raspberry Pi 400 zijn experimenteer breadboard uitbreidingen beschikbaar. Dit maakt het experimenteren met de Raspberry Pi nog meer aantrekkelijk en makkelijker.

Binnenkort hopen we een serie how-to videos en artikelen uit te brengen voor de beginner tot de meer gevorderde Raspberry Pi experimenteerder.

Via onze YouTube Channel kun je tevens op de hoogte blijven van de mogelijkheden die de Raspberry Pi kan bieden.

 


Traffic Lights + Buzzer

Raspberry Pi parkeerhulp

HOUD AFSTAND

Afstand meten, geluidsignaal en stoplicht besturing

In deze tutorial wordt gebruik gemaakt van de HC-SR04 ultrasoon afstandsmeter voor het meten van de afstand tot een object (garage/auto) en geeft afhankelijk van instellingen een stoplicht signaal en tevens een audiosignaal als waarschuwing.

Dit wil je natuurlijk voorkomen!

parkeerhulp.py
import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

RED = 26
YELLOW = 5
GREEN = 9

GPIO.setup(RED, GPIO.OUT)
GPIO.setup(YELLOW, GPIO.OUT)
GPIO.setup(GREEN, GPIO.OUT)

BUZZER = 22

GPIO.setup(BUZZER, GPIO.OUT)

TRIG = 18
ECHO = 24

GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)

def red_light():
    GPIO.output(RED, GPIO.HIGH)
    GPIO.output(YELLOW, GPIO.LOW)
    GPIO.output(GREEN, GPIO.LOW)

def yellow_light():
    GPIO.output(RED, GPIO.LOW)
    GPIO.output(YELLOW, GPIO.HIGH)
    GPIO.output(GREEN, GPIO.LOW)

def green_light():
    GPIO.output(RED, GPIO.LOW)
    GPIO.output(YELLOW, GPIO.LOW)
    GPIO.output(GREEN, GPIO.HIGH)

def buzz(duration):
    GPIO.output(BUZZER, True)
    time.sleep(duration)
    GPIO.output(BUZZER, False)

def get_distance():
    GPIO.output(TRIG, True)
    time.sleep(0.00001)
    GPIO.output(TRIG, False)

    start = 0
    end = 0

    start = time.time()
    end = time.time()
    while GPIO.input(ECHO) == False and (end - start) < 1:
        end = time.time()

    start = time.time()
    while GPIO.input(ECHO) == True:
        end = time.time()

    sig_time = end - start
    distance = sig_time / 0.000058

    return distance

try:
    while True:
        distance = get_distance()
        time.sleep(0.05)
        print('Distance in cm: ' + str(distance))

        if distance >= 30:
            green_light()
        elif 30 > distance > 15:
            yellow_light()
            buzz(0.3)
        else:
            red_light()
            buzz(0.1)

finally:
    GPIO.cleanup()

Gratis verzending

Gratis verzending!

Voor bestellingen met een waarde van meer dan 50 Euro worden er nu geen verzendkosten meer in rekening gebracht.

Zo bespaar je zomaar even minimaal 4 Euro.


Raspberry Pi 400

Meer dan een kleine computer

Veelal wordt de Raspberry Pi gezien als een kleine computer, helemaal na het lanceren van de nieuwe Raspberry Pi 400.

En dat is ook helemaal correct, voor nog geen 100 Euro heb je een prachtig kleine computer. Geschikt voor allerdaagse dingen zoals internet, email, youtube, films, textverwerken en meer (veel meer).

doe meer met je Raspberry Pi

Ontdek wat je nog meer kunt met dit kleine computertje

Als je al in het bezit bent van een Raspberry Pi zul je ongetwijfeld gezien hebben dat er een 40-polige connector op dit kleine computertje is aangesloten.

En het is door gebruik van deze connector dat er een nieuwe wereld aan mogelijkheden zich opendoen.

Sensoren

Er is een brede keuze aan sensoren die je op de Raspberry Pi kunt aansluiten.
Denk hierbij aan temperatuur, licht, geluid, drukknoppen en nog veel meer.

Aansturen

Naast sensoren zijn er ook tal van dingen die je kunt aansturen.
Zoals relais (lamp aan/uit), LEDs, buzzer, muziek en meer.


Tijd om te experimenteren met je Raspberry Pi

Voordat het experimenteren moet je beginnen met eenvoudige schakelingen, zoals een LED laten knipperen bij het indrukken van een knop.

Hiervoor is een experimenteerbord (breadboard) een ideale uitkomst.

experimenteer uitbreidingen

Experimenteren bord voor de Raspberry Pi 400

PCB 3D Raspberry Pi 400 Experimenteer HAT

NodeMCU test board

NodeMCU test board

Wij ontwikkelen ook hardware voor andere microcontrollers zoals dit test board voor de NodeMCU.

Zoek jij nu ook iets specifieks? mogelijk kunnen we je helpen.

Bel ons on laat een bericht achter via het contact formulrier.

 

 


Raspberry Pi 400

Raspberry Pi 400 micro computer

Raspberry org heeft een kleine computer uitgebracht op basis van de Raspberry Pi 4. Deze is ingebouwd in een toetsenbord en heeft alleen een muist en een scherm nodig.

Voor een prijs van onder de € 100 heb je een mooie kleine computer die zeer geschikt is voor electronica experimenten. De standaard 40-pin GPIO connector is ook beschikbaar gemaakt aan de achterkant voor het aansluiten van uitbreidingen.

Hiervoor hebben wij een experimenteer bord ontwikkeld (binnenkort beschikbaar) die je direct in deze kleine computer kunt steken. Experimenteren met de Raspberry Pi wordt nu wel heel erg makkelijk gemaakt.