sono state mostrare alcune delle operazioni effettuabili con un dispositivo Digispark di pochi euro.
In questo articolo la scheda Digispark verrà programmata in modo che esegua il download di un'immagine da remoto e la imposti come sfondo di Windows.
FIG 1 - Digispark Kickstarter |
L'immagine che verrà scaricata è la seguente:
FIG 2 - Digispark, sostituzione Wallpaper |
Per i dettagli sulle caratteristiche della scheda Digispark e informazioni sulla programmazione e predisposizione dell'IDE Arduino rimando al primo articolo.
Per la programmazione del dispositivo:
- Scaricare il file Digispark_WallPaper.zip dal seguente link DOWNLOAD
- Scompattare il file e cliccare 2 volte sul file Digispark_WallPaper.INO per aprirlo nell'IDE Arduino;
- Cliccare sul tasto carica per compilare e caricare il programma sul dispositivo. Quando richiesto, collegare la scheda Digispark e attendere il caricamento del programma.
FIG 3 - Digispark, Programmazione tramite IDE Arduino |
Di seguito il codice del programma:
#include "KeyboardIT.h" void setup() { } void loop() { DigiKeyboard.sendKeyStroke(0); //mostra desktop DigiKeyboard.sendKeyStroke(KEY_D, MOD_GUI_LEFT); DigiKeyboard.delay(1000); // start->Esegui DigiKeyboard.sendKeyStroke(KEY_R, MOD_GUI_LEFT); DigiKeyboard.delay(1000); DigiKeyboard.print("powershell"); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(3000); DigiKeyboard.print("$client = new-object System.Net.WebClient"); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(1000); //Download immagine DigiKeyboard.print("$client.DownloadFile(\"https://1.bp.blogspot.com/ -Gb4Ku1gaFao/XZ-PbzlCj3I/AAAAAAAAEc0/3uSk9g8fBvY3qKmdHf0OZg6FhfmV7xoEACLcBGAsYHQ/s1600/Wallpaper_Wile.jpg\" , \"Wile.jpg\")"); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(3000); //sostituzione Wallpaper DigiKeyboard.print("reg add \"HKCU\\Control Panel\\Desktop\" /v WallPaper /d \"%USERPROFILE%\\Wile.jpg\" /f"); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(3000); DigiKeyboard.print("RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters ,1 ,True"); DigiKeyboard.sendKeyStroke(KEY_ENTER); DigiKeyboard.delay(1000); DigiKeyboard.print("exit"); DigiKeyboard.sendKeyStroke(KEY_ENTER); for(;;){ /*empty*/ } }