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
Last revision Both sides next revision
workshop:rf433ctl_workshop [2012-04-19 23:09]
homunkoloss
workshop:rf433ctl_workshop [2015-09-23 02:04]
xro
Line 1: Line 1:
-====== Workshop: Mikrocontrollerprogrammierung mit  ====== +====== Workshop: Mikrocontrollerprogrammierung mit teensy ​====== 
-====== ​Einrichtung ​======+====== ​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 18:
   * 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 42:
 ~/​teensy_workshop % cd hidrc ~/​teensy_workshop % cd hidrc
 </​pre></​html>​ </​pre></​html>​
 +
 ==== hidrc kompilieren ==== ==== hidrc kompilieren ====
 <​html><​pre>​ <​html><​pre>​
Line 28: Line 48:
 ~/​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 79:
 ^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 117:
 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 344:
 ~/​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/pages/workshop/rf433ctl_workshop.txt
  • Last modified: 2015-09-24 13:29
  • by xro