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-19 23:09]
homunkoloss
workshop:rf433ctl_workshop [2015-09-24 13:29] (current)
xro
Line 1: Line 1:
-====== Workshop: Mikrocontrollerprogrammierung mit  ====== +====== ​Funksteckdosen Fernsteuern mit teensy ​ ====== 
-====== ​Einrichtung ​======+====== aka Workshop: Mikrocontrollerprogrammierung mit teensy ​====== 
 +====== ​Vorbereitung ​======
 Es müssen folgende Pakete installiert werden: ​ Es müssen folgende Pakete installiert werden: ​
-<html><​pre>~ % sudo apt-get install subversion gcc-avr avr-libc build-essential \ +<code>~ % sudo apt-get install subversion gcc-avr avr-libc build-essential \ 
-avrdude binutils-avr libusb-dev python-matplotlib</​pre></html>+avrdude binutils-avr libusb-dev python-matplotlib</​code> 
 + 
 +Weiters ist es ratsam einen eigenen Ordner für den Workshop anzulegen. 
 +<​code>​ 
 +~ % mkdir teensy_workshop 
 +~ % cd teensy_workshop 
 +</code>
  
 ====== hidrc ====== ====== hidrc ======
Line 12: Line 19:
   * TSOP1838   * TSOP1838
  
 +==== Pinbelegung ====
 +TSOP1838:
 +D3: Data
 +Gesamter Port D ist als Input konfiguriert.
 +PC7 = VCC
 +PC6 = GND
  
 +Ansicht von vorne (Runde empfänger Teil sichtbar)
 <​html><​pre>​ <​html><​pre>​
-~ % mkdir teensy_workshop +_________ 
-~ % cd teensy_workshop+|       | 
 +|   ​O ​  | 
 +|       | 
 +--------- 
 +|   ​| ​  | 
 +|   ​| ​  | 
 +D  Gnd Vcc
 </​pre></​html>​ </​pre></​html>​
  
Line 23: Line 43:
 ~/​teensy_workshop % cd hidrc ~/​teensy_workshop % cd hidrc
 </​pre></​html>​ </​pre></​html>​
 +
 ==== hidrc kompilieren ==== ==== hidrc kompilieren ====
 <​html><​pre>​ <​html><​pre>​
Line 28: Line 49:
 ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % make ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % make
 ~/​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 =====+==== 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 62: 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**
  
-</​pre></​html>​ 
  
- 
-==== Pinbelegung ==== 
- 
-TSOP1838: 
-D3: Data 
-Gesamter Port D ist als Input konfiguriert. 
-PC7 = VCC 
-PC6 = GND 
- 
-Ansicht von vorne (Runde empfänger Teil sichtbar) 
-<​html><​pre>​ 
-_________ 
-|       | 
-|   ​O ​  | 
-|       | 
---------- 
-|   ​| ​  | 
-|   ​| ​  | 
-D  Gnd Vcc 
-</​pre></​html>​ 
  
 ===== rf433ctl ===== ===== rf433ctl =====
 ==== Quellcode herunterladen ==== ==== Quellcode herunterladen ====
-<html><​pre+<code
-homunkoloss@vidar ~/​teensy_workshop % svn checkout ​https://svn.spreadspace.org/​realraum/​rf433rcv/+homunkoloss@vidar ~/​teensy_workshop % git clone https://github.com/​realraum/​rf433rcv
 homunkoloss@vidar ~/​teensy_workshop % cd rf433rcv homunkoloss@vidar ~/​teensy_workshop % cd rf433rcv
 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv (svn)-[rf433rcv:​516] % cd pc homunkoloss@vidar ~/​teensy_workshop/​rf433rcv (svn)-[rf433rcv:​516] % cd pc
 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % make homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % make
-gcc -Wall -O2 -DOS_LINUX ​  -c -o rawhid_test.o rawhid_test.c +</​code>​ 
-gcc -Wall -O2 -DOS_LINUX -c -o hid.o hid_LINUX.c + 
-gcc -o rawhid_test rawhid_test.o hid.o -lusb +==== teensy_loader_cli verlinken ==== 
-strip rawhid_test +<code>
-gcc -o compress compress.c +
-gcc -o uncompress uncompress.c +
-gcc -Wall -O2 -DOS_LINUX -c -o reset.o reset.c +
-gcc -o reset reset.o hid.o -lusb +
-strip reset +
-</​pre></​html>+
 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cd ~ homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cd ~
 homunkoloss@vidar ~ % ln -s teensy_workshop/​hidrc/​teensy_loader_cli ​ homunkoloss@vidar ~ % ln -s teensy_workshop/​hidrc/​teensy_loader_cli ​
Line 122: Line 118:
 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % cd ../teensy 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
- 
--------- 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:​52:​ Warnung: Funktionsdeklaration ist kein Prototyp 
- 
-Compiling C: usb_rawhid.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=./​usb_rawhid.lst ​ -std=gnu99 -MMD -MP -MF .dep/​usb_rawhid.o.d usb_rawhid.c -o usb_rawhid.o ​ 
- 
-Linking: example.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_rawhid.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 -h -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 
-   ​3604  ​     0     710    ​4314  ​  ​10da example.elf 
- 
--------- end -------- 
- 
 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​teensy (svn)-[rf433rcv:​516] % make program homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​teensy (svn)-[rf433rcv:​516] % make program
 ../pc/reset || true ../pc/reset || true
 ~/​teensy_loader_cli/​teensy_loader_cli -mmcu=atmega32u4 -w example.hex ~/​teensy_loader_cli/​teensy_loader_cli -mmcu=atmega32u4 -w example.hex
-</pre></​html>+</code>
  
 ===== Variante Easy ===== ===== Variante Easy =====
 +{{:​workshop:​rf-433-proto.jpg|}}
 <​html><​pre>​ <​html><​pre>​
 homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ./​autotaste.sh 0 > taste.txt homunkoloss@vidar ~/​teensy_workshop/​rf433rcv/​pc (svn)-[rf433rcv:​516] % ./​autotaste.sh 0 > taste.txt
Line 385: Line 345:
 ~/​teensy_workshop/​hidrc (svn)-[trunk:​16] % cp keymap_example.h keymap.h ~/​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.1334869796.txt.gz
  • Last modified: 2012-04-19 23:09
  • by homunkoloss