Obsah
Jednodeskový ARM počítač - OODROID-C1 a ODROID-C1+
Oba počítače jsou softwarově plně kompatibilní a mají i stejné rozlišení pinů na konektorech. Pouze se liší jejich breakoutframe, protože na verzi C1+ jsou opravené některé HW chyby verze C1.
Speciální Periferie
IR receiver
Infra remote controller je uzitecny pro bezdratove dalkove spousteni skriptu a ovladani bezicich aplikaci. Lze pouzit libovolny IR dalkovy ovladac, ktery ma nosnou frekvenci shodnou s IR prijimacem osazenym v ODROIDu.
Pokud chceme pouzit dalkove ovladani (jine nez ktere k ODROIDu dodava Hardkernel) je potreba identifikovat komunikacni protokol a jednotliva tlacitka na ovladaci.
Identifikace tlacitek
Nejprve je potreba zastavit beziciho daemona lirc
sudo service lirc stop
Nyni muzeme spustit scanovaci utilitu ktera spusti pruvodce rozpoznanim tlacitek.
sudo irrecord --device /dev/lirc0 samsung_cleaner_tmp.conf
Výsledkem utility je nějaký takovýto soubor:
# this config file was automatically generated # using lirc-0.9.0(default) on Sat Feb 27 21:49:49 2016 # # contributed by Jakub Kakona (kaklik@mlab.cz) # # brand: Genius # model no. of remote control: SW-HF5.1 5050 # devices being controlled by this remote: Genius Multimedia HiFi Speaker system HF 5.1 # begin remote name SW-HF5_1 bits 16 flags SPACE_ENC|CONST_LENGTH eps 30 aeps 100 header 8935 4545 one 513 1730 zero 513 613 ptrail 505 repeat 8934 2304 pre_data_bits 16 pre_data 0x3FC gap 107855 toggle_bit_mask 0x0 begin codes KEY_RESET 0x6996 KEY_VOLUMEUP 0xA956 KEY_WOOFERUP 0x29D6 KEY_MUTE 0x41BE KEY_MUTE 0x41BE KEY_VOLUMEDOWN 0x817E KEY_WOOFERDOWN 0x01FE KEY_FRONTUP 0x619E KEY_REARUP 0xA15E KEY_FRONTDOWN 0x21DE KEY_CENTERUP 0x51AE KEY_CENTERDOWN 0x11EE KEY_DVD 0x718E KEY_REARDOWN 0xB14E KEY_TV 0x31CE KEY_GAMES 0x49B6 KEY_MP3 0x09F6 end codes end remote
Po identifikaci ovladace a jeho tlacitek je mozne vytvoreny docasny soubor pouzit jako konfiguracni soubor pro lirc daemon.
sudo cp samsung_cleaner_tmp.conf /etc/lirc/lircd.conf sudo service lirc start
Nyni muzeme nastaveni zkontrolovat spustenim monitorovaciho klienta irw
odroid@odroid:~$ irw 0000000003fca956 00 KEY_VOLUMEUP SW-HF5_1 0000000003fca956 01 KEY_VOLUMEUP SW-HF5_1 0000000003fca956 02 KEY_VOLUMEUP SW-HF5_1 0000000003fca956 03 KEY_VOLUMEUP SW-HF5_1 0000000003fca956 04 KEY_VOLUMEUP SW-HF5_1 0000000003fca956 05 KEY_VOLUMEUP SW-HF5_1 0000000003fca956 06 KEY_VOLUMEUP SW-HF5_1 0000000003fca956 07 KEY_VOLUMEUP SW-HF5_1 0000000003fc817e 00 KEY_VOLUMEDOWN SW-HF5_1 0000000003fc817e 01 KEY_VOLUMEDOWN SW-HF5_1 0000000003fc817e 02 KEY_VOLUMEDOWN SW-HF5_1
Pouziti v Python
sudo apt-get install python-pylirc
Pak můžeme vyjít například z následujícího příkladu:
wget https://raw.githubusercontent.com/offlinehacker-playground/pylirc2/master/conf wget https://raw.githubusercontent.com/offlinehacker-playground/pylirc2/master/pylirc_test.py
V souboru conf je potřeba mít nastavené stejné symboly, které poskytuje lirc. Například:
begin remote = * button = KEY_VOLUMEUP prog = pylirc config = testtest end
Po spuštění pylirc_test.py pak dostaneme výpis oznámení o stisku zvoleného tlačítka.
Použití s Debian Jessie
Pro rozfungování lirc v OS Debian je potřeba nahrát modul do kernelu
sudo modprobe meson-ir
nebo přidat moson-ir
do /etc/modules
pro automatické zavádění při startu.
Pak do konfiguračního souboru /etc/lirc/hardware.conf
přidat
DRIVER="default" DEVICE="/dev/lirc0"
Rozšiřující konektory
The Odroid-c1 povides one 40-pin dual row expansion header „J2“.
The location and pinout of these connectors is illustrated blew.
All signals on expansion headers are 3.3V except Analog input signal.
J2 - 2×20 pins
Pin Number | Expansion Net Name | Description | Pin Number | Expansion Net Name | Description |
---|---|---|---|---|---|
1 | 3.3V Power | 2 | 5.0V Power | ||
3 | I2CA_SDA | Export GPIO#74 | 4 | 5.0V Power | |
5 | I2CA_SCL | Export GPIO#75 | 6 | Ground | |
7 | GPIOY.BIT3 | Export GPIO#83, Wiring Pi GPIO#7 | 8 | TXD1 | Export GPIO#113 |
9 | Ground | 10 | RXD1 | Export GPIO#114 | |
11 | GPIOY.BIT8 | Export GPIO#88, Wiring Pi GPIO#0 | 12 | GPIOY.BIT7 | Export GPIO#87, Wiring Pi GPIO#1 |
13 | GPIOX.BIT19 | Export GPIO#116, Wiring Pi GPIO#2 | 14 | Ground | |
15 | GPIOX.BIT18 | Export GPIO#115, Wiring PI GPIO#3 | 16 | GPIOX.BIT7 | Export GPIO#104, Wiring Pi GPIO#4 |
17 | 3.3V Power | 18 | GPIOX.BIT5 | Export GPIO#102, Wiring Pi GPIO#5 | |
19 | GPIOX.BIT10(MOSI) | Export GPIO#107, Wiring Pi GPIO#12, PWM1 | 20 | Ground | |
21 | GPIOX.BIT9(MISO) | Export GPIO#106, Wiring Pi GPIO#13 | 22 | GPIOX.BIT6 | Export GPIO#103, Wiring Pi GPIO#6 |
23 | GPIOX.BIT8(SPI_SCLK) | Export GPIO#105, Wiring Pi GPIO#14 | 24 | GPIOX.BIT20 | Export GPIO#117, Wiring Pi GPIO#10 |
25 | Ground | 26 | GPIOX.BIT21 | Export GPIO#118, Wiring Pi GPIO#11 | |
27 | I2CB_SDA | Export GPIO#76 | 28 | I2CB_SCL | Export GPIO#77 |
29 | GPIOX.BIT4 | Export GPIO#101, Wiring Pi GPIO#21 | 30 | Ground | |
31 | GPIOX.BIT3 | Export GPIO#100, Wiring Pi GPIO#22 | 32 | GPIOX.BIT2 | Export GPIO#99, Wiring Pi#26 |
33 | GPIOX.BIT11 | Export GPIO#108, Wiring Pi GPIO#23, PWM0 | 34 | Ground | |
35 | GPIOX.BIT0 | Export GPIO#97, Wiring Pi GPIO#24 | 36 | GPIOX.BIT1 | Export GPIO#98, Wiring Pi GPIO#27 |
37 | ADC.AIN1 | 10bit ADC#1 (0~1.8Volt) | 38 | 1.8V Power | For ADC reference voltage. Output! |
39 | Ground | 40 | ADC.AIN0 | 10bit ADC#0 (0~1.8Volt) |
I2C
SPI
Do kernelu je potřeba nahrát moduly driveru SPI.
sudo modprobe spicc sudo modprobe spidev
Potom zacne byt videt systemove zarizeni /dev/spidev0.0.
ls /dev
Aby k němu mohli přistupovat i non-root uživatelé, tak je nutné vytvořit v /etc/udev/rules.d (cd /etc/udev/rules.d) soubor (např. 80-linuxcnc.rules) s obsahem:
sudo touch 80-linuxcnc.rules sudo vim 80-linuxcnc.rules
Vložit daný text tak že jednou se zmáčkne i a pak se vloží text. Pak ESC a napsat :x a enter.
KERNEL=="spidev*", SUBSYSTEM=="spidev", GROUP="spi", MODE="0660"
Vložení modulu do souboru /etc/modules:
sudo sudo vim /etc/modules
Vložíme:
spicc spidev
Provedeme reboot a následně ověříme, že je vidět rozhraní SPI:
ls /dev
Program modprobe přidává moduly pouze do běžícího kernelu. Pokud mají být moduly do kernelu nahrány i při dalším spuštění systému, tak je potřeba je přidat do souboru /etc/modules