Raspberry Pi Pico project: Automatische scherm beveiliging
Bij dit project plaats je de afstandssensor op jezelf gericht als je achter je PC of Laptop zit.
Er zal nu niets gebeuren, sta je echter op en loop je van je pc weg, zal het scherm automatisch vergrendelen.
Dit RPi Pico project is perfect om te beginnen met de Thonny programmeertool en CircuitPython.
Je leert de Pico aan te sluiten op je pc en programmaatjes erop te zetten.
Deze handleiding behandeld:
- Niveau – Beginner 25%
- Tijdsduur 20 min 25%
- Kosten €10,95 11%
Een Raspberry Pi Pico is een microcontrollerboard dat is ontwikkeld door dezelfde organisatie die verantwoordelijk is voor de populaire Raspberry Pi single-board computers.
Enkele kenmerken van de Raspberry Pi Pico zijn:
- RP2040 microcontroller: De Pico wordt aangedreven door de RP2040 microcontroller, die speciaal is ontworpen door Raspberry Pi. Deze microcontroller heeft een dual-core ARM Cortex-M0+ processor en biedt een aanzienlijke rekenkracht voor een microcontroller.
- I/O-pinnen: De Pico heeft een groot aantal GPIO (General Purpose Input/Output) pinnen, waarmee je sensoren, displays, motoren en andere elektronische componenten kunt aansluiten en bedienen.
- USB-aansluiting: De Pico heeft een USB-poort voor het programmeren en voeden van het bord. Het kan worden geprogrammeerd met MicroPython, C/C++, en andere programmeertalen.
- Veelzijdigheid: Dankzij de krachtige RP2040 en de vele I/O-pinnen is de Pico geschikt voor een breed scala aan projecten, van eenvoudige knipperende LED’s tot complexe IoT-toepassingen.
- Lage kosten: De Raspberry Pi Pico is zeer betaalbaar en is daardoor toegankelijk voor hobbyisten, makers en professionals.
Een HC-SR04 is een ultrasone afstandssensor die vaak wordt gebruikt in elektronische projecten, met name in de wereld van hobby-elektronica en robotica. Deze sensor maakt gebruik van ultrasone geluidsgolven om de afstand tussen de sensor en een object te meten. Hier is hoe het werkt:
- Ultrasone zender: De sensor bevat een ultrasone zender die geluidsgolven uitzendt met een frequentie die voor mensen niet hoorbaar is (meestal rond de 40 kHz). (Trigger)
- Ontvanger: De sensor heeft ook een ultrasone ontvanger om de gereflecteerde geluidsgolven op te vangen. (Echo)
- Tijdsmeting: De HC-SR04 meet de tijd die nodig is voor de uitgezonden geluidsgolf om het object te bereiken en terug te keren naar de sensor.
- Afstands berekening: Met de gemeten tijd kan de sensor de afstand tot het object berekenen met behulp van de snelheid van geluid in de lucht. Dit wordt meestal gedaan met de formule: Afstand = (Tijd x Geluidssnelheid) / 2.
HC-SR04-sensoren zijn eenvoudig te gebruiken en kunnen worden aangesloten op microcontrollers zoals Arduino of Raspberry Pi om objectafstanden te meten en obstakeldetectie uit te voeren. Ze zijn populair voor projecten zoals het bouwen van automatische deuropeners, robotnavigatie, afstandsmeetapparatuur en meer.
Stap 2: Software installeren
Op deze Raspberry Pico gaan we eerst CircuitPython zetten.
Download het uf2 bestand van onderstaande website:
https://circuitpython.org/board/raspberry_pi_pico/
- Druk op de witte bootsel knop op de pico en blijf deze ingedruk houden.
- Plug de pico in een usb poort van je computer. (Daarna kun je de knop loslaten)
- Er zal nu een schijfletter, zoals met een memorystick benaderbaar komen.
- Kopieer het firmware bestand adafruit-circuitpython-xxxxxx.uf2 naar deze drive/
(pico zal herstarten en de firmware wordt geïnstalleerd)
Download en installeer Thonny op je PC.
( https://thonny.org/ )
Selecteer de MicroPython Interpreter onder > Opties > Interpreter CircuitPython (Generiek)
Nu moeten er nog wat python modules geïnstalleerd worden.
Open het menu Hulpmiddelen > Pakketten beheren.
Zoek nu naar adafruit-circuitpython-hid en adafruit-circuitpython-hcsr04 en installeer deze
Stap 3: Programmeren
Nu kun je in het onderstaande programma overtypen in de Thonny interface.
import usb_hid from adafruit_hid.keyboard import Keyboard from adafruit_hid.keycode import Keycode import board import adafruit_hcsr04 import time ultrasone = adafruit_hcsr04.HCSR04(trigger_pin=board.GP4, echo_pin=board.GP5) toggle = 0 time.sleep(5) while True: # print((ultrasone.distance,)) if ultrasone.distance > 100 and toggle == 0: toggle = 1 kbd = Keyboard(usb_hid.devices) kbd.press(Keycode.LEFT_GUI) time.sleep(1) kbd.press(Keycode.L) time.sleep(0.1) kbd.release(Keycode.L) time.sleep(0.1) kbd.release(Keycode.LEFT_GUI) time.sleep(1) kdb.release_all() time.sleep(10) if ultrasone.distance < 100: toggle = 0 time.sleep(1)
Uitleg van het programma:
- importeer de python module voor toetsenbord/muis emulatie
- importeer keyboard code
- importeer keycode voor het toetsenbord (toets codes)
- importeer de module om de IO pinnen van de Pico aan te kunnen spreken
- importeer de module voor het uitlezen van de HC-SR04 module
- importeer time module deze biedt functies voor vertragingen.
- .
- Definieer een ultrasone variabele die de ultrasone module kan uitlezen. De Trigger en Echo pinnen zijn hier ook gedefinieerd.
- Een gedefinieerde variabele om bij te houden wanneer lock-screen geactiveerd is
- Wacht eerst 5 seconden voordat de meeting begint
- Een oneindige lus, welke programma regels 12-28 blijft herhalen
- Een debug regel, deze print de gemeten afstand
- Hier wordt gekeken of de gemeten afstand meer dan 100 cm is en of de toggle variabele niet al gezet is.
- Blijkbaar was toggle niet aan, dus mag dat bij deze
- Definieer het toetsenbord als kdb
- Zend de Keycode voor window-key
- Wacht even met zenden van de L toets
- Stuur de L toets als keycode
- Wacht even voordat de L losgelaten kan worden
- Laat de L toets los
- Wacht weer even een 10de seconde
- Laat de windows toets los
- Weer even een pauze
- Stuur een release all keys commando
- Wacht 10 seconden, we willen niet te snel weer een lock commando
- Als de gemeten afstand kleiner dan 100 cm is,
- kan toggle weer op 0 gezet worden
- Wacht 1 seconde voordat de programmeerlus weer begint bij 11
Druk daarna op opslaan, en sla het programma op je eigen computer op.
Druk op het rode stopbord knopje om de ‘backend’ opnieuw te starten.
(Thonny maakt nu opnieuw verbinding met je Pico)
Daarna zou je groene knop (Voer huidig script uit) in kunnen drukken.
Als de pico nu verwijderd wordt van de computer en opnieuw aangesloten zal het programma niet gestart worden.
We hebben alleen de programmeercode getest.
Om het automatisch starten mogelijk te maken moeten we het programma opnieuw opslaan, maar dan de pico selecteren.
Bestand > Opslaan als > Raspberry Pi Pico
Sla het programma op met de naam main.py. De pico zal het programma met deze naam automatisch starten bij het aansluiten van de Pico op een USB-poort.
In dit geval heb je wel een connectie met je PC en Thonny nodig om de gemeten resultaten te kunnen zien!
Stap 4: Resultaat
Ga achter je PC of Laptop zitten en richt de sensor op jezelf.
Er zal nu niets gebeuren, sta je echter op en loop je van je pc weg, zal het scherm automatisch vergrendelen.