12
mitp Professional Raspberry Pi programmieren mit Python Bearbeitet von Michael Weigend 1. Auflage 2013. Taschenbuch. 448 S. Paperback ISBN 978 3 8266 9474 5 Format (B x L): 17 x 24 cm Gewicht: 762 g Weitere Fachgebiete > EDV, Informatik > Hardwaretechnische Grundlagen Zu Inhaltsverzeichnis schnell und portofrei erhältlich bei Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft. Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programm durch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr als 8 Millionen Produkte.

Raspberry Pi programmieren mit Python - ReadingSample

  • Upload
    others

  • View
    32

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Raspberry Pi programmieren mit Python - ReadingSample

mitp Professional

Raspberry Pi programmieren mit Python

Bearbeitet vonMichael Weigend

1. Auflage 2013. Taschenbuch. 448 S. PaperbackISBN 978 3 8266 9474 5

Format (B x L): 17 x 24 cmGewicht: 762 g

Weitere Fachgebiete > EDV, Informatik > Hardwaretechnische Grundlagen

Zu Inhaltsverzeichnis

schnell und portofrei erhältlich bei

Die Online-Fachbuchhandlung beck-shop.de ist spezialisiert auf Fachbücher, insbesondere Recht, Steuern und Wirtschaft.Im Sortiment finden Sie alle Medien (Bücher, Zeitschriften, CDs, eBooks, etc.) aller Verlage. Ergänzt wird das Programmdurch Services wie Neuerscheinungsdienst oder Zusammenstellungen von Büchern zu Sonderpreisen. Der Shop führt mehr

als 8 Millionen Produkte.

Page 2: Raspberry Pi programmieren mit Python - ReadingSample
Page 3: Raspberry Pi programmieren mit Python - ReadingSample

439

Stichwortverzeichnis

Numerisch1-Wire-Bus 311

Aaction 396add_cascade() 195add_checkbutton() 195add_command() 195add_radiobutton() 195add_separator() 195Aggregat 275Aggregation 275Akku 325Aktueller Parameter 133Alarmanlage (Projekt) 78Alias 106Alphabet (Projekt) 272anchor 175Anweisungsblock 136Application Launch Bar 422Argument 30, 133asctime() 243Ausdruck 24

regulärer 231Ausführbar 57Ausführbar machen 390Autosimulator 339Autostart 251, 433

BBackground 292backward() 153Bedingung 64Beenden 388Benutzungsoberfläche

grafische 169Betriebssystem

installieren 420Bewegung erfassen (Projekt) 357Bezeichner 38

Syntaxregeln 38

Binärmodus 209BINARY(n) 403bind() 250Birnen oder Tomaten (Projekt) 367Bitverarbeitung 333Blinken (Projekt) 84Blinklicht 75Body-Mass-Index 68Boolescher Ausdruck 83Botschaft 104Breadboard 40break 74, 95Breakout-Board 429Built-in function 30, 133Bytestring 102

CCanvas (Klasse) 281

Methoden 284Canvas (Objekt) 281Casting 92CGI-Skript 382, 388

ausführbar machen 390Debugging 392Probleme 391

cgitb 392Channel 120chdir () 252check 395Checkbutton 183Clock 294close() 205Colorimetrie 374Comprehension 111CREATE TABLE 403crop() 254CSI-Verbinder 350

DDämon 382Datei 205

© des Titels »Raspberry Pi programmieren mit Python« (ISBN 978-3-8266-9474-5) 2014 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.

Nähere Informationen unter: http://www.mitp.de/9474

Page 4: Raspberry Pi programmieren mit Python - ReadingSample

Stichwortverzeichnis

440

Datenbank 402relationale 402

def 136Dialogbox 217Dictionary 90, 122

Operationen 124Digitaler Bilderrahmen (Projekt) 251Digitales Thermometer (Projekt) 316Digitaluhr (Projekt) 244Display 294Docstring 138Drumscore 114DS1820 311dump() 209Dynamic Domain Name System 398

EEditor 211Editor mit Pulldown-Menüs (Projekt) 194Einschalten 421Einzelbild 352Elektrostatik 349elif 70else 69Entry 180Epoche 243EPROM 206Erweiterte Zuweisung 39Escape-Sequenz 101EVA-Prinzip 59Event 250Eventhandler 250Event-Sequenz 250except 210Exponentialschreibweise 28

FFarbmixer (Projekt) 192FieldStorage 396File 205

Modus 205File-Manager 57fill 175findall() 233Flachbandkabel 428Flash-Technik 206float 28for 94Format 60

Formatierungsoperator % 103Formular 394Freie Literatur 230Freies Obst (Projekt) 405frozenset 117Fünf Sekunden stoppen und gewinnen (Pro-

jekt) 241Funktion 133

Definition 136Kopf 136Körper 136mathematische 29Parameter 133Parameterübergabe 139voreingestellter Parameterwert 141

Funktionskopf 136Funktionskörper 136Fußschalter 279

GGehäuse 419Gerät

steuern 40Gerichtete Bewegungen (Projekt) 360getcwd() 252Get-Methode 394getPixel() 254Gleitkommazahl 28Glückskeks (Projekt) 186gmtime() 243Goethe oder Schiller (Projekt) 225GPIO 41, 74, 425Grafische Benutzungsoberfläche 169Graph 126Grid-Layout 174, 188

Optionen 189GUI 169

HHangman 198Hardware-Ausstattung 419Häufigkeit von Buchstaben (Projekt) 118Heißeste Stelle im Raum 338Hexadezimalsystem 27hidden 395Hilfe 34Holzklammer 75Hotkey siehe TastenkombinationHTML 383

© des Titels »Raspberry Pi programmieren mit Python« (ISBN 978-3-8266-9474-5) 2014 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.

Nähere Informationen unter: http://www.mitp.de/9474

Page 5: Raspberry Pi programmieren mit Python - ReadingSample

Stichwortverzeichnis

441

IIDLE 21if 67ifconfig 379Indent Region 68Index 90, 97Indizierung 97input() 61INSERT INTO 403Instanz 106int 26Interaktive Webseite 393IP-Nummer 379Item 91, 123, 281

Koordinaten 281Iteration 94Iterierbar 92

JJumperkabel 40

KKamera 349Kameramodul 349Kameraoptionen testen (Projekt) 353Karteikasten (Projekt) 210kill 388Klasse 106, 271Klassendefinition 271Klopfzeichen (Projekt) 113Knoten 127Koch-Schneeflocke (Projekt) 157Kollektion

Operationen 91Kommentar 61Komplexe Zahl 29Konkatenation 96Kontrollvariable 183, 184Kopie 106Krimiautomat (Projekt) 180Küchentablett 325Kundenberatung (Projekt) 93Kürzester Weg (Projekt) 126

LLabel 172Laden 206Lauf-Simulation (Projekt) 289Layout-Management 173

LED (Projekt) 40Lesbare Zufallspasswörter (Projekt) 98listdir () 252Liste 90, 104

Operationen 107Literal 25, 90Literatur

freie 230load() 209localtime() 243Lostrommel (Projekt) 170LXTerminal 423

MMAC-Adresse 379Magic Line 58Magic line 170Magische Methode 368Mathematische Funktion 29Memory-Stick 325Menge 90, 117Menu

Optionen der Choices 196Messagebox 218Messwertaufzeichnung 326Messwerterfassung 316Methode 105

magische 368Mobile Datenerfassung (Projekt) 325Mobile Stromversorgung 384modprobe 313Modul 31, 298

anlegen 298Speicherort 300

Modulo 24Morsen (Projekt) 124MPC3008 329

NName 35nobody 399nohup 387NTC 426

OObjekt 271

Wahrheitswert 71Objektorientierte Programmierung 271Oktalsystem 27

© des Titels »Raspberry Pi programmieren mit Python« (ISBN 978-3-8266-9474-5) 2014 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.

Nähere Informationen unter: http://www.mitp.de/9474

Page 6: Raspberry Pi programmieren mit Python - ReadingSample

Stichwortverzeichnis

442

Online-Datenbank 405open() 205Operator 24

Vergleichsoperator 64os 252os.path 252

PPacker 174Parameter 30, 133

aktueller 133beliebige Anzahl 142

Parameterliste 136Parameterübergabe 139, 141Parameterwert

voreingestellter 141password 395Passwort 98pcmanfm 433pendown() 153Pfostenverbinder 428PhotoImage 175, 177

zoom() 178pickle 209PiFace

digitale Eingänge 78Relais 45

PiFace Digital 43PIL.Image

crop() 254load() 254resize() 255save() 255size 255

Placer 174Plotter 321Plotter (Projekt) 320Polymorphie 368Pong (Projekt) 278Port 381Positionsargument 134Potenz 25Potenziometer 329PPM 176print() 62

Zeilenwechsel unterdrücken 63Privilegiertes Recht 399Programm

starten 55Programmierung

objektorientierte 271

Programmverzweigung 63Projekt

Alarmanlage 78Alphabet 272Bewegung erfassen 357Birnen oder Tomaten 367Blinken 84Digitaler Bilderrahmen 251Digitales Thermometer 316Digitaluhr 244Editor mit Pulldown-Menüs 194Farbmixer 192Freies Obst 405Fünf Sekunden stoppen und gewinnen

241Gerichtete Bewegungen 360Glückskeks 186Goethe oder Schiller 225Häufigkeit von Buchstaben 118Kameraoptionen testen 353Karteikasten 210Klopfzeichen 113Koch-Schneeflocke 157Krimiautomat 180Kundenberatung 93Kürzester Weg 126Lauf-Simulation 289LED 40Lesbare Zufallspasswörter 98Lostrommel 170Mobile Datenerfassung 325Morsen 124Plotter 320Pong 278Pythagorasbaum 155Quicksort 150Quiz 83Rechenquiz 189Rekursive Spirale aus Quadraten 153Rekursive Summe 149Renn, Lola renn 289Schiller 225Schwarzweißmalerei 179Sichere Kommunikation 93Sierpinski-Teppich 159Staumelder 233Stoppuhr 261Taschenlampe 45Telefonliste 110Überwachungskamera 355

© des Titels »Raspberry Pi programmieren mit Python« (ISBN 978-3-8266-9474-5) 2014 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.

Nähere Informationen unter: http://www.mitp.de/9474

Page 7: Raspberry Pi programmieren mit Python - ReadingSample

Stichwortverzeichnis

443

Urlaubsgrüße 184Visueller Zufallsgenerator 176Wahrnehmungstest 257Webcam 384Zahlenraten 73Zufallsnamen 109Zufallssounds 119

Prozedur 144Prozess

beenden 388Prozess? 245PSF 19Pulldown-Menü 195put() 178PuTTY 381pygame 120, 308pygame.mixer 120Pythagorasbaum (Projekt) 155Python 19

Shell 21Versionen 20

Python Imaging Library (PIL) 253Python Software Foundation 19

QQuerystring 394Quicksort (Projekt) 150Quiz (Projekt) 83

RRadiobutton 183range() 112raspistill 351raspivid 351raspiyuv 351Rasterbild 199Rechenquiz (Projekt) 189Recht

privilegiertes 399Reed-Schalter 80Regulärer Ausdruck 231Rekursive Spirale aus Quadraten (Projekt) 153Rekursive Summe (Projekt) 149Relais 81, 400Relationale Datenbank 402rename () 253Renn, Lola renn (Projekt) 289Rossum, Guido van 19RPI.GPIO 42

RTC 245run module 54

SScale 193Schalter 75Schieberegler 193Schiller oder Goethe(Projekt) 225Schleife 72Schlüssel 124Schlüsselwort-Argument 63, 134Schwarzweißmalerei (Projekt) 179Schwellwertverfahren 179SDHC 206SD-Karte 206Seiteneffekt 148self 274Sensor 311Sequenz 90, 96

Index 97Indizierung 97Slicing 97Vervielfältigung 96

set 117Shebang 58Shell 21Shell-Fenster 54Shiftoperation 333Shortcuts siehe Tastenkombinationshowturtle() 153Sichere Kommunikation (Projekt) 93side 175Sierpinski-Teppich (Projekt) 159Skript 53sleep() 244Slicing 97Software

Download 420Sound 120Spannung messen 329speed() 153Speichern 205SPI-Protokoll 331SQL 403sqlite3 402SSH 381start_new_thread() 247Starten 421Staumelder (Projekt) 233

© des Titels »Raspberry Pi programmieren mit Python« (ISBN 978-3-8266-9474-5) 2014 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.

Nähere Informationen unter: http://www.mitp.de/9474

Page 8: Raspberry Pi programmieren mit Python - ReadingSample

Stichwortverzeichnis

444

Steckplatine 40, 425Stoppuhr (Projekt) 261String 101

Methoden 226StringIO 361Stromversorgung

mobile 384submit 395subprocess 361suid-Bit 400Switch 292Syntax-Highlighting 54

TTaschenlampe (Projekt) 45Taschenrechner 24Tastenkombination 23, 55Telefonliste (Projekt) 110Temperatursensor 311Temperatur-Zeitdiagramm 320Term 24Text-Widget 181Thermoelement 311Thread 245_thread 246time 243time() 244tkinter 169tkinter.filedialog 218try 210Tupel 91, 100Turtle-Grafik 151Typ 106Typhierarchie 89

UÜberladen 368Übersetzen 410Überwachungskamera (Projekt) 355UML-Klassendiagramm 274URL 224Urlaubsgrüße (Projekt) 184urllib.request 224urlopen() 224

VVARCHAR 403Verbose mode 350Vererbung 271, 276Vergleichsoperator 64Verpackung 419Verzweigung 67

einseitig 67zweiseitig 69

Visueller Zufallsgenerator (Projekt) 176Vollbildmodus 247Voreingestellter Parameterwert 141

WWahrnehmungstest (Projekt) 257Wear leveling 207Webcam (Projekt) 384Webseite

interaktive 393Webserver 379Wheezy 422while 72Widerstand 40Widget 169, 172

Aussehen 173Wiederholung 72WiFi-Adapter 379WLAN 379write() 205

ZZahl 25

komplexe 29Zahlenraten (Projekt) 73Zahlenschloss 265Zähler 77Zeichenkette 101Zeit 241Zeiteinstellung 264Zeit-Objekt 243Zufallsfunktion 108Zufallsnamen (Projekt) 109Zufallssounds (Projekt) 119Zusicherung 146Zuweisung

erweiterte 39Zuweisungsoperator 35

© des Titels »Raspberry Pi programmieren mit Python« (ISBN 978-3-8266-9474-5) 2014 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.

Nähere Informationen unter: http://www.mitp.de/9474

Page 9: Raspberry Pi programmieren mit Python - ReadingSample

Thomas Brühlmann2. Aufl age

Probekapitel und Infos erhalten Sie unter: www.mitp.de/9116

Arduino besteht aus einem Microcontrol-ler und der dazugehörigen kostenlosen Programmierumgebung. Aufgrund der einfachen C-ähnlichen Programmierspra-che eignet sich die Arduino-Umgebung für alle, die auf einfache Weise Microcontrol-ler programmieren möchten, ohne gleich Technik-Freaks zu sein, also insbesondere Hobbybastler, Künstler und Designer.Dieses Buch ermöglicht einen leichten Einstieg in das sogenannte Physical Com-puting. Der Autor bietet Ihnen eine praxis-nahe Einführung und zeigt anhand vieler Beispiele, wie man digitale und analoge Signale über die Eingangs- und Ausgangs-ports verarbeitet.Darüber hinaus lernen Sie, wie man ver-schiedene Sensoren wie Temperatur-, Beschleunigungs- und optische Sensoren für Anwendungen mit dem Arduino-Board einsetzen kann. Anschließend werden Servo- und Motoranwendungen beschrie-ben. Dabei wird ein kleiner Roboter rea-lisiert, der mit einem Wii-Bedienelement gesteuert werden kann.

Im Praxiskapitel beschreibt der Autor verschiedene Internet-Anwendungen mit dem Arduino-Board. Nach der Rea-lisierung der Ethernet-Verbindung wird Ihr Arduino twittern, E-Mails senden und empfangen sowie Umweltdaten sammeln und verarbeiten können. Als Projekt wird eine Wetterstation realisiert, die Wette-rinformationen aus dem Internet abruft und Wetter-und Sensordaten auf einem Display darstellt.Zum Abschluss werden verschiedene Werkzeuge und Hilfsmittel sowie Soft-wareprogramme für den Basteleinsatz beschrieben und Sie erfahren, wie das Arduino-Board als Messgerät eingesetzt werden kann.Mit dem Wissen aus diesem Praxis-Hand-buch können Sie Ihre eigenen Ideen krea-tiv umsetzen.

ISBN 978-3-8266-9116-4

ArduinoPraxiseinstiegBehandelt Arduino 1.0

Alle Komponenten der Hardware, Verwendung der digitalen und analogen Ports, Einsatzbeispiele mit Sensoren, Aktoren und Anzeigen

Praktischer Einstieg in die Arduino-Programmierung

Zahlreiche Beispielprojekte wie Wasserwaage, Miniroboter mit Wii-Bedienelement und Internet-anwen-dungen wie Mailchecker, RSS-Reader und Wetterstation

© des Titels »Raspberry Pi programmieren mit Python« (ISBN 978-3-8266-9474-5) 2014 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.

Nähere Informationen unter: http://www.mitp.de/9474

Page 10: Raspberry Pi programmieren mit Python - ReadingSample

Michael Weigend5. Auflage

Probekapitel und Infos erhalten Sie unter: www.mitp.de/9456

Die Skriptsprache Python mit ihrer einfachen Syntax ist hervorragend geeignet, um modernes Programmie-ren zu lernen. Mit diesem Buch erhal-ten Sie einen umfassenden Einblick in Python 3. Michael Weigend behandelt Python von Grund auf und erläutert die wesentlichen Sprachelemente. Er geht darüber hinaus besonders auf die objektorientierte Programmierung ein, die in Beispielen praxisnah einge-setzt wird.Insgesamt liegt der Schwerpunkt auf der praktischen Arbeit mit Python. Ziel ist es, die wesentlichen Techniken und dahinter stehenden Ideen anhand zahlreicher anschaulicher Beispiele verständlich zu machen. Zu typischen Problemstellungen werden Schritt für Schritt Lösungen erarbeitet. So erlernen Sie praxisorientiert die Pro-

grammentwicklung mit Python und die Anwendung von Konzepten der objektorientierten Programmierung. Alle Kapitel enden mit einfachen und komplexen Übungsaufgaben mit voll-ständigen Musterlösungen.Das Buch behandelt die Grundlagen von Python 3 (Version 3.3) und zusätz-lich auch weiterführende Themen wie die Gestaltung grafischer Benutzungs-oberflächen, Threads, CGI- und Inter-netprogrammierung, automatisiertes Testen, Datenmodellierung mit XML und Datenbanken.Der Autor wendet sich sowohl an ambitionierte Einsteiger als auch an Leser, die bereits mit einer höheren Programmiersprache vertraut sind. Zugleich bietet sich dieses Lehrbuch als Textgrundlage oder nützliche Ergänzung zu Universitätskursen an.

ISBN 978-3-8266-9456-1

Python 3Lernen und professionell anwenden

Klassen, Objekte und Vererbung praktisch angewendet

Datenbanken, grafische Benutzungsoberflächen und Internet-Programmierung

Übungen mit Musterlösungen zu jedem Kapitel

© des Titels »Raspberry Pi programmieren mit Python« (ISBN 978-3-8266-9474-5) 2014 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.

Nähere Informationen unter: http://www.mitp.de/9474

Page 11: Raspberry Pi programmieren mit Python - ReadingSample

Michael Weigend

Schneller Zugriff auf Module, Klassen und Funktionen

tkinter, Datenbanken, OOP und Internetprogrammierung

Für die Versionen Python 3.3 und 2.7

Probekapitel und Infos erhalten Sie unter: www.mitp.de/9520

Mit dieser Referenz erhalten Sie effi ziente Unterstützung bei der Programmierung mit Python 3.3 und Python 2.7 – klar strukturiert zum Nachschlagen. In 24 thematisch gegliederten Kapiteln werden die wichtigsten Module detailliert und praxisbezogen erläutert: angefangen bei grundlegenden Elementen wie Datentypen, Operatoren und Standardfunktionen bis hin zu Spezialthemen wie der Schnittstelle zum Lauf-zeit- und Betriebssystem, Generatoren, GUI-Programmierung mit tkinter, Logging, Mengenverarbeitung, XML und Dezimalarithmetik. Darüber hinaus fi nden Sie kom-pakte Darstellungen der Umsetzung von objektorientierter Programmierung, CGI- und Internetprogrammierung (E-Mail, FTP, Telnet, HTTP) sowie der Datenbankanbindung (MySQL, SQLite).

Die Erläuterungen werden ergänzt durch übersichtliche Tabellen, UML-Diagramme und zahlreiche leicht nachvollziehbare Beispiele, die Anregungen und Lösungen für eigene Programmieraufgaben liefern.

ISBN 978-3-8266-9520-9

5. Aufl age

PythonGE-PACKT

© des Titels »Raspberry Pi programmieren mit Python« (ISBN 978-3-8266-9474-5) 2014 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.

Nähere Informationen unter: http://www.mitp.de/9474

Page 12: Raspberry Pi programmieren mit Python - ReadingSample

Eben UptonGareth Halfacree

Probekapitel und Infos erhalten Sie unter: www.mitp.de/9522

Der Raspberry Pi ist ein winziger Allzweck-Computer, mit dem man alles machen kann, was auch mit einem normalen PC möglich ist. Dank seiner leistungsstarken Multimedia- und 3D-Grafikfunktionen hat das Board außerdem das Potenzial, als Spieleplattform genutzt zu werden. Dieses Buch richtet sich an Einsteiger ins Physical Computing und bietet Bastlern und der heranwachsenden Generation von Computernutzern einen einfachen und praktischen Einstieg nicht nur in die Programmierung, sondern auch in das Hardware-Hacking.Eben Upton ist einer der Mitbegründer der Raspberry Pi Foundation und erläutert alles, was Sie wissen müssen, um mit dem Raspberry Pi durchzustarten. Es werden keine IT-Vorkenntnisse vorausgesetzt, alle Themen werden von Grund auf erläutert. Zunächst lernen Sie die Hardware kennen und erfahren, wie Sie Peripheriegeräte anschließen, um das Board in Betrieb zu

nehmen. Da der Raspberry Pi auf Linux basiert, erhalten Sie eine kurze Einfüh-rung in die Einsatzmöglichkeiten des Linux-Betriebssystems, insbesondere der Debian-Distribution. Anschließend werden alle weiteren Aspekte für die Inbetrieb-nahme des Boards ausführlich behandelt. Darüber hinaus werden zahlreiche Anwendungsmöglichkeiten vorgestellt, beispielsweisewie sich der Raspberry Pi als Mediacenter, Produktivitätstool oder Webserver einsetzen lässt. Um eigene Anwendungen entwickeln zu können, bieten zwei separate Kapitel einen jeweils umfassenden Exkurs in die Programmie-rung mit Python und Scratch. So können Sie z.B. mit Python die Hardware steuern oder mit Scratch kinderleicht eigene Spie-le programmieren.Mit dem Insiderwissen des Entwicklers ausgestattet, werden Sie sehr schnell in der Lage sein, Ihre eigenen Projekte umzusetzen.

ISBN 978-3-8266-9522-3

Raspberry Pi®

Einstieg und User Guide

Inbetriebnahme und Anwendungsmöglichkeiten

Einführung in Hardware und Linux

Erste Programmierschritte mit Python und Scratch

© des Titels »Raspberry Pi programmieren mit Python« (ISBN 978-3-8266-9474-5) 2014 by Verlagsgruppe Hüthig Jehle Rehm GmbH, Heidelberg.

Nähere Informationen unter: http://www.mitp.de/9474