PiFace Digital I/O

 

Innehåll.


Tillbaka till Raspberry Pi.
Inledning.
Specifikationer.
PiFace Digital I/O layout.
PiFace Digital I/O portar.
Installation.
Testning.
PiFace Digital I/O och C.
PiFace Digital I/O Emulator.
Funktioner.
Tidtagare.


PiFace Digital I/O


 

Inledning.

Beskrivninga hur man installerar och använder PiFace Digital I/O.
För att programmera PiFace används vanligen Python men här kommer C att användas.
Det har kommit ut en vidareutveckling av PiFace Digital I/O, PiFace Digital I/O 2.

 


 

Specifikationer.

2 Växlande reläer*
4 Tryckknappar
8 Digitala ingångar
- De åtta ingångarna känner av en anslutning till jord (som tillhandahålls på den nionde pinnen).
- De fyra knapparna är kopplade paralellt med de första fyra ingångarna. Ingångarna är satta till 5V. Detta kan slås av så att ingångarna "flyter".
8 Open-Collector utgångar
8 Lysdioder
Grafisk emulator
Lätt att programmera i Python 3 och 2, Scratch och C
Stödjer avbrottshantering

*Reläerna kan användas för att switcha spänningar upp till 20V (Max) eller ström upp till 5A (Max)

 


 

PiFqace Digital I/O Layout.

 

Till början.



 

PiFace Digital I/O portar.

Hur man ansluter externa enheter till PiFace Digital I/O.


Ingångar.

Input

Utgångar.

Output

Reläer.

Relay

 

Till början.



 

Installation.

Det första man måste göra är att uppdatera Raspberry Pi med de senaste:
sudo apt-get update
sudo apt-get upgrade

Börja med att installera följande:
sudo apt-get install python-dev python-gtk2-dev git automake libtool espeak python-django python-simplejson
sudo apt-get install python3-pifacedigital-emulator
sudo reboot
cd piface/python
sudo python setup.py install
sudo modprobe spi-bcm2708

Följande är nödvändigt för att kunna programmera i C.
git clone https://github.com/thomasmacpherson/piface.git
cd piface/c/
./autogen.sh
./configure
make
sudo make install
cd piface/c
sudo apt-get install automake libtool git
sudo ./autogen.sh && ./configure && make && sudo make install
sudo ldconfig

Här finns PiFace egen beskrivning av installation och testning. (Engelska)

Det är bra att installera Geany som är ett GUI som kan vara bra att använda vid utveckling.
sudo apt-get install geany.

 

Till början.



 

Testning.

C pfio modulen kommer som en del av PiFace pythonpaket. Se Installation.

Skapa följande c-program, piface_program.c

/* piface_program.c */
#include <libpiface-1.0/pfio.h>

int main(void)
{
   pfio_init();
   pfio_digital_write(0, 1);
   pfio_deinit();
}


Kompilera programmet med kommando;
gcc -L/usr/local/lib/ -lpiface-1.0 -o piface_program piface_program.c

Exekvera programmet med kommando:
./piface_program



 

Till början.



 

PiFace Digital I/O och C.

Kontrollera att wiringPi är installerat. Paketet finns här: http://wiringpi.com/download-and-install/
Installera wiringPi:
tar xfz wiringPi-98bcb20.tar.gz
cd wiringPi-98bcb20
./build

/* programnamn: piface-blink.c */
/* Kompilera med:
* gcc -L/usr/local/lib -lpiface-1.0 -o piface-blink piface-blink.c
* Stanna programmet med knapp 1.
*/
#include <libpiface-1.0/pfio.h>
#include <unistd.h>
#include <stdint.h>

int main(void)
{
     int i,n;
     pfio_init();
     n = pfio_digital_read(0); // Knapp 1 har nummer 0
     printf("Knapp är %d\n",n);

     while(pfio_digital_read(0) == 0){
         n = pfio_digital_read(0);
         printf("Knapp är %d\n",n);
         for (i=0;i<=7;i++){
             pfio_digital_write(i, 1);
             sleep(1);
             pfio_digital_write(i, 0);
             pfio_digital_write(i+1, 1);
             sleep(1);
             pfio_digital_write(i+1, 0);
         }
     }
     pfio_deinit();
}


PiFace är ett tillbehör till Raspberry Pi som tillför 8 open-collector utgångar, med 2 reläer och 8 ingångar (med 4 on-board tryckknappar). Dessa funktioner är hårdvarumässigt fixerade så att bara read, write och inre pull-up kommandon är implementerade.

GPIO-kommandona för PiFace är hårdkodade från 200 till 207 både för att läsa ingångarna och att skriva till utgångarna.
Om du vill läsa tillståndet på en utgång måste du läsa av från 208 till 215.



Till början.



 

PiFace Digital I/O Emulator.

Installation.
sudo apt-get install python3-pifacedigital-emulatot
Ifall man önskar använda Scratch för Piface-Digital:
sudo apt-get install python3-pifacedigital-scratch-handler

Starta emulatorn genom att i ett terminalfönster skriva:
pifacedigital-emulator
eller genom att klicka på iconen på skrivbordet.
Där på får man klicka på Enable och bocka för Digital Output varpå man sedan kan styra PiFace Digital genom att klicka på knapparna på skärmen. Genom att trycka på de verkliga knapparna kan man se resultatet på skärmen.

PiFace Emulator
PiFace Digital Emulator



Till början.



 

FUNKTIONER.

Här är fuktioner i PiFace Digital I/O.

FUNCTIONS
pfio_deinit()
Deinitialises the Pi Face. This should be called when the Pi Face is no longer needed. After this is called it can be assumed that there ill be persistance of any state of the Pi Face.

pfio_digital_read(pin_number)
Returns the binary value of the specified input pin.

pfio_digital_write(pin_number, value)
Sets the binary value of the specified output pin to the given value. If value is 0 then the pin is set to 0 else, 1.

pfio_get_pin_bit_mask(pin_number)
Returns a bit pattern with a 1 at the specified pin number. 6→0b00100000; 3→0b00000100.

pfio_get_pin_number(bit_pattern)
Returns the lowest pin number from a given bit pattern. 0b00100000→6; 0b01001000→4.

pfio_init()
Initialises the Pi Face. This must be called before any other input/output function.

pfio_read_input()
Returns the input port information as a list. Index 2 contains the port data (binary status of the input pins).

pfio_read_output()
Returns the output port information as a list. Index 2 contains the port data (binary status of the input pins).

pfio_write_output(data)
Writes data to the input port.



Till början.



Tidtagare.

Beskrivning på ett tidtagarprogram för PiFace Digital I/O.
Det är viktigt att man installerat wiringPi och piface, beskrivet ovan.
Programmet kompileras med kommandot make. Detta kräver Makefile nedan.



Makefile.



Till början.