Scheda elettronica per Cella di carico – HX711

La scheda si collega così:

Esempio di codice:

#include “HX711.h”
#define calibration_factor -9580.00 //This value is obtained using the SparkFun_HX711_Calibration sketch
#define DOUT 4
#define CLK 5
HX711 scale(DOUT, CLK);
void setup() {
Serial.begin(9600);
Serial.println(“HX711 scale demo”);
scale.set_scale(calibration_factor);
scale.tare(); //Assuming there is no weight on the scale at start up, reset the scale to 0
Serial.println(“Readings:”);
}
void loop() {
Serial.print(“Reading: “);
float libbre = scale.get_units();
float kg = (libbre/2.2046);
Serial.print(kg, 1); //scale.get_units() returns a float
Serial.print(” kg”); //You can change this to kg but you’ll need to refactor the calibration_factor
Serial.println();
}

https://futuranet.it/futurashop/image/catalog/data/Download/Hx711.zip

Come spegnere la spia dell’airbag del Nissan Qashqai j10

La procedura viene descritta in questo video

Come descritto nei commenti del video in inglese:

This process involves precisely timing the ignition to interrupt the airbag system’s self-check. No tools are required. Preparation: Sit in the driver’s seat and ensure all doors are closed. Turn Ignition ON: Turn the key to the “ON” position (or press the Start button twice without touching the brake). Watch the Light: The airbag light will illuminate and stay solid for about 7 seconds. Turn Ignition OFF: Immediately turn the ignition off the moment the light begins to flash or turns off. Wait: Wait for at least 5 seconds. Repeat: Repeat steps 2 through 5 three more times (for a total of 4 cycles). Final Start: Turn the engine on. The light should stay on for 7 seconds and then extinguish.

Turn ignition on, wait for airbag light to turn off(start blinking), turn ignition off, wait exactly 5 seconds, turn back on, repeat the same 2 more times.

Configurare libxml e libxslt in visual studio

La configurazione dei pacchetti open source in visual studio si realizza con vcpkg.

L’installazione di vcpkg si fa accedendo alla pagina
GitHub – microsoft/vcpkg: C++ Library Manager for Windows, Linux, and MacOS · GitHub
e seguendo le istruzioni.

In particolare si deve fare il clone del progetto github:
git clone https://github.com/microsoft/vcpkg.git

Poi si esegue il bat:
cd vcpkg; .\bootstrap-vcpkg.bat

Ora si può installare il pacchetto libxml, seguendo le istruzioni a questa pagina:
python – is there any way to install libxml2 on windows? – Stack Overflow

In particolare:
vcpkg install libxml2:x64-windows
vcpkg install libxslt:x64-windows
vcpkg integrate install

La nuova versione di libxml è libxml2 e gli include da usare si trovano nel direttorio libxml2, quindi visual studio di default non li troverà.
Per fare in modo che li trovi è necessario aggiungere manualmente al progetto il direttorio dove andare a cercare gli include.

Tasto destro sul progetto -> Properties.
In C/C++ -> Direttorio inclusioni aggiuntive, aggiungi:
C:\path\to\vcpkg\installed\x64-windows\include\libxml2

Eventualmente aggiungere anche il linker: Linker -> Direttorio librerie aggiuntive, aggiungi:
C:\path\to\vcpkg\installed\x64-windows\lib

Eventualmente aggiungere anche la dipendenza. Linker -> Input -> Dipendenze addizionali, aggiungi:
libxml2.lib

Trasformare una presa SCART in un segnale video composito RCA

Come saprete, la presa scart è un connettore multi funzione.
Consente di collegare dispositivi con diversi protocolli in uscita dal device o in entrata.

I segnali sono separati tra audio e video.
I segnali audio sono stereo, quelli video trasportano protocolli diversi su pin diversi.
Lo schema dei contatti è visibile nella figura seguente, in cui compare un connettore femmina visto da davanti.

I Pin sono i seguenti:

PIN 1Uscita audio B, ovvero[1]:
monofonia
stereofonia, canale destro
canale indipendente B
PIN 2Ingresso audio B, ovvero[1]:
monofonia
stereofonia, canale destro
canale indipendente B
PIN 3Uscita audio A, ovvero[1]:
monofonia[2]
stereofonia, canale sinistro
canale indipendente A
PIN 4Massa comune audio
PIN 5Massa componente blu RGB (pied. 7)
PIN 6Ingresso audio A, ovvero[1]:
monofonia[2]
stereofonia, canale sinistro
canale indipendente A
PIN 7ingresso o uscita componente blu RGB o
crominanza S-Video[3][4]o
Pb Componente[5]
PIN 8Ingresso o uscita selezione di funzione e Rapporto d’aspetto[6] [0-2V → spento, 4,5-7V → 16:9 e acceso, 9,5-12V → 4:3 e acceso]
PIN 9Massa componente verde RGB (pied. 11)
PIN 10Control bus (norma AV.link) bidirezionale opzionale
(già linea interconnessione dati 2)[7]
PIN 11ingresso o uscita componente verde RGB o
luminanza Componente (Y)[5]
PIN 12Riservato (linea interconnessione dati 1)[7]
PIN 13Massa componente rosso RGB (pied. 15)
PIN 14Massa segnale di cancellazione
PIN 15ingresso o uscita componente rosso RGB o
crominanza S-Video[4]o
Pr Componente[5]
PIN 16Segnale di cancellazione
Commutazione tensione RGB [0-0,4V → composito, 1-3V → RGB]
PIN 17Massa uscita video (pied. 19)
PIN 18Massa ingresso video (pied. 20)
PIN 19Uscita video
(composito o luminanza S-Video)
PIN 20Ingresso video
(composito o luminanza S-Video)
PIN 21Massa comune per i piedini 8, 10 e 12

Le uscita audio sono la 1 e la 3. Gli ingressi sono il 2 e il 6. La massa è in comune ed è il terminale 4.

Quindi se dobbiamo collegare un videoregistratore ad un amplificatore esterno è necessario selezionare i Pin output. Se dobbiamo collegare un dispositivo audio in entrata al videoregistratore dobbiamo usare i pin 2 e 6.

Per quanto riguarda le uscite video, queste sono più variegate.
Per ragioni storiche sono disponibili uscite composito, s-video e rgb separati.
Per questioni pratiche si usa molto più spesso solo la parte composita.

A questo scopo, per collegare un videoregistratore ad un tv esterno (quindi in uscita) dobbiamo utilizzare i pin 17 e 19 (massa e segnale).
Per collegare un dispositivo in ingresso al videoregistratore si devono usare i pin 18 e 20.

Quindi un tipico convertitore da uscita scart a connettore video out composito RCA collegherà i terminai 17 e 19 alla calza e al segnale del connettore RCA.

Protocollo DALI per impianti di illuminazione

Per gestire impianti di illuminazione complessi non si adoperano più i triac a parzializzazione della forma d’onda come trent’anni fa.
Oggi si utilizzano reti di dispositivi connessi interfacciati con una connessione digitale.

Uno dei protocolli più utilizzati a questo scopo è il protocollo DALI.

Per vedere una possibile applicazione con Arduino, senza l’utilizzo di costosi shield da acquistare a parte, un utente di Hackster ha realizzato questo semplice tutorial:

https://www.hackster.io/NabiyevTR/simple-dali-controller-506e44

Dividere un oggetto in Blender

In alcune occasioni serve dividere un oggetto in due parti per poi eliminarne una.
Il modo più pratico è quello di applicare il modifier Boolean usando come oggetto tagliante un piano (preferibilmente solidificato con il modifier Solidify) e poi di separare le due parti dall’oggetto.


Dopo aver applicato il Boolean, Blender non crea automaticamente due oggetti separati: ottieni una sola mesh con parti scollegate tra loro. Devi quindi separare o selezionare le “isole” di mesh.

Di seguito i metodi corretti in Blender 5.0.


Metodo 1 – Separare le parti automaticamente (consigliato)

  1. Seleziona l’oggetto
  2. TABEdit Mode
  3. A per selezionare tutto
  4. PSeparate
  5. Scegli By Loose Parts

➡️ Blender crea oggetti separati per ogni parte non collegata.
Ora puoi:

  • Tornare in Object Mode
  • Selezionare l’oggetto indesiderato
  • X → Delete

💡 Questo è il metodo più veloce dopo un Boolean.

Sigle componenti SMD

I componenti SMD possono essere davvero minuscoli.
Questo fa sì che i costruttori non possano inserire sull’involucro il nome per esteso e le caratteristiche di ogni singolo componente, di conseguenza si trova sempre stampigliato sul corpo una sigla sintetica.

Per risalire al componente vero e proprio si fa uso di una tabella di transcodifica, che lega la sigla al prodotto.

Un database che consente la ricerca di questi componenti si trova al seguente link:

The SMD components marking codes database – Index page

Presepe di Natale 2025

Nell’ultimo anno io e la mia famiglia ci siamo prodigati nel realizzare un piccolo presepe casalingo.
L’idea era quella di espandere quello di due anni fa quando costruimmo una piccola casetta antica (in gesso) e una grotta con la natività di Gesù all’interno.
Da quella idea ne è nato questo presepe che ci ha soddisfatti nei contenuti, nonostante risulti ancora in parte incompleto.

Le luci sono sincronizzate con i suoni e le musiche diffuse attraverso un piccolo altoparlante controllato da una scheda elettronica che mi sono auto costruito.

L’intero apparato di luci e di sincronizzazione degli effetti è controllabile da remoto, accedendo ad una pagina internet.

Durante l’esecuzione viene attivato anche un fiume che trasporta l’acqua all’interno di un piccolo laghetto. L’acqua scorre dopo un temporale che è accompagnato da tuoni e fulmini.

Dimensione fisica dei transistor all’interno di un microchip

E’ sempre interessante discutere di argomenti di alto livello tecnologico come interpretare la densità di transistor stipabili in un microchip.
Premesso che il nome attribuito ad un livello tecnologico (3nm, 7nm, 2nm) non ha più alcun collegamento con le dimensioni fisiche del dispositivo sottostante, in questo articolo di Quora si trova un’analisi abbastanza dettagliata delle prestazioni delle varie tecnologie adottate dalle principali aziende del settore (in primis TSMC, Samsung, Intel, IBM).

https://qr.ae/pCb3CE

Many, maybe 90% people, think 3nm represents transistor size. And they are VERY wrong!
3nm is just a name having nothing with real physical dimensions. In the past, before Intel “invented” FinFET and started using them with 22nm node in 2011, nm represented width of the MOSFET channel. But with FinFET things change and they changed in 2024 with FinFET was replaced with GAA.
Here is nice picture showing how MOSFET evolved:

With FinFET MOSFETs entered 3D world. Let me show IBM 2nm node from 2019 (experimental), electron microscope picture of a transistor:

Is above anything physical 2nm in size? NO.
Actual single transistor size was cca 50 x 70 nm. With FinFET is “worse” cause FinFET performance depends on number of fins – more fins – faster transistor.

Real measurements used are CPP (gate pitch) and MPP (metal pitch). Here table from Wiki which connects them to physical feature dimensions:

As in IBM picture above, CPP (gate pitch) for 2nm node was 48 nm.
Notice also how pitch drops a bit while node names halved, eg 3nm CPP is 48 while for 2nm is 45 nm.

TSMC was first one to introduce node names expressed in nm while Intel (and others) followed. And Intel complained for reason. Do you remember old Intel 10nm node? It was total disaster Intel struggled with but it was later renamed to Intel7 or 7nm. Why?
Cause TSMC 7nm node and Intel 10 nm had similar feature sizes. For example, TSCM 7nm CPP was 57nm while Intel 10nm was 60 nm and MPP was identical, 40 nm.

As node name represents nothing physical, Intel suggested to use SRAM cell area as measurement.
A typical SRAM cell has 6 transistors (so called 6T), having schematics like this:

On the right side is physical layout with traces connecting transistors. Looking at physical areas for different nodes we have:

7nm (Intel 10nm):

3nm:

SRAM cell size is better physical dimension but still depends on node.
Looking at TSMC 2nm and Intel18A (1.8nm), TSMC is bit smaller but Intel is faster. TSMC uses smaller transistors and maximal clocks are around 4 GHz, while Intel uses larger transistors and clocks are above 5 GHz. And, of course, Intel consumption is higher.

Another factor is kind of chip. Memories are way, way, way simpler than CPUs and higher densities are achievable. Above IBM 2nm chip was simple one.
DRAM or FLASH are not reliable for measurements, especially FLASH having hundreds of layers, 321 in 2024. DRAM uses single transistor while FLASH stores up to 4 bits into single transistor. SRAM stores single bit and is fastest. But, besides 6T, also 4T exists.

Anyway, today nm stays as node name and it will stay so for few years to come.