Allgemein | Bücher | OpenStreetMap | Softwaretipps | APN-Einstellungen der wichtigsten Mobilfunkanbieter | Raspberry Pi | Unsere Partner | Warum Handbücher? | Über uns

Tag Archives: Python

LCD-Display am Raspberry Pi mit Scratch steuern

Die aktuelle Raspbian-Version „Jessie“ bietet erstmals eine integrierte GPIO-Unterstützung für Scratch. Allerdings lassen sich damit bis jetzt nur digitale Pins ein- und ausschalten oder abfragen. Eine direkte Ansteuerung der bekannten HD44780-kompatiblen LCD-Module gibt es bisher nicht. Diese lässt sich aber über ein im Hintergrund laufendes Python-Programm leicht nachrüsten.

Die Kommunikation zwischen Python und Scratch erfolgt über das Modul scratch 0.0.1a das über die Kommandozeile nachinstalliert werden muss:

sudo pip install scratch --pre

Das LCD-Modul wird im 4-Bit-Modus an den GPIO-Pins angeschlossen. Wir verwenden ein einfaches zweizeiliges Modul ohne I²C-Schnittstelle.

display01_Steckplatine

Anschlussschema für das LCD-Modul am Raspberry Pi

Ein Python-Programm übernimmt die Steuerung des LCD-Displays und fragt in einer Endlosschleife die Ausgabe von Scratch ab. Das Modul scratch 0.0.1a liefert bei jeder Änderung einer Scratch-Variable oder bei einer „Sende an alle“-Nachricht in Scratch eine Datenstruktur zurück. Das Programm überprüft, ob diese die Felder ‚lcd0‘ oder ‚lcd1‘ enthält und schreibt dann deren Inhalte in die obere bzw. untere Zeile des Displays.

#!/usr/bin/python

import RPi.GPIO as GPIO
import time, scratch
s = scratch.Scratch()

LCD_RS = 7
LCD_E  = 8
LCD_D4 = 25
LCD_D5 = 24
LCD_D6 = 23
LCD_D7 = 18

GPIO.setmode(GPIO.BCM)
GPIO.setup(LCD_E,  GPIO.OUT)
GPIO.setup(LCD_RS, GPIO.OUT)
GPIO.setup(LCD_D4, GPIO.OUT)
GPIO.setup(LCD_D5, GPIO.OUT)
GPIO.setup(LCD_D6, GPIO.OUT)
GPIO.setup(LCD_D7, GPIO.OUT)

LCD_WIDTH = 16
LCD_LINE_1 = 0x80
LCD_LINE_2 = 0xC0
LCD_CHR = True
LCD_CMD = False
E_PULSE = 0.00005
E_DELAY = 0.00005
INIT  = 0.01
pause = 0.01

def lcd_enable():
  time.sleep(E_DELAY)
  GPIO.output(LCD_E, True)
  time.sleep(E_PULSE)
  GPIO.output(LCD_E, False)
  time.sleep(E_DELAY)

def lcd_byte(bits, mode):
  GPIO.output(LCD_RS, mode)
  GPIO.output(LCD_D4, bits&0x10==0x10)
  GPIO.output(LCD_D5, bits&0x20==0x20)
  GPIO.output(LCD_D6, bits&0x40==0x40)
  GPIO.output(LCD_D7, bits&0x80==0x80)
  lcd_enable()
  GPIO.output(LCD_D4, bits&0x01==0x01)
  GPIO.output(LCD_D5, bits&0x02==0x02)
  GPIO.output(LCD_D6, bits&0x04==0x04)
  GPIO.output(LCD_D7, bits&0x08==0x08)
  lcd_enable()

def lcd_string(message):
  message = message.ljust(LCD_WIDTH," ")
  for i in range(LCD_WIDTH):
    lcd_byte(ord(message[i]),LCD_CHR)

LCD_INIT = [0x33, 0x32, 0x28, 0x0C, 0x06, 0x01]
for i in LCD_INIT:
  lcd_byte(i,LCD_CMD)
  time.sleep(INIT)

try:
  while True:
    z = (s.receive())['sensor-update']
    lcd_byte(LCD_LINE_1, LCD_CMD)
    if z.has_key('lcd0'):
      lcd_string(z['lcd0'])
    lcd_byte(LCD_LINE_2, LCD_CMD)
    if z.has_key('lcd1'):
      lcd_string(z['lcd1'])
    time.sleep(pause)
except KeyboardInterrupt:
  GPIO.cleanup()

Das abgebildete Scratch-Programm zeigt eine einfache Digitaluhr auf dem LCD-Display.

Digitaluhr in Scratch mit LCD-Display

Digitaluhr in Scratch mit LCD-Display

Buchtipp:


Der kleine Hacker: Programmieren für Einsteiger.
Mit Scratch schnell und effektiv programmieren lernen.
Links: amazon.deFranzis-Verlag

Merken

Merken

Merken


Pollin LCD-I2C Modul am Raspberry Pi

Pinbelegung des Portexpanders PCF8574

Pinbelegung des Portexpanders PCF8574

Der Elektronikversand Pollin bietet ein preisgünstiges LCD-Modul mit I²C-Steuerung an. In Internetforen findet man diverse Fragen, dieses Modul mit dem Raspberry Pi zu betreiben. Die Antworten sind spärlich oder sehr umständlich.

Mein Artikel auf PCWelt.de zeigt eine einfache Lösung, dieses Modul mit Python am Raspberry Pi anzusteuern. Leider fehlt dort zum Verständnis das Anschlusschema des verwendeten Portexpanders PCF8574.

Der Quelltext des Programms ist bei PCWelt ebenfalls nur schwach zu erkennen und – da als Grafik dargestellt – auch nicht kopierbar.

Python-Script zur Steuerung des Pollin LCD-I2C Modul am Raspberry Pi:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time, smbus, subprocess
bus = smbus.SMBus(1)

DEVICE     = 0x27 
LCD_WIDTH  = 16
LCD_LINE_1 = 0x80
LCD_LINE_2 = 0xC0
LCD_CHR = 1
LCD_CMD = 0
LCD_RS  = 0x10
LCD_E   = 0x40
E_PULSE = 0.00005
E_DELAY = 0.00005
pause = 2

def lcd_byte(bits, mode):
  bus.write_byte(DEVICE,LCD_RS*mode+(bits>>4)+LCD_E)
  time.sleep(E_PULSE)
  bus.write_byte(DEVICE,LCD_RS*mode)
  time.sleep(E_DELAY)
  bus.write_byte(DEVICE,LCD_RS*mode+(bits&0x0F)+LCD_E)
  time.sleep(E_PULSE)
  bus.write_byte(DEVICE,LCD_RS*mode)
  time.sleep(E_DELAY)

def lcd_string(message):
  message = message.ljust(LCD_WIDTH," ")
  for i in range(LCD_WIDTH):
    lcd_byte(ord(message[i]),LCD_CHR)

def lcd_anzeige(z1, z2):
  lcd_byte(LCD_LINE_1, LCD_CMD)
  lcd_string(z1)
  lcd_byte(LCD_LINE_2, LCD_CMD)
  lcd_string(z2)

LCD_INIT = [0x33, 0x32, 0x28, 0x0C, 0x06, 0x01]
for i in LCD_INIT:
  lcd_byte(i,LCD_CMD)

while True:
  zeile1 = time.asctime()
  zeile2 = "IP:" + subprocess.check_output(["hostname","-I"])
  lcd_anzeige(zeile1, zeile2)
  time.sleep(pause)

Franzis Raspberry Pi Maker Kit

65269-8-raspberrry-pi-maker-kit-cover20 Projekte – 62 Bauteile – Programmierung in Scratch und Python

Der Franzis-Verlag schreibt zum neuen Raspberry Pi Maker Kit:
Sie haben bereits einen Raspberry Pi im Einsatz und vielleicht auch schon ein erstes Elektronik-Projekt umgesetzt? Dann sind Sie hier richtig: Dieses Lernpaket bietet alles, um mehr als nur einfache Projekte umzusetzen: 62 Bauteile sowie ein 160-seitiges Handbuch. Nachdem Sie die 20 detailliert beschriebenen Projekte umgesetzt haben, sind Sie bereit für die Welt der Maker.

Ihr Raspberry Pi kann viel mehr, als Sie dachten: Steuern Sie Ihren Minicomputer mit Löffeln, lassen Sie sich Songs auf dem LCD anzeigen oder bauen Sie Ihre eigene Binäruhr. Dank der grafischen Programmiersprache Scratch klappt das alles in kürzester Zeit. Vorkenntnisse in der Programmierung sind nicht notwendig. Falls für Ihre Ideen die GPIO-Anschlüsse nicht ausreichen, lernen Sie in einem Projekt, wie Sie die Ports erweitern.

Der Raspberry Pi – ein PC im Miniformat

Mit dem speziell angepassten Linux ist der Raspberry Pi (nicht im Paket enthalten) ein Strom sparender, lautloser PC-Ersatz. Seine frei programmierbare GPIO-Schnittstelle macht den Raspberry Pi besonders interessant für Hardwarebastler und die Maker-Szene.

Projekte im Raspberry Pi Maker Kit:

  • LED mit Python ein-/ausschalten
  • Erste Projekte mit Scratch
  • GPIO mit Scratch ansteuern
  • Fußgängerampel mit Python und mit Scratch
  • Spielwürfel mit LEDs
  • Scratch-Katze mit GPIO-Tasten steuern
  • Digitaluhr mit Scratch auf dem LC-Display
  • LC-Display mit Python ansteuern
  • LC-Display im 8-Bit-Modus
  • IP-Adresse des Raspberry Pi anzeigen
  • Laufschrift auf dem LCD
  • Erweiterte Statusanzeige
  • Interaktive Statusanzeige mit Tasten
  • Lauflicht mit dem Portexpander
  • Binäruhr
  • CPU-Lastanzeige mit LEDs am Port-Expander
  • LC-Display am Port-Expander
  • LC-Display für RaspBMC Media Center
  • PiKey PiKey – Spiele mit den Fingern steuern

Die 62 Bauteile im Überblick:

  • 3x Steckplatine
  • 1x LCD (2-zeilig)
  • 1x Port-Expander MCP23017
  • 2x LED blau
  • 2x LED gelb
  • 2x LED grün
  • 2x LED orange
  • 2x LED rot
  • 1x Pfostenverbinder
  • 4x Taster
  • 1x 15 kOhm Potenziometer
  • 4x 10 kOhm Widerstand
  • 4x 1 kOhm Widerstand
  • 10x 220 Ohm Widerstand
  • 1x 560 Ohm Widerstand
  • 6x 22 MOhm Widerstand
  • 12x GPIO-Verbindungskabel
  • 2x ca. 1m isolierte Schaltdraht
  • 2x Krokodilkabe

Franzis Raspberry Pi Maker Kit
Autor: Christian Immler
Franzis Verlag
Handbuch: 160 Seiten komplett in Farbe
ISBN: 978-3-645-65269-8 (amazon.de)

 


Linux mit Raspberry Pi

60263-1-Linux-raspberry-pi-coverIm Franzis-Verlag ist ein neues Buch zum Kultcomputer Raspberry Pi erschienen.

Der Verlag schreibt dazu:

Der Raspberry Pi ist ein vollwertiger Computer in der Größe einer Spielkarte. Raspian Wheezy, ein speziell angepasstes Linux mit grafischer Benutzeroberfläche, macht ihn zum stromsparenden, lautlosen PC-Ersatz, der die unterschiedlichsten Anwendungen beherrscht, von der Textverarbeitung bis hin zu CAD.

Ein starkes Team

Aber das ist noch nicht alles – die frei programmierbare GPIO Schnittstelle erfreut des Hardwarebastlers Herz und macht den Raspberry Pi zum idealen Hardwaresteuerungs-Modul. Welche Linux-Befehle Sie benötigen, um das Letzte aus dem Raspberry Pi herauszuholen, zeigt Ihnen dieses Buch.

Linux ist gar nicht schwer

Für Neueinsteiger in die Linuxwelt werden die notwendigen Grundlagen mit praktischen Beispielen zum Nachmachen erläutert. Damit können Sie dann Ihren Desktop-PC getrost abschalten und komplett auf den Raspberry Pi umsteigen. Denn auch Office beherrscht der Minicomputer. Neben der Arbeit soll der Spaß aber nicht zu kurz kommen. Das Thema Spiele, Musik und Film mit dem Raspberry Pi fehlt deswegen natürlich nicht.

Ab ins Wohnzimmer

Der Raspberry Pi vereint alles, was der optimale PC im Wohnzimmer benötigt. Geringe Energieaufnahme, Full HD und kompakte Bauweise. Mit dem notwendigen Linux-Wissen wird aus dem Raspberry Pi schnell ein vollwertiges Medienzentrum – und das zum kleinen Preis.

Aus dem Buch „Linux mit Raspberry Pi“ Inhalt:

  • Raspian Wheezy: Die Linux-Distribution
  • Auf zum ersten Start auf dem Raspberry Pi
  • Warmlaufen: Bilder vom NAS auf den Raspberry Pi holen
  • Browser: Midori, NetSurf und Chromium
  • Wichtige Linux-Kommandozeilenbefehle
  • Speichertuning für bessere Performance
  • Raspberry Pi über das Netzwerk fernsteuern
  • Notebook als Ein- und Ausgabegerät für den Raspberry Pi
  • Programme und Spiele aus dem Pi Store
  • Linux-Paketinstallation über apt-get
  • LibreOffice und CAD auf dem Raspberry Pi
  • Spieleklassiker auf dem Raspberry Pi
  • Emulatoren für Atari800 und Sinclair ZX Spectrum
  • Filme, Musik und Fotos im xbmc Media Center
  • Pi-Point: Raspberry Pi als WLAN-Zugangspunkt
  • Python spielend: Zahlenraten, Würfeln und Labyrinth
  • Hardware über GPIO ansteuern
  • Steckplatine statt Löten
  • BerryClip: Die Erweiterungsplatine

Autor: Christian Immler
Franzis Verlag GmbH
320 Seiten, durchgehend Schwarz-Weiß-Abbildungen
ISBN-10: 3645602631
ISBN-13: 978-3645602631 (amazon.de)
Bei Franzis auch als eBook-Download:
ISBN-13: 978-3-645-20263-32
Linksammlung zum Raspberry Pi


Python Flashcards – deutsche Version

Flashcards-300x211Python ist die ideale Programmiersprache, um den Einstieg in die Programmierung zu erlernen. Nur die Syntax und die Layoutregeln sind etwas gewöhnungsbedürftig.

David Whale, ein englischer Lehrer, bekam im Programmierunterricht von seinen Schülern immer wieder die Frage zu hören, was ein bestimmter „Syntax Error“ denn jetzt schon wieder bedeute. Um sich nicht dauernd mit Kleinigkeiten aufzuhalten, und seinen Schülern lieber bei interessanten Fragestellungen zu helfen, entwickelte er die Python Flashcards, eine Sammlung kleiner „Spickzettel“ mit typischen Syntaxbeispielen für Python.

Ich habe in Absprache mit David Whale diese Python Flashcards übersetzt und biete sie hier unter der gleichen Lizenz zum Download an. Einfach herunterladen, ausdrucken, weitergeben oder neben den eigenen PC legen.

» FlashCards als PDF zur direkten Verwendung

» FlashCards als DOC um sie weiter zu bearbeiten

» FlashCards – Englische Originalversion (Blog von David Whale)


 

Allgemein | Bücher | OpenStreetMap | Softwaretipps | APN-Einstellungen der wichtigsten Mobilfunkanbieter | Raspberry Pi | Unsere Partner | Warum Handbücher? | Über uns

Durch die weitere Nutzung der Seite stimmst du der Verwendung von Cookies zu. Weitere Informationen

Die Cookie-Einstellungen auf dieser Website sind auf "Cookies zulassen" eingestellt, um das beste Surferlebnis zu ermöglichen. Wenn du diese Website ohne Änderung der Cookie-Einstellungen verwendest oder auf "Akzeptieren" klickst, erklärst du sich damit einverstanden.

Schließen