Miniszámítógépek, SBC-k

NAS legózás

Ha esetleg megbolondulnék, és magam szeretnék összelegózni NAS-t (alaplap, táp, ház) valami integrált alaplapos megoldással (egyelőre bőven nem lenne nagy terhelése), akkor mit javasolnátok? Pár paraméter:

- van itthon 2x4 GB DDR3 HyperX Blu RAM elfekvőben, kár lenne parlagon hagyni
- x86 proci kellene torrent miatt
- DLNA kell
- 1 x gigabit lan elég
- SATA port jó lenne 2-nél több
- legalább USB3.0 sem ártana USB2.0 helyett
- 2-3 gép backup, telefonok adatmentése, távoli elérés, esetleg wordpress alapú weblap kiszolgálás

Szünetmentest tennék rá Schuko aljzatost. Keretösszeg mondjuk 90k (visítva 100k) nagyon plafon (HDD nélkül).

Ha esetleg a DDR3 RAM már kuka lenne ezekhez, akkor a keretösszegbe férjen bele mondjuk 4-8 GB RAM is.

RPi3 + LibreELEC + A389 + TSOP38238 IR vevő

Üdv!
A korábbi téma alapján próbálom összerakni a $SUBJ-t:
https://www.rpibolt.hu/blog/xbmc_media_center_taviranyitasa_infra_tavir…
https://gist.github.com/coaxial/575fec33fcb10f69586e419b97927eb8

A "killall lircd && mode2 -d /dev/lirc0" után a távirányítón érzékel gombnyomást, de a librelec "nem látja" - nem működik vele.
Mit kell még beállítani? A LibreELEC System settings / Input-ban gondolom látni kellene ezt az IR vevőt valahogy.

-------------------------------------------------------------------------------------------------------

A /flash/config.txt végére beraktam:

# IR reciever, GPIO (def: GPIO_18)
dtoverlay=lirc-rpi

# dmesg | grep lirc
[ 3.242793] lirc_dev: IR Remote Control driver registered, major 245
[ 3.280616] lirc_rpi: module is from the staging directory, the quality is unknown, you have been warned.
[ 4.034981] input: lircd-uinput as /devices/virtual/input/input3
[ 4.196386] input: eventlircd as /devices/virtual/input/input4
[ 4.234854] lirc_rpi: auto-detected active low receiver on GPIO pin 18
[ 4.235062] lirc_rpi lirc_rpi: lirc_dev: driver lirc_rpi registered at minor = 0
[ 4.235065] lirc_rpi: driver registered!

A /storage/.config/lircd.conf-ban:

# Please make this file available to others

# by sending it to

#

# this config file was automatically generated

# using lirc-0.9.0-pre1(default) on Thu Mar 14 14:21:25 2013

#

# contributed by

#

# brand: /home/pi/lircd.conf

# model no. of remote control:

# devices being controlled by this remote:

#

begin remote

name /home/pi/lircd.conf

bits 16

flags SPACE_ENC|CONST_LENGTH

eps 30

aeps 100

header 8945 4421

one 594 1634

zero 594 519

ptrail 598

repeat 8949 2187

pre_data_bits 16

pre_data 0xFD

gap 106959

toggle_bit_mask 0x0

begin codes

KEY_VOLUMEDOWN 0x00FF

KEY_PLAYPAUSE 0x807F

KEY_VOLUMEUP 0x40BF

KEY_SETUP 0x20DF

KEY_UP 0xA05F

KEY_STOP 0x609F

KEY_LEFT 0x10EF

KEY_ENTER 0x906F

KEY_RIGHT 0x50AF

KEY_KP0 0x30CF

KEY_DOWN 0xB04F

KEY_BACK 0x708F

KEY_KP1 0x08F7

KEY_KP2 0x8877

KEY_KP3 0x48B7

KEY_KP4 0x28D7

KEY_KP5 0xA857

KEY_KP6 0x6897

KEY_KP7 0x18E7

KEY_KP8 0x9867

KEY_KP9 0x58A7

end codes

end remote

RPi3 + nedvességszenzor értéke + python3

Üdv!
Van egy ilyen szenzor:
http://www.piddlerintheroot.com/soil-moisture-sensor/


#!/usr/bin/python3
import RPi.GPIO as GPIO
import time

#GPIO SETUP
channel = 21
GPIO.setmode(GPIO.BCM)
GPIO.setup(channel, GPIO.IN)

def callback(channel):
if GPIO.input(channel):
print ("No Water Detected!")
else:
print ("Water Detected!")

GPIO.add_event_detect(channel, GPIO.BOTH, bouncetime=300) # let us know when the pin goes HIGH or LOW
GPIO.add_event_callback(channel, callback) # assign function to GPIO PIN, Run function on change

# infinite loop
while True:
time.sleep(1)

A kód működik is, irogatja a "No Water ..." ...stb. üzeneteket.
Hogy tudom az értéket lekérni? Elvileg 0 és 1023 közötti értéket ad vissza nedvességtartalomtól függően. A GPIO.input(channel) csak 0 és 1 értéket ad (AO és DO portokon).

Milyen NAS-t?

Sziasztok!

Keresek NAS-t ilyen feature-val:

* gigabites net csatlakozó
* tudjon raid 1 -et
* legyen benne smb megosztás
* legyen benne upnp szerver (okostévével akarnak tartalmat nézni rajta)
* lehessen rajta futtatni torrentet, lehetőleg valami értelmes web-es vagy androidos felületen amihez nem feltétlenül szükséges külső számítógépet használni (hanem mondjuk okos TV-t), és ez ne fogja le annyira a procit hogy annak más funkciója lássa kárát
* ne kelljen újraindítani naponta
* nagyon jó lenne, ha nem kellene személyesen is odamennem hogy beállítsam (plug and play) de ez nem komoly elvárás, csak "jó lenne" kategória

Nem nekem kell és nincs benne tapasztalatom. Azért kértek meg rá hogy válasszak én, mert én informatikus vagyok. Elsőnek a synology jutott eszembe, de abból is van 1000 fajta meg egyébként is, nem értek én mindenhez attól még hogy informatikus. :-)

Ha valakinek van tuti tippje, akkor ne tartsa magában.

Köszönöm!

Bányászat manapság? - Dayun Zig Z1

Üdv!

Érdeklődnék, hogy mi a véleményetek a topicról. Manapság ebbe érdemes belevágni? Ha igen, milyen valutával, és hogyan?

A címben említett gépet néztem ki, és az áramfogyasztást fixen bruttó 38 Forintnál tudnám tartani, de ennek van realitása szerintetek? Ismeri valaki a fenti gépet? Tapasztalatok?

Köszi a véleményeket.

Arduino x86 SPI kommunikáció segítség kérés

Sziasztok!

Adott az alábbi 3 kód, amit x86 kompatibilissé akarok tenni.
Van egy Intel Galileo-m, de a hozzá vett shield kódját ATmega-ra írták.
Megpróbáltam hát átírni több, de mégis kevesebb sikerrel...
A kód SPI kommunikációval olvas ki biteket az ADC-ből.
A probléma, hogy a 3 kódra több átírást is megpróbáltam, de mégsem tudok kiolvasni semmit...

Tudom hogy itt sok okos ember van. Én meg viszonylag kezdö vagyok ezen a területen.
Tud valaki segíteni?

Kód0:


void AudioHackerClass::begin() {
pinMode(SCK, OUTPUT);
pinMode(MISO, INPUT);
pinMode(MOSI, OUTPUT);
pinMode(SS, OUTPUT);

digitalWrite(SCK, LOW);
digitalWrite(MISO, LOW);
digitalWrite(MOSI, LOW);
digitalWrite(SS, HIGH);

pinMode(SRAM0_SS, OUTPUT);
pinMode(SRAM1_SS, OUTPUT);
pinMode(DAC_SS, OUTPUT);
pinMode(ADC_SS, OUTPUT);

digitalWrite(SRAM0_SS, HIGH);
digitalWrite(SRAM1_SS, HIGH);
digitalWrite(DAC_SS, HIGH);
digitalWrite(ADC_SS, HIGH);

// Configure SPI
SPCR |= _BV(SPE); // enable SPI
SPCR &= ~_BV(SPIE); // SPI interrupts off
SPCR &= ~_BV(DORD); // MSB first
SPCR |= _BV(MSTR); // SPI master mode
SPCR &= ~_BV(CPOL); // leading edge rising
SPCR &= ~_BV(CPHA); // sample on leading edge
SPCR &= ~_BV(SPR1); // speed = clock/4
SPCR &= ~_BV(SPR0);
SPSR |= _BV(SPI2X); // 2X speed

// Disable Timer1 interrupt
TIMSK1 &= ~_BV(TOIE1);

TCCR1A = 0;
TCCR1B = 0;

// Set prescalar to 1;
TCCR1B |= _BV(CS10);

// Enable Timer1 interrupt
TIMSK1 |= _BV(TOIE1);
}

Kód1:


unsigned int AudioHackerClass::readADC() {
unsigned int signal = 0;

SPCR &= ~_BV(SPE); // disable hardware SPI while we bang this out

SELECT_ADC;

// begin sample
NOP;
NOP;
NOP;
NOP;
SCK_HIGH;
NOP;
NOP;
NOP;
NOP;
SCK_LOW;

// second clock
NOP;
NOP;
NOP;
NOP;
SCK_HIGH;
NOP;
NOP;
NOP;
NOP;
SCK_LOW;

// null bit
NOP;
NOP;
NOP;
NOP;
SCK_HIGH;
NOP;
NOP;
NOP;
NOP;
SCK_LOW;

readBit(signal, 11);
readBit(signal, 10);
readBit(signal, 9);
readBit(signal, 8);
readBit(signal, 7);
readBit(signal, 6);
readBit(signal, 5);
readBit(signal, 4);
readBit(signal, 3);
readBit(signal, 2);
readBit(signal, 1);
readBit(signal, 0);

DESELECT_ADC;

SPCR |= _BV(SPE); // enable hardware SPI

return signal;
}

Kód2:


static inline __attribute__((always_inline)) void readBit(uint16_t &v, uint8_t bit) {
NOP;
NOP;
NOP;
SCK_HIGH;
NOP;
NOP;
if (MISO_READ) v |= (1 << bit);
SCK_LOW;
}

Így írtam át:

Kód0:


void AudioHackerClass::begin() {

pinMode(SRAM0_selpin, OUTPUT);
pinMode(SRAM1_selpin, OUTPUT);
pinMode(DAC_selpin, OUTPUT);
pinMode(ADC_selpin, OUTPUT);

digitalWrite(SRAM0_selpin, HIGH);
digitalWrite(SRAM1_selpin, HIGH);
digitalWrite(DAC_selpin, HIGH);
digitalWrite(ADC_selpin, HIGH);

digitalWrite(SS, HIGH);
SPI.begin ();
SPI.setClockDivider(SPI_CLOCK_DIV1);

}

Kód1:

uint16_t AudioHackerClass::readADC() {
uint16_t signal = 0;

digitalWrite(ADC_selpin,HIGH);

digitalWrite(SS, LOW);
signal = SPI.transfer (signal);
digitalWrite(SS, HIGH);

digitalWrite(ADC_selpin,LOW);

return signal;
}

Kód2 (Nincs használva! Az eredeti kód gondolatmente miatt hagytam benn.):

void AudioHackerClass::readBit(uint16_t &v, uint8_t bit) {
digitalWrite(SS, LOW);
SPI.transfer (0x01);
v = SPI.transfer (0);
digitalWrite(SS, HIGH);
}

SBC idősebb embereknek

Sziasztok!

Rokonságomban szükség lenne egy laptop lecserélésére. Ez jelenleg egy képernyőtől fosztott, régi (~10év) laptop. (az előző is ilyen volt). Egyrészt csúnya, másrészt hangos, harmadrészt sok helyet foglal el, negyedrészt szerintem rövidesen megmurdel benne valami.
Felmerült bennem hogy a mostani SBC -s SoC-ok már elég jó teljesítményre képesek, és esetleg jó lenne arra cserélni a gépet (monitor, egér, bill maradna). Ennek előnye az lenne hogy nincs benne ventillátor, és nem kell foglalkozni a ki-bekapcsolásával, és várhatóan jó üzembiztonsággal működne.

Igények:
- böngésző (lehetőleg chrome/chromium), elfogadható sebességgel renderelt weboldalak
- youtube, facebook menjen browserben
- ~5%-ban flash/html5/vagyamimostamenő webes játékok menjenek. Anyósom szereti a casual gameket (zuma, jewel, kártyajátékok és társai).

Alternatívák:
- raspberry pi 3 (nem az új, hanem az első 3-as) + raspbian + valami egyszerűbb, gyorsabb DE, pl. XFCE. Ide azért nem írom az androidot, mert ugyan állítólag van rá android, de én sosem bírtam bebootolni rajta és nem sok kedvem van reszelgetni ezt a cuccot, nem ártana ha tényleg stabilan üzemelne (havonta 1-2x járok arrafele). Egy tartalék rpi3-am már van, így ahhoz nem kell beruházni, csak egy sdkártyát.
- valamilyen más gyártótól származó, de hasonló lap, szintén arm-os debiannal
- valamilyen dobozos, dedikált, "márkásabb" androidos gép

Aki hasonlót összehozott már, attól szivesen várom az ötleteket. Rpi1 óta használom ezeket a gépeket, de soha az életben nem telepítettem desktopos debiant rá, vagy "szerverként" ment, vagy dedikált kodis mediaplayerként.

Köszi!