Difference between revisions of "Das Elektronik Buch"

From ThorstensHome
Jump to: navigation, search
Line 5: Line 5:
 
Die Platine ist dann unter Linux z.B. als /dev/ttyUSB0 ansprechbar. Auf der Platine kann man elektronische Schaltungen stecken und dann mit Linux steuern. So habe ich zum Beispiel einen Motor an- und ausgeschaltet.
 
Die Platine ist dann unter Linux z.B. als /dev/ttyUSB0 ansprechbar. Auf der Platine kann man elektronische Schaltungen stecken und dann mit Linux steuern. So habe ich zum Beispiel einen Motor an- und ausgeschaltet.
  
= Blinker =
+
* [[Das_Elektronik_Buch/blinker|Einen Blinker bauen]]
So schnell wie möglich blinken:
+
<pre>
+
import serial,glob
+
 
+
for devices in glob.glob("/dev/ttyUSB*"):
+
    garbage=42 # appease python
+
conn = serial.Serial(devices, baudrate=9600)
+
while True:
+
    conn.setDTR(False)
+
    conn.setDTR(True)
+
</pre>
+
 
+
Ok, das flackert... Also mal ausprobiert, wie lange 1000 Schaltoperationen auf DTR dauern:
+
<pre>
+
import serial,glob,time
+
 
+
for devices in glob.glob("/dev/ttyUSB*"):
+
    garbage=42 # appease python
+
conn = serial.Serial(devices, baudrate=9600)
+
print time.time()
+
for i in range(1,1000):
+
    conn.setDTR(False)
+
    conn.setDTR(True)
+
print time.time()
+
</pre>
+
Dauern 4 Sekunden bei mir... das ist zu lange. Probieren wir es in C.
+
 
+
== blink.c ==
+
<pre>
+
#include <sys/ioctl.h>
+
#include <fcntl.h>
+
 
+
int main()
+
{
+
    int port, i, status1, status2;
+
    port=open("/dev/ttyUSB0", O_RDWR|O_NOCTTY|O_NONBLOCK);
+
    ioctl(port, TIOCMGET, &status1);
+
    status2=status1;
+
    status1 |= TIOCM_DTR;
+
    status2 &= ~TIOCM_DTR;
+
    for (i=1;i<1000;i++)
+
    {
+
      ioctl(port, TIOCMSET, &status1);
+
      ioctl(port, TIOCMSET, &status2);
+
    }
+
}
+
</pre>
+
Compilieren mit
+
gcc blink.c
+
Ausfuehren mit
+
./a.out
+
 
+
Dauert immer noch 4 Sekunden.
+
  
 
= See also =
 
= See also =

Revision as of 11:29, 21 April 2013

Es gibt dieses Buch-Paket, mit dem ich hier ein paar Linux-Experimente unternehmen will. Das Buch enthält eine Platine mit FTDI chip, die man an einen USB Port anschließen kann:

Ftdi.png

Die Platine ist dann unter Linux z.B. als /dev/ttyUSB0 ansprechbar. Auf der Platine kann man elektronische Schaltungen stecken und dann mit Linux steuern. So habe ich zum Beispiel einen Motor an- und ausgeschaltet.

See also