Hallo Ich würde gerne einen echten zufallszahlengenerator mittels attiny und vusb realisieren. ist das möglich? kennt jemand ein passendes tutorial dazu? Bitte um Hilfe
Ich würde nach einem Rauschgenerator suchen, das Rauschen dann mit dem ADC messen und die Messwerte an den PC senden.
:
Bearbeitet durch User
Roman B. schrieb: > ist das möglich? Ja, ob du wirklich einwandfreien Zufall hinkriegst kannst du dann ja Untersuchen. Roman B. schrieb: > kennt jemand ein passendes tutorial > dazu? Ich nicht.
ich dachte mir, ich könnte einen pseudo zufallsgenerator mit einem adc wert initialisieren und so recht gute ergebnisse erzielen! mein problem ist eher die usb übertragung zum pc.
kopfkratz Tja nun Rauschgenerator wurde schon genannt, häng einfach ein paar PTCs parallel und in reihe an den ADC mit unstabilisierter Versorgungsspannung.
Aber wie übertrage ich die Daten an den PC? Ich dachte, dass ich eine tastatur mittels vusb realisiere und den wert per konpfdruck "eingeben" lasse. dann bräuchte ich nämlich keine treiber oder zusatzsoftware! Aber och kenne mich leider mit vusb nicht aus. Gibt es noch andere einfachere lösungen?
:
Bearbeitet durch User
Roman B. schrieb: > Aber wie übertrage ich die Daten an den PC? Ich dachte, dass ich eine > tastatur mittels vusb realisiere und den wert per konpfdruck "eingeben" > lasse. Mit V-USB geht das. Schau mal bei Obdev nach dem 'Easy-Logger' Projekt, das ist ein kleiner Logger mit ATTiny, der sich als Tastatur am Rechner anmeldet. http://www.obdev.at/products/vusb/easylogger.html Statt der Messwerte im Originalprojekt nimmst du deinen Zufallszahlen Generator.
Hallo Matthias Sch. schrieb: > Mit V-USB geht das. Schau mal bei Obdev nach dem 'Easy-Logger' Projekt, > das ist ein kleiner Logger mit ATTiny, der sich als Tastatur am Rechner > anmeldet. Ja geht, ich wuerde aber einen Interrupt-Endpunkt zu diesem Zweck empfehlen. Auf jeden Fall nicht als HID Tastatur - ansonsten blockiert dein Device dann alle Eingaben waehrend es Zufall "sendet". Falls du tiefer gehende Hilfe/Beratung zu V-USB benoetigst: Ich biete mich an, schick mir einfach eine PN. Ich hatte vor Ewigkeiten einmal etwas vergleichbares (Zufall entnahm ich einer Zenerdiode) fuer mein tinyUSBboard (http://matrixstorm.com/avr/tinyusbboard/) gebastelt. MfG
:
Bearbeitet durch User
Ich habe genau so ein USB-Zufallsgenerator gebastelt. Als Zufallgenerator habe ich ein Synthi module utilisiert. Nicht genau dieses, aber so ähnlich: http://www.musicfromouterspace.com/analogsynth_new/EXPERIMENTERBOARD/pdf/schempg6_schem.pdf Mit zwei OpVerstärker kann Man die Zentrum und Breite regeln. Ich habe die nicht als Tiefpass benutzt wie in PDF. (Bitte entschuldigen -- bin Amerikaner und kann nicht so besonderes gut Deutsch.) So geht die Spannung im Raum von ~1 V bis ~4 V. Danach geht das Signal ins ATMega uber v-USB zu meinem Laptop. Ich habe es rein als digital-Signal benutzt. Wenn ein statistiche Bias noch drinn steht, kann mann es reduzieren beim nutzen (1,0) als 1 und (0,1) als 0. (Wann kommt 1,1 oder 0,0 dann sampelt man noch mal.) Der Zufallsgenerator hat ein Bandbreite grosser als 500kHZ (genauer: relatif flach Spectrum von 10k-500kHz). Mann könnte auch ein Hashfunktion nutzen, um zu besser die zahlen "vor-weissen" (sagt man auf Englisch, noch mal bitte entschuldige). Aber so was hat ich nicht gebraucht. Ein Trick war 12V Spannung für der Zufalls Transistor: nutze ich ein 4x Spannungs Erhöer mit Kondensatoren, bei uC getrieben. Ob das ein Tieffrequenz in den Zahlen machte, konnte ich es nicht finden. Eines Tages muss ich es darüber posten als Webpage. Ein Problem mit ADC und Co als Zufallsgenerator, wenn Mann es nutzt als Crypto-ding, ist die 50Hz Stromfrequenz -- es ist überall. Viel Spass!
Das tinyusbboard ist ein super tipp! Danke dafür! soetwas werde ich mir bauen. welche möglichkeit hätte ich noch, die zufallszahlen einzulesen?
Hab mir jetzt ein tinyusbboard gebaut, allerdings lässt sich das Testprogramm nicht kompillieren! Ich verwende Arduino Code und erhalte folgende Fehlermeldung:
1 | /usr/share/arduino/hardware/tools/avr/bin/avr-g++ -c -g -Os -Wall -fno-exceptions -ffunction-sections -fdata-sections -mmcu=atmega328p -DF_CPU=16000000L -MMD -DUSB_VID=null -DUSB_PID=null -DARDUINO=105 -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino/cores/arduino -I/usr/share/arduino/hardware/arduino/variants/standard -I/home/administrator/sketchbook/libraries/UsbKeyboard /tmp/build3367799079179550109.tmp/sketch_mar15a.cpp -o /tmp/build3367799079179550109.tmp/sketch_mar15a.cpp.o |
2 | In file included from sketch_mar15a.ino:1:0: |
3 | /home/administrator/sketchbook/libraries/UsbKeyboard/UsbKeyboard.h:55:1: warning: narrowing conversion of ‘161’ from ‘int’ to ‘char’ inside { } is ill-formed in C++11 [-Wnarrowing] |
4 | /home/administrator/sketchbook/libraries/UsbKeyboard/UsbKeyboard.h:55:1: warning: narrowing conversion of ‘224’ from ‘int’ to ‘char’ inside { } is ill-formed in C++11 [-Wnarrowing] |
5 | /home/administrator/sketchbook/libraries/UsbKeyboard/UsbKeyboard.h:55:1: warning: narrowing conversion of ‘231’ from ‘int’ to ‘char’ inside { } is ill-formed in C++11 [-Wnarrowing] |
6 | /home/administrator/sketchbook/libraries/UsbKeyboard/UsbKeyboard.h:55:1: warning: narrowing conversion of ‘149’ from ‘int’ to ‘char’ inside { } is ill-formed in C++11 [-Wnarrowing] |
7 | /home/administrator/sketchbook/libraries/UsbKeyboard/UsbKeyboard.h:55:1: warning: narrowing conversion of ‘129’ from ‘int’ to ‘char’ inside { } is ill-formed in C++11 [-Wnarrowing] |
8 | /home/administrator/sketchbook/libraries/UsbKeyboard/UsbKeyboard.h:55:1: warning: narrowing conversion of ‘149’ from ‘int’ to ‘char’ inside { } is ill-formed in C++11 [-Wnarrowing] |
9 | /home/administrator/sketchbook/libraries/UsbKeyboard/UsbKeyboard.h:55:1: warning: narrowing conversion of ‘129’ from ‘int’ to ‘char’ inside { } is ill-formed in C++11 [-Wnarrowing] |
10 | /home/administrator/sketchbook/libraries/UsbKeyboard/UsbKeyboard.h:55:1: warning: narrowing conversion of ‘192’ from ‘int’ to ‘char’ inside { } is ill-formed in C++11 [-Wnarrowing] |
11 | /usr/share/arduino/hardware/tools/avr/bin/avr-gcc -c -g -assembler-with-cpp -mmcu=atmega328p -DF_CPU=16000000L -DARDUINO=105 -DUSB_VID=null -DUSB_PID=null -D__PROG_TYPES_COMPAT__ -I/usr/share/arduino/hardware/arduino/cores/arduino -I/usr/share/arduino/hardware/arduino/variants/standard -I/home/administrator/sketchbook/libraries/UsbKeyboard -I/home/administrator/sketchbook/libraries/UsbKeyboard/utility /home/administrator/sketchbook/libraries/UsbKeyboard/usbdrvasm.S -o/tmp/build3367799079179550109.tmp/UsbKeyboard/usbdrvasm.S.o |
12 | avr-gcc: error: unrecognized command line option ‘-assembler-with-cpp’ |
Hier mein Sourcecode:
1 | #include "UsbKeyboard.h" |
2 | void setup() { |
3 | UsbKeyboard.update(); |
4 | UsbKeyboard.sendKeyStroke(KEY_H); |
5 | UsbKeyboard.sendKeyStroke(KEY_E); |
6 | UsbKeyboard.sendKeyStroke(KEY_L); |
7 | UsbKeyboard.sendKeyStroke(KEY_L); |
8 | UsbKeyboard.sendKeyStroke(KEY_O); |
9 | |
10 | UsbKeyboard.sendKeyStroke(KEY_SPACE); |
11 | |
12 | UsbKeyboard.sendKeyStroke(KEY_W); |
13 | UsbKeyboard.sendKeyStroke(KEY_O); |
14 | UsbKeyboard.sendKeyStroke(KEY_R); |
15 | UsbKeyboard.sendKeyStroke(KEY_L); |
16 | UsbKeyboard.sendKeyStroke(KEY_D); |
17 | }
|
18 | |
19 | void loop() { |
20 | |
21 | }
|
Kann mir jemand sagen, wie ich dieses Problem löse? Danke im Voraus
:
Bearbeitet durch User
Hi. Das liegt an der Arduino VUSB library, in der die PIN-Belegungen statisch gehackt sind. Wenn du in Arduino VUSB verwenden willst, dann komm' am besten (heute?) mal auf meinen TeamSpeak3 Server: ts3server://vps.matrixstorm.com:10987?nickname=RomanB Ansonsten erklaere ich es auch gern hier - die Zeit wird ich mir gern sparen... MfG
:
Bearbeitet durch User
Danke für die Hilfe! Ich habe jetzt eine funktionsfähige Version gebaut, allerdings muss ich noch ein wenig daran herumbasteln! Ich habe VUSB mit Control Übertragung verwendet und zwar ohne Arduino code.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.