Forum Scope


Match



Forum Options



Min search length: 3 characters / Max search length: 84 characters
sp_TopicIcon
Jak na čip MCP23017 přes web
RSS
Avatar
BigSandy
100 Posts
(Offline)
1
10 srpna, 2014 - 11:26 am

Zdravím.

Tak ovládat GPIO už umím a používám na to WiringPi2.

http://raspi.tv/2013/how-to-us…..n-raspbian

 

Ovládat piny v čipu MCP23017 už také zvládám a používám také knihovnu WiringPi2.

http://raspi.tv/2013/using-the…..rts-part-3

Jak však ovládat ty pinu v čipu MCP23017 přes web rozhraní?        

Poradí někdo?

Tady je návod jak použit knihovnu WiringPi-PHP pro GPIO

http://direct.raspberrypi.org/…..38;t=51265

Ma někdo nějake zkušeností s tou knihovnou WiringPi2?

Avatar
BigSandy
100 Posts
(Offline)
2
10 srpna, 2014 - 6:42 pm

Tak už to mam Laugh

S PHP se da spustit python skript a předat argument Laugh

Tak jednoduche a ja se tak natrapíl hledaním na netu Cry

Kdysi jsem to řeěíl ve Windows se spuštěním exe a nešlo to.

Avatar
BigSandy
100 Posts
(Offline)
3
11 srpna, 2014 - 1:40 am

Tak to nějak nefunguje Confused

Nezkoušel někdo spustít python skrypt přes PHP

http://stackoverflow.com/quest…..t-from-php

Avatar
BigSandy
100 Posts
(Offline)
4
12 srpna, 2014 - 10:49 am

Vyřešeno Wink

Avatar
MiK
89 Posts
(Offline)
5
12 srpna, 2014 - 6:26 pm

Tak se poděl o zkušenost –  v čem byl problém?
Tipoval bych to na špatně nastavená přístupová práva toho spouštěného programu.

Avatar
BigSandy
100 Posts
(Offline)
6
13 srpna, 2014 - 1:43 pm

No tak jediny problem byl v uživatelskych pravech.

PI jede pod jinym uživatelem.

Root jede pod jinym uživatelem.

a www jede take pod jinym uživatelem.

Ja se přihlasíl jako root.

sudo visudo

A přidal tohle www-data ALL=(ALL:ALL) NOPASSWD: ALL

A funguje to Laugh

Avatar
BigSandy
100 Posts
(Offline)
7
21 srpna, 2014 - 6:20 am

Zdravím.

Dosud jsem na ovládaní tohoto čipu používal knihovnu WiringPi2.

Jak však na to bez ní? (nějak mi to nemyslí)

 

Nastaví celého portu GPA pro výstup

sudo i2cset -y 0 0x20 0x00 0x00

A zapínám GPA

sudo i2cset -y 0 0x20 0x12 0x01

sudo i2cset -y 0 0x20 0x12 0x02

sudo i2cset -y 0 0x20 0x12 0x04

 

Toto je jasné

01           00000001             zapne   GPA0

02           00000010             zapne   GPA1

04           00000100             zapne   GPA2   

 

Jak však zapnout třeba GPA1, tak aby ostatní piny zůstali ve stavu jak jsou?

 

sudo i2cset -y 0 0x20 0x12 0x01 zapnu GPA0

 

Takto zapnu GPA2   sudo i2cset -y 0 0x20 0x12 0x04.

Ale GPA0 se tím pádem vypne, to je jasné 00000100.

Jak na to?

 

A další věc, co jsem ještě nezkoušel, ale když už tu píšu tak se opitam.

Da se zpětně přečíst stav těchto pinu, když jsou nastavené na vystup?

stavpinu1=`sudo i2cset -y 0 0x20 0x12 0x01`

Avatar
MiK
89 Posts
(Offline)
8
21 srpna, 2014 - 5:42 pm

V příkazu i2cset je třeba použít parametr „maska“.
    http://www.root.cz/man/8/i2cset/

Bity, které jsou v masce nulové se ignorují. Pracuje se jen s bity, které jsou v masce jedničkové.

Příklady (zkoušel jsem to RasPi rev2, proto je tam ta 1 jako označení I2C kanálu. V původním dotazu jsi to měl pro starší verzi RasPi.):

sudo i2cset -y 1 0x20 0x12 0x01              // klasika – rozsviti ledku na nultem bitu (GPA0), ostatni zhasne

sudo i2cset -y -m 0x02 1 0x20 0x12 0xFF         // rozsviti ledku na prvnim bitu (GPA1) – ostatni nechava v tom stavu, v jakem jsou
sudo i2cset -y -m 0x04 1 0x20 0x12 0xFF         // rozsviti pouze druhy bit (GPA2) – ostatni beze zmeny

sudo i2cset -y -m 0x01 1 0x20 0x12 0x00         // zhasne ledku na nultem bitu (GPA0) – vsechno ostatni beze zmeny

sudo i2cset -y -m 0xF0 1 0x20 0x12 0xFF         // rozsviti 4 nejvyssi bity (GPA7,6,5,4) – zbyle 4 bity (GPA0,1,2,3) beze zmeny    
sudo i2cset -y -m 0x0F 1 0x20 0x12 0x0A         // nejvyssi 4 bity beze zmeny, nejnizsi 4 bity nastavi na 1010

 

Do proměnné se dá načíst stav libovolného registru takto:
  stavregistru=`sudo i2cget -y 1 0x20 0x12`

Konkrétně tenhle příklad zjistí aktuální stav GPA (registr 0x12), ale stejně je možné zjišťovat třeba na kterých portech jsou připojené Pull-Upy, nebo jaký je směr vývodů…

Vypsání proměnné je pak:
  echo $stavregistru

Avatar
BigSandy
100 Posts
(Offline)
9
22 srpna, 2014 - 3:50 am

Příklady (zkoušel jsem to RasPi rev2, proto je tam ta 1 jako označení I2C kanálu. V původním dotazu jsi to měl pro starší verzi RasPi.):

Vim, Ja to uvaděl jen jako přiklad.

Jinak moc dik.

Forum Timezone: Europe/Prague
All RSS Show Stats
Administrators:
admin
Top Posters:
BigSandy: 100
MiK: 89
JuraS.: 37
Enigma: 26
Ch4rlieB: 19
DFZ: 12
GRaven: 11
buci: 11
postcd: 10
marty-PiDA: 9
Newest Members:
Matyys
Cerveny
JSlovak
esperanzaponce
tosik
pali
VildaB
aidmin
grace231252226
leticiajaynes47
Forum Stats:
Groups: 1
Forums: 4
Topics: 335
Posts: 808

 

Member Stats:
Guest Posters: 2
Members: 555
Moderators: 0
Admins: 1
Most Users Ever Online: 61
Currently Online:
Guest(s) 3
Currently Browsing this Page:
1 Guest(s)