Digispark als Eingabegerät - AZ-Delivery

Hallo, samen

Sommigen onder u zich zeker de bijdrage met: Digispark Screenshots op aanslag. Omdat echter bij ons om de steun te onderzoeken komen regelmatig voor het gebruik van de Digisparks, een nieuwere versie van de definities Digispark beschikbaar zijn en de code gebruikt al te vriendelijk voor de beginner, toen speelden we echter verbetering plechtig vandaag wil ik jullie voorstellen aan de verbeterde een herbewerking van Bloggers.

 

Hardware gebruikt:

Het wordt de programmeerbare 1 euro onder de van Arduino-IDE stuk te digispark platina en een tracer voor vrijgave van de schermafdrukken.

De Digispark wordt platina passeert hoofdzakelijk uit MCU attiny85 van zijn digitale 2 6 uitgangen Digitalpins over de Bootloader USB software een haven te simuleren. Het protocol is USB volledig geïllustreerd in de software.

Daarom 2, havens (haven 3 en 4) wordt gevraagd door de havens digitaal voor de interface USB om en over de programmering en dat het gebruik van de USB interface in de gebruiker programma.

Er blijven dus maar vier havens voor eigen toepassingen bruikbaar zijn. In ons project de poort gebruiken we 0 voor het spoor.

Foto: volledige aanleg, geen externe zorgvuldigheid is meer spanning nodig.

 

De zender wordt geschakeld als een cipier verbindingen tussen de markeerde van de haven Digisparks GND en 0. De doorgaans nodig opnieuw optrekken kan worden ontbonden, omdat we gebruik maken van een intern schakelbare Attinys Pullupwiederstand van de. Dit is later geactiveerd in de software.

IDE consumptie:

Kunnen onze Digispark programma met de hulp van de Arduino IDE, een aantal voorbereidende werken moeten gebeuren, want de Raad is niet native ondersteund van hen, of kan worden geprogrammeerd.

In de eerste plaats moet worden geïnstalleerd in de ArduinoIDE zelfs de meest actuele versie functioneren.

Begonnen in de IDE > dragen in het menu Bestand; Pre instellingen > URL's extra Boardverwalter alsjeblieft de URL:

http://digistump.com/package_digistump_index.json

Een. De plaats is geel gemarkeerd.

Met deze stap de visbestanden in de Digistump Boardverwalter later selecteren.

Nu begint de > Boardverwalter door het gereedschap; &Gt bestuur; Boarverwalter en selecteert als type "hebben bijgedragen".

Als uit de lijst selecteert de vermelding "Digistump AVR ranglijsten per Digistump" en met de muis klikken op de badge "installatie".

De instrumenten en hulpmiddelen worden gedownload en geïnstalleerd.

Nu controleert of de constructie was correct geïnstalleerd. Dit is herkenbaar aan de beroerte türkisenen "ingebouwd". Het besteedt aandacht aan het feit dat er ten minste 1.6.7 versie was aangebracht.

Installatie van de bestuurders van de USB Digispark:

Zadel jezelf op de zijkant: https://github.com/digistump/digiStumparduino/releases Het dossier Digistump.Drivers.zip entpackt ze naar beneden en in de map "chauffeurs Digistump" legt het dossier DPinst64.exe (64-bit Windows) of DPinst.exe (Windows 32 bit).

Tijdens de installatie alstublieft bevestigen de query.

Tijdens de installatie alstublieft bevestigen de query.

Nu pas de eerste keer is van de Digispark verbonden aan de rekenmachine. Bovendien opent het Apparaatbeheer, verbindt de Digispark naar een gratis USB interface en controles in verband met de Digispark is terecht gezien als onder "libusb Win32 hulpmiddelen" zoals een Bootloader Digispark.

Na het weer op gang brengen van de Arduino IDE > voor hulpmiddelen; &Gt bestuur; Van bestuur Standaard mhz Digispark 16.5 selecteren.


Hier de code:

 

//Digispark code voor de productie van een door schermafdrukken P0 tracer in.
//Tested onder Windows 10, versie 1803

# include "DigiKeyboard.h"
# define KEY_Print 0x46 

const byte SwitchPin = 0;             //PinNummer (P0) wordt gedefinieerd als een constante te optimaliseren opslagruimte.
const byte BuildInLed = 1;            //Buildin leidde
byte SwitchBufferState = HOGE;           Variabele //declaration geheugen voor belangrijke status

Leegte Valstrik() 
{   pinMode(SwitchPin, INPUT_PULLUP);   0 van de //pin DigiSparks wordt bepaald op met interne digitale ingang optrekken.   digitalWrite (BuildInLed,LAAG);      // Schakel de interne LED uit
}

nietig lus() 
{   als (digitaal lezen(SwitchPin)== LAAG  &&  SwitchBufferState == HOOG)    {     digitalWrite (BuildInLed,HOOG);  // Schakel interne LED in, screenshot wordt gemaakt     vertraging(80);                       // Debounce-knop 80 ms     SwitchBufferState = LAAG;     DigiKeyboard.sendKeyStroke(KEY_Print,MOD_GUI_LEFT);  // Simulatie van de toetsaanslag om de screenshot te maken                                                                                                               // (Windows-logotoets + drukknop)     DigiKeyboard.vertraging(50);     }    als (digitaal lezen(SwitchPin)== HOOG &&  SwitchBufferState == LAAG)    {     digitalWrite (BuildInLed,LAAG);   // Schakel de interne LED uit     vertraging(80);                       // Debounce-knop 80 ms     SwitchBufferState = HOOG;    }   vertraging(100);
}

 

Poort 0 wordt geactiveerd als een ingang met een interne pull-up weerstand en is daarom logisch LAAG actief. (HOOG inactief) Een knop verbindt deze poort met GND wanneer ingedrukt. De logische status van poort 0 wordt elke 100 ms in de hoofdlus opgevraagd. Als dit door de knop verandert in logisch LAAG en eerder de status HOOG had, wordt na een wachttijd van 80 ms voor het debounten van de knop de toetscombinatie Windows Logo en Afdrukken naar de pc verzonden. Hierdoor maakt het besturingssysteem een ​​screenshot en slaat het op in de screenshotvolgorde.

Zodat screenshots niet eindeloos worden gemaakt zolang de knop wordt ingedrukt, wordt de vlagvariabele "Switchbufferstate" ingesteld op LAAG zodat de volgende keer door de lus wordt herkend dat de knop nog steeds is ingedrukt en niet opnieuw is ingedrukt. De interne LED van het Digispark licht op zolang de knop wordt ingedrukt. Zodra de knop wordt losgelaten, gaat de interne LED uit en wordt de vlagvariabele gereset.

Daarna is het systeem weer in de oorspronkelijke staat en kan een screenshot opnieuw worden gemaakt door op de knop te drukken.

 

Tot het volgende bericht :)

 

Projekte für fortgeschrittene

3 Reacties

Michael

Michael

Bei mir hat das auch nicht funktioniert, es fehlt eine zusätzliche Kommandozeile um das Problem zu lösen. Als allererste Zeile in der Void Loop, vor dem ersten if, muss noch folgendes rein, dann läuft es:

DigiKeyboard.sendKeyStroke(0);

Savas kuzu

Savas kuzu

Leider werden an meinem Laptop keines der 5 Digisparks erkannt. Habe alles genau so ausgeführt wie es hier drinnen steht. Sind die MC vielleicht alle defekt? Bitte um Hilfe.

Thomas

Thomas

Nun möchte ich mal einen Kommentar schreiben.
Und zwar habe ich eine Bitte. Ich finde eure Bastelarbeiten wirklich spannend und anregend, weiter so ! Aber beginnt bei euren Artikeln immer damit, was das Ziel ist und welche Funktionen (grob) damit möglich sind. Das gilt für alle Artikel von euch. Ich kann verstehen , dass ihr sofort mit der Anleitung zum Bauen anfangen wollt, aber für mich (als Semi-Bastler) ist nicht immer ersichtlich, was ihr bauen wollt.
Schöne Grüße
Thomas

Laat een reactie achter

Alle opmerkingen worden voor publicatie gecontroleerd door een moderator

Aanbevolen blogberichten

  1. ESP32 jetzt über den Boardverwalter installieren - AZ-Delivery
  2. Internet-Radio mit dem ESP32 - UPDATE - AZ-Delivery
  3. Arduino IDE - Programmieren für Einsteiger - Teil 1 - AZ-Delivery
  4. ESP32 - das Multitalent - AZ-Delivery