combie:
Der Bootloader ist ein anderes Programm.
Die Kommunikation mit diesem scheint zu gelingen.Die mit dem Hauptprogramm nicht.
Dann habe ich den TO wohl falsch verstanden.
Danke für die Klarstellung.
combie:
Der Bootloader ist ein anderes Programm.
Die Kommunikation mit diesem scheint zu gelingen.Die mit dem Hauptprogramm nicht.
Dann habe ich den TO wohl falsch verstanden.
Danke für die Klarstellung.
combie:
Ich nicht!Deine Meldung sagt klar, dass dort ein Kommunikationsproblem besteht.
Ich tippe auf: Schlechtes/Grenzwertiges kabel.Die mit dem Hauptprogramm nicht.
Auch mit einem neuem bzw. anderem Kabel sagt Windows das selbe.
Das Arduino Programm sagt auch wenn das Sketch installiert wurde steht folgendes:
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
Plug in device now...
In dem Moment hast du den Digispark rein zu stecken.
Also, von Anfang an....
Keinen Port auswählen, der ist egal...
Keinen Programmer wählen, der ist auch egal.
Hallo zusammen,
ich habe jetzt nochmal etwas probiert.
Leider ohne weiteren Erfolg.
Ich habe die Treiber auch mal manuell via "hdwwiz" installiert (wie hier Beschrieben: Digispark Verbindungsprobleme).
Allerdings wird das Board immer noch nicht erkannt.
Gibt es zu den Attiny85 eine Alternative?
Gruß,
Tobias
togoze:
.....
Gibt es zu den Attiny85 eine Alternative?
Z.B. dieser hier.
Ich kapier' noch immer nicht, warum der TO den kompliziertesten Weg wählt.
togoze:
Gibt es zu den Attiny85 eine Alternative?
Ich würde das nicht unbedingt "Alternative" nennen, aber ich würde zu einem Arduino Micro oder Leonardo raten. Die sind für Kommunikation via USB mit entsprechender Hardware ausgestattet.
Ein ATtiny85 ist ja eigentlich nicht für USB-Kommunikation gedacht. Dementsprechend unzuverlässig kann das funktionieren - vor allem mit "neuerer" Hardware.
Als ich von einigen Jahren die Möglichkeit entdeckt habe ATtinys als HID-Hardware "auszugeben" war ich begeistert und habe das für einige Projekte eingesetzt. Das hat damals auch ziemlich gut funktioniert. Allerdings habe ich mit aktuelleren Rechnern immer öfter Probleme und verwende deshalb eher "echte" USBfähige Mikrocontroller (Arduino Leonardo, Micro oder Teensy), damit funktionier die Kommunikation über USB deutlich zuverlässiger.
uxomm:
Ich würde das nicht unbedingt "Alternative" nennen, aber ich würde zu einem Arduino Micro oder Leonardo raten. Die sind für Kommunikation via USB mit entsprechender Hardware ausgestattet.Ein ATtiny85 ist ja eigentlich nicht für USB-Kommunikation gedacht. Dementsprechend unzuverlässig kann das funktionieren - vor allem mit "neuerer" Hardware.
Als ich von einigen Jahren die Möglichkeit entdeckt habe ATtinys als HID-Hardware "auszugeben" war ich begeistert und habe das für einige Projekte eingesetzt. Das hat damals auch ziemlich gut funktioniert. Allerdings habe ich mit aktuelleren Rechnern immer öfter Probleme und verwende deshalb eher "echte" USBfähige Mikrocontroller (Arduino Leonardo, Micro oder Teensy), damit funktionier die Kommunikation über USB deutlich zuverlässiger.
Das wäre dann dieser hier oder?
https://rover.ebay.com/rover/0/0/0?mpre=https%3A%2F%2Fwww.ebay.de%2Fulk%2Fitm%2F253050640080
Gruß Tobias
togoze:
Das wäre dann dieser hier oder?
https://rover.ebay.com/rover/0/0/0?mpre=https%3A%2F%2Fwww.ebay.de%2Fulk%2Fitm%2F253050640080Gruß Tobias
Ist das immer noch so, dass du unsere Beiträge nicht liest ?
Ich hatte dir schon einen Link einer Alternative gepostet.
... Und es ist mir noch immer nicht klar, warum der TO nicht einen einfachen funktionierenden Weg nimmt. Aber mei, ich muss nicht alles verstehen ...
Meint ihr dieses Modul?
Das aus dem Link mit dem Touchscreen.
Gruß Tobias
seufz
cat /dev/ttyACM0 | while read a; do
if [ "$a" = "tu-was" ]; then
/starte/das/programm &
fi
done
Das geht sogar unter Windoof 10, nur die Schnittstelle heißt anders. Alles, was der Ardunio tun muss, ist "tu-was" über die Serielle schicken.
Wenn ich das richtig verstanden habe, dann ist man im Ausgangszustand nicht auf dem Computer eingeloggt.
Ich gebe es auf.
schönen Tag noch.
uxomm:
Wenn ich das richtig verstanden habe, dann ist man im Ausgangszustand nicht auf dem Computer eingeloggt.
Doch eingeloggt ist man immer, der Pc ist so eingestellt das er sich nicht Sperrt.
@togoze: Kannst du mir hier mal bitte erklären, warum du nicht einfach die Windows Bordmittel hernimmst um das Problem zu lösen? Warum willst du auf biegen und brechen eine "Lösung", die dich a) überfordert, b) nicht garantiert ist, dass sie funktioniert und c) extra kostet? Einfach weil's so eine lustige Sache ist (das kann ich verstehen, aber dann geht's gar nicht um das vorgeschobene Problem)?
zwieblum:
@togoze: Kannst du mir hier mal bitte erklären, warum du nicht einfach die Windows Bordmittel hernimmst um das Problem zu lösen? Warum willst du auf biegen und brechen eine "Lösung", die dich a) überfordert, b) nicht garantiert ist, dass sie funktioniert und c) extra kostet? Einfach weil's so eine lustige Sache ist (das kann ich verstehen, aber dann geht's gar nicht um das vorgeschobene Problem)?
Hallo Zwieblum,
wie genau meinst du das?
Meinst du man soll die Serielle Schnittstelle überwachen ob eine 0 oder 1 ausgegeben wird?
Wenn ja mit welchen Programmen ist das möglich, ich habe leider noch nichts gefunden.
Ich habe jetzt auch wie im Verlauf vorgeschlagen mir das Pro Micro Board gekauft.
Ich habe auch mal ein anders Sketch probiert dieses die "enter" Taste Simuliert (zum Testen):
1 //Enter-Tasten Sketch:
2
3 //Einbinden der Keyboard Bibliothek
4 #include <Keyboard.h>
5
6
7 // Einen Taster mit dem Pin 9 verbinden
8 int enter = 9;
9
10 void setup()
11 {
12 // Den Taster als Active-Low verschalten, als INPUT konfigurieren und
13 // das ausgehende Signal bei ungedruecktem Taster ueber einen Pull-up
14 // Widerstand auf VCC leiten
15 pinMode(enter, INPUT_PULLUP);
16 Keyboard.begin();
17 }
18
19 void loop()
20 {
21 // Wenn der Taster gedrueckt wird
22 if (digitalRead(enter) == 0)
23 {
24 // Dem Computer das Enter senden. Die Zahl 176 entspricht
25 // dabei der Enter-Taste in der ASCII-Tabelle
26 Keyboard.write(176);
27 // Kurze Pause, um Wiederholungen zu vermeiden
28 delay(500);
29 }
30 }
Das funktioniert auch ohne Probleme.
Jetzt habe ich mir Sketch mit dem DigiKeyboard genommen.
Es auf die Pins angepasst die tatsächlich angeschlossen sind (siehe Bild)
Leider funktioniert dies irgendwie nicht.
Liegt dies an mir oder an den Sketch.
#include "DigiKeyboard.h"
int buttonPin = 9;
void setup() {
pinMode(buttonPin, INPUT);
digitalWrite(buttonPin, HIGH);
}
void loop() {
DigiKeyboard.sendKeyStroke(0);
if (digitalRead(buttonPin) == LOW){
DigiKeyboard.sendKeyStroke(KEY_R , MOD_GUI_LEFT);
DigiKeyboard.delay(100);
DigiKeyboard.println("<U+202A>C:\\Users\\tobia\\Desktop\\test\\Unwetter.bat");
DigiKeyboard.delay(1000);
}
}
Gruß Tobias
ich gebs auf ...
ich gebs auf ...
-->So funktioniert das gleich gar nicht
Leider funktioniert dies irgendwie nicht.
Liegt dies an mir oder an den Sketch.
-->Ist nicht sehr aussagekräftig.
Auf Anhieb vermisse ich da "Keyboard.begin();"
Um eine Datei auf einem (Windows-) PC mithilfe eines Arduino Micro (oder Leonardo), der sich als HID (Tastatur) "ausgibt" zu starten gibt es mehrere Möglichkeiten. Hier 2 davon:
1. Dateiname mit Arduino übertragen
Eine (zum Beispiel) Bat-Datei kann über die "Windows-Run-Anweisung" (WinTaste + R) direkt aufgerufen werden. Allerdings stößt man beim Übergeben eines Dateipfades auf ein paar kleine Hindernisse.
Aufgerufen werden soll zum Beispiel: C:\meineBatDateien\start.bat
Der Backslash ist in C++ ein Escape-Zeichen und müsste deshalb verdoppelt werden.
Ein Versuch mit folgendem Code funktioniert aber (noch) nicht:
#include <Keyboard.h>
const byte tasterPin = 6;
void setup() {
Keyboard.begin();
pinMode(tasterPin, INPUT_PULLUP);
}
void loop() {
if (!digitalRead(tasterPin)) { // Taster wurde gedrückt
Keyboard.press(KEY_LEFT_GUI); // Windows-Taste
Keyboard.press('r');
delay(100);
Keyboard.releaseAll();
delay(200);
Keyboard.print("C:\\meineBatDateien\\start.bat");
Keyboard.write(KEY_RETURN);
}
}
Die Probleme im Dateipfad sind Doppelpunkt und Backslash. Arduino Micro/Leonardo gehen von einem Englischen Tastatur-Layout aus. Wenn aber bei deinem System ein Deutsches Tastatur-Layout eingestellt ist, dann werden weder Doppelpunkt noch Backslasch übertragen sondern andere Zeichen:
CÖ#meineBatDateien#start.bat
(Hintergrund: Eine Tastatur überträgt ja keine Buchstaben oder Zeichen wie "a, b, c" sondern - vereinfacht ausgedrückt - nur welche Taste gedrückt oder losgelassen wurde. Also etwa "Dritte Taste in der zweiten Reihe wurde hinuntergedrückt". Dein Betriebsystem interpretiert das dann in Verbindung mit dem eingestellten Tastatur-Layout als bestimmtes Zeichen. Im konkreten Fall könnte das ein "Z" sein, bei Layout EN oder ein "Y" bei Layout DE).
Der Doppelpunkt kann bei DE-Tastatur ersetzt werden durch > oder \u003E.
Beim Backslash geht das leider nicht so einfach.
Zwar gibt es Möglichkeiten den Backslash zu erzeugen, aber es geht viel einfacher, denn der Backslash ist gar nicht nötig.
Windows akzeptiert (zumindest seit Windows 8 schon ziemlich lange) statt dem Backslash auch den „normalen“ Schrägstrich ( / ) in Dateipfaden. Aber auch dieser Schrägstrich braucht einen Workaround.
Der Schrägstrich kann bei einer DE-Tastatur-Layout ersetzt werden durch & oder \u0026.
Folgendes sollte also funktionieren:
...
Keyboard.press(KEY_LEFT_GUI); // Windows-Taste
Keyboard.press('r');
delay(100);
Keyboard.releaseAll();
delay(200);
Keyboard.print("C\u003E\u0026meineBatDateien\u0026start.bat"); // Variante a)
// Keyboard.print("C>&meineBatDateien&start.bat"); // Variante b)
Keyboard.write(KEY_RETURN);
...
Aber es geht noch viel einfacher…
Denn die „Windows-Run-Anweisung“ startet im „Home-Verzeichnis“. Wenn der angemeldetet User etwa „Hans“ heißt, so ist es folgender Pfad:
C:\Users\Hans
Wenn also die zu startende Datei in diesem Verzeichnis liegt, so ist eine "ausführliche" Pfadangabe nicht nötig und die Datei kann einfach gestartet werden mit
start.bat
2. Verknüpfungsoption (Windows Boardmittel)