Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
workshop:rf433ctl_workshop [2012-04-19 23:22] homunkoloss |
workshop:rf433ctl_workshop [2015-09-24 13:29] (current) xro |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Workshop: Mikrocontrollerprogrammierung mit teensy ====== | + | ====== Funksteckdosen Fernsteuern mit teensy ====== |
+ | ====== aka Workshop: Mikrocontrollerprogrammierung mit teensy ====== | ||
====== Vorbereitung ====== | ====== 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. | Weiters ist es ratsam einen eigenen Ordner für den Workshop anzulegen. | ||
- | <html><pre> | + | <code> |
~ % mkdir teensy_workshop | ~ % mkdir teensy_workshop | ||
~ % cd teensy_workshop | ~ % cd teensy_workshop | ||
- | </pre></html> | + | </code> |
====== hidrc ====== | ====== hidrc ====== | ||
Line 48: | 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 |
- | ...eensy_workshop/hidrc/teensy_loader_cli (svn)-[trunk:16] % cd ../hid_listen | + | ~/teensy_workshop/hidrc/teensy_loader_cli (svn)-[trunk:16] % cd ../hid_listen |
~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % make | ~/teensy_workshop/hidrc/hid_listen (svn)-[trunk:16] % make | ||
</pre></html> | </pre></html> | ||
Line 65: | Line 66: | ||
</pre></html> | </pre></html> | ||
- | ===== Kommandos lernen ===== | + | ==== Kommandos lernen ==== |
<html><pre> | <html><pre> | ||
~/teensy_workshop/hidrc (svn)-[trunk:16] % cd hid_listen | ~/teensy_workshop/hidrc (svn)-[trunk:16] % cd hid_listen | ||
Line 81: | Line 82: | ||
</pre></html> | </pre></html> | ||
- | ==== Keycode eintragen ==== | + | === Keycode eintragen === |
Den vorher ausgelesenen Wert (hier 722EEDD1) trägt man in die Datei /hid_listen/keymap.h ein. | Den vorher ausgelesenen Wert (hier 722EEDD1) trägt man in die Datei /hid_listen/keymap.h ein. | ||
+ | |||
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** | ||
Line 93: | Line 97: | ||
===== 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 120: | 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 383: | 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