Compilare wxWidgets

Il progetto wxwidgets è davvero fenomenale: un immenso framework di librerie cross-platform che consente di creare facilmente applicativi c++, facili e di bell’aspetto.

Prima di utilizzarli è necessario compilarli, per ottenere librerie dll e lib da usare con il compilatore visual c++.

Infatti, pur essendo disponibili delle librerie preconfezionate, sul sito wxwidgets.org, queste non sempre sono adatte al compilatore che si sta usando. Ricordo, infatti, che i file lib necessari per la compilazione con librerie statiche e dinamiche sono dipendenti dal compilatore in uso.

Per usarle con visual c++ è sufficiente aprire il progetto visual studio che si trova nel direttorio build/msw/wx_vc16.sln (o quello corrispondente alla versione del compilatore in uso). Se non esiste la soluzione adatta al proprio compilatore, se ne può aprire una di una versione precedente e chiedere al compilatore di aggiornarla alla versione corrente.

Una volta aperto il progetto è necessario impostare la versione (Debug DLL o Release Dll) che si vuole compilare, a seconda che si voglia anche effettuare il debug con i simboli della libreria e successivamente l’architettura (x86 o x64).

A questo punto è sufficiente dare il comando di compilazione e alla fine del processo di compilazione si ritroveranno le dll e i file lib di tutte le librerie wxwidgets nel direttorio lib/vc_x64_dll. Per comodità io rinomino il direttorio aggiungendo anche il numero di versione del compilatore (vc142_x64_dll) per poter tenere distinte e ben comprensibili le varie versioni compilate.

Questo direttorio va aggiunto al PATH di sistema per le dll, e al progetto dove si trova indicato i path delle librerie.

Per i file include si possono fornire i path include, dove sono presenti sia i file msvc che quelli standard.

A quel punto si possono utilizzare le librerie.

Configurare ESP32 cam

Per caricare lo sketch da arduino è necessario selezionare la scheda ESP32 WROOVER e come modulo nel programma selezionare AI-TINKER.

Il modulo ESP32-CAM non possedendo una porta USB richiede, come interfaccia tra se’ ed una delle porte USB del PC , un adattatore USB-UART (*) , CP2102 o FT232RL USB to TTL Serial Converter, al fine di poterlo programmare tramite i suoi 2 pins GPIO3 (U0R) e GPIO1 (U0T) (serial pins).

Si tenga presente che, a seconda della soluzione adottata ( modulo FTDI o USB-TTL cable), sara’ necessario un cavo microUSB-USB per poter collegare l’adattatore ad un computer nel caso modulo FTDI e non lo sara’ nel caso USB-TTL cable – vedasi nota(*) e foto nr1_0, nr1_1 .

Prima di caricare uno sketch, ( nel nostro caso File > Examples > ESP32 > Camera > CameraWebServer ) con l’ IDE di Arduino, sara’ necessario soddisfare le seguenti condizioni:

1 ° – Verificare ( in ambiente Windows) che la porta COMx associata all’ FTDI converter ( modulo o USB-TTL cable) sia stata riconosciuta da Windows , altrimenti si proceda con l’installazione del driver FTDI – foto nr2

2 ° – se risultano gia’ installate le librerie espressif per la board esp32 si dovra’ procedere con il loro aggiornamento all’ultima versione tramite il Board Manager, in caso contrario si dovranno installare seguendo la procedura richiesta.

3 ° – configurare l’IDE per la scheda ESP32 Wrover Module ( per tutti gli altri parametri vedasi foto allegata nr3)

4 ° – il pin GPIO0 dell’ESP32 dovra’ essere cortocircuitato (tramite jumper) con il pin GND dell’ESP32 per poter abilitare la modalità flash ( foto nr1_1)- Se non viene soddisfatta questa condizione la compilazione dello sketch. verra’ abortita dando un errore di connection time-out.
5 ° – a questo punto il pulsante di reset dell’ESP32 dovra’ essere premuto –

6 ° – leggere lo sketch di esempio e procedere con l’editing selezionando ( uncomment) la camera appropriata ( AI-THINKER), deselezionando ( comment) quella di default ed inserendo, nelle due righe successive, le credenziali del local network : SSID e password al posto degli asterischi – foto nr3. Procedere quindi con la compilazione e l’uploading.

7 ° Dopo il caricamento dello sketch , dovra’ essere rimossa la connessione tra GPIO0 e GND , aperto il Serial Monitor con baud rate 115200 ed infine eseguito un reset premendo il relativo pulsante . A questo punto, se non si sono presentati intoppi, comparira’ la scritta: Camera Ready! ( foto nr3) seguita dalla URL che dovra’ essere inserita nel campo dedicato del browser.

8.1 ° – Qualora, come nel mio caso, si opti per la connessione su smartphone con Android ( foto nr5_0,nr5_1) e’ sufficiente creare ed abilitare un hotspot WiFi avente SSID e password identici a quelli dello sketch -( vedasi foto allegate ) e digitare l’URL composta da http://<l’indirizzo IP della ESP32-CAM> ( che trovate sulla schermata Mobile Hotspot – Connected Devices – vedi foto nr5_0 e nr5_1), nel browser Chrome di Android.
.
A questo punto dovrebbe apparire sulla sinistra della pagina Web ( foto nr6_0 e nr6_1), la GUI usata per controllare vari parametri della fotocamera. E’ sufficiente premere Get Still per scattare una foto, Start Stream per ricevere un flusso video dalla videocamera o Enroll Face per avviare il riconoscimemto facciale.
Sempre da telefonino, per salvare l’immagine sul suo supporto storage di default, e’ sufficiente premere con un dito sull’area dell’immagine per far apparire una finestra con le opzioni per il suo salvataggio.

(* )Può essere utilizzato un cavo seriale USB-TTL, nel qual caso possiamo collegare direttamente i suoi 4 terminali femmina (identici ai terminali femmina di un jumper wire) ai pins dell’ ESP32-CAM come mostrato nella foto allegate.
Le uscite dai due terminali femmina , cavo colore Bianco( RX) e cavo colore Verde(Tx) sono di livello 3.3V, quindi adatte per l’interfacciamento con l’ESP32-CAM.

Connessioni USB-TTL cable to ESP32-CAM:
Dal Nero al pin GND, dal Rosso al pin 5V, dal Bianco(Rx) al pin Tx , dal Verde(Tx) al pin Rx.
E’ questa la soluzione da me adottata.

(**) note
1. Please ensure that the module input power is at least 5V 2A, otherwise the picture will have a chance of water ripple.

2. The ESP32 GPIO32 pin controls the camera power. When the camera is working, please lower the GPIO32.

3. Since IO0 is connected to the camera XCLK, please leave IO0 floating when using it, please do not connect high and low level.

(***)
On-Board vs IPEX Antenna
Default jumper set for on-board antenna.
To improve the signal with an IPEX WiFi antenna you need to change the set of jumper with a bit of very careful soldering .

ESP32-WROOOM

Il modulo corrisponde essenzialmente a quello che Arduino chiama Esp32 Web Module.

In Arduino è necessario scegliere quella scheda, configurare eventualmente una velocità di connessione inferiore ai 921000 b/s (per esempio 115200) e lasciare la configurazione inalterata.

Per fare il test con un WebServer si può cominciare da AdvancedWebServer, della libreria degli esempi.

Per la compilazione è necessario tenere premuto il bottone BOOT, in alto, per la durata della programmazione.

Successivamente, per azionare il dispositivo offline è necessario spingere il bottone EN e il programma parte.

Per vedere l’indirizzo IP è sufficiente collegare il monitor seriale. Su questo può essere fatto il log dell’indirizzo.

Danneggiati da vaccino

Secondo alcuni “sapienti” intelligentoni la vaccinazione non produce effetti collaterali, è come bere un bicchiere di acqua fresca.

Naturalmente non è così e per farlo capire alle persone è necessario diffondere le vere informazioni che vengono taciute dalla grande maggioranza dei media italiani.

In questo video di La7, stranamente, forse perché in tempi non sospetti, la testimonianza di un padre a cui la vaccinazione ha portato via un figlio, o meglio la speranza di vederlo crescere in salute.

Compilazione di wxWidgets

Per utilizzare le classi dell’ottimo framework wxWidgets, è conveniente scaricare i sorgenti dall’apposito sito e compilare le dll e i file lib per poterli utilizzare con la corretta versione di Visual Studio.

Ogni versione di Visual studio, infatti, utilizza un tipo diverso di file lib per le librerie, pertanto è necessario utilizzare quelli generati per la propria versione.

Per la compilazione è necessario avviare il prompt dei comandi di visual studio, corrispondente alla cpu per cui si intende compilare (x86 oppure x64).

Poi si deve andare nel direttorio %wxWidgets%\build\msw e da qui lanciare il seguente comando:

nmake /a /f makefile.vc SHARED=1 TARGET_CPU=X64 COMPILER_VERSION=142

Questa istruzione andrà a compilare l’intero framework di dll che servono per il target scelto, creando la directory vc142_x64.dll dentro %wxWidgets%\lib .

Per qualche motivo non compreso, wxWidgets continua a caricare le dll in debug dalla directory vc110_x64.dll, pertanto è necessario rinominare la cartella. Nel file setup.h attuale è necessario impostare il path con cui il framework va a cercare le dll, in quanto attualmente non viene considerato visutal studio 2019. Il file da modificare è: include\msvc\wx\setup.h e la riga è la 69. Bisogna cambiare da vc141 a vc110 nel caso di _MSC_VER >= 1910.

Vaccini e autismo: la riabilitazione del Dott. Wakefield

http://www.dmi.unipg.it/mamone/sci-dem/nuocontri_2/walker_wakefield.pdf

In questo articolo, il giornalista indipendente Martin J, Walker, approfondisce il caso controverso della radiazione del Dott. Wakefield in relazione ai suoi studi sulla correlazione tra Vaccinazione e Autismo.

Andando a rileggere con attenzione i fatti storici si scopre, infatti, che i mass media hanno coperto gran parte della verità, con il fine poco nobile di non penalizzare il business delle case farmaceutiche a danno della salute di tutti i cittadini. 

link

Quello che non si dice dei vaccini

Cosa si dice dei vaccini…

http://www.vacciniinforma.it/2015/02/22/vaccini-cosa-non-conosciamo-storiatabelle-e-grafici-mai-visionati/2048

Nella pagina al link nell’articolo si leggono diverse precisazioni “documentate” degli effetti della vaccinazione.

Per avere un’opinione è necessario essere ben informati.

I vaccini e la Storia di Nicola

Una storia incredibile, quella di Nicola e dei suoi coraggiosi genitori.
Prima di vaccinarci (e di vaccinare i nostri figli) dovremmo approfondire la realtà, molto meglio di quello che i mass media ci vogliono far credere.

La realtà, purtroppo è ben diversa.