Latest Publications

CentOS 6.5 – Instalarea extensiei SSH2 pentru PHP

  1. Instalarea pachetelor necesare compilarii si instalarii extensiei SSH2:
    yum install gcc make php-devel php-pear libssh2 libssh2-devel
    
  2. Instalarea extensiei:
    pecl install -f ssh2
    

    Apasati [enter] pentru auto-detectarea locatiei librariei libssh2.

  3. Activati incarcarea librariei adaugand in /etc/php.ini linia:
    extension=ssh2.so
    
  4. Reporniti Apache:
    service httpd restart
    

    Verificati eventualele erori cu:

    tail -f /var/log/httpd/error_log
    
  5. Verificati daca totul este in regula folosind:
    php -m | grep ssh2
    

DivIDE pe ICE Felix HC-91

Asa cum mi se intampla de obicei, gasesc uneori cate o placa pe care am cumparat-o cu planuri mari si care a sfarsit prin a aduna praf pe undeva. De data asta a fost vorba despre un kit DivIDE, luat de aici. Probabil faptul ca a venit sub forma de kit m-a facut sa o abandonez pentru asa de multa vreme, insa m-am mobilizat si am lipit cele aproximativ 35 de componente si – culmea – placa functioneaza.
DivIDE HC 91
La cateva luni bune dupa ce am cumparat placa (la care s-a adaugat si timpul mare de livrare), trebuie sa marturisesc faptul ca avand in fata un cablaj fara silk-screen si un pumn de piese m-am simtit destul de dezorientat si mi-a parut rau ca nu am luat o placa deja populata si functionala. Cu toate astea, am trecut la treaba si mi-a fost de mare ajutor imaginea de aici: http://www.divide.cz/files/divide57c_(component_side).png. Un alt dezavantaj al kit-ului este ca memoria eprom nu contine niciun firmware, cateva indicatii fiind disponibile la http://www.divide.cz/index.php?x=howto (pasul 14).

Pe scurt, dupa montarea componentelor pe cablaj, interfata se conecteaza la HC si se trece la transferarea firmware-ului. Aceasta se poate face incarcand in HC cu LOAD “” firmware-ul in format .tap. Personal am folosit winTZX, care nu e cel mai prietenos software dar si-a facut treaba.

Firmware-ul pe care l-am folosit a fost esxdos. HC-ul l-am conectat la laptop folosind un cablu audio obisnuit (jack – jack) pe care l-am taiat si am conectat masa la pinul 2 din mufa DIN a HC-ului si semnalul la pinul 1. Masa (pinul 2) este pinul central din mufa respectiva, iar semnalul il puteti determina fara grija si prin incercari. Pentru firmare-ul esxdos trebuie copiate pe CF-card directoarele BIN si SYS din arhiva si trebuie de asemenea creat directorul TMP.

Dupa incarcarea firmware-ului din formatul .tap, urmati instructiunile de pe ecran. Pe scurt, deconectati jumper-ul E (JP2) si apasati orice tasta. Veti vedea linii colorate pe border, iar la final mesajul 0: OK. Conectati jumper-ul si resetati HC-ul. La restart trebuie sa vedeti logo-ul DivIDE si cateva mesaje de initializare, dupa care puteti accesa esxdos apasand butonul NMI de pe interfata.
HC 91 ICE Felix DivIDE

Desi intentionam sa folosesc esxdos, am testat si firmware-ul FATware, care la mine nu a functionat. De asemenea, initial am incercat sa folosesc un HC91+, in special datorita tastaturii mai bune a acestuia, care speram sa functioneze in modul +2 (JP1 pus), insa nu a mers.
HC91 cu DivIDE pe monitor LCD

Daca vreti sa dati o viata noua HC-ului, probabil aveti nevoie de o interfata DivIDE. Daca ar fi sa o iau de la capat, as cumpara una gata asamblata, pentru a scapa de frustrarile legate de documentatia saraca si de instalarea firmware-ului, insa chiar si asa experienta a fost una interesanta.

Recunoastere vocala/Speech Recognition cu Cubieboard

For an English version please click here.

Am achizitionat in urma cu ceva timp niste placute Cubieboard (doua Cubieboard 1 si una Cubieboard 2). Una dintre ele ruleaza o versiune de Fedora de cateva luni si face ceva la o anumita ora in fiecare zi, scutindu-ma de o sarcina plictisitoare (pe care o puteam automatiza si altfel, e drept). Cu celelalte doua am incercat diverse lucruri, nimic insa deosebit de interesant sau cu rezultate spectaculoase.

Motivat de postarea de aici, care prezinta o metoda de a implementa recunoasterea vocala pe Raspberry Pi, m-am gandit sa incerc ceva similar pe Cubieboard.
Cubieboard

Ca si in articolul mentionat, am folosit un webcam (foarte ieftin, luat de la Carrefour cu 40 de lei) cu microfon integrat. Se pare ca pe eMag as fi gasit chiar si mai ieftin, insa modelul pe care il am (CNR-FWC113) functioneaza perfect. Trebuie sa mentionez pentru exactitate ca placuta Cubieboard are o intrare de tip line-in, care probabil poate fi folosita, impreuna cu un preamplificator si un microfon obisnuit.

Din (restransa) mea experienta cu Cubieboard, am ajuns la concluzia ca e foarte important sistemul de operare folosit. Exista o multitudine de imagini, dintre cele mai diverse, de la distributii comune pana le unele mai exotice, insa multe dintre ele nu sunt destul de mature pentru a fi folosite fara probleme. Pentru acest proiect am folosit cu succes Cubian. Imaginea Cubian pentru SD-card poate fi descarcata aici: http://cubian.org/downloads/. Am folosit ultima versiune disponibila, care in momentul in care scriu aceste randuri este Cubian-base-r7-arm-a10.img.7z.

Imaginea se instaleaza pe SD-card la fel ca orice alta imagine pentru Cubieboard sau Raspberry Pi. Pasii care trebuie urmati sunt disponibili aici: https://github.com/cubieplayer/cubian/wiki/Install-Cubian. Personal am folosit Win32 Disk Imager in loc de Image Writer, dar presupun ca Image Writer este la fel de bun.

Pentru aceasta distributie, portul SSH este 36000, numele de utilizator cubie si parola cubie.

Puteti verifica daca webcam-ul este recunoscut folosind comanda:

arecord -L [enter]

Ar trebui sa obtineti ceva similar cu:

null
    Discard all samples (playback) or generate zero samples (capture)
default:CARD=sunxicodec
    sunxi-CODEC, sunxi PCM
    Default Audio Device
sysdefault:CARD=sunxicodec
    sunxi-CODEC, sunxi PCM
    Default Audio Device
default:CARD=Camera
    USB 2.0 Camera, USB Audio
    Default Audio Device
sysdefault:CARD=Camera
    USB 2.0 Camera, USB Audio
    Default Audio Device
front:CARD=Camera,DEV=0
    USB 2.0 Camera, USB Audio
    Front speakers
surround40:CARD=Camera,DEV=0
    USB 2.0 Camera, USB Audio
    4.0 Surround output to Front and Rear speakers
surround41:CARD=Camera,DEV=0
    USB 2.0 Camera, USB Audio
    4.1 Surround output to Front, Rear and Subwoofer speakers
surround50:CARD=Camera,DEV=0
    USB 2.0 Camera, USB Audio
    5.0 Surround output to Front, Center and Rear speakers
surround51:CARD=Camera,DEV=0
    USB 2.0 Camera, USB Audio
    5.1 Surround output to Front, Center, Rear and Subwoofer speakers
surround71:CARD=Camera,DEV=0
    USB 2.0 Camera, USB Audio
    7.1 Surround output to Front, Center, Side, Rear and Woofer speakers
iec958:CARD=Camera,DEV=0
    USB 2.0 Camera, USB Audio
    IEC958 (S/PDIF) Digital Audio Output

La fel ca in tutorialul pentru Raspberry Pi, am folosit functiile de recunoastere vocala puse la dispozitie de Google. Mai intai e nevoie sa instalam ffmpeg folosind:

sudo apt-get install ffmpeg [enter]

Scriptul folosit pe Raspberry Pi functioneaza fara modificari pe Cubieboard:

#!/bin/bash
 
echo "Recording... Press Ctrl+C to Stop."
arecord -D "plughw:1,0" -q -f cd -t wav | ffmpeg -loglevel panic -y -i - -ar 16000 -acodec flac file.flac  > /dev/null 2>&1
echo "Processing..."
wget -q -U "Mozilla/5.0" --post-file file.flac --header "Content-Type: audio/x-flac; rate=16000" -O - "http://www.google.com/speech-api/v1/recognize?lang=ro-ro&client=chromium" | cut -d\" -$
echo -n "You Said: "
cat stt.txt
rm file.flac  > /dev/null 2>&1

sursa script — am modificat numai parametrul lang din en-us in ro-ro

Script-ul trebuie salvat intr-un fisier (ex. stt.sh) si facut ulterior executabil cu comanda:

chmod +x stt.sh [enter]

Apoi trebuie pornit si urmate instructiunile de pe ecran:

./stt.sh [enter]

Daca totul functioneaza corect, ar trebui sa obtineti ceva similar cu imaginea urmatoare:
Cubieboard Voice

Mie mi se pare ca functioneaza uimitor de bine pentru limba romana, nu stiam ca recunoastrea vocala este acum atat de precisa si de accesibila. Tutorialul pentru Raspberry Pi merge si mai departe, integrand niste “inteligenta” si un motor text to speech, astfel ca sistemul sa si raspunda, cu voce umana. Eu nu am testat si functiile astea dar sunt sigur ca functioneaza.

O varianta in engleza a acestui articol a fost publicata aici.