Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
workshop:rf433ctl_workshop [2012-04-18 23:30]
homunkoloss
workshop:rf433ctl_workshop [2015-09-24 13:29] (current)
xro
Line 1: Line 1:
-====== ​Workshop ​mit dem geilen Otti ====== +====== ​Funksteckdosen Fernsteuern ​mit teensy  ​====== 
-====== ​hidrc ====== +====== ​aka Workshop: Mikrocontrollerprogrammierung mit teensy ​====== 
-====== ​Einrichtung ​====== +====== ​Vorbereitung ​====== 
-===== Kommandos lernen ===== +Es müssen folgende Pakete installiert werden: ​ 
-<html><​pre>​ +<code>~ % sudo apt-get install subversion gcc-avr avr-libc build-essential ​
-~ % sudo apt-get install subversion gcc-avr avr-libc build-essential avrdude binutils-avr libusb-dev python-matplotlib+avrdude binutils-avr libusb-dev python-matplotlib</​code>​ 
 + 
 +Weiters ist es ratsam einen eigenen Ordner für den Workshop anzulegen. 
 +<​code>​
 ~ % mkdir teensy_workshop ~ % mkdir teensy_workshop
 ~ % cd teensy_workshop ~ % cd teensy_workshop
-~/teensy_workshop % svn checkout https://​krypta.wirdorange.org/​svn/​hidrc/​trunk hidrc +</code>
-A    hidrc/​usb_keyboard_debug.c +
-A    hidrc/​hid_listen +
-A    hidrc/​hid_listen/​rawhid.c +
-A    hidrc/​hid_listen/​gpl3.txt +
-A    hidrc/​hid_listen/​hid_listen.c +
-A    hidrc/​hid_listen/​rawhid.h +
-A    hidrc/​hid_listen/​Makefile +
-A    hidrc/​print.h +
-A    hidrc/​teensy_loader_cli +
-A    hidrc/​teensy_loader_cli/​gpl3.txt +
-A    hidrc/​teensy_loader_cli/​Makefile.bsd +
-A    hidrc/​teensy_loader_cli/​teensy_loader_cli.c +
-A    hidrc/​teensy_loader_cli/​Makefile +
-A    hidrc/​usb_keyboard_debug.h +
-A    hidrc/​keymap_example.h +
-A    hidrc/​udev-rules +
-A    hidrc/​udev-rules/​49-teensy.rules +
-A    hidrc/​example.c +
-A    hidrc/​Makefile +
-A    hidrc/​print.c +
- ​U ​  ​hidrc +
-Ausgecheckt,​ Revision 16. +
-~/​teensy_workshop % cd hidrc +
-~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % make+
  
--------- begin -------- +====== hidrc ====== 
-avr-gcc (GCC) 4.3.5 +Mit hidrc kann man einen Linux-PC mit NEC-Fernbedienungen fernsteuernAndere Protokolle wie RC5 oder RC6 werden derzeit ​nicht unterstützt.
-Copyright (C) 2008 Free Software Foundation, Inc. +
-Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es +
-gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE.+
  
 +===== Benötigte Bauteile =====
 +  * Teensy
 +  * TSOP1838
  
-Compiling C: example.c +==== Pinbelegung ==== 
-avr-gcc -c -mmcu=atmega32u4 ​        -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./​example.lst ​ -std=gnu99 -MMD -MP -MF .dep/​example.o.d example.c -o example.o ​ +TSOP1838
-example.c:38:20: Fehler: keymap.h: Datei oder Verzeichnis nicht gefunden +D3Data 
-example.c: In Funktion »__vector_23«+Gesamter Port D ist als Input konfiguriert
-example.c:110: Fehler: »mapping« nicht deklariert (erste Benutzung in dieser Funktion) +PC7 = VCC 
-example.c:​110:​ Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt +PC6 = GND
-example.c:​110:​ Fehler: für jede Funktion in der er auftritt.) +
-make: *** [example.o] Fehler 1 +
-2 ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % cp keymap_example.h keymap.h +
-~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % make+
  
--------- begin -------- +Ansicht von vorne (Runde empfänger Teil sichtbar) 
-avr-gcc (GCC) 4.3.5 +<​html><​pre>​ 
-Copyright (C) 2008 Free Software Foundation, Inc. +_________ 
-Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es +|       | 
-gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE.+|   ​O ​  | 
 +|       | 
 +--------- 
 +|   ​| ​  | 
 +|   ​| ​  | 
 +D  Gnd Vcc 
 +</​pre></​html>​
  
 +==== Quellcode herunterladen ====
 +<​html><​pre>​
 +~/​teensy_workshop % svn checkout https://​krypta.wirdorange.org/​svn/​hidrc/​trunk hidrc
 +~/​teensy_workshop % cd hidrc
 +</​pre></​html>​
  
-Compiling C: example.c +==== hidrc kompilieren ​==== 
-avr-gcc -c -mmcu=atmega32u4 ​        -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./​example.lst ​ -std=gnu99 -MMD -MP -MF .dep/​example.o.d example.c -o example.o  +<​html><​pre>​ 
- +~/teensy_workshop/hidrc (svn)-[trunk:16] % cp keymap_example.h keymap.h 
-Compiling C: usb_keyboard_debug.c +~/​teensy_workshop/​hidrc (svn)-[trunk:16] % make
-avr-gcc -c -mmcu=atmega32u4 ​        -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,-adhlns=./​usb_keyboard_debug.lst ​ -std=gnu99 -MMD -MP -MF .dep/​usb_keyboard_debug.o.d usb_keyboard_debug.c -o usb_keyboard_debug.o ​ +
- +
-Compiling C: print.c +
-avr-gcc -c -mmcu=atmega32u4 ​        -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,​-adhlns=./print.lst ​ -std=gnu99 -MMD -MP -MF .dep/print.o.d print.c ​-o print.o  +
- +
-Linkingexample.elf +
-avr-gcc -mmcu=atmega32u4 ​        -I-gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,​-adhlns=example.o ​ -std=gnu99 -MMD -MP -MF .dep/​example.elf.d example.o usb_keyboard_debug.o print.o --output example.elf -Wl,​-Map=example.map,​--cref -Wl,--relax -Wl,​--gc-sections ​    -lm +
- +
-Creating load file for Flash: example.hex +
-avr-objcopy -O ihex -R .eeprom -R .fuse -R .lock -R .signature example.elf example.hex +
- +
-Creating load file for EEPROM: example.eep +
-avr-objcopy -j .eeprom --set-section-flags=.eeprom="​alloc,​load"​ \ +
- --change-section-lma .eeprom=0 --no-change-warnings -O ihex example.elf example.eep || exit 0 +
- +
-Creating Extended Listing: example.lss +
-avr-objdump --S -z example.elf > example.lss +
- +
-Creating Symbol Table: example.sym +
-avr-nm -n example.elf > example.sym +
- +
-Size after: +
-   ​text  ​  ​data  ​   bss     dec     hex filename +
-   ​2600  ​    ​34  ​    ​26  ​  ​2660  ​   a64 example.elf +
- +
--------- end -------- +
 ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % cd teensy_loader_cli ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % cd teensy_loader_cli
-...eensy_workshop/​hidrc/​teensy_loader_cli (svn)-[trunk:​16] % make +~/​teensy_workshop/​hidrc/​teensy_loader_cli (svn)-[trunk:​16] % make 
-cc -O2 -Wall -s -DUSE_LIBUSB -o teensy_loader_cli teensy_loader_cli.c -lusb +~/​teensy_workshop/​hidrc/​teensy_loader_cli (svn)-[trunk:​16] % cd ../​hid_listen
-...eensy_workshop/​hidrc/​teensy_loader_cli (svn)-[trunk:​16] % cd .. +
-~/teensy_workshop/​hidrc (svn)-[trunk:​16] % cd hid_listen+
 ~/​teensy_workshop/​hidrc/​hid_listen (svn)-[trunk:​16] % make ~/​teensy_workshop/​hidrc/​hid_listen (svn)-[trunk:​16] % make
-gcc -O2 -Wall -DLINUX ​  -c -o hid_listen.o hid_listen.c +</​pre></​html>​ 
-gcc -O2 -Wall -DLINUX ​  -c -o rawhid.o rawhid.c + 
-rawhid.c:​53:​45:​ warning: assertions are a deprecated extension +==== udev-Regel kopieren ==== 
-gcc -o hid_listen hid_listen.o rawhid.o ​ +<​html><​pre>​
-strip hid_listen+
 ~/​teensy_workshop/​hidrc/​hid_listen (svn)-[trunk:​16] % cd .. ~/​teensy_workshop/​hidrc/​hid_listen (svn)-[trunk:​16] % cd ..
 ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % sudo cp udev-rules/​49-teensy.rules /​etc/​udev/​rules.d/​49-teensy.rules ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % sudo cp udev-rules/​49-teensy.rules /​etc/​udev/​rules.d/​49-teensy.rules
 ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % sudo /​etc/​init.d/​udev reload ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % sudo /​etc/​init.d/​udev reload
-Rather than invoking init scripts through ​/etc/init.d, use the service(8) +</pre></html>
-utility, e.g. service udev reload+
  
-Since the script you are attempting to invoke has been converted to an +==== Programm auf teensy brennen ==== 
-Upstart job, you may also use the reload(8) utility, e.g. reload udev+<​html><​pre>​
 ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % make program ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % make program
-./teensy_loader_cli/teensy_loader_cli -mmcu=atmega32u4 -w example.hex+</pre></html> 
 + 
 +==== Kommandos lernen ==== 
 +<​html><​pre>​
 ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % cd hid_listen ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % cd hid_listen
 ~/​teensy_workshop/​hidrc/​hid_listen (svn)-[trunk:​16] % ./​hid_listen ~/​teensy_workshop/​hidrc/​hid_listen (svn)-[trunk:​16] % ./​hid_listen
Line 122: Line 80:
 ^C ^C
 130 ~/​teensy_workshop/​hidrc/​hid_listen (svn)-[trunk:​16] % vim ../keymap.h 130 ~/​teensy_workshop/​hidrc/​hid_listen (svn)-[trunk:​16] % vim ../keymap.h
 +</​pre></​html>​
 +
 +=== Keycode eintragen ===
 +Den vorher ausgelesenen Wert (hier 722EEDD1) trägt man in die Datei /​hid_listen/​keymap.h ein.
  
-Keycode eintragen 
 722EEDD1 -> 0x72,​0x2E,​0xED,​0xD1 722EEDD1 -> 0x72,​0x2E,​0xED,​0xD1
  
 0x72,​0x2E,​0xED,​0xD1,//​Key//,​ //​Modifier//,​ 0x72,​0x2E,​0xED,​0xD1,//​Key//,​ //​Modifier//,​
 +
 z.B.: 0x72,​0x2E,​0xED,​0xD1,​ KEY_DELETE, KEY_ALT | KEY_CTRL, z.B.: 0x72,​0x2E,​0xED,​0xD1,​ KEY_DELETE, KEY_ALT | KEY_CTRL,
 +
 Gültige Werte für //Key// und //​Modifier//​ stehen in der Datei **usb_keyboard_debug.h** Gültige Werte für //Key// und //​Modifier//​ stehen in der Datei **usb_keyboard_debug.h**
  
 +
 +
 +===== rf433ctl =====
 +==== Quellcode herunterladen ====
 +<​code>​
 +homunkoloss@vidar ~/​teensy_workshop % git clone https://​github.com/​realraum/​rf433rcv
 +homunkoloss@vidar ~/​teensy_workshop % cd rf433rcv
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv (svn)-[rf433rcv:​516] % cd pc
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % make
 +</​code>​
 +
 +==== teensy_loader_cli verlinken ====
 +<​code>​
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cd ~
 +homunkoloss@vidar ~ % ln -s teensy_workshop/​hidrc/​teensy_loader_cli ​
 +homunkoloss@vidar ~ % ls -l
 +[...]
 +lrwxrwxrwx ​ 1 homunkoloss homunkoloss ​    39 2012-04-18 23:39 teensy_loader_cli -> teensy_workshop/​hidrc/​teensy_loader_cli/​
 +drwxr-xr-x ​ 4 homunkoloss homunkoloss ​  4096 2012-04-18 23:37 teensy_workshop/​
 +[...]
 +
 +homunkoloss@vidar ~ % cd -
 +~/​teensy_workshop/​rf433rcv/​pc
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cd ../teensy
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​teensy (svn)-[rf433rcv:​516] % make
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​teensy (svn)-[rf433rcv:​516] % make program
 +../pc/reset || true
 +~/​teensy_loader_cli/​teensy_loader_cli -mmcu=atmega32u4 -w example.hex
 +</​code>​
 +
 +===== Variante Easy =====
 +{{:​workshop:​rf-433-proto.jpg|}}
 +<​html><​pre>​
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ./​autotaste.sh 0 > taste.txt
 +/​tmp/​tmp.Kbk5QqjpWm
 +/​tmp/​tmp.Id0D1V7c7e
 +/​tmp/​tmp.UVg5C9GFzd
 +0:
 +1 47
 +
 +
 +
 +10 189
 +11 
 +12 2
 +27 
 +28 220
 +29 
 +30 10
 +31 
 +284 
 +285 17
 +286 
 +1:
 +
 +2 26
 +
 +
 +5 33
 +
 +
 +8 219
 +
 +10 15
 +11 
 +12 6
 +13 
 +14 6
 +15 
 +16 1
 +18 3
 +19 
 +20 2
 +21 
 +22 2
 +24 3
 +26 
 +27 170
 +28 
 +1173samples
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cat taste.txt | ./compress | ./​rawhid_test -
 +Clearing Buffer
 +Sending Buffer 63 bytes
 +66 04 96 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e0 3f 00 00 00 fc ff ff 1f 80 ff ff ff 03 f8 ff ff 3f 80 ff 01 00 00 e0 ff ff 
 +Sending Buffer 63 bytes
 +66 7f 00 fc 01 00 00 c0 ff ff ff 01 fc 07 00 00 80 ff ff ff 03 f0 ff ff 7f 00 fe ff ff 0f e0 3f 00 00 00 fc ff ff 0f 80 7f 00 00 00 f0 0f 00 00 00 fe 00 00 00 e0 1f 00 00 00 fe 03 00 00 80 7f 
 +Sending Buffer 23 bytes
 +66 00 00 00 f8 ff ff 3f 00 ff ff ff 03 f0 1f 00 00 00 fe 03 00 00 c0 3f 
 +Executing Send command
 +
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] %   
 </​pre></​html>​ </​pre></​html>​
  
 +===== Beschreibung der einzelnen Schritte =====
 +Autotaste: Versucht eine Periode herauszufiltern,​ schneidet den Rest weg.
 +./​rawhid_test:​ Rohes Signal aufnehmen, auf stdout ausgeben. Ohne Parameter: Empfangen, mit filename als Parameter: Sende File, mit "​-"​ sende stdin.
 +compress: string -> binörformat,​ mit parameter: kein längenfeld
 +uncompress: binärformat -> string
 +./​realraum_codes.pl:​ Bitmuster erzeugen.
  
-==== Pinbelegung ==== +<​html><​pre>​ 
-TSOP1838+homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ./​rawhid_test 
-D3Data +00000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111111111111111111111110000000001111111111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111111111111111111111100000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111110000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111100000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111110000000000000000000000000001111111111111111111111111111000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111110000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111110000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000001111111111111111111111111111000000000111111111111111111111111111100000000011111111111111111111111111100000000001111111110000000000000000000000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111111111111111111111111000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000000000000000000000011111111111111111111111111110000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000011111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000111111111111111111111111111100000000011111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111111111111111111111111000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111111111111111111111100000000001111111110000000000000000000000000000111111110000000000000000000000000000011111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111111111111111111111100000000011111111111111111111111111100000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000001111111111111111111111111111000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111100000000000000000000000000011111111111111111111111111110000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111110000000000000000000000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111111111111111111111110000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000011111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111111111111111111111100000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111000000000000000000000000000111111111111111111111111111100000000011111111100000000000000000000000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000001111111100000000000000000000000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000000111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111110000000000000000000000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111111111111111111111111000000000111111111000000000000000000000000000011111111111111111111111111100000000001111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000011111111100000000000000000000000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111100000000000000000000000000001111111110000000000000000000000000000111111111000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111100000000000000000000000000001111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111111111111111111111100000000011111111111111111111111111110000000001111111110000000000000000000000000000111111111111111111111111111000000000011111111000000000000000% ​                                                        ​homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ./​rawhid_test | ./plot.py 
-Gesamter Port D ist als Input konfiguriert.+cat ^CTraceback (most recent call last): 
 +  File "​./​plot.py",​ line 12, in <​module>​ 
 +    pylab.show() 
 +  File "/​usr/​lib/​pymodules/​python2.7/​matplotlib/​backends/​backend_tkagg.py",​ line 79, in show 
 +    Tk.mainloop() 
 +  File "/​usr/​lib/​python2.7/​lib-tk/​Tkinter.py",​ line 328, in mainloop 
 +    _default_root.tk.mainloop(n) 
 +KeyboardInterrupt 
 +1 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cat autotaste.sh 
 +#!/bin/sh 
 + 
 +FN=`mktemp` 
 +FN2=`mktemp` 
 +FN3=`mktemp` 
 +echo $FN >&​2 
 +echo $FN2 >&2  
 +echo $FN3 >&​2 
 +./​rawhid_test > $FN 
 +./decode.pl $FN $1 | xargs ./​decode2.pl $FN > $FN2 
 +if [ $1 -eq 1 ]; then 
 +  ./swap.pl < $FN2 >$FN3 
 +else 
 +  cat $FN2 > $FN3 
 +fi 
 +./plot.py < $FN3 
 +cat $FN3 
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ll 
 +insgesamt 388 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​  261 2012-04-18 23:37 autotaste.sh* 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​  762 2012-04-18 23:37 codes 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​ 7332 2012-04-18 23:37 compress* 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​  640 2012-04-18 23:37 compress.c 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​  274 2012-04-18 23:37 data2sample.pl* 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​  182 2012-04-18 23:37 decode2.pl* 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​ 1173 2012-04-18 23:37 decode.pl* 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​  219 2012-04-18 23:37 hid.h 
 +-rw-r--r-- 1 homunkoloss homunkoloss 11445 2012-04-18 23:37 hid_LINUX.c 
 +-rw-r--r-- 1 homunkoloss homunkoloss 11770 2012-04-18 23:37 hid_MACOSX.c 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​ 3660 2012-04-18 23:37 hid.o 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​ 8537 2012-04-18 23:37 hid_WINDOWS.c 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​ 1485 2012-04-18 23:37 Makefile 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​   41 2012-04-18 23:37 plot_bin.sh* 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​  258 2012-04-18 23:37 plot.py* 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​ 9688 2012-04-18 23:37 rawhid_test* 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​ 2426 2012-04-18 23:37 rawhid_test.c 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​ 2904 2012-04-18 23:37 rawhid_test.o 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​ 2263 2012-04-18 23:37 realraum_codes.pl* 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​ 9668 2012-04-18 23:37 reset* 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​  869 2012-04-18 23:37 reset.c 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​ 1344 2012-04-18 23:37 reset.o 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​  458 2012-04-18 23:37 sample2data.pl* 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​   48 2012-04-18 23:37 send.sh* 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​   73 2012-04-18 23:37 swap.pl* 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​ 1174 2012-04-18 23:44 taste.txt 
 +drwxr-xr-x 3 homunkoloss homunkoloss ​ 4096 2012-04-18 23:37 testdata/ 
 +-rwxr-xr-x 1 homunkoloss homunkoloss ​ 7336 2012-04-18 23:37 uncompress* 
 +-rw-r--r-- 1 homunkoloss homunkoloss ​  518 2012-04-18 23:37 uncompress.c 
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cat taste.txt | ./plot.py 
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cat taste.txt | ./​sample2data.pl 
 +Base 9 
 +011101010111010000001100% ​                                                                                                    ​homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cat taste.txt | ./plot.py 
 +^Z 
 +[1]  + 4205 done       cat taste.txt |  
 +       4206 suspended ​ ./plot.py 
 +20 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % bg 
 +[1]  + 4205 done       cat taste.txt |  
 +       4206 continued ​ ./plot.py 
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cat taste.txt | ./​sample2data.pl > taste-data 
 +Base 9 
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cat taste-data | ./​data2sample.pl 5 | ./plot.py 
 +^C 
 +Traceback (most recent call last): 
 +  File "​./​plot.py",​ line 12, in <​module>​ 
 +    pylab.show() 
 +  File "/​usr/​lib/​pymodules/​python2.7/​matplotlib/​backends/​backend_tkagg.py",​ line 79, in show 
 +    Tk.mainloop() 
 +  File "/​usr/​lib/​python2.7/​lib-tk/​Tkinter.py",​ line 328, in mainloop 
 +    _default_root.tk.mainloop(n) 
 +KeyboardInterrupt 
 +1 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] %  
 +1 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cat taste-data | ./​data2sample.pl 5 | ./compress| ./​rawhid_test - 
 +Clearing Buffer 
 +Sending Buffer 63 bytes 
 +66 02 80 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 f0 ff 07 ff 7f f0 ff 07 1f 00 f0 ff 07 1f 00 f0 ff 07 1f 00 f0 ff 07 ff 7f f0 ff 07 1f 00 f0 ff 07 1f 00 f0 01 00 1f  
 +Sending Buffer 19 bytes 
 +66 00 f0 01 00 1f 00 f0 01 00 ff 7f f0 ff 07 1f 00 f0 01 00  
 +Executing Send command 
 + 
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ./​realraum_codes.pl 
 +Usage ./​realraum_codes.pl {pollin,​rsl336t,​weiss,​schwarz} remote parameters at ./​realraum_codes.pl line 28. 
 +255 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ./​realraum_codes.pl pollin 
 +parameters 00000 {a|b|c|d} {0|1} at ./​realraum_codes.pl line 74. 
 +255 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ./​realraum_codes.pl pollin 11111 b 1 
 +000000000001000101010001% ​                                                                                                    ​homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ./​realraum_codes.pl pollin 11111 b 1 | ./​data2sample.pl 5 | ./compress| ./​rawhid_test - 
 +Clearing Buffer 
 +Sending Buffer 63 bytes 
 +66 02 80 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 ff 07 1f 00 f0 01 00 1f 00 f0 ff 07 1f  
 +Sending Buffer 19 bytes 
 +66 00 f0 ff 07 1f 00 f0 ff 07 1f 00 f0 01 00 1f 00 f0 ff 07  
 +Executing Send command 
 + 
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ./​realraum_codes.pl pollin 11111 b 0 | ./​data2sample.pl 5 | ./compress| ./​rawhid_test - 
 +Clearing Buffer 
 +Sending Buffer 63 bytes 
 +66 02 80 1f 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 01 00 1f 00 f0 ff 07 1f 00 f0 01 00 1f 00 f0 ff 07 1f  
 +Sending Buffer 19 bytes 
 +66 00 f0 ff 07 1f 00 f0 ff 07 1f 00 f0 ff 07 1f 00 f0 01 00  
 +Executing Send command 
 + 
 +homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] %                                                        
 +</​pre></​html>​ 
 + 
 + 
 + 
 +===== Pinbelegung ​===== 
 +USB-Stick am PC anstecken. Leitung auf D0 legen. 
 +SenderDatenleitung auf F0, GND auf GND, Vcc auf Vcc. 
 + 
 + 
 + 
 + 
 + 
 + 
 + 
 +===== Fehlersuche ===== 
 +==== hidrc kompiliert nicht ==== 
 +=== Fehler === 
 +<​html><​pre>​ 
 +~/​teensy_workshop/​hidrc (svn)-[trunk:16] % make 
 +-------- begin -------- 
 +avr-gcc (GCC) 4.3.5 
 +Copyright (C) 2008 Free Software Foundation, Inc. 
 +Dies ist freie Software; die Kopierbedingungen stehen in den Quellen. Es 
 +gibt KEINE Garantie; auch nicht für MARKTGÄNGIGKEIT oder FÜR SPEZIELLE ZWECKE. 
 + 
 + 
 +Compiling C: example.c 
 +avr-gcc -c -mmcu=atmega32u4 ​        -I. -gdwarf-2 -DF_CPU=16000000UL -Os -funsigned-char -funsigned-bitfields -ffunction-sections -fpack-struct -fshort-enums -Wall -Wstrict-prototypes -Wa,​-adhlns=./​example.lst ​ -std=gnu99 -MMD -MP -MF .dep/​example.o.d example.c -o example.o  
 +example.c:​38:​20:​ Fehler: keymap.h: Datei oder Verzeichnis nicht gefunden 
 +example.c: In Funktion »__vector_23«:​ 
 +example.c:​110:​ Fehler: »mapping« nicht deklariert (erste Benutzung in dieser Funktion) 
 +example.c:​110:​ Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt 
 +example.c:​110:​ Fehler: für jede Funktion in der er auftritt.) 
 +make: *** [example.o] Fehler 1 
 +</​pre></​html>​ 
 + 
 +=== Lösung === 
 +~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % cp keymap_example.h keymap.h
  
 +----
 +{{tag>​workshop project}}
realraum Graz, Brockmanngasse 15, 8010 Graz, realraum - Verein für Technik in Kultur und Gesellschaft
  • /var/lib/dokuwiki/data/attic/workshop/rf433ctl_workshop.1334784604.txt.gz
  • Last modified: 2012-04-18 23:30
  • by homunkoloss