Zomerronde VRZA Flevoland

De eerste woensdag van de maand is er altijd een clubavond van de V.R.Z.A. afdeling Flevoland. Omdat de clubavond geen doorgang mag vinden hebben we een alternatieve ronde in het leven geroepen. Deze vindt plaats op de eerste woensdag van de maand om 20:00 uur. Deze keer op verzoek om 20:30 uur gaat de ronde verder op 2 meter. Dit voor de amateurs zonder DMR.

Experimenteren met de Raspberry Pi Zero – De Display (deel – 7)

Ik had nog een display liggen die ik ooit voor een projectje had besteld en deze past prima op de Raspberry Pi zero. Van de week had ik wat problemen met de Display omdat hij los begon te raken van de printplaat. Ik heb de randen voorzichtig weer vastgeplakt met een lijm pistool.

Display vast gelijmd

De display is van “Waveshare” en is een 1.44 inch display met joystick.

We beginnen met het installeren van wat drivers die we nodig hebben.

sudo apt-get install fbset raspi-config raspi-gpio

In het configuratie menu van Raspberry Pi zetten we nu SPI aan.

sudo raspi-config

>>Interface Options

>>P4 SPI

>>Enable

We gaan nu de modules file aanpassen

sudo raspi-config

Voeg onderstaande regels toe onderaan de file.

spi-bcm2835
fbtft_device

Nog een filetje aanpassen de fbtft.conf.

sudo nano /etc/modprobe.d/fbtft.conf

Voeg deze regel aan de file toe.

options fbtft_device name=adafruit18_green gpios=reset:27,dc:25,cs:8,led:24 speed=40000000 bgr=1 fps=60 custom=1 height=128 width=128 rotate=180

Wat je ziet is dat we de display 180 graden draaien. Dit is omdat er een bug in deze display zit. Hij laat nl een storend randje zien aan de zijkant van de display. Als we hem 180 graden draaien zijn we van het probleem verlost.

We gaan nu de Raspberry Pi herstarten.

sudo shutdown -r now

We kunnen nu controleren of we een extra display hebben op de Raspberry Pi.

ls /dev/fb*

De fb1 is onze display.

fbset -i -fb /dev/fb1

We gaan nu een foto downloaden.

cd

wget https://mytuner.global.ssl.fastly.net/media/tvos_radios/mjHvU9YY9n.png

En deze hernoemen we na de download.

mv mjHvU9YY9n.png caroline.png

Als het goed is hebben we nu een foto in onze home directory staan en die heeft de naam caroline.png.

We gaan nu een BASH filetje maken. Dit is een scriptje waarmee we alles opstarten zodra we de spanning er op zetten.

sudo nano //etc/init.d/caroline.sh

In de file plaatsen we de volgende regels.

!/bin/bash

ffmpeg -v 0 -y -i /home/pi/caroline.png -vf scale=128:128,transpose=1 -vcodec rawvideo -f rawvideo -pix_fmt rgb565 – > /dev/fb1
bluetoothctl connect 30:C0:1B:C5:25:DD
sleep 10
ffplay http://sc6.radiocaroline.net:8040

Dit heeft wat uitleg nodig. Een bash file is een script in linux waarin je allerlei commando’s uit kan voeren. Voor het opstarten van onze radio stream en het toveren van een fotootje op de display moeten we meerdere commando’s uitvoeren. Dit kun je in een bash scriptje kwijt.

De bovenste regel stuurt de foto naar de display. Dit doe je met het programma ffmpeg wat we eerder hebben geïnstalleerd. In de regel vind je de groote 128×128 en transpose zorgt er voor dat we de display weer 90 graden doordraaien. Je komt nu exact in de positie waar je het logo wilt hebben.

De bluetoothctl connect zorgt er voor dat je speaker weer connect. Let op het MAC adres is mijn MAC adres. Plaats hier het MAC adress van je eigen speaker.

sleep 10 is een pauze van 10 seconde. Ik wil nl zeker weten dat de Bluetooth speaker geconnect is. En met ffplay opennen we de stream.

De file moeten we nu executable maken zodat hij ook daadwerkelijk uitgevoerd kan worden. Dit kan met chmod.

sudo chmod +x //etc/init.d/caroline.sh

Er zijn meerdere methodes om een file uit te laten voeren bij het opstarten van de Raspberry Pi. Mijn voorkeur gaat naar het gebruik van een cronjob.

crontab -e -u pi

Kies 1
Voeg de volgende regel toe aan de cron file

@reboot sudo -u pi nohup //etc/init.d/caroline.sh

Wat staat hier precies: @reboot is na het herstarten van de Raspberry Pi. sudo, we gaan een commando uitvoeren als superuser, -u vanuit de user “pinohup starten we op zonder dat we een terminal scherm nodig hebben, //etc/init.d/caroline.sh, het bash script caroline.sh welke zich bevind in de map //etc/init.d/.

We gaan nu testen. Zet je speaker aan. en herstart de Raspberry Pi.

sudo shutdown -r now

Na het opstarten komt er muziek uit je boxje en zie je op de display het logo van Radio Caroline.

Display na opstarten

Volgende keer wil ik de foto van Radio Caroline laten wisselen met een foto van het weerbericht.

Experimenteren met de Raspberry Pi Zero – Bluetooth (deel – 6)

In deze aflevering gaan we kijken hoe we de Bluetooth van de Raspberry Pi kunnen gebruiken om met een Bluetooth JBL speaker naar de Radio te luisteren. Ook gaan we een logo van het Radio station op de display tonen.

Allereerst gaan we ffmpeg installeren. Met dit programma kun je audio bestanden streamen. En nog veel meer. De website van FFMPEG zegt zelf: “decode, encode, transcode, mux, demux, stream, filter and play pretty much anything that humans and machines have created.”

Dit is dus een hele mooie tool. En nu de kracht van Linux. Type het volgende commando in.

We gaan voor de zekerheid eerst naar onze home directory.

cd

En nu installeren we FFMPEG.

sudo apt install ffmpeg

En hij is geinstalleerd.

Nu gaan we Bluealsa installeren. Met Bluealsa kun je Bluetooth apparaten registreren op je systeem.

sudo apt-get install bluealsa

sudo service bluealsa start

Schakel je JBL GO, of een ander BleuTooth device, in en druk op de Bluetooth discovery knop.

We gaan nu onze JBL GO zoeken.

sudo bluetoothctl

We komen nu in het bluetooth menu en zetten scan on.

[bluetooth] scan on

Bluetooth scan

Ik schrok van het aantal devices wat er langs komt. Dit was een behoorlijke lijst.

In de lijst zie je de Bluetooth speakers staan.

[NEW] Device 30:C0:1B:C5:25:DD JBL GO

Het MAC adress is belangrijk dus deze copieeren we even naar kladblok o.i.d.

Let op: In de voorbeelden hieronder gebruik ik het MAC adress van mijn JBL GO. Gebruik hier het MAC Adress van je eigen Bluetooth Speaker.

Nu gaan we hem pairen, trusten en connecten. Het kan zijn dat je inmiddels weer op de discovery button op je speaker moet drukken.

[bluetooth] pair 30:C0:1B:C5:25:DD
[bluetooth] trust 30:C0:1B:C5:25:DD
[bluetooth] connect 30:C0:1B:C5:25:DD
[bluetooth] exit

Om Bluetooth af te kunnen spelen vanaf de User pi ,moet je de User pi aan de Bluetooth groep toevoegen. Anders gaat het niet werken.

getent group | grep pi

Je ziet we zijn geen lid van de bluetooth groep. Nu voegen we de User pi toe aan de Bluetooth groep.

sudo usermod -G bluetooth -a pi

getent group | grep pi

Bluetooth group

We gaan het systeem herstarten en loggen opnieuw in.

sudo shutdown -r now

Na de herstart moet je de JBL GO speaker opnieuw connecten.

bluetoothctl connect 30:C0:1B:C5:25:DD

We gaan eens kijken of het allemaal werkt. We downloaden een klein wav filetje om te testen.

wget www.kozco.com/tech/organfinale.wav

En dit spelen we af.

aplay -D bluealsa:SRV=org.bluealsa,DEV=30:C0:1B:C5:25:DD,PROFILE=a2dp organfinale.wav

Als het werkte gaan we een standaard profiel aanmaken voor onze JBL GO speaker.

cd

sudo nano ~/.asoundrc

In dit filetje plakken we het volgende profiel. Let op dat je het MAC adress van je eigen speaker in het filetje plakt.

defaults.bluealsa.interface “hci0”
defaults.bluealsa.device “30:C0:1B:C5:25:DD
defaults.bluealsa.profile “a2dp”
defaults.bluealsa.delay 10000

pcm.btreceiver {
type plug
slave.pcm {
type bluealsa
device “30:C0:1B:C5:25:DD
profile “a2dp”
}
hint {
show on
description “Bluetooth Receiver”
}
}pcm.!default {
type plug
slave.pcm “btreceiver”
}

We slaan dit op met CTRL X en Y en herstarten weer het systeem.

sudo shutdown -r now

Na de herstart weer connecten:

bluetoothctl connect 30:C0:1B:C5:25:DD

Na de herstart testen we de Radio Stream.

ffplay http://sc6.radiocaroline.net:8040

Als het goed is hoor je nu Radio Caroline. Volgende keer gaan we een logo op het display toveren.

Experimenteren met de Raspberry Pi Zero – Een USB Bus en een Display (deel – 5)

Het OTG kabeltje is niet echt makkelijk en daarom heb ik besloten een USB aansluiting op de Raspberry Pi Zero te maken. Hier doen we de USB Stick in waarop het OS is geïnstalleerd. Voor dit projectje hebben we een USB Bus deel nodig. Op E-Bay of op een radio onderdelen markt zijn deze wel te krijgen.

USB Bus

Allereerst solderen we 4 draadjes aan de BUS. Vervolgens plakken we met een lijmpistool de bus op de achterkant van de Raspberry Pi. Leg eerst een dun laagje lijm op de Raspberry Pi als isolatie en druk de bus daar in. De buitenste rode en blauwe draad zijn de + en de -. De middelste rode en groene draad zijn de + en de – van de data.

Bedrading

Nu buigen we voorzichtig de draden naar de soldeer veldjes en strippen de uiteinde van de draden blank. Soldeer de draden volgens onderstaande afbeelding vast.

USB Bus

Ik heb ook nog een behuizing en (met open achterkant) en pennetjes gemonteerd. Op de pennen kan ik een display aansluiten. Let op, de eerste mini USB bus is voor de voedingsspanning.

Display

Het eindresultaat ziet er als bovenstaande afbeelding uit.

Volgende keer gaan we Bluetooth configureren zodat we er ook geluid uit kunnen krijgen.

Experimenteren met de Raspberry Pi Zero – Een bestand aanmaken en bewerken (deel – 4)

In het vierde deel van Experimenteren met de Raspberry Pi Zero gaan we een bestandje aanmaken en aanpassen. Ik werk zelf het liefst met de editor nano. Uiteraard zijn er meerdere editors voor handen zoals vi (spreek uit als fie aai).

Nano

Met het commando nano gevolgd door de file naam kun je een bestand aanmaken of aanpassen. Je kunt hier ook weer een <path> aangeven, b.v. nano /etc/test

Maar we beginnen in onze eigen directory met nano test.

We kunnen hier een paar dummy regels aanmaken. Met <CTRL G> roep je de help file op en zie je dat er de nodige “short cuts” in de editor aanwezig zijn. Ik heb in mijn test file wat “shortcuts” neer gezet die ik zelf veel gebruik.

Nano

ALs we nu met <CTRL X> afsluiten en vervolgens op Y drukken dan is ons bestand opgeslagen.

Met het commando CAT kun je het bestand inzien. CAT is een afkorting voor “concatenate” wat letterlij vertaald betekend: aaneengeschakeld. We gebruiken dus CAT om een bestand in te zien.

cat test

Cat

Soms wil je alleen de laatste 10 regels van een file inkijken. Dit kun je doen met tail. Dit commando laat de laatste 10 regels van een file zien. Dit is b.v. handig om logfiles te bekijken.

tail /var/log/syslog

Op deze manier kunnen we de laatste 10 regels van de syslog file bekijken.

tail syslog

Als we een file willen copyeren gebruiken we het commando cp (Copy). Achter cp zetten we het bestand wat we willen copieeren en daarachter de bestandsnaam waarheen we het willen copieeren. Je kunt hier ook weer een path aangeven.

cp test /tmp/testcopy

Met rm verwijder je een bestand. (Remove)

rm /tmp/testcopy

Copy Remove

Een file renamen kun je doen met mv (Move).

mv test testnieuw

Als laatste tip de pijltjes toets <omhoog> en <omlaag> op je toetsenbord. Hiermee kun je snel navigeren door je laatste commando’s. Je kunt op deze manier snel commando’s herhalen.

We gaan het systeem nu herstarten of uitzetten. Dat doen we met shutdown.

Shutdown

In bovenstaand scherm zie je dat je als gebruiker pi niet zo maar een shutdown mag geven. Dit mag wel als Super User. Dus we doen sudo shutdown. Een shutdoen wordt ingepland. We moeten dus ook een tijd aangeven. Het wordt dan:

sudo shutdown now

Wil je een hetstart geven dan wordt het:

sudo shutdown -r now

Dit commando is beter dan een reboot omdat een reboot erg hard is. Een shutdown sluit zaken nog netjes af.

Volgende keer ga ik mijn hardware van de Raspberry Pi aanpassen met een normale USB aansluiting en er een display op zetten. Er moet ook nog geluid uit kunnen komen dat gaan we doen met Bluetooth.