AVR attiny usb zufallszahlengenerator

(Firma: matzetronics) #3574007
Lesenswert?

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.
#3574288
Lesenswert?

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
#3574588
Lesenswert?

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!
#3575705
Lesenswert?

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
#3575772
Lesenswert?

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
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren