Difference between revisions of "Das Elektronik Buch"

From ThorstensHome
Jump to: navigation, search
 
(13 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Es gibt [http://www.franzis.de/elektronik/lernpakete-elektronik/lernpaket-elektronik-start-mit-usb 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. Die Platine ist dann unter Linux z.B. als /dev/ttyUSB0 ansprechbar. Auf der Platine kann man elektronische Schaltungen stecken.
+
Von mir gibt's im [http://www.amazon.de/Lernpaket-Mikrokontroller-mit-Linux-Python/dp/3645651616/ref=sr_1_6?ie=UTF8&qid=1383063176&sr=8-6&keywords=elektronik+mit+linux Internet] einen kleinen Bausatz (mit Buch) für Elektronik und Linux. Kernstück ist eine USB-gesteuerte [[FTDI]]-Platine wie diese:
  
= Blinker =
+
[[File:ftdi.png|50%]]
So schnell wie möglich blinken:
+
<pre>
+
import serial,glob
+
  
for devices in glob.glob("/dev/ttyUSB*"):
+
Die Platine ist dann unter Linux als Gerät ansprechbar. Das Buch zeigt, wie man auf der Platine elektronische Schaltungen stecken und mit Linux steuern kann. Dadurch wird es möglich
    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:
+
* [[Das_Elektronik_Buch/Ubuntu|Die Experimente unter Ubuntu Linux zum laufen bringen]]
<pre>
+
* [[Das_Elektronik_Buch/blinker|Einen Blinker zu bauen]]
import serial,glob,time
+
* [[Dimmer|Einen Dimmer zu bauen]]
 
+
* [[Ampel|Eine Ampel zu bauen]]
for devices in glob.glob("/dev/ttyUSB*"):
+
* [[Lauscher.cpp|Ein USB Kabel zu belauschen]]
    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); // set, switch off light;
+
      ioctl(port, TIOCMSET, &status2); // clear
+
    }
+
}
+
</pre>
+
Compilieren mit
+
gcc blink.c
+
Ausfuehren mit
+
./a.out
+
 
+
Dauert immer noch 4 Sekunden.
+
  
 
= See also =
 
= See also =
 
* [[ftdi]]
 
* [[ftdi]]
 
* http://electroments.blogspot.de/
 
* http://electroments.blogspot.de/
 +
* [http://halvar.at/elektronik/motorsteuerung_mit_attiny13/ Motorsteuerung]
 +
* [http://www.avr-asm-tutorial.net/avr_de/seminar2/Seminar2.pdf PWM etc Seminar]
  
 
[[Category:German]]
 
[[Category:German]]

Latest revision as of 15:03, 2 February 2014

Von mir gibt's im Internet einen kleinen Bausatz (mit Buch) für Elektronik und Linux. Kernstück ist eine USB-gesteuerte FTDI-Platine wie diese:

50%

Die Platine ist dann unter Linux als Gerät ansprechbar. Das Buch zeigt, wie man auf der Platine elektronische Schaltungen stecken und mit Linux steuern kann. Dadurch wird es möglich

See also