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

Tag Archives: Maker

Franzis Maker Kit Minecraft

Das neue Franzis Maker Kit für Minecraft auf dem Raspberry Pi

Der Verlag schreibt dazu:
Minecraft™ ist eines der beliebtesten Computerspiele der Welt. Die offene 3D-Spielwelt, in der jeder mit würfelförmigen Blöcken Landschaften bauen und eigene Träume verwirklichen kann, fasziniert bis heute über 100 Millionen Spieler. Mit dem Franzis Maker Kit Minecraft™ können Sie die analoge mit der digitalen Welt verknüpfen und mit Minecraft™ Elektronik ansteuern.

Schaffen Sie mit dem Raspberry Pi Ihre eigene Minecraft™-Welt

Neben den bekannten Versionen für PC, iOS und weitere Systeme ist Minecraft™ auch für den weit verbreiteten Minicomputer Raspberry Pi erhältlich. Und diese Version bietet einen großen Vorteil: Über eine offene Programmierschnittstelle können Sie in der auf dem Raspberry Pi vorinstallierten Programmiersprache Python Plug-ins erstellen und die Minecraft™-Welt über externe Hardware modifizieren. So lassen sich mithilfe der Spielfigur Steve beispielsweise LEDs steuern, und über Sensorkontakte aus Knete können Sie Blöcke in der Spielwelt zum Leuchten bringen.

Das Franzis Maker Kit enthält 14 Programmierprojekte für Minecraft™ auf dem Raspberry Pi, viele davon mit Hardwareansteuerung. Alle benötigten Bauteile sind im Paket enthalten. Die Programme laufen auf dem Raspberry Pi 2 oder 3 mit der aktuellen Raspbian-Version. Das umfangreiche Handbuch mit 144 Seiten und zahlreichen Abbildungen gibt ausführliche Schritt-für-Schritt-Anleitungen – dem Programmiererlebnis und Spielspaß sind keine Grenzen gesetzt.

Aus dem Inhalt des Lernpakets

  • LED mit Minecraft™ zum Leuchten bringen
  • LED blinkt mit Python
  • Grundlagen der Programmierung mit Minecraft™
  • Eine Ampel in der Minecraft™-Welt bauen
  • Eine Ampel in Minecraft™ zum Leuchten bringen
  • Fußgängerampel mit Taster
  • Schaltung der Fußgängerampel mit dem Schwert
  • Minecraft™-Blöcke mit Tasten bauen
  • LEDs dimmen
  • Mithilfe von LEDs anzeigen, wo die Spielfigur im Gelände steht
  • Sensorkontakte aus Knete
  • RGB-LEDs steuern
  • RGB-LED mit PWM steuern
  • Einen Spielwürfel in Minecraft™ simulieren
  • Spielwürfel mit Minecraft™-Blöcken und LEDs
  • Gamepad zur Steuerung der Spielfigur
  • Minispiel Goldsuche

Autor: Christian Immler
Franzis Maker Kit Minecraft™ (amazon.de)

Merken

Merken


Programmieren lernen mit dem Calliope mini

Im Franzis-Verlag ist ein neues Buch erschienen.

Der kleine Hacker – Programmieren lernen mit dem Calliope mini

Der Verlag schreibt dazu:

Du benutzt jeden Tag Computer, Tablet, Smartphone und Co. und willst dich endlich mal mit dem befassen, was dahinter steckt? Wenn du selbst coole Lichteffekte oder ein richtiges Spiel programmieren möchtest, bist du mit dem Calliope mini und diesem Buch genau richtig, denn hier erfährst du, jenseits aller trockenen Lehrpläne, was das Programmieren mit der neuen Platine so faszinierend macht.

Kleine Platine mit großer Wirkung

Eine Besonderheit des Calliope mini sind die vielen Zusatzteile, die bereits fest angebaut sind: ein Feld mit 25 LEDs, zwei Taster, eine RGB-LED für bunte Farben, ein Lautsprecher, ein Bewegungssensor und vieles mehr. Alle diese Teile müssen bei anderen Mikrocontroller erst zusätzlich angeschlossen werden.

Programmieren für die echte Welt

Um mit dem Calliope mini loszulegen, brauchst du nicht erst kompliziert Programme auf dem Computer zu installieren, denn die drei für den Calliope geeigneten grafischen Editoren – der Calliope mini Editor, Microsofts PXT und das Open Roberta Lab – lassen sich bequem aus deinem Webbrowser bedienen. Und nach den ersten Schritten geht es gleich ans Eingemachte: Ob Diskolicht oder Thermometer, Alarmanlage, eine magische Billardkugel oder der Spieleklassiker Space Invaders – mit dem Calliope mini und diesem Buch kommt garantiert keine Langeweile auf.

Diese Projekte setzt du um:

  • Diskolicht
  • Thermometer und Lichtstärkemessung
  • Alarmanlage
  • Die magische Billardkugel
  • Space Invaders

… und das machst du außerdem:

  • Farblichteffekte mit der RGB-LED erzeugen
  • Einmaleins-Trainer
  • Stimmungstrainer mit Musik
  • Bedienung der Sensorkontakte
  • Geheime Botschaften mit Funk übertragen
  • Reaktionsspiel mit LEDs

Autor: Christian Immler
ISBN: 978-3-645-60559-5 (amazon.de)
Auch als PDF-Download (franzis.de)


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)

 

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

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