dissabte, de març 23, 2019

Com extreure el text i les imatges d'un pdf

Entenem que el pdf ńo està protegit i que treballem amb Linux.

Primer treiem el text i les imatges del pdf

1. Text
pdftotext arxiu.pdf arxiu.txt

També podem seleccionar tot el text o copiar-ho amb Ctrl-C i enganxar-ho amb Contrl-V

2. Imatges
pdfimages -f 1 -l 999 -png arxiu.pdf prefix
  -f        : first page to convert
  -l        : last page to convert

3. Per fer una presentació podem fer un Impress enganxant el text a Esquema, el separem en diapositives i afegim les imatges O utilitzar Tiddlywiki

El desem

4. Opcionalment l'importem a google slides

dissabte, de maig 12, 2018

Control Bluetooh amb Arduino

Prova de XBee Shield i Bluetooth
Material per al receptor

Placa Arduino
XBee Shield
Mòdul XBee Bluetooth
Material per a l'emissor
Mòbil Android
Aplicació que envii codis ASCII per Bluetooth (1)

Observacions
En lloc del mòdul XBee serveix un mòdul bluetooth HC-05, HC-06 o HC-07 estàndard. Només l'hem de connectar com s'indica al codi.

Muntatge
Receptor
Munteu les tres plaques.
Col•loqueu l'interruptor del shield en posició USB per poder programar, o be treieu el shield abans de programar i torneu-lo a col·locar desprès.
Carregueu aquest codi:

Codi per Arduino
// Control per BT d'una sortida
// https://maker.pro/arduino/tutorial/bluetooth-basics-how-to-control-led-using-smartphone-arduino
// Connexio
// RX (Pin 0) —> TX
// TX (Pin 1) —> RX
// 5V —> VCC
// GND —> GND

char dades = '0'; // Variable per desar les dades rebudes
char ON = '1'; // Ordre per encendre el LED
char OFF = '0'; // Ordre per apagar el LED
int LED = 13; // Pin Arduino amb el LED que es controla

void setup() {
   Serial.begin(9600); //Sets the data rate in bits per second (baud) for serial data transmission
   pinMode(LED, OUTPUT); //Sets digital pin 13 as output pin
}

void loop() {
   if(Serial.available() > 0) // Send data only when you receive data:
{
   dades = Serial.read(); //Read the incoming data and store it into variable data
   Serial.print(dades); //Print Value inside data in Serial monitor
   Serial.print("\n"); //New line
   if(dades == ON) //Checks whether value of data is equal to ON
      digitalWrite(LED, HIGH); //If value is ON then LED turns ON
   else if(dades == OFF) //Checks whether value of data is equal to OFF
      digitalWrite(LED, LOW); //If value is OFF then LED turns OFF
   }

}
Font del codi Arduino: https://maker.pro/arduino/tutorial/bluetooth-basics-how-to-control-led-using-smartphone-arduino

Col·loqueu l'interruptor en posició XBee per poder comunicar, o bé torneu a connectar el shield.

Emissor
(1) Podeu fer la vostra aplicació o carregar aquesta aplicació al mòbil
https://github.com/Mayoogh/Arduino-Bluetooth-Basic/blob/master/LED%20Controller.apk o bé aquesta:
https://play.google.com/store/apps/details?id=appinventor.ai_tellerimicin.Arduinondroid3led
De fet qualsevol aplicació ens serveix amb tal que sapiguem quins són els codis que envia en prémer cada ordre. L'ideal és utilitzar una aplicació ben documentada que ens ho indiqui. Però si el que us agrada és explorar  territoris inhòspits, és tan fàcil com instal·lar un terminal en el receptor, mostrar els codis que es reben i anotar-los. Si l'aplicació envia els codis d'un amb un, no serà difícil treure'n l'entrellat.

Aparellament
Aparelleu el mòbil amb l'XBee, la contrasenya sol ser 0000 o 1234.

Operació
Utilitzeu l'aplicació per encendre a distància el led 13 de l'Arduino amb les tecles 1 i 0. Podeu canviar les línies 32 i 33 del codi per adaptar-les a la vostre aplicació.

Aplicacions
Podeu utilitzar aquest muntatge per controlar llums, robots o altres dispositius. Podeu fer la vostre aplicació a mida o aprofitar alguna més adient al vostra projecte, com ara aquesta per controlar un robot:
https://play.google.com/store/apps/details?id=appinventor.ai_poddarrupak2808.Rupak_BT_Car

Altres microcontroladors
Podeu fer al mateix amb un microcontrolador PIC tal com s'explica aquí.

Crèdits de la imatge: https://commons.wikimedia.org/wiki/File:Arduino_uno_r3.jpg

dimecres, de maig 02, 2018

Instal·lació de sdcc a Ubuntu 16.04

2a part del taller de simulació

Aquesta és la continuació d'aquest article.

SDCC vol dir Small Device C Compiler

Obrirem la cònsola (Ctrl-Alt-T) i farem:


~$ sudo apt-get update~$ sudo apt-get upgrade~$ sudo apt-get autoclean~$ sudo apt-get autoremove~$ apt-get install bison, flex, boost, g++, stx

Baixarem el darrer tar de https://sourceforge.net/projects/sdcc/
Les instruccions són a l'arxiu README inclòs:

~$ tar -xvjf sdcc-src-3.7.0.tar.bz2
cd sdcc
~/sdcc$ ./configure
~/sdcc$ make


Si el configure dóna error indicarà probablement el paquet que cal instal·lar, desprès de fer-ho, tornarem a fer:

~/sdcc$ ./configure
~/sdcc$ make


Un cop instal·lats el simulador i el compilador, ja podem fer algun programa: https://hackaday.com/2010/11/03/how-to-program-pics-using-linux/ on també trobarem com carregar-ho al microcontrolador.

Si ho preferiu també podeu utilitzar l'entorn de Microchip (R)

Temes relacionats:
1a part: https://galindaines.blogspot.com.es/2018/02/installacio-de-gpsim.html
3a part: https://hackaday.com/2010/11/03/how-to-program-pics-using-linux/
MPLABX: https://101recursosdidactics.blogspot.com/2017/11/installacio-de-mpabx-ubuntu-1404-o.html

dijous, de març 08, 2018

Com fer screencasts amb RecordMyDesktop

RecordMyDesktop és una eina senzilla i potèn per a gravar tutorials a Linux.
Un cop instal·lada:

$ sudo apt-get install recordmydesktop

Si utilitzem l'Unity haurem de desactivar les opcions:
Outline Capture Area On Screen y Reset Capture Area
Que es troben a
Avançat | Miscel·lània
Triem "Escull la finestra" y "Enregistra"
Per aturar la gravació clicarem al botó vermell que sortirà a la barra superior de la pantalla.
També podem donar primer un nom al fitxer triant "Anomena i desa"

Si volem concatenar diversos videos podem utilitzar oggCat:

$ sudo apt-get install oggvideotools

$ oggCat videoConcatenat.ogv primerVideo.ogv segonVideo.ogv


o bé oggz-tools:

$ sudo apt-get install oggz-tools$ oggz-merge -o videoConcatenat.ogv primerVideo.ogv segonVideo.ogv

L'avantatge de oggvideotools és que ens permet per exemple preparar una portada a partir d'una imatge:

$ oggSlideshow portada.png -s1040x720 -f15 -o Benvingut.ogv

I afegir un àudio al vídeo així:

$ oggJoin resultat.ogg video.ogg audio.ogg

L'screencast del post anterior està fet així

dimecres, de febrer 14, 2018

Instal·lació de gpsim / error while loading shared libraries




1a part del taller de simulació
 
gpsim és un simulador GNU per als microcontroladors PIC de Microchip.

La instal·lació d'aquest simulador, a partir dels repositoris fa unes quantes distribucions que no acaba de rutllar però la solució és ben senzilla.

Si l'instal·lem així:
~$ sudo apt-get install gpsim
I a l'executar obtenim aquest error:
~$ gpsim
gpsim: error while loading shared libraries: libgtkextra-x11-3.0.so.7: cannot open shared object file: No such file or directory


Comprovarem que tenim la nova versió de 'libgtkextra-x11', fent
~$ cd /usr/lib/x86_64-linux-gnu
~$ ls -l libgtkextra-x11*

I si obtenim quelcom semblant a:
lrwxrwxrwx 1 root root     28 gen  8  2016 libgtkextra-x11-3.0.so -> libgtkextra-x11-3.0.so.8.0.0

Llavors només cal fer un enllaç simbòlic a la nova versió així:
~$ cd /usr/lib/x86_64-linux-gnu
~$ sudo ln -s libgtkextra-x11-3.0.so.8 libgtkextra-x11-3.0.so.7

I ja podrem arrencar el simulador gpsim sense cap problema.

Per provar l'exemple que es mostra a la imatge podeu:
~$ cd led_test
~$ make (això ensambla el codi)
~$ gpsim -c led_test.stc

A la segona part, instal·larem el compilador

Podeu veure al post següent com hem fet l'screencast

PS: Hem notificat la falla a l'equip de desenvolupament: https://bugs.launchpad.net/ubuntu/+source/gpsim/+bug/1750106

Temes relacionats:
2a part: https://galindaines.blogspot.com.es/2018/05/installacio-de-sdcc-ubuntu-1604.html
Instal·lació de MPABX a Ubuntu 14.04 o superior 
How-to: Program PICs using Linux
Linux terminal only PIC programming

dissabte, de març 28, 2015

Com imprimir en 3D el teu TAC? (Ubuntu / Linux)

El programari obert, GPL2, InVesalius permet importar un arxiu dcm, dicom o Analyze d'una tomografia o TAC i exportar-ho en stl. Funciona a Linux, Mac i ruindous.