mercoledì 10 giugno 2020
Autografo Gino Bartali
Ho avuto la fortuna di intervistare Gino Bartali negli anni 80 per un giornalino di ragazzi, lo ho sentito raccontare le sue storie dal vivo insieme a Martini...del resto abitavo a 500 metri da casa sua. Ero anche invidioso del barbiere che aveva un poster con la foto dello scambio di borraccia con Coppi sul Galibier autografato...ma non ho mai avuto occasione di chiederglielo. A distanza di tanti anni ho una cartolina con un autografo originale datata 1953
AX25 over LoRa
Quando ho iniziato ad usare Linux negli anni 90 sui Cd c'era quasi sempre una directory denominata Ham Radio con programmi di cui non conoscevo l'utilizzo. Dopo cosi' tanto tempo sono riuscito ad utilizzare AX25 e KISS , specifici per radio, per instradare pacchetti dati con TCP/IP utilizzando dei moduli Lora gia' visti un questo precedente post
#apt-get install libax25 ax25-apps ax25-tools ax25-node
Nel dettaglio ho messo in comunicazione via una Raspberry 3 A+ Raspbian ed un portatile Lenovo T430 Debian
I moduli LoRa sono visti come semplici seriali virtuali via USB. Non ho modificato i parametri LoRa lasciando quelli di default...cio' vuol dire che le radio non sono impostate alla massima velocita' di trasmissione
Per prima cosa si installano i pacchetti
si configura quindi il file /etc/ax25/axports
ABCDEF e' il callsign dei radioamatori, in pratica un UID. Sui due dispositivi deve essere differente..inventando una serie di 6 caratteri unici
====================================
# /etc/ax25/axports
#
# The format of this file is:
#
# name callsign speed paclen window description
#
#1 OH2BNS-1 1200 255 2 144.675 MHz (1200 bps)
#2 OH2BNS-9 38400 255 7 TNOS/Linux (38400 bps)
ax0 ABCDEF 9600 254 1 LoRa
====================================
per inizializzare le antenne si usano i comandi
/usr/sbin/kissattach -m 254 /dev/ttyUSB3 ax0 10.0.0.1
/usr/sbin/ax25d
/usr/sbin/mheardd
dove /dev/ttyUSBx e' la porta dove viene vista la radio. L'IP dovra' essere modificato sui vari dispositivi
Ho provato ad avere una amministrazione remota tramite SSH ma non sono riuscito a farla partire mentre con telnet, fatto salva la lentezza, le cose funziona. (Aggiornamento: impostando la velocita' a 19200 SSH funziona ed e' vagamente usabile)
Sono riuscito a creare uno stream dati tramite netcat via TCP che UDP ed a visualizzare il server web dei due dispositivi
Si puo' usare anche FTP ma il collegamento e' molto piu' lento ed inaffidabile rispetto ad usare un trasferimento seriale via YModem
martedì 9 giugno 2020
Raspbian Headless
Per configurare una Raspbian per modalita' senza schermo e tastiera (headless) la prima cosa e' creare il file wpa_supplicant.conf nella partizione di boot della SdCard
----------------------------------------
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
country=IT
network={
ssid="nome_hotspot_wifi"
psk="password_hotspot_wifi"
}
----------------------------------------
Non sono riuscito a configurare un Ip Statico in modalita' headless. Ho dovuto modificare il file /etc/dhcpcd.conf al primo boot dove ho ripreso l'ip dinamico dalle tabelle del router
# Example static IP configuration:
interface wlan0
static ip_address=192.168.1.240/24
#static ip6_address=fd51:42f8:caae:d92e::ff/64
static routers=192.168.1.254
static domain_name_servers=192.168.0.1 8.8.8.8 fd51:42f8:caae:d92e::1
per abilitare il server SSH e' sufficiente creare un file vuoto denominato ssh nella partizione di boot
lo username di default e' pi e la password raspberry
non e' possibile disabilitare, nel caso si vogliano ridurre i consumi, l'output video dal file config.txt. La cosa piu' semplice e' loggarsi in SSH e lanciare
/usr/bin/tvservice -o
altre configurazioni possono a questo punto essere effettuate con il comando raspi-config (per esempio per espandere il filesystem alla dimensione della SdCard)
domenica 31 maggio 2020
Pi Hole filtraggio contenuti per adulti su Dell FX 170
Visto che il bambino ha avuto come regalo per la promozione in V elementare il suo telefono personale, volevo una soluzione per filtrare i contenuti di Internet basato su una soluzione centralizzata
Per configurare PiHole a filtrare i siti per adulti e' necessario aggiungere una lista come quella fornita a questo link https://github.com/chadmayfield/my-pihole-blocklists direttamente nell'interfaccia web di amministrazione di PiHole sotto Groups
Ho voluto provare PiHole , un progetto nato per filtrare le pubblicita' ma che puo' essere modificato anche per filtrare i siti per adulti
Il progetto viene associato a Raspberry ma funziona anche su altre distribuzioni Linux e su hardware x86. Una Raspberry completa costa un centinaio di euro... ho convertito quindi un vecchio Thin Client Dell FX 170 (fanless) del costo di una trentina di euro installando una Debian stable ultra base
Passaggio ISS e Crew Dragon su Firenze
Ieri sera, grazie ad un momento propizio privo di nuvole, e' stato possibile osservare il passaggio della ISS inseguita dal Crew Dragon decollato una ventina di minuti prima di Cape Canaveral
Il puntino e' la ISS |
La cosa che mi aspettavo e' che i due oggetti spaziali fossero gia' sostanzialmente sulla stessa orbita, visto che nel giro di 16 ore la Crew Dragon doveva attraccare alla ISS ma la ISS era molto piu' alta nel cielo rispetto alla Dragon che seguiva a distanza di circa 7 minuti
Passaggio ISS
venerdì 29 maggio 2020
Social Distancing 2
Il precedente tentativo di creare un dispositivo portatile di social distancing aveva avuto successo ma la ridotta capacita' dellla batteria rendeva il braccialetto sostanzialmente inutile. Per migliorare l'autonomia ho voluto provare una scheda TTGO T18 che permette di montare (e ricaricare) una batteria 18650
Per programmare questa scheda con Arduino Ide si deve selezionare la board ESP32 Wrover
Uno dei limiti di questa scheda e' ha solo un led di stato di colore blu sul GPIO5. Per rendere piu' interattivo l'avviso all'utente ho provato a montare un motore coreless con peso asimmettrico su GPIO13. Non e' possibile pilotare un motore direttamente da un GPIO si impiegare un ponte ad H (esistono dei breakout gia' costruiti, basta collegare VCC a 5V, GND ed un GPIO)
La vibrazione non e' molto forte
Skecth di sola scansione di prossimita'
-----------------------------------------------------------------------------------
/*
Based on Neil Kolban example for IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleScan.cpp
Ported to Arduino ESP32 by Evandro Copercini
*/
#include <BLEDevice.h>
#include <BLEUtils.h>
#include <BLEScan.h>
#include <BLEAdvertisedDevice.h>
int scanTime = 5; //In seconds
BLEScan* pBLEScan;
class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
void onResult(BLEAdvertisedDevice advertisedDevice) {
Serial.printf("Advertised Device: %s \n", advertisedDevice.toString().c_str());
String address = advertisedDevice.getAddress().toString().c_str();
String name;
if (advertisedDevice.haveName ())
{
name = advertisedDevice.getName().c_str();
//Serial.printf("%s\n",name);
}
int rssi = advertisedDevice.getRSSI();
if (name.equals("SocialDistance"))
{
Serial.println(address);
Serial.println(rssi);
Serial.println("==");
if (rssi > -55)
{
Serial.println("Vicino");
digitalWrite(5, HIGH);
digitalWrite(13, HIGH);
}
else
{
Serial.println("Lontano");
digitalWrite(5, LOW);
digitalWrite(13, HIGH);
}
}
}
};
void setup() {
Serial.begin(115200);
Serial.println("Scanning...");
pinMode(5, OUTPUT);
pinMode(13, OUTPUT);
// led
digitalWrite(5, LOW);
// motore
digitalWrite(13, LOW);
BLEDevice::init("");
pBLEScan = BLEDevice::getScan(); //create new scan
pBLEScan->setAdvertisedDeviceCallbacks(new MyAdvertisedDeviceCallbacks());
pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster
pBLEScan->setInterval(100);
pBLEScan->setWindow(99); // less or equal setInterval value
}
void loop() {
// put your main code here, to run repeatedly:
BLEScanResults foundDevices = pBLEScan->start(scanTime, false);
Serial.print("Devices found: ");
Serial.println(foundDevices.getCount());
Serial.println("Scan done!");
pBLEScan->clearResults(); // delete results fromBLEScan buffer to release memory
delay(2000);
}
Iscriviti a:
Post (Atom)
Debugger integrato ESP32S3
Aggiornamento In realta' il Jtag USB funziona anche sui moduli cinesi Il problema risiede nell'ID USB della porta Jtag. Nel modulo...
-
In questo post viene indicato come creare uno scatterplot dinamico basato da dati ripresi da un file csv (nel dettaglio il file csv e' c...
-
Questo post e' a seguito di quanto gia' visto nella precedente prova Lo scopo e' sempre il solito: creare un sistema che permet...
-
La scheda ESP32-2432S028R monta un Esp Dev Module con uno schermo TFT a driver ILI9341 di 320x240 pixels 16 bit colore.Il sito di riferiment...