Inhoudsopgave:

Raspberry Pi Zero HDMI / WiFi soldeermicroscoop - Ajarnpa
Raspberry Pi Zero HDMI / WiFi soldeermicroscoop - Ajarnpa

Video: Raspberry Pi Zero HDMI / WiFi soldeermicroscoop - Ajarnpa

Video: Raspberry Pi Zero HDMI / WiFi soldeermicroscoop - Ajarnpa
Video: Подключение к raspberry pi zero w без hdmi кабеля и переходников 2024, Juli-
Anonim
Image
Image
Raspberry Pi Zero HDMI / WiFi soldeermicroscoop
Raspberry Pi Zero HDMI / WiFi soldeermicroscoop
Raspberry Pi Zero HDMI / WiFi soldeermicroscoop
Raspberry Pi Zero HDMI / WiFi soldeermicroscoop

Het solderen van SMD-componenten kan soms een beetje een uitdaging zijn, vooral als het gaat om zaken als TQFP-chips met een steek van 0,4 mm met 100 of meer pinnen. In dergelijke gevallen kan het erg nuttig zijn om toegang te hebben tot een soort vergroting.

In een poging om dit probleem aan te pakken, besloot ik mijn eigen soldeermicroscoop te bouwen op basis van een Raspberry Pi Zero W en een cameramodule. De microscoop is in staat om Full HD-video rechtstreeks naar een HDMI-monitor te streamen met vrijwel geen latentie, wat perfect is om te solderen. Maar ook over wifi met een latency van minder dan een halve seconde, wat best goed is voor boardinspectie.

Optioneel kan de microscoop tegen een kleine meerprijs ook draagbaar worden gemaakt, wat in combinatie met de WiFi-videostreamingmogelijkheden een extra dimensie van potentiële use-cases opent.

Als je toevallig een 3D-printer hebt, bekijk dan ook het geweldige project van RichW36 op Thingiverse voor een versie van de microscoop met 3D-geprinte onderdelen!

Stap 1: Gereedschap en onderdelen

Gereedschappen en onderdelen
Gereedschappen en onderdelen
Gereedschappen en onderdelen
Gereedschappen en onderdelen
Gereedschappen en onderdelen
Gereedschappen en onderdelen
Gereedschappen en onderdelen
Gereedschappen en onderdelen

Om de microscoop te bouwen heb je de volgende onderdelen nodig:

1 x Raspberry Pi Zero W [10€]

1 x Raspberry Pi-cameramodule [8 €] - Je moet hem hacken om de brandpuntsafstand te veranderen en het mogelijk te maken om scherp te stellen op objecten die er heel dichtbij zijn. Ik weet niet of dezelfde procedure ook mogelijk is met de nieuwe 8MP cameramodule, dus ik raad aan om in plaats daarvan de originele 5MP te kopen.

1 x Raspberry Pi Zero Camera Kabel [€2] - Zoals je wellicht al weet heeft de Raspberry Pi Zero een kleinere camera connector dan de andere Raspberry Pi boards, dus je hebt ook een speciale adapterkabel nodig om de cameramodule erop aan te sluiten.

1 x plastic schuifmaatmicrometer - Hoe goedkoper je kunt vinden, hoe beter, ik heb gewoon een oude plastic analoge gebruikt die ik had liggen.

1 x stuk liniaal - De breedte van de liniaal moet kleiner zijn dan de lengte van de bewegende kaak van de remklauw. Wat betreft de lengte, ongeveer 10 cm tot 15 cm zou goed moeten zijn.

1x Aluminium Project Box [4€] - Deze wordt gebruikt als basis voor het geheel en moet van metaal zijn, zodat hij ook hittebestendig is. De reden dat een doos nodig is, is dat je er een gewicht in kunt plaatsen, om stabieler te zijn tijdens het solderen.

1 x HDMI-kabel en een vrouwelijke HDMI-naar-mannelijke mini-HDMI-adapter - Je kunt ook HDMI-naar-mini-HDMI-kabels kopen als je wilt, maar ik had al een gewone HDMI-kabel liggen.

1 x Micro USB-voeding - Volgens mijn metingen overschrijdt de stroom die door de Pi wordt getrokken nooit 400 mA, zelfs niet als tegelijkertijd 1080p-video via WiFi en HDMI wordt gestreamd. Dus zelfs een 500mA voeding zou voldoende moeten zijn. Voor de zekerheid raad ik echter aan om een 1A-versie te kopen, vooral als je van plan bent om de draagbare versie te bouwen die ook verliezen zal hebben op de boost-converter.

1 x MicroSD-kaart [5€] - Zelfs een 4GB-kaart zal genoeg zijn, zorg er gewoon voor dat het een klasse 10 van hoge kwaliteit is.

4 x M2 Schroeven en Moeren [minder dan € 1] - Schroeven met een grotere diameter kunnen ook worden gebruikt. Hoe groter de schroef, hoe breder het gat moet zijn en hoe groter het risico dat het plastic breekt.

1 x hete lijmstift [1€]

Kabelbinders [minder dan € 1] - Die worden gebruikt om de Pi aan het bewegende deel van de remklauw te bevestigen.

En de volgende hulpmiddelen:

Een heet lijmpistool

Een Dremel - Met een schijf die door plastic kan snijden, plus boren voor plastic en aluminium ter grootte van de schroeven.

Een lange platte bektang

Een boutkniptang - U hebt een manier nodig om de schroeven op de juiste lengte af te knippen. Ik heb een bouttang gebruikt, hoewel ik zeker weet dat er ook andere gereedschappen zijn die het werk kunnen doen.

Philips-schroevendraaier

Optioneel, als je het draagbaar wilt maken, heb je de volgende extra onderdelen nodig:

1 x LiPo-batterij [8 €] - waarvan de capaciteit zal afhangen van de levensduur van de batterij die u wilt, de efficiëntie van de boost-converter en het gemiddelde stroomverbruik.

1 x LiPo Acculader / 5V Boost Converter [20€] - Voor dit project heb ik gekozen voor de PowerBoost 1000C van Adafruit. Veel goedkopere alternatieven zijn ook beschikbaar op eBay, hoewel ik besloot om voor die specifieke te gaan vanwege een leuke functie die het had, waar ik later meer over ga praten.

1 x 40-pins dubbele rij mannelijke pin-header [minder dan € 1]

1 x 40-pins dubbele rij vrouwelijke pin-header [minder dan € 1]

1 x 8-pins mannelijke pin-header [minder dan € 1]

1 x 8-pins vrouwelijke pin-header [minder dan € 1]

1 x stuk Prototyping Board [1€] - Omdat je aan beide kanten van het bord pin-headers moet solderen, raad ik aan om een dubbelzijdige te kopen. Als alternatief kunt u een prototyping-bord krijgen dat speciaal is ontworpen voor de Pi Zero, zoals dit van MakerSpot.

1 x 1K Weerstanden [minder dan 1€]

1 x 10K Weerstand [minder dan 1€]

1 x BC547 [minder dan € 1] - Elke NPN-transistor voor algemeen gebruik is voldoende, dit is precies wat ik heb gebruikt.

1 x DPST Momentary Switch [1€] - Idealiter wil je een DPST-switch, zodat je de Pi met dezelfde drukknop kunt in- en uitschakelen. Helaas had ik er geen in de buurt, dus moest ik in plaats daarvan twee afzonderlijke SPST-momentschakelaars gebruiken.

Kabelbinders [minder dan € 1] - Er is nog een nodig voor de draagbare versie, voor het bevestigen van de batterij aan de achterkant van het prototypebord.

Soldeerdraad

En de volgende extra tools:

Een soldeerbout

Een paar draadknippers

De totale kosten voor de niet-draagbare versie, exclusief de voeding, de HDMI-kabel en de adapter naar mini HDMI, bedroegen ongeveer € 30. En de extra kosten om het draagbaar te maken waren ook ongeveer 30 €. De meeste onderdelen zijn op eBay gekocht.

Stap 2: De MicroSD voorbereiden

De afbeelding op de microSD-kaart branden

Als basis voor het systeem besloot ik om met de officiële Raspbian Lite-image te gaan en dan alleen precies te installeren wat ik nodig had. Om aan de slag te gaan, downloadt u eerst de nieuwste Raspbian Lite-afbeelding van de raspberrypi.org-website en brandt u deze op uw microSD-kaart.

Als je Linux gebruikt, kun je het na het uitpakken branden door het volgende commando als root uit te voeren, dd if=/pad/naar/-raspbian-jessie-lite.img of=/dev/sdX bs=4M

Waarbij X de letter is van het apparaat dat overeenkomt met uw microSD, b.v. C. Voordat u de opdracht uitvoert, moet u ervoor zorgen dat er geen aangekoppelde partities zijn die bij de microSD-kaart horen. In het geval dat er zijn gebruik de volgende opdracht om elk van hen te ontkoppelen, umount /dev/sdXY

Maar wees hier uiterst voorzichtig, het gebruik van de verkeerde letter in plaats van X kan onomkeerbare schade aan uw systeem toebrengen en uw dag verpesten. Controleer voordat u de opdracht dd uitvoert of de letter die u in plaats van X hebt getypt, echt de letter is die overeenkomt met het microSD-apparaat.

Als u Windows gebruikt, kunt u na het downloaden en uitpakken van de Raspbian Lite-afbeelding de Win32DiskImager gebruiken om deze op de microSD-kaart te branden. Meer informatie is te vinden in de officiële Raspberry Pi-documentatie.

Op MacOS is een grafische applicatie genaamd Etcher beschikbaar, waarmee de afbeelding op de microSD-kaart kan worden gebrand. Als alternatief kun je dd ook op dezelfde manier gebruiken als Linux, maar het proces is een beetje anders. Nogmaals, u kunt de officiële documentatie raadplegen voor meer informatie.

De wifi configureren

Nadat je de afbeelding op de microSD-kaart hebt gebrand, moet je de wifi configureren voor de eerste keer opstarten en ook SSH inschakelen.

Het eerste dat u hoeft te doen, is een leeg bestand met de naam SSH maken in de opstartpartitie van de microSD-kaart. Als u Windows gebruikt, is de opstartpartitie waarschijnlijk de enige partitie die u zou kunnen zien, aangezien Windows geen native ext4-partities kan lezen of schrijven. Als de microSD-kaartpartities momenteel niet zijn aangekoppeld, koppelt u de kaart los en sluit u deze opnieuw aan op uw computer.

Maak vervolgens, opnieuw in de opstartpartitie, een bestand met de naam wpa_supplicant.conf met uw draadloze instellingen. De inhoud van het bestand zou er ongeveer zo uit moeten zien, land=

netwerk={ ssid= psk= proto=RSN key_mgmt=WPA-PSK pairwise=CCMP auth_alg=OPEN }

proto kan ofwel RSN zijn voor WPA2, of WPA voor WPA1.key_mgmt kan ofwel WPA-PSK zijn, of WPA-EAP voor bedrijfsnetwerken. Pairwise kan ofwel CCMP zijn voor WPA2, of TKIP voor WPA1.auth_alg zal waarschijnlijk OPEN zijn, terwijl LEAP en SHARED zijn de andere opties. Wat betreft land, ssid en psk, die zouden vrij duidelijk moeten zijn.

Dat is alles, ontkoppel nu gewoon de microSD-kaart van uw computer en plaats deze op uw Pi. Sluit vervolgens je Pi aan op een HDMI-monitor, sluit de cameramodule aan met de speciale lintkabel en zet tenslotte de stroom aan. Na een paar seconden zou je Pi moeten opstarten en automatisch verbonden zijn met je wifi-netwerk. Op het scherm zou u ook het IP-adres moeten kunnen zien dat het van de DHCP-server van uw router heeft gekregen.

Update 6-4-2018:

Als je Pi om de een of andere reden geen verbinding kan maken met wifi tijdens het opstarten, probeer dan het volgende wpa_supplicant.conf, land=

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 netwerk={ }

Ik probeerde onlangs een headless Pi Zero W in te stellen met de nieuwste versie van Raspbian en ik kon het niet laten werken totdat ik de hierboven verstrekte wpa_supplicant.conf gebruikte. Dus als u ook hetzelfde probleem lijkt te hebben, kan dit helpen.

Stap 3: Een SSH-verbinding tot stand brengen

Als je nog geen monitor op je Pi hebt aangesloten en je kunt niet zien welk IP-adres het heeft gekregen, dan zijn er verschillende manieren om het te ontdekken. Een manier is door de logs van de DHCP-server van uw router te controleren. Elke router is anders, dus ik ga dat proces niet beschrijven.

Op Linux is een andere gemakkelijke manier door het volgende nmap-commando als root uit te voeren, nmap -sn x.x.x.x/y

Waar x.x.x.x het IP-adres is van uw privénetwerk, b.v. 192.168.1.0 en de y is het aantal enen (in binair) van het netwerkmasker, b.v. voor het netwerkmasker 255.255.255.0 is het aantal enen 24. Dus voor dat specifieke netwerk dat u zou uitvoeren, nmap -sn 192.168.1.0/24

Een voorbeelduitvoer voor deze opdracht is de volgende, Vanaf Nmap 6.47 (https://nmap.org) op 16-04-2017 12:34 EEST

Nmap-scanrapport voor 192.168.1.1 Host is up (latentie van 0,00044s). MAC-adres: 12:95:B9:47:25:4B (Intracom S. A.) Nmap-scanrapport voor 192.168.1.2 Host is actief (latentie van 0,0076s). MAC-adres: 1D:B8:77:A2:58:1F (HTC) Nmap-scanrapport voor 192.168.1.4 Host is up (latentie van 0,00067s). MAC-adres: 88:27:F9:43:11:EF (Raspberry Pi Foundation) Nmap-scanrapport voor 192.168.1.180 Host is actief. Nmap klaar: 256 IP-adressen (4 hosts up) gescand in 2,13 seconden

Zoals je in mijn geval kunt zien, heeft de Pi het IP-adres 192.168.1.4.

Als u Windows gebruikt, is er ook een versie van nmap beschikbaar die u kunt proberen, waarvoor u hier meer informatie kunt vinden. Nadat je het IP-adres van de Pi hebt verkregen, kun je er SSH naartoe sturen met de volgende opdracht op zowel Linux als MacOS, ssh pi@

Of op Windows met behulp van PuTTY.

Het standaardwachtwoord voor de pi-gebruiker is framboos.

Stap 4: Het systeem configureren

Algemene configuratie

Bij de eerste keer opstarten is het systeem bijna volledig niet geconfigureerd, dus er zijn enkele taken die u eerst moet doen.

Het allereerste dat u moet doen, is het standaardwachtwoord voor de pi-gebruiker wijzigen, passwd

Vervolgens moet u de landinstellingen configureren. U kunt dit doen door de volgende opdracht uit te voeren, sudo dpkg-landinstellingen opnieuw configureren

Ga je gang en selecteer alle en_US landinstellingen met behulp van de spatiebalk plus eventuele andere landinstellingen die je wilt. Als je klaar bent, druk je op Enter. Selecteer ten slotte de en_US. UTF-8 als de standaardtaal en druk op Enter.

Vervolgens moet u de tijdzone configureren, sudo dpkg-herconfigureer tzdata

Op dit moment is het waarschijnlijk een goed idee om het systeem bij te werken, sudo apt-get update

sudo apt-get upgrade sudo apt-get dist-upgrade

Vervolgens moet u de cameramodule inschakelen met behulp van de opdracht raspi-config, sudo raspi-config

Selecteer de interface-opties in het menu en selecteer vervolgens de camera-optie. Beantwoord de vraag met ja om de camera in te schakelen en selecteer vervolgens OK. Selecteer ten slotte Voltooien en antwoord ja op de vraag of je de Raspberry Pi nu opnieuw wilt opstarten. Maak na het opnieuw opstarten opnieuw verbinding met je Pi via SSH op dezelfde manier als voorheen.

Om te testen of de camera goed werkt, kunt u de volgende opdracht uitvoeren, raspivid -t 0

U zou de videofeed op uw HDMI-monitor moeten kunnen zien, u kunt deze op elk gewenst moment stoppen door op Ctrl-C te drukken. U kunt desgewenst ook de vlaggen -vf en -hf gebruiken om de afbeelding verticaal en/of horizontaal te spiegelen.

Een statisch IP-adres instellen

Het volgende dat u hoeft te doen, is een statisch IP-adres voor uw Pi instellen. Om dit te doen met nano, bewerk je /etc/dhcpcd.conf, sudo nano /etc/dhcpcd.conf

en voeg aan het einde de volgende regels toe, interface wlan0

statisch ip_adres= statisch routers= statisch domain_name_servers=

Bij de domain_name_servers instelling kun je meerdere nameservers toevoegen, gescheiden door spaties als je wilt, b.v. u kunt ook het IP-adres van de Google DNS toevoegen, 8.8.8.8 om als back-upserver te gebruiken. Druk op Ctrl-X om af te sluiten, typ y en druk ten slotte op Enter om de wijzigingen op te slaan.

Start vervolgens de dhcpcd- en netwerkservices opnieuw door de volgende twee opdrachten uit te voeren, sudo systemctl herstart dhcpcd.service

sudo systemctl herstart networking.service

Op dit punt zou de SSH-sessie moeten blijven hangen. Maak je echter geen zorgen, dat is te verwachten, aangezien je zojuist het IP-adres van de Pi hebt gewijzigd, maak er gewoon opnieuw verbinding mee via SSH, maar deze keer met het IP-adres dat je hebt toegewezen.

Stap 5: GStreamer installeren

Er zijn verschillende manieren om video van een Raspberry Pi over het netwerk te streamen, maar degene die de minste latentie biedt, is door GStreamer te gebruiken. Om GStreamer te installeren, kunt u eenvoudig de volgende opdrachten uitvoeren, sudo apt-get update

sudo apt-get install gstreamer1.0-tools gstreamer1.0-plugins-good gstreamer1.0-plugins-bad

GStreamer heeft nogal wat afhankelijkheden, dus dit gaat even duren. Nadat de installatie is voltooid, kunt u de videofeed van de camera tegelijkertijd via het netwerk en HDMI streamen met behulp van de volgende opdracht, raspivid -t 0 -w 1920 -h 1080 -fps 30 -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host = poort = 5000

Dit gaat een RTP-stream maken op poort 5000 die door elke machine op uw lokale netwerk kan worden ontvangen met behulp van GStreamer, gst-launch-1.0 -v tcpclientsrc host= poort=5000 ! gdpdepay ! rtph264depay ! avdec_h264 ! video converteren! autovideosink sync=false

Het installeren van GStreamer op elke machine met een op Debian gebaseerde Linux-distro gaat op precies dezelfde manier als op de Pi. De meeste grote niet-Debian-gebaseerde distributies zouden ook GStreamer in hun repositories moeten hebben.

GStreamer is ook beschikbaar op Windows en MacOS, gedetailleerde informatie over hoe het te installeren kan hier en hier worden gevonden.

Stap 6: Streaming configureren om automatisch te starten bij opstarten

Natuurlijk kun je met het vorige commando beginnen met streamen wanneer je maar wilt, maar daarvoor moet je eerst verbinding maken met de Pi via SSH, wat niet erg handig is. Wat u in plaats daarvan wilt doen, is een script maken dat automatisch wordt uitgevoerd bij het opstarten als een service en het streamen starten.

Maak hiervoor dus eerst een bestand aan met nano, sudo nano /usr/local/bin/network-streaming.sh

en binnen plak de volgende twee regels, #!/bin/bash

raspivid -t 0 -w 1920 -h 1080 -fps 30 -vf -hf -b 2000000 -o - | gst-launch-1.0 -v fdsrc ! h264parse ! rtph264pay config-interval=1 pt=96 ! gdppay ! tcpserversink host = poort = 5000

De vlaggen -vf en -hf worden gebruikt om de afbeelding verticaal en horizontaal te spiegelen. Afhankelijk van de richting van de camera nadat u deze hebt geïnstalleerd, hebt u ze misschien wel of niet nodig.

Druk op Ctrl-X om af te sluiten, typ y en druk ten slotte op Enter om de wijzigingen op te slaan. Maak het script vervolgens uitvoerbaar door het uit te voeren, sudo chmod +x /usr/local/bin/network-streaming.sh

Vervolgens moet u een systemd-servicebestand maken, sudo nano /etc/systemd/system/network-streaming.service

En plak binnen de volgende regels, [Eenheid]

Description=Netwerkvideostreaming After=network-online.target Wants=network-online.target [Service] ExecStart=/usr/local/bin/network-streaming.sh StandardOutput=journal+console User=pi Restart=on-failure [Installeren] WantedBy=multi-user.target

Sla het bestand op en sluit nano af en voer de volgende opdracht uit om uw service te testen, sudo systemctl start netwerk-streaming.service

Als alles werkt zoals verwacht, kunt u de volgende opdracht uitvoeren om de service automatisch te laten starten bij het opstarten, sudo systemctl netwerk-streaming.service inschakelen

Stap 7: Het bestandssysteem alleen-lezen maken

Een van de grote problemen van SD-kaarten en flash-opslag in het algemeen is dat ze erg vatbaar zijn voor corruptie.

De beste manier om dit tegen te gaan, is door alle partities van de microSD-kaart als alleen-lezen te mounten. Dit stelt je ook in staat om de stroom van de Pi los te koppelen wanneer je maar wilt zonder dat je een juiste afsluiting hoeft te starten, wat erg handig is, vooral voor een dergelijke toepassing.

Het eerste dat u hoeft te doen, is enkele pakketten verwijderen door de volgende opdracht uit te voeren, sudo apt-get purge triggerhappy logrotate dphys-swapfile

Vervolgens moet u rsyslog vervangen door de syslogd-daemon van busybox, waarmee u de systeemlogboeken in het geheugen kunt houden, sudo apt-get install busybox-syslogd

sudo apt-get purge rsyslog

en loop, sudo apt-get autoremove

om pakketten te verwijderen die niet langer nodig zijn.

Daarna kunt u de systeemlogboeken op elk moment bekijken met de opdracht logread.

Vervolgens moet je /etc/resolv.conf naar /tmp verplaatsen, dat in het geheugen zal worden gemount, omdat het beschrijfbaar moet blijven.

sudo rm /etc/resolv.conf

sudo touch /tmp/resolv.conf sudo ln -s /tmp/resolv.conf /etc/resolv.conf

Een ander bestand dat beschrijfbaar moet zijn, is /var/lib/systemd/random-seed, dus op dezelfde manier, sudo rm /var/lib/systemd/random-seed

sudo touch /tmp/random-seed sudo chmod 600 /tmp/random-seed sudo ln -s /tmp/random-seed /var/lib/systemd/random-seed

Omdat het random-seed-bestand normaal niet bij het opstarten wordt gemaakt en de inhoud van /tmp vluchtig is, moet u dat wijzigen door het servicebestand van het systemd-random-seed-servicebestand te wijzigen. Dus door nano te gebruiken, sudo nano /lib/systemd/system/systemd-random-seed.service

en voeg gewoon de regel toe aan het einde van het servicegedeelte, ExecStartPre=/bin/echo "" > /tmp/random-seed

dus het zal er zo uitzien, [Onderhoud]

Type=oneshot RemainAfterExit=ja ExecStart=/lib/systemd/systemd-random-seed load ExecStop=/lib/systemd/systemd-random-seed save ExecStartPre=/bin/echo "" > /tmp/random-seed

en loop, sudo systemctl daemon-reload

om uw systemd-servicebestanden opnieuw te laden.

Vervolgens moet je het /etc/fstab-bestand bewerken, sudo nano /etc/fstab

En voeg de ro-optie toe aan /dev/mmcblk0p1 en /dev/mmcblk0p2 partities zodat ze als alleen-lezen kunnen worden gemount bij het opstarten. En voeg nog een paar regels toe zodat /tmp, /var/log en /var/tmp in het geheugen worden gemount. Nadat je die wijzigingen hebt aangebracht, zou je /etc/fstab-bestand er ongeveer zo uit moeten zien, proc /proc proc standaard 0 0

/dev/mmcblk0p1 /boot vfat defaults, ro 0 2 /dev/mmcblk0p2 / ext4 defaults, noatime, ro 0 1 # een swapfile is geen swappartitie, geen regel hier # gebruik daarvoor dphys-swapfile swap[on|off] tmpfs /tmp tmpfs nosuid, nodev 0 0 tmpfs /var/log tmpfs nosuid, nodev 0 0 tmpfs /var/tmp tmpfs nosuid, nodev 0 0

Bewerk tot slot uw cmdline.txt, sudo nano /boot/cmdline.txt

en voeg aan het einde van de regel de opties fastboot noswap ro toe om de bestandssysteemcontrole uit te schakelen, de swap uit te schakelen en het bestandssysteem te dwingen als alleen-lezen te worden gemount. Daarna zou je /boot/cmdline.txt er ongeveer zo uit moeten zien, dwc_otg.lpm_enable=0 console=serial0, 115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=ja rootwait fastboot noswap ro

Start ten slotte het systeem opnieuw op om de wijzigingen door te voeren. Na het opnieuw opstarten als alles liep zoals verwacht, sudo touch /boot/test

sudo touch /test

zou u in beide gevallen een "Alleen-lezen bestandssysteem"-fout moeten geven. Nu kun je de stroom van je Pi loskoppelen wanneer je maar wilt zonder het risico te lopen dat het bestandssysteem op de microSD-kaart beschadigd raakt.

Als u om de een of andere reden het rootbestandssysteem tijdelijk read-write wilt maken, b.v. voor het installeren van sommige pakketten kunt u dit doen door de volgende opdracht te gebruiken, sudo mount -o remount, rw /

En nadat u klaar bent, voert u de volgende opdracht uit om het weer alleen-lezen te maken, sudo mount -o remount, ro /

Als je updates wilt doen, zorg er dan voor dat je zowel /boot als / mount als read-write, omdat updates voor de kernel en de firmware ook de /boot partitie schrijven.

Op dit punt zijn we klaar met het softwaregedeelte, dus ik raad ten zeerste aan om je Pi af te sluiten, de microSD te verwijderen en een afbeeldingsback-up van de microSD-kaart te maken.

Stap 8: de cameramodule hacken

De cameramodule hacken
De cameramodule hacken
De cameramodule hacken
De cameramodule hacken

Om ervoor te zorgen dat de cameramodule zich kan concentreren op objecten die zich zeer dicht bij elkaar bevinden en u vergroting kan bieden, moet u deze hacken om de brandpuntsafstand aan te passen.

De lens die bovenop de sensor is bevestigd, is eigenlijk op zijn plaats geschroefd en vastgezet met een zeer kleine hoeveelheid lijm. Draai de lens voorzichtig heen en weer met een lange platbektang om de lijmverbinding te verbreken en schroef de lens dan heel voorzichtig helemaal los.

Plaats daarna de lens terug op de module en schroef deze een klein beetje vast, zodat deze er niet af valt als je het bord ondersteboven houdt. Sluit vervolgens je Pi aan op je monitor als je dat nog niet hebt gedaan, sluit de stroom aan en kijk naar de videostream.

Wat u moet doen, is aanpassen hoeveel de lens op de basis wordt geschroefd, zodat de camera kan scherpstellen op objecten op ongeveer 10 cm van de lens. Probeer niet veel lager te gaan dan dat, want je moet een relatief goede werkafstand hebben om eronder te kunnen solderen. Maak je niet al te veel zorgen om het perfect te maken, je kunt altijd fijne aanpassingen doen nadat je klaar bent met de microscoopmontage.

Stap 9: De microscoop monteren

De microscoop in elkaar zetten
De microscoop in elkaar zetten
De microscoop monteren
De microscoop monteren
De microscoop monteren
De microscoop monteren
De microscoop monteren
De microscoop monteren

Nu is het tijd voor het leuke gedeelte, dat niet anders is dan het in elkaar zetten van de microscoop.

Eerst moet u twee gaten maken met de diameter van de schroeven op de bovenkaak van de remklauw en twee aan één kant van de aluminium behuizing om deze te monteren.

Vervolgens moet u een gleuf van de juiste maat openen om in het liniaalstuk te passen. Neem hier de tijd voor, want als je te snel gaat, kan het plastic breken of het gat te groot worden. Nadat u klaar bent, plaatst u de liniaal om ervoor te zorgen dat deze er mooi in past.

Nu moet je een paar gaten in de rand maken voor de liniaal om de cameramodule te monteren. Als u klaar bent, schroeft u de cameramodule op zijn plaats en knipt u het resterende deel van de schroeven af.

Monteer daarna de remklauw aan de zijkant van de aluminium behuizing met schroeven, steek de liniaal met de cameramodule eraan bevestigd door het gat en bevestig deze op zijn plaats met hete lijm. Zorg ervoor dat u hete lijm aan beide zijden en van zowel de boven- als de onderkant toevoegt.

Bevestig ten slotte het Raspberry Pi-bord op het bewegende deel van de remklauw met behulp van kabelbinders zoals u op de afbeelding kunt zien en sluit de camerakabel aan.

En dat was het dan, je kunt nu eenvoudig de focus van de camera aanpassen door de schuifmaat op en neer te bewegen en als je wilt ook de brandpuntsafstand van de lens fijn afstellen, om zo de voor jou optimale werkafstand te bereiken.

Als u ook wilt leren hoe u het draagbaar kunt maken, kunt u doorgaan met de volgende stap.

Stap 10: Draagbaar maken: software

De PowerBoost 1000C heeft een zeer handige kleine functie. Het heeft een activeringspin die, wanneer hij hoog wordt getrokken, de boost-converter activeert en stroom begint te leveren aan de uitgang, en terwijl hij laag wordt getrokken, wordt de stroom uitgeschakeld.

De Raspberry Pi heeft ook een leuke functie, waarmee we een GPIO-pin kunnen configureren als een uitgang die in een hoge staat zal zijn terwijl de Pi aan staat en in een lage staat na een succesvolle afsluiting. Door deze twee functies te combineren, is het mogelijk om een softwarematige aan/uit-schakelaar voor de microscoop te maken.

Laten we beginnen bij het softwaregedeelte, het eerste dat u moet doen, is deze functie van de Pi inschakelen en ervoor zorgen dat deze een logisch hoog niveau op één GPIO-pin geeft vanaf het moment dat het opstart, en een logisch laag niveau na een succesvolle afsluiting.

Dat doen is heel eenvoudig, het enige wat u hoeft te doen is uw /etc/config.txt-bestand bewerken, sudo mount -o remount, rw /boot

sudo nano /boot/config.txt

en voeg de volgende regel toe aan het einde, dtoverlay=gpio-poweroff, gpiopin=26, active_low

Als je nu je Raspberry opnieuw opstart en de spanning meet op de GPIO26-pin (pin 37 op de GPIO-header) ten opzichte van aarde, zou je 3,3 V moeten zien vanaf het moment dat de Pi begint op te starten. En na een volledige uitschakeling zou dat 0V moeten worden.

Nu dit is gebeurd, moet u een eenvoudig script schrijven dat de status van een tweede GPIO-pin controleert en wanneer deze laag wordt, wordt afgesloten. Voor dit doel moet je het wirepi-pakket installeren, dat samen met het gpio-commando wordt geleverd.

sudo mount -o remount, rw /

sudo apt-get update sudo apt-get install bedradingpi

Gebruik nu nano om het script te maken, sudo nano /usr/local/sbin/power-button.sh

en plak binnen de volgende regels, #!/bin/bash

while true do if (($(gpio read 24) == 0)) then systemctl poweroff fi sleep 1 done

en maak het na het opslaan en afsluiten ook uitvoerbaar, sudo chmod +x /usr/local/sbin/power-button.sh

Het is belangrijk om te vermelden dat de pin 24 van de bedradingpi overeenkomt met de GPIO19-pin, de pin 35 op de GPIO-header. Als dat verwarrend klinkt, kun je de Raspberry Pi-pinout bekijken op de pinout.xyz-website en de webpagina over pinnen op bedradingpi.com. Het uitvoeren van het commando gpio readall kan ook handig zijn om te bepalen welke pin welke is.

Vervolgens moet u een systemd-servicebestand maken, sudo nano /etc/systemd/system/power-button.service

met de volgende inhoud, [Eenheid]

Description=Power Button Monitoring After=network-online.target Wants=network-online.target [Service] ExecStart=/usr/local/sbin/power-button.sh StandardOutput=journal+console Restart=on-failure [Install] WantedBy =multi-user.target

Ten slotte, om de service te starten en deze tijdens het opstarten te laten draaien, sudo systemctl start power-button.service

sudo systemctl power-button.service inschakelen

en mount opnieuw het bestandssysteem als alleen-lezen met, sudo mount -o remount, ro /

Stap 11: Het draagbaar maken: hardware

Draagbaar maken: hardware
Draagbaar maken: hardware
Draagbaar maken: hardware
Draagbaar maken: hardware
Draagbaar maken: hardware
Draagbaar maken: hardware
Draagbaar maken: hardware
Draagbaar maken: hardware

Nu is het tijd voor het hardwaregedeelte. Eerst moet je een heel eenvoudig circuit bouwen dat bestaat uit een NPN-transistor, twee weerstanden en een DPST-momentschakelaar. U kunt de afbeelding van het schakelschema bekijken voor meer details.

Je zult ook een mannelijke pin-header op de GPIO van de Raspberry Pi moeten solderen en ook een vrouwelijke op de PowerBoost, zodat je die en de Pi gemakkelijk kunt bevestigen op het bord dat je gaat bouwen. Je bord wordt in wezen bovenop de Pi Zero bevestigd als een HAT en de PowerBoost bovenop het bord. De Pi wordt ook rechtstreeks vanuit de GPIO-header gevoed met behulp van de +5V-pin van de PowerBoost.

Nadat je klaar bent met solderen, is het tijd om alles in elkaar te zetten. Monteer eerst de Pi op het bewegende deel van de remklauw met behulp van kabelbinders. Monteer vervolgens de batterij aan de achterkant van het bord dat je opnieuw hebt gebouwd met een ritssluiting en bevestig deze op de Pi, pas op dat je hem niet te strak maakt, anders beschadig je de batterij. Bevestig het PowerBoost-bord erop en steek de batterij in de connector. Last but not least, sluit de camerakabel aan en sluit de Pi aan op de cameramodule, en vergeet natuurlijk niet de microSD aan te sluiten.

En we zijn eindelijk klaar! Als je nu op de aan / uit-knop drukt en deze ongeveer 8 seconden ingedrukt houdt, zou het opstartproces van de Pi moeten beginnen en na het loslaten ervan zou het moeten doorgaan. Helaas begint de Pi niet meteen de logische high op GPIO26 uit te voeren, dus als je te snel stopt met op de knop te drukken, wordt de stroom uitgeschakeld.

Nadat het opstartproces is voltooid, moet u nogmaals ongeveer een seconde op de aan / uit-knop drukken om de Pi uit te schakelen en de stroom uit te schakelen.

Stap 12: Ideeën voor verbetering

Ideeën voor verbetering
Ideeën voor verbetering
Ideeën voor verbetering
Ideeën voor verbetering
Ideeën voor verbetering
Ideeën voor verbetering

Ongewenste lichtbronnen verwijderen

Dit zou niet veel moeten uitmaken als je van plan bent de microscoop alleen te gebruiken voor solderen en bordinspectie, maar als je er ook wat foto's mee wilt maken, kan het zijn dat je een vervelende rode vlek op je foto's ziet verschijnen. Dat komt doordat de LED van de cameramodule altijd aan is als de camera werkt.

Als je het wilt uitschakelen, is het gelukkig vrij eenvoudig om te doen. Nadat de /boot-partitie beschrijfbaar is gemaakt, sudo mount -o remount, rw /boot

bewerk je /boot/config.txt met nano, sudo nano /boot/config.txt

en voeg aan het einde de volgende regel toe, disable_camera_led=1

Als u dit doet, moet de camera-LED uit blijven nadat het systeem opnieuw is opgestart.

Als je nu de draagbare versie hebt gemaakt, heeft de PowerBoost 1000C helaas een belachelijk heldere blauwe LED om aan te geven dat de stroom is ingeschakeld. Afgezien van het verpesten van de belichting van uw afbeeldingen, vindt u het misschien ook erg vervelend voor uw ogen tijdens het solderen, alleen vanwege hoe helder het is.

Om die reden kunt u overwegen om de power-LED of de weerstand die ermee in serie staat volledig van het bord te verwijderen. Als alternatief kunt u in plaats daarvan de 1K-weerstand die ermee in serie staat vervangen door een grotere, zodat de LED zwakker wordt.

Instelbare vergroting

In plaats van een gewone Raspberry Pi-cameramodule te kopen en deze te hacken om de brandpuntsafstand te veranderen, kun je, als je het niet erg vindt om wat extra geld te sparen, ook een cameramodule met een instelbare brandpuntsafstand krijgen, voor iets meer dan 20 € vanaf eBay.

Met zo'n cameramodule kun je eenvoudig het vergrotingsniveau aanpassen, want als je de camera naar beneden beweegt, hoef je alleen maar de lens een beetje los te draaien om scherp te stellen. Hiermee kunt u ook gemakkelijk vrij grote vergrotingsniveaus bereiken. Houd er echter rekening mee dat na een bepaald punt de scherptediepte zo slikken zal worden dat de microscoop bijna onbruikbaar wordt, zoals je ook kunt zien in de bijgevoegde afbeelding.

Dus om samen te vatten, als je het je kunt veroorloven, raad ik je ten zeerste aan om in plaats daarvan een van deze cameramodules te kopen, omdat het je een ongelooflijke hoeveelheid flexibiliteit zal geven.

Microcontroller-wedstrijd 2017
Microcontroller-wedstrijd 2017
Microcontroller-wedstrijd 2017
Microcontroller-wedstrijd 2017

Tweede prijs in de Microcontroller Contest 2017

Aanbevolen: