Herunterladen Inhalt Inhalt Diese Seite drucken

SunFounder Da Vinci Kit Bedienungsanleitung

Für den raspberry pi 4 modell b, 3 modell a +, 3 modell b +, 3 modell b, 2 modell b, 1 modell b +, 1 modell a +, zero w and zero
Inhaltsverzeichnis

Werbung

SunFounder Da Vinci Kit
www.sunfounder.com
17.08.2021

Werbung

Inhaltsverzeichnis
loading

Inhaltszusammenfassung für SunFounder Da Vinci Kit

  • Seite 1 SunFounder Da Vinci Kit www.sunfounder.com 17.08.2021...
  • Seite 3: Inhaltsverzeichnis

    Inhaltsverzeichnis 1 Über das Da Vinci Kit Komponentenliste ..........
  • Seite 5: Über Das Da Vinci Kit

    KAPITEL Über das Da Vinci Kit Dieses Da Vinci-Kit gilt für den Raspberry Pi 4 Modell B, 3 Modell A +, 3 Modell B +, 3 Modell B, 2 Modell B, 1 Modell B +, 1 Modell A +, zero W and zero. Es enthält verschiedene Komponenten und Chips, die dazu beitragen können, verschiedene interessante Phänomene zu erzeugen, die Sie durch eiige Operationen unter Anleitung von...
  • Seite 6 SunFounder Da Vinci Kit Kapitel 1. Über das Da Vinci Kit...
  • Seite 7 SunFounder Da Vinci Kit 1.1. Komponentenliste...
  • Seite 8 SunFounder Da Vinci Kit Kapitel 1. Über das Da Vinci Kit...
  • Seite 9: Einführung

    SunFounder Da Vinci Kit 1.2 Einführung Da Vinci Kit ist ein Basis-Kit für intelligente Anfänger mit Projektszeitplan. Es enthält 26 häufig verwendete Eingangs- und Ausgangskomponenten und -module sowie eine Reihe grundlegender elektronischer Geräte (wie Widerstände, Kondensatoren), die Sie beim Programmierenlernen unterstützen können.
  • Seite 10: Vorbereitung

    Standard Tastatur und Maus verwendet. Es ist ein leistungsfähiges kleines Gerät, das Menschen mit allen Altern ermöglicht, Rechnung zu erforschen wie man in Sprachen wie Scratch und Python programmiert. Unser Kit gilt für die folgenden Versionen des Produkts von Raspberry Pi: Kapitel 1. Über das Da Vinci Kit...
  • Seite 11: Optionale Komponenten

    SunFounder Da Vinci Kit Netzteil Für den Anschluss an eine Steckdose verfügt der Raspberry Pi über einen Micro-USB-Anschluss (gleich wie bei vielen Mobiltelefonen). Sie benötigen eine Stromversorgung mit mindestens 2.5 Ampere. Micro SD Karte Ihr Raspberry Pi benötigt eine Micro-SD-Karte, um alle Dateien und das Raspberry Pi-Betriebssystem zu speichern.
  • Seite 12 Legen Sie Ihre SD-Karte in den SD-Kartensteckplatz des Computers oder Laptops ein. Schritt 4 Wählen Sie im Raspberry Pi Imager das Betriebssystem aus, das Sie installieren möchten, und die SD-Karte, auf der Sie es installieren möchten. Kapitel 1. Über das Da Vinci Kit...
  • Seite 13 SunFounder Da Vinci Kit Bemerkung: 1) Sie müssen zum ersten Mal mit dem Internet verbunden sein. 2) Dieses Betriebssystem wird dann für die zukünftige Offline-Nutzung gespeichert (lastdownload.cache, C:/Users/yourname/AppData/Local/Raspberry Pi/Imager/cache).Wenn Sie die Software das nächste Mal öff- nen, wird die Anzeige „Freigegeben: Datum, auf Ihrem Computer zwischengespeichert“ angezeigt.
  • Seite 14 Scrollen Sie dann nach unten, um die WLAN-Konfiguration abzuschließen, und klicken Sie auf SPEICHERN. Bemerkung: Wlan-Land sollte der zweistellige ISO/IEC alpha2 kode eingestellt werden, für das Land, in dem Sie Ihren Raspberry Pi verwenden, lesen Sie bitte den folgenden Link: https://en.wikipedia.org/wiki/ISO_3166-1_ alpha-2#Officially_assigned_code_elements Kapitel 1. Über das Da Vinci Kit...
  • Seite 15 SunFounder Da Vinci Kit Schritt 7 Klicken Sie auf die Schaltfläche SCHREIBEN. 1.3. Vorbereitung...
  • Seite 16 Wenn auf Ihrer SD-Karte derzeit Dateien gespeichert sind, bitte speichern Sie diese möglicherweise zuerst, um zu verhindern, dass Sie sie dauerhaft verlieren. Wenn keine zu sichernde Datei vorhanden ist, klicken Sie auf Ja. Kapitel 1. Über das Da Vinci Kit...
  • Seite 17 SunFounder Da Vinci Kit Schritt 9 Nach einer gewissen Wartezeit wird das folgende Fenster angezeigt und stellt den Abschluss des Schreibens dar. 1.3. Vorbereitung...
  • Seite 18: Wenn Sie Einen Bildschirm Haben

    Bemerkung: Hinweis: Wenn Sie einen Raspberry Pi 4 verwenden, müssen Sie den Bildschirm an den HDMI0 anschließen (der dem Stromanschluss am nächsten liegt). 4. Verwenden Sie das Netzteil und versorgen den Raspberry Pi mit Strom. Nach einigen Sekunden wird der Raspberry Pi OS-Bildschirm angezeigt. Kapitel 1. Über das Da Vinci Kit...
  • Seite 19: Wenn Sie Keinen Bildschirm Haben

    SunFounder Da Vinci Kit Wenn Sie keinen Bildschirm haben Wenn Sie keine Anzeige haben, können Sie sich aus der Ferne beim Raspberry Pi anmelden. Zuvor müssen Sie jedoch die IP-Addresse des Raspberry Pi abrufen. Die IP-Adresse bekommen Nachdem der Raspberry Pi mit WIFI verbunden ist, müssen wir die IP-Adresse davon erhalten. Es gibt viele Möglich- keiten, die IP-Adresse zu ermitteln, und zwei davon sind wie folgt aufgeführt.
  • Seite 20: Verwenden Sie Die Ssh-Fernbedienung

    Gehen Sie zu Anwendungen->Dienstprogramme, suchen Sie das Terminal und öffnen Sie es. Schritt 2 Geben Sie ssh pi @ ip_address ein. “Pi” ist Ihr Benutzername und “ip_address” ist Ihre IP-Adresse. Z. B. : pi@192.168.18.197 Schritt 3 Geben Sie „Ja“ ein. Kapitel 1. Über das Da Vinci Kit...
  • Seite 21 SunFounder Da Vinci Kit Schritt 4 Geben Sie den Password ein und das Default Passwort lautet raspberry. Schritt 5 Wir verbinden jetzt den Raspberry Pi und sind bereit, mit dem nächsten Schritt fortzufahren. 1.3. Vorbereitung...
  • Seite 22 Öffnen Sie PuTTY und klicken Sie auf Sitzung in der linken baumähnlichen Struktur. Geben Sie die IP-Adresse des RPi in das Textfeld unter Hostname (oder IP-Adresse) und 22 unter Port ein (Default ist 22). Kapitel 1. Über das Da Vinci Kit...
  • Seite 23 SunFounder Da Vinci Kit Schritt 3 Klicken Sie auf Öffnen. Beachten Sie bitte, beim ersten Anmelden am Raspberry Pi mit der IP-Adresse eine Sicher- heitserinnerung wird anzeigen. Klicken Sie einfach auf Ja. Schritt 4 Wenn das PuTTY-Fenster „login as:“ auffordert, geben Sie „pi“ (den Benutzernamen des RPi) und das Passwort ein: „Himbeere“...
  • Seite 24: Bibliotheken

    Beim Testen ob RPi.GPIO installiert ist oder nicht, geben Sie bitte Python ein: python Geben Sie in Python CLI “import RPi.GPIO” ein. Wenn kein Fehler stellt, bedeutet, RPi.GPIO ist installiert. import RPi.GPIO Kapitel 1. Über das Da Vinci Kit...
  • Seite 25 SunFounder Da Vinci Kit Wenn Sie die Python-CLI beenden möchten, geben Sie ein: exit() 1.4.2 WiringPi wiringPi ist eine GPIO-Bibliothek in C-Sprache, die auf die Raspberry Pi-Plattform angewendet wird. Es entspricht GUN Lv3. Die Funktionen in WiringPi sind ähnlich wie im Verkabelungssystem von Arduino. Die mit Arduino ver- trauten Benutzer wird die einfachere Verwendung von wiringPi.
  • Seite 26: Gpio-Erweiterungskarte

    Wir können die Pins Raspberry Pi leicht über das GPIO Erweiterungskarte zum Steckbrett führen, um GPIO-Schäden aus häufiges Ein- oder Ausstecken zu vermeiden. Dies ist unser 40-pin GPIO-Erweiterungskarte und GPIO-Kabel für Raspberry Pi Modell B +, 2 Modell B und 3, 4 Modell B. Kapitel 1. Über das Da Vinci Kit...
  • Seite 27 SunFounder Da Vinci Kit Pin Nummer Die Pins von Raspberry Pi können auf drei Arten benannt werden: WiringPi, BCM und Board. Unter diesen Benennungsmethoden verwendet die 40-pin GPIO-Erweiterungskarte die Benennungsmethode BCM. Für einige spezielle Pins wie den I2C-Port und den SPI-Port verwenden sie jedoch den Namen, der mit ihnen geliefert wird.
  • Seite 28 SunFounder Da Vinci Kit Kapitel 1. Über das Da Vinci Kit...
  • Seite 29: Laden Sie Die Kode Herunter

    SunFounder Da Vinci Kit 1.6 Laden Sie die Kode herunter Beachten Sie vor dem Herunterladen des Codes, dass der Beispielcode NUR unter Raspberry Pi OS getestet wird. Wir bieten zwei Methoden zum Download an: Methode 1: git clon verwenden (empfohlen) Melden Sie sich bei Raspberry Pi an und wechseln Sie dann das Verzeichnis in /home/pi.
  • Seite 30: Blinkende Led

    In dieser Lektion lernen wir, wie man durch Programmierung eine blinkende LED erzeugt. Durch Ihre Einstellungen kann Ihre LED eine Reihe interessanter Phänomene erzeugen. Jetzt mach es. Komponenten Bemerkung: Um reibungslos fortzufahren, müssen Sie Ihren eigenen Raspberry Pi, TF-Karte und Raspberry Pi-Strom mitbringen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 31 SunFounder Da Vinci Kit Prinzip Steckbrett Ein Steckbrett ist eine Konstruktionsbasis für das Prototyping von Elektronik. Es wird verwendet, um Schaltungen schnell aufzubauen und zu testen, bevor ein Schaltungsentwurf abgeschlossen wird. Und es hat viele Löcher, in die oben erwähnte Komponenten wie ICs und Widerstände sowie Jumperdrähte eingesetzt werden können. Mit dem Steck- brett können Sie Komponenten einfach anschließen und entfernen.
  • Seite 32 Bänder am Widerstand beobachten oder den Widerstand mit einem Multimeter messen. Es wird empfohlen, die erste Methode zu verwenden, da diese bequemer und schneller ist. Verwenden Sie ein Multimeter, um den Wert zu messen. Wie auf der Karte gezeigt, steht jede Farbe für eine Nummer. Kapitel 1. Über das Da Vinci Kit...
  • Seite 33: Schematische Darstellung

    SunFounder Da Vinci Kit Schematische Darstellung In diesem Experiment schließen Sie einen 220 -Widerstand an die Anode (den langen Pin der LED) und dann den Widerstand an 3,3 V an und verbinden Sie die Kathode (den kurzen Pin) der LED mit GPIO17 von Raspberry Pi.
  • Seite 34 17 in der BCM-Spalte der folgenden Tabelle. Gleichzeitig sind sie gleich mit dem 11. Pin des Raspberry Pi, Pin 11. T-Karte Name physisch wiringPi GPIO17 Pin 11 Experimentelle Verfahren Step 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 35: Für Benutzer In C-Sprache

    SunFounder Da Vinci Kit Für Benutzer in C-Sprache Step 2: Gehen Sie zum Ordner des Codes. 1) Wenn Sie einen Bildschirm verwenden, sind die folgenden Schritte empfohlen. Gehen Sie zu /home/pi/ und suchen Sie den Ordner davinci-kit-for-raspberry-pi. Suchen Sie C im Ordner, klicken Sie mit der rechten Maustaste darauf und wählen Sie In Terminal öffnen.
  • Seite 36 Geben Sie Y (speichern) oder N (nicht speichern) ein. Drücken Sie dann die Enter , um den Vorgang zu beenden. Wiederholen Sie Schritt 3 und Schritt 4, um den Effekt nach dem Ändern zu sehen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 37: Code Erklärung

    SunFounder Da Vinci Kit Code Der Programmkode wird wie folgt angezeigt: #include <wiringPi.h> #include <stdio.h> #define LedPin main(void) // When initialize wiring failed, print message to screen if(wiringPiSetup() -1){ printf("setup wiringPi failed !"); return pinMode(LedPin, OUTPUT);// Set LedPin as output to write value to it.
  • Seite 38 Hardware bestimmt. Hier schalten wir die LED ein oder aus. Wenn es keine Verzögerungs- funktion gibt, führt das Programm das gesamte Programm sehr schnell und kontinuierlich aus. Wir brauchen also die Verzögerungsfunktion, um das Programm schreiben und debuggen zu können. return Kapitel 1. Über das Da Vinci Kit...
  • Seite 39: Für Python-Sprachbenutzer

    SunFounder Da Vinci Kit Normalerweise wird es hinter der Hauptfunktion platziert, was anzeigt, dass die Funktion bei erfolgreicher Ausführung 0 zurückgibt. Für Python-Sprachbenutzer Schritt 2: Gehen Sie zum Ordner des Codes und führen Sie ihn aus. 1. Wenn Sie einen Bildschirm verwenden, sind die folgenden Schritte empfohlen.
  • Seite 40 Kode zu ersetzen. import time Zeitpaket importieren, für Zeitverzögerungsfunktion im folgenden Programm. LedPin Die LED wird mit dem GPIO17 der T-förmigen Erweiterungskarte, nämlich BCM 17, verbunden. setup(): GPIO.setmode(GPIO.BCM) (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 41 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) GPIO.setup(LedPin, GPIO.OUT, initial=GPIO.HIGH) Stellen Sie den LedPin-Modus auf Ausgabe und den AnfangsNiveau auf Hoch (3.3v). Es gibt zwei Wisen, die IO -Pins eines Raspberry Pi in RPi.GPIO zu nummerieren: BOARD-Nummern und BCM- Nummern.
  • Seite 42 SunFounder Da Vinci Kit Phänomen Bild 1.7.2 1.1.2 RGB-LED Einführung In dieser Lektion steuern wir mit eine RGB-LED, die verschiedene Arten von Farben zu blinken. Kapitel 1. Über das Da Vinci Kit...
  • Seite 43 SunFounder Da Vinci Kit Komponenten Prinzip Die Pulsweitenmodulation oder PWM ist eine Technik, mit der analoge Ergebnisse mit digitalen Mitteln erzielt werden können. Die digitale Steuerung wird verwendet, um eine Rechteckwelle zu erzeugen, um ein Signal zwischen Ein und Aus zu schalten. Dieses Ein-Aus-Muster kann Spannungen zwischen Voll-Ein (5 Volt) und Aus (0 Volt) simulieren, mit der Änderung von Zeit, in dem das Signal an ist, gegenüber der Zeit, in der das Signal abläuft.
  • Seite 44 Ein Tastverhältnis von 60% bedeutet also, dass das Signal in 60% der Fälle eingeschaltet ist, in 40% der Fälle jedoch ausgeschaltet ist. Die „Pünktlichkeit“ für einen Arbeitszyklus von 60% kann je nach Dauer des Zeitraums einen Bruchteil einer Sekunde, eines Tages oder sogar einer Woche betragen. RGB LED Kapitel 1. Über das Da Vinci Kit...
  • Seite 45 SunFounder Da Vinci Kit Die drei Primärfarben der RGB-LED können durch Helligkeit in verschiedene Farben gemischt werden. Die Helligkeit der LED kann mit PWM eingestellt werden. Raspberry Pi hat nur einen Kanal für die Hardware-PWM-Ausgabe, benötigt jedoch drei Kanäle zur Steuerung der RGB-LED, was bedeutet, dass es schwierig ist, die RGB-LED mit der Hardware-PWM von Raspberry Pi zu steuern.
  • Seite 46 ./a.out Nachdem die Kode ausgeführt wurde, sehen Sie, dass RGB Rot, Grün, Blau, Gelb, Pink und Cyan anzeigt. Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Kapitel 1. Über das Da Vinci Kit...
  • Seite 47 SunFounder Da Vinci Kit Code #include <wiringPi.h> #include <softPwm.h> #include <stdio.h> #define uchar unsigned char #define LedPinRed #define LedPinGreen #define LedPinBlue void ledInit(void){ softPwmCreate(LedPinRed, 0, 100); softPwmCreate(LedPinGreen,0, 100); softPwmCreate(LedPinBlue, 0, 100); void ledColorSet(uchar r_val, uchar g_val, uchar b_val){ softPwmWrite(LedPinRed, r_val);...
  • Seite 48 Für Python-Sprachbenutzer Schritt 2: Öffnen Sie die Kodedatei. cd /home/pi/davinci-kit-for-raspberry-pi/python Schritt 3: Ausführen. sudo python3 1.1.2_rgbLed.py Nachdem die Kode ausgeführt wurde, sehen Sie, dass RGB Rot, Grün, Blau, Gelb, Pink und Cyan anzeigt. Code Kapitel 1. Über das Da Vinci Kit...
  • Seite 49 SunFounder Da Vinci Kit Bemerkung: Sie können den folgenden Code Ändern/Zurücksetzen/ Kopieren/Ausführen/Stoppen. Zuvor müssen Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen. import RPi.GPIO GPIO import time # Set up a color table in Hexadecimal COLOR [0xFF0000, 0x00FF00, 0x0000FF, 0xFFFF00, 0xFF00FF, 0x00FFFF]...
  • Seite 50 = 0, out_max = 100. Nach der Zuordnung der Kartenfunktion wird (50-0) * (100-0)/(255-0) +0=19.6, zurück- gegeben, was bedeutet, dass 50 in 0-255 19,6 in 0-100 entspricht. setColor(color): R_val (color & 0xFF0000) >> G_val (color & 0x00FF00) >> B_val (color & 0x0000FF) >> Kapitel 1. Über das Da Vinci Kit...
  • Seite 51 SunFounder Da Vinci Kit Konfiguriert die Luminanz der drei LEDs mit dem eingegebenen Farbwert. Weisen Sie R_val die ersten beiden He- xadezimalwerte zu, G_val die beiden mittleren und B_val die letzten beiden Werte. Wenn beispielsweise color = 0xFF00FF ist, ist R_val = 0xFF00FF & 0xFF0000 >> 16 = 0xFF, G_val = 0x00, B_val = 0xFF.
  • Seite 52 SunFounder Da Vinci Kit 1.7.3 1.1.3 LED-Balkendiagramm Einführung In diesem Projekt beleuchten wir nacheinander die Lichter auf dem LED-Balkendiagramm. Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 53 SunFounder Da Vinci Kit Prinzip LED-Balkendiagramm LED-Balkendiagramm ist ein LED-Array, das zur Verbindung mit einer elektronischen Schaltung oder einem Mi- krocontroller verwendet wird. Es ist einfach, ein LED-Balkendiagramm mit der Schaltung zu verbinden, es ist wie 10 einzelne LEDs mit 10 Ausgangspins. Im Allgemeinen können wir das LED-Balkendiagramm als Batterie- standsanzeige, Audiogeräte und industrielle Bedienfelder verwenden.
  • Seite 54 Nachdem die Kode ausgeführt wurde, werden die LEDs in der LED-Leiste regelmäßig ein- und ausgeschaltet. Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code #include <wiringPi.h> #include <stdio.h> pins[10] {0,1,2,3,4,5,6,8,9,10}; void oddLedBarGraph(void){ for(int i=0;i<5;i++){ digitalWrite(pins[j],HIGH); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 55 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) delay(300); digitalWrite(pins[j],LOW); void evenLedBarGraph(void){ for(int i=0;i<5;i++){ 2+1; digitalWrite(pins[j],HIGH); delay(300); digitalWrite(pins[j],LOW); void allLedBarGraph(void){ for(int i=0;i<10;i++){ digitalWrite(pins[i],HIGH); delay(300); digitalWrite(pins[i],LOW); main(void) if(wiringPiSetup() -1){ //when initialize wiring failed,print message to screen printf("setup wiringPi failed !"); return for(int i=0;i<10;i++){...
  • Seite 56 Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen. import RPi.GPIO GPIO import time ledPins [11, 12, 13, 15, 16, 18, 22, 3, 5, 24] oddLedBarGraph(): range(5): GPIO.output(ledPins[j],GPIO.HIGH) time.sleep(0.3) GPIO.output(ledPins[j],GPIO.LOW) evenLedBarGraph(): range(5): GPIO.output(ledPins[j],GPIO.HIGH) (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 57 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) time.sleep(0.3) GPIO.output(ledPins[j],GPIO.LOW) allLedBarGraph(): ledPins: GPIO.output(i,GPIO.HIGH) time.sleep(0.3) GPIO.output(i,GPIO.LOW) setup(): GPIO.setwarnings(False) GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location ledPins: GPIO.setup(i, GPIO.OUT) # Set all ledPins' mode is output GPIO.output(i, GPIO.LOW) # Set all ledPins to high(+3.3V) to off led...
  • Seite 58 (Fortsetzung der vorherigen Seite) time.sleep(0.3) GPIO.output(ledPins[j],GPIO.LOW) Schalten Sie die LED auf der geraden Ziffer des LED-Balkendiagramms der Reihe nach ein. allLedBarGraph(): ledPins: GPIO.output(i,GPIO.HIGH) time.sleep(0.3) GPIO.output(i,GPIO.LOW) Lassen Sie die LED auf dem LED-Balkendiagramm nacheinander leuchten. Phänomen Bild Kapitel 1. Über das Da Vinci Kit...
  • Seite 59: Segment-Anzeige

    SunFounder Da Vinci Kit 1.7.4 1.1.4 7-Segment-Anzeige Einführung Versuchen wir, eine 7-Segment-Anzeige anzutreiben, um eine Nummer von 0 bis 9 und von A bis F anzuzeigen. Komponenten Prinzip 7-Segment-Anzeige Ein 7-Segment-Display ist eine 8-förmige Komponente, die 7 LEDs enthält. Jede LED wird als Segment bezeichnet.
  • Seite 60 BA bezieht sich auf die entsprechende LED, die auf 0 oder 1 gesetzt ist. Beispielsweise bedeutet 00111111, dass DP und G auf 0 gesetzt sind, während andere auf 1 gesetzt sind. Daher wird die Nummer 0 auf dem 7-Segment-Display angezeigt, während der HEX-Kode der Hexadezimalzahl entspricht. Kapitel 1. Über das Da Vinci Kit...
  • Seite 61 SunFounder Da Vinci Kit 74HC595 Der 74HC595 besteht aus einem 8-Bit-Schieberegister und einem Speicherregister mit parallelen Ausgängen mit drei Zuständen. Es wandelt den seriellen Eingang in einen parallelen Ausgang um, sodass Sie E / A-Ports einer MCU speichern können. Wenn MR (Pin 10) einen hohen Niveaul und OE (Pin 13) einen niedrigen Niveaul aufweist, werden Daten in die anstei- gende Flanke von SHcp eingegeben und gehen über die ansteigende Flanke von SHcp in das Speicherregister.
  • Seite 62 • STcp: Zeitfolgeeingabe des Speicherregisters. Bei der steigenden Flanke werden Daten im Schieberegister in das Speicherregister verschoben. • CE: Ausgangsfreigabepin, aktiv auf niedrigem Niveau. • DS: Serieller Dateneingangspin • VCC: Positive Versorgungsspannung • GND: Boden Kapitel 1. Über das Da Vinci Kit...
  • Seite 63 SunFounder Da Vinci Kit Schematische Darstellung Verbinden Sie Pin ST_CP von 74HC595 mit Raspberry Pi GPIO18, SH_CP mit GPIO27, DS mit GPIO17 und paral- lele Ausgangsanschlüsse mit 8 Segmenten der LED-Segmentanzeige. Geben Sie Daten in den DS-Pin in das Schie- beregister ein, wenn sich SH_CP (der Takteingang des Schieberegisters) an der ansteigenden Flanke befindet, und...
  • Seite 64 C-Code funktioniert nicht? Code #include <wiringPi.h> #include <stdio.h> #define //serial data input #define RCLK //memory clock input(STCP) #define SRCLK 2 //shift register clock input(SHCP) SegCode[16] {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77, unsigned char 0x7c,0x39,0x5e,0x79,0x71}; (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 65 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) init(void){ void pinMode(SDI, OUTPUT); pinMode(RCLK, OUTPUT); pinMode(SRCLK, OUTPUT); digitalWrite(SDI, 0); digitalWrite(RCLK, 0); digitalWrite(SRCLK, 0); void hc595_shift(unsigned char dat){ for(i=0;i<8;i++){ digitalWrite(SDI, 0x80 & (dat << i)); digitalWrite(SRCLK, 1); delay(1); digitalWrite(SRCLK, 0); digitalWrite(RCLK, 1);...
  • Seite 66 Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen. import RPi.GPIO GPIO import time # Set up pins RCLK SRCLK # Define a segment code from 0 to F in Hexadecimal # Common cathode (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 67 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) segCode [0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79, 0x71] setup(): GPIO.setmode(GPIO.BCM) GPIO.setup(SDI, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(RCLK, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(SRCLK, GPIO.OUT, initial=GPIO.LOW) # Shift the data to 74HC595 hc595_shift(dat): range(0, 8): GPIO.output(SDI, 0x80 & (dat << bit)) GPIO.output(SRCLK, GPIO.HIGH) time.sleep(0.001) GPIO.output(SRCLK, GPIO.LOW)
  • Seite 68 Bemerkung: Das hexadezimale Format der Nummer 0 bis 15 ist (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F). Phänomen Bild 1.7.5 1.1.5 4-stellige 7-Segment-Anzeige Einführung Folgen Sie mir als Nächstes, um zu versuchen, die 4-stellige 7-Segment-Anzeige zu steuern. Kapitel 1. Über das Da Vinci Kit...
  • Seite 69 SunFounder Da Vinci Kit Komponenten Prinzip 4-stellige 7-Segment-Anzeige Die 4-stellige 7-Segment-Anzeige besteht aus vier 7-Segment-Anzeigen, die zusammenarbeiten. 1.7. 1 Ausgabe...
  • Seite 70 LED, die auf 0 oder 1 gesetzt ist. Beispielsweise bedeutet 11000000, dass DP und G auf 1 gesetzt sind, während andere auf 0 gesetzt sind. Daher wird die Nummer 0 auf dem 7-Segment-Display angezeigt, während der HEX-Kode der Hexadezimalzahl entspricht. Kapitel 1. Über das Da Vinci Kit...
  • Seite 71 SunFounder Da Vinci Kit Schematische Darstellung T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO27 Pin 13 GPIO22 Pin 15 SPIMOSI Pin 19 GPIO18 Pin 12 GPIO23 Pin 16 GPIO24 Pin 18 1.7. 1 Ausgabe...
  • Seite 72 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 73 SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Gehen Sie zum Ordner des Codes. /home/pi/davinci-kit-for-raspberry-pi/c/1.1.5/ Schritt 3: Kompilieren Sie den Code. gcc 1.1.5_4-Digit.c -lwiringPi Schritt 4: Führen Sie die ausführbare Datei aus. sudo ./a.out Nachdem der Code ausgeführt wurde, nimmt das Programm eine Zählung vor, die um 1 pro Sekunde erhöht wird, und die 4-stellige 7-Segment-Anzeige zeigt die Zählung an.
  • Seite 74 0; i < 8; i++) digitalWrite(SDI, 1); digitalWrite(SRCLK, 1); delayMicroseconds(1); digitalWrite(SRCLK, 0); digitalWrite(RCLK, 1); delayMicroseconds(1); digitalWrite(RCLK, 0); void loop() while(1){ clearDisplay(); pickDigit(0); hc595_shift(number[counter 10]); clearDisplay(); pickDigit(1); hc595_shift(number[counter 10]); clearDisplay(); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 75 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) pickDigit(2); hc595_shift(number[counter 1000 100]); clearDisplay(); pickDigit(3); hc595_shift(number[counter 10000 1000]); void timer(int timer1) (timer1 SIGALRM) counter++; alarm(1); printf("%d\n", counter); void main(void) (wiringPiSetup() printf("setup wiringPi failed !"); return; pinMode(SDI, OUTPUT); pinMode(RCLK, OUTPUT); pinMode(SRCLK, OUTPUT);...
  • Seite 76 Dies ist auch eine vom System bereitgestellte Funktion. Der Kode-Prototyp ist: unsigned int alarm (unsigned int seconds); Es erzeugt nach einer bestimmten Anzahl von Sekunden ein SIGALRM-Signal. void timer(int timer1) (timer1 SIGALRM) (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 77 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) counter++; alarm(1); printf("%d\n", counter); Wir verwenden die obigen Funktionen, um die Timer-Funktion zu implementieren. Nachdem der Alarm () das SIGALRM-Signal erzeugt hat, wird die Timer-Funktion aufgerufen. Addiere 1 zum Zähler und die Funktion Warnung (1) wird nach 1 Sekunde wiederholt aufgerufen.
  • Seite 78 GPIO.setup(SRCLK, GPIO.OUT) placePin: GPIO.setup(i, GPIO.OUT) global timer1 timer1 threading.Timer(1.0, timer) timer1.start() destroy(): # When "Ctrl+C" is pressed, the function is executed. global timer1 GPIO.cleanup() timer1.cancel() # cancel the timer (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 79 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) __name__ '__main__': # Program starting from here setup() try: loop() except KeyboardInterrupt: destroy() Code Erklärung placePin (10, 22, 27, 17) Diese vier Pins steuern die gemeinsamen Anodenpins der vierstelligen 7-Segment-Anzeigen. number (0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90) Ein Segmentkode-Array von 0 bis 9 in hexadezimaler Darstellung (gemeinsame Anode).
  • Seite 80 Nachdem der Timer 1,0 Sekunden erreicht hat, wird die Timer-Funktion aufgerufen. Addiere 1 zum Zähler und der Timer wird erneut verwendet, um sich jede Sekunde wiederholt auszuführen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 81 SunFounder Da Vinci Kit Phänomen Bild 1.7.6 1.1.6 LED-Punktmatrix Einführung Wie der Name schon sagt, eine LED-Punktmatrix ist eine Matrix aus LEDs. Das Aufleuchten und Dimmen der LEDs formuliert unterschiedliche Zeichen und Muster. 1.7. 1 Ausgabe...
  • Seite 82 Siehe die Abbildung unten. Die Pins sind an den beiden Enden hinten angeordnet. Nehmen Sie die Etikettenseite als Referenz: Die Pins an diesem Ende sind Pin 1-8 und die anderen sind Pin 9-16. Die Außenansicht: Kapitel 1. Über das Da Vinci Kit...
  • Seite 83 SunFounder Da Vinci Kit Unten zeigen die Abbildungen ihre interne Struktur. Sie können in einer CA-LED-Punktmatrix sehen, dass ROW die Anode der LED darstellt und COL die Kathode ist. es ist das Gegenteil für einen CC. Eines ist gemeinsam: Für beide Typen sind Pin 13, 3, 4, 10, 6, 11, 15 und 16 alle COL, wenn Pin 9, 14, 8, 12, 1, 7, 2 und 5 alle COL sind REIHE.
  • Seite 84 Pin-Nummerierung entsprechend den obigen Zeilen und Spalten: MIT DEM Pin Nr. REIHE Pin Nr. Zusätzlich werden hier zwei 74HC595-Chips verwendet. Eine besteht darin, die Zeilen der LED-Punktmatrix zu steu- ern, während die andere die Spalten steuert. Kapitel 1. Über das Da Vinci Kit...
  • Seite 85: Schematische Darstellung

    SunFounder Da Vinci Kit Schematische Darstellung T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO18 Pin 12 GPIO27 Pin 13 Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Da die Verkabelung kompliziert ist, machen wir es Schritt für Schritt. Setzen Sie zuerst den T-Cobbler, die LED-Punktmatrix und zwei 74HC595-Chips in das Steckbrett ein.
  • Seite 86 Schritt 3: Der 74HC595 auf der rechten Seite steuert die Spalten der LED-Punktmatrix. Die Zuordnung finden Sie in der folgenden Tabelle. Daher werden die Q0-Q7-Pins des 74HC595 mit Pin 13, 3, 4, 10, 6, 11, 15 bzw. 16 abgebildet. 74HC595 LED-Punktmatrix Kapitel 1. Über das Da Vinci Kit...
  • Seite 87 SunFounder Da Vinci Kit Schritt 4: Verbinden Sie nun die REIHEN der LED-Punktmatrix. Der 74HC595 auf der linken Seite steuert die REIHE der LED-Punktmatrix. Die Zuordnung finden Sie in der folgenden Tabelle. Wir können sehen, dass Q0-Q7 des 74HC595 auf der linken Seite mit Pin 9, 14, 8, 12, 1, 7, 2 bzw. 5 abgebildet sind.
  • Seite 88: Für Benutzer In C-Sprache

    0); digitalWrite(RCLK, 0); digitalWrite(SRCLK, 0); void hc595_in(unsigned char dat){ for(i=0;i<8;i++){ digitalWrite(SDI, 0x80 & (dat << i)); digitalWrite(SRCLK, 1); delay(1); digitalWrite(SRCLK, 0); void hc595_out(){ digitalWrite(RCLK, 1); delay(1); digitalWrite(RCLK, 0); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 89 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) main(void){ if(wiringPiSetup() -1){ //when initialize wiring failed, print message to screen printf("setup wiringPi failed !"); return init(); while(1){ for(i=0;i<sizeof(code_H);i++){ hc595_in(code_L[i]); hc595_in(code_H[i]); hc595_out(); delay(100); for(i=sizeof(code_H);i>=0;i--){ hc595_in(code_L[i]); hc595_in(code_H[i]); hc595_out(); delay(100); return Code Erklärung unsigned char...
  • Seite 90 In dieser Schleife werden diese 20 Elemente in den beiden Arrays Kode_L und code_H nacheinander auf die beiden 74HC595-Chips hochgeladen. Rufen Sie dann die Funktion hc595_out () auf, um Daten vom Schieberegister zum Speicherregister zu verschieben. Kapitel 1. Über das Da Vinci Kit...
  • Seite 91: Für Python-Sprachbenutzer

    SunFounder Da Vinci Kit Für Python-Sprachbenutzer Schritt 5: Gehen Sie in den Kode-Ordner. cd /home/pi/davinci-kit-for-raspberry-pi/python Schritt 6: Ausführen. sudo python3 1.1.6_LedMatrix.py Nachdem die Kode ausgeführt wurde, leuchtet die LED-Punktmatrix Zeile für Zeile und Spalte für Spalte auf und aus. Code Bemerkung: Sie können den folgenden Code Ändern/Zurücksetzen/ Kopieren/Ausführen/Stoppen.
  • Seite 92 In diesem Kit wird eine gemeinsame Anoden-LED-Punktmatrix angewendet, sodass nur die acht LEDs in der achten Reihe aufleuchten. Wenn die Bedingungen, dass Code H 0xff und Code_L 0x7f ist, gleichzeitig erfüllt sind, leuchten diese 8 LEDs in der ersten Spalte. Kapitel 1. Über das Da Vinci Kit...
  • Seite 93 SunFounder Da Vinci Kit range(0, len(code_H)): hc595_shift(code_L[i]) hc595_shift(code_H[i]) In dieser Schleife werden diese 20 Elemente in den beiden Arrays Kode_L und Kode_H nacheinander auf den HC595- Chip hochgeladen. Bemerkung: Wenn Sie Zeichen in der LED-Punktmatrix anzeigen möchten, lesen Sie bitte einen Python-Code: https://github.com/sunfounder/SunFounder_Dot_Matrix...
  • Seite 94: Einführung

    SunFounder Da Vinci Kit 1.7.7 1.1.7 I2C LCD1602 Einführung LCD1602 ist eine Flüssigkristallanzeige vom Zeichentyp, die gleichzeitig 32 (16 * 2) Zeichen anzeigen kann. Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 95 SunFounder Da Vinci Kit Prinzip I2C LCD1602 Wie wir alle wissen, bereichern LCD und einige andere Anzeiger die Mensch-Maschine-Interaktion erheblich, weisen jedoch eine gemeinsame Schwäche auf. Wenn sie mit einem Controller verbunden sind, werden mehrere E / A des Controllers belegt, der nicht so viele äußere Ports hat. Es schränkt auch andere Funktionen der Steuerung ein. Daher wurde LCD1602 mit einem I2C-Bus entwickelt, um das Problem zu lösen.
  • Seite 96 Schritt 4: Kompilieren. gcc 1.1.7_Lcd1602.c -lwiringPi Schritt 5: Ausführen. sudo ./a.out Nachdem die Kode ausgeführt wurde, werden auf dem LCD ”Grüße” und ”Von SunFounder” angezeigt. Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code #include <stdio.h>...
  • Seite 97 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) void write_word(int data){ temp data; ( BLEN temp 0x08; else temp &= 0xF7; wiringPiI2CWrite(fd, temp); void send_command(int comm){ buf; // Send bit7-4 firstly comm & 0xF0; 0x04; // RS = 0, RW = 0, EN = 1 write_word(buf);...
  • Seite 98 Diese Funktion initialisiert das I2C-System mit dem angegebenen Gerätesymbol. Der Prototyp der Funktion: int wiringPiI2CSetup(int devId); Parameter devId ist die Adresse des I2C-Geräts. Sie kann über den Befehl i2cdetect (siehe Anhang) ermittelt werden. Die devId des I2C LCD1602 ist im Allgemeinen 0x27. Kapitel 1. Über das Da Vinci Kit...
  • Seite 99 /home/pi/davinci-kit-for-raspberry-pi/python/ Schritt 4: Ausführen. sudo python3 1.1.7_Lcd1602.py Nachdem die Kode ausgeführt wurde, werden auf dem LCD ”Grüße” und ”Von SunFounder” angezeigt. Code Bemerkung: Sie können den folgenden Code Ändern/Zurücksetzen/ Kopieren/Ausführen/Stoppen. Zuvor müssen Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen.
  • Seite 100 LCD1602.write(0, 0, 'Greetings!!') Innerhalb dieser Funktion ‚Grüße !! ‚ ist das Zeichen, das in der Zeile 0 + 1, Spalte 0 + 1 auf dem LCD gedruckt werden soll. Jetzt können Sie “Grüße! Von SunFounder”auf dem LCD angezeigt. Phänomen Bild 1.2 Ton...
  • Seite 101 SunFounder Da Vinci Kit Komponenten Prinzip Summer Als eine Art elektronischer Summer mit integrierter Struktur werden Summer, die mit Gleichstrom versorgt werden, häufig in Computern, Druckern, Fotokopierern, Alarmen, elektronischem Spielzeug, elektronischen Kraftfahrzeugen, Telefonen, Zeitschaltuhren und anderen elektronischen Produkten oder Sprachgeräten verwendet. Summer können in aktive und passive unterteilt werden (siehe folgendes Bild).
  • Seite 102 Programmierung mit einem niedrigen Niveau (0V) versorgt wird, leitet der Transistor aufgrund der Stromsättigung und der Summer gibt Geräusche aus. Wenn jedoch die IO des Raspberry Pi mit einem hohen Niveau versorgt wird, wird der Transistor abgeschaltet und der Summer gibt keine Geräusche von sich. Kapitel 1. Über das Da Vinci Kit...
  • Seite 103 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. (Achten Sie auf die Pole des Summers: Der mit dem + Etikett ist der positive Pol und der andere der negative.) 1.7. 1 Ausgabe...
  • Seite 104 Ton erzeugt. Diese Skizze dient dazu, den I/O -Port auf einen niedrigen Niveau (0V) einzustellen, um so den Transistor zu verwalten und den Summer piepen zu lassen. digitalWrite(BeepPin, HIGH); Um den I/O -Anschluss auf einen hohen Niveau (3,3V) einzustellen, wird der Transistor nicht erregt und der Summer piept nicht. Kapitel 1. Über das Da Vinci Kit...
  • Seite 105 SunFounder Da Vinci Kit Für Python-Sprachbenutzer Schritt 2: Öffnen Sie die Codedatei. cd /home/pi/davinci-kit-for-raspberry-pi/python Schritt 3: Ausführen. sudo python3 1.2.1_ActiveBuzzer.py Die Kode läuft, der Summer piept. Code Bemerkung: Sie können den folgenden Code Ändern/Zurücksetzen/ Kopieren/Ausführen/Stoppen. Zuvor müssen Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen.
  • Seite 106 Warten Sie 0,1 Sekunden. Ändern Sie die Schaltfrequenz, indem Sie diesen Parameter ändern. Bemerkung: Nicht die Schallfrequenz. Der aktive Summer kann die Schallfrequenz nicht ändern. GPIO.output(BeepPin, GPIO.HIGH) Schließen Sie den Summer. Phänomen Bild Kapitel 1. Über das Da Vinci Kit...
  • Seite 107 SunFounder Da Vinci Kit 1.7.9 1.2.2 Passiver Summer Einführung In dieser Lektion lernen wir, wie man einen passiven Summer dazu bringt, Musik zu spielen. Komponenten 1.7. 1 Ausgabe...
  • Seite 108 In diesem Experiment werden ein passiver Summer, ein PNP-Transistor und ein 1k-Widerstand zwischen der Basis des Transistors und GPIO verwendet, um den Transistor zu schützen. Wenn GPIO17 unterschiedliche Frequenzen erhält, gibt der passive Summer unterschiedliche Töne aus. Auf diese Weise spielt der Summer Musik. Kapitel 1. Über das Da Vinci Kit...
  • Seite 109 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Für Benutzer in C-Sprache Schritt 2: Verzeichnis wechseln. /home/pi/davinci-kit-for-raspberry-pi/c/1.2.2/ Schritt 3: Kompilieren. gcc 1.2.2_PassiveBuzzer.c -lwiringPi Schritt 4: Ausführen. sudo ./a.out Die Kode läuft, der Summer spielt ein Musikstück.
  • Seite 110 !"); return if(softToneCreate(BuzPin) -1){ printf("setup softTone failed !"); return while(1){ printf("music is being played...\n"); delay(100); for(i=0;i<sizeof(song_1)/4;i++){ softToneWrite(BuzPin, song_1[i]); delay(beat_1[i] 500); for(i=0;i<sizeof(song_2)/4;i++){ softToneWrite(BuzPin, song_2[i]); delay(beat_2[i] 500); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 111 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) return Code Erklärung #define #define #define #define #define #define #define #define #define Diese Frequenzen jeder Note sind wie gezeigt. CL bezieht sich auf tiefe Note, CM mittlere Note, CH hohe Note, 1-7 entsprechen den Noten C, D, E, F, G, A, B.
  • Seite 112 # Beats of song 2, 1 means 1/8 beat 1, 1, 2, 2, 1, 1, 3, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, 2, 2, 1, 1, setup(): (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 113: Code Erklärung

    SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) GPIO.setmode(GPIO.BOARD) # Numbers GPIOs by physical location GPIO.setup(Buzzer, GPIO.OUT) # Set pins' mode is output global Buzz # Assign a global variable to replace GPIO.PWM Buzz GPIO.PWM(Buzzer, 440) # 440 is initial frequency.
  • Seite 114 Führen Sie eine for-Schleife aus, dann spielt der Summer die Noten im Array song_1 [] mit den Schlagen im Array beat_1 []. Jetzt können Sie den passiven Summer Musik spielen hören. Phänomen Bild 1.3 Treiber Kapitel 1. Über das Da Vinci Kit...
  • Seite 115 SunFounder Da Vinci Kit 1.7.10 1.3.1 Motor Einführung In dieser Lektion lernen wir, mit L293D einen Gleichstrommotor antreiben und ihn im und gegen den Uhrzeigersinn drehen. Da der Gleichstrommotor aus Sicherheitsgründen einen größeren Strom benötigt, verwenden wir hier das Stromversorgungsmodul zur Versorgung der Motoren.
  • Seite 116 Hohe Niveau steht und A auf High steht, gibt Y Hohe Niveau aus. Wenn A niedrig ist, gibt Y einen niedrigen Niveau aus. Wenn Pin EN auf niedgrigen Niveau steht, funktioniert der L293D nicht. Kapitel 1. Über das Da Vinci Kit...
  • Seite 117 SunFounder Da Vinci Kit Gleichspannungs Motor Dies ist ein 5V Gleichstrommotor. Es dreht sich, wenn Sie den beiden Anschlüssen des Kupferblechs einen hohen und einen niedrigen Niveau geben. Der Einfachheit halber können Sie die Pin daran schweißen. 1.7. 1 Ausgabe...
  • Seite 118 Strom, damit er sicher und gleichmäßig läuft. Sie können es einfach in das Steckbrett einstecken, um Strom zu liefern. Es liefert eine Spannung von 3,3V und 5V, und Sie können entweder über eine mitgelieferte Überbrückungskappe anschließen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 119 SunFounder Da Vinci Kit Schematische Darstellung Stecken Sie das Netzteilmodul in das Steckbrett und setzen Sie die Überbrückungskappe auf 5V, dann wird eine Spannung von 5V ausgegeben. Verbinden Sie Pin 1 des L293D mit GPIO22 und stellen Sie ihn auf Hohe Niveau ein.
  • Seite 120 Setzen Sie die Überbrückungskappe des Leistungsmoduls in die 5V-Busleisten des Steckbretts ein. Für Benutzer in C-Sprache Schritt 2: Gehen Sie in den Ordner der Kode. /home/pi/davinci-kit-for-raspberry-pi/c/1.3.1/ Schritt 3: Kompilieren. gcc 1.3.1_Motor.c -lwiringPi Schritt 4: Führen Sie die obige ausführbare Datei aus. Kapitel 1. Über das Da Vinci Kit...
  • Seite 121 SunFounder Da Vinci Kit sudo ./a.out Während die Kode läuft, dreht sich der Motor zuerst 5 Sekunden lang im Uhrzeigersinn und stoppt dann 5 Sekunden lang. Danach dreht er sich 5 Sekunden lang gegen den Uhrzeigersinn. Anschließend stoppt der Motor für 5S. Diese Reihe von Aktionen wird wiederholt ausgeführt.
  • Seite 122 Danach dreht er sich 5 Sekunden lang gegen den Uhrzeigersinn. Anschließend stoppt der Motor für 5S. Diese Reihe von Aktionen wird wiederholt ausgeführt. Code Bemerkung: Sie können den folgenden Code Ändern/Zurücksetzen/ Kopieren/Ausführen/Stoppen. Zuvor müssen Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 123 SunFounder Da Vinci Kit import RPi.GPIO GPIO import time dhtPin GPIO.setmode(GPIO.BCM) MAX_UNCHANGE_COUNT STATE_INIT_PULL_DOWN STATE_INIT_PULL_UP STATE_DATA_FIRST_PULL_DOWN STATE_DATA_PULL_UP STATE_DATA_PULL_DOWN readDht11(): GPIO.setup(dhtPin, GPIO.OUT) GPIO.output(dhtPin, GPIO.HIGH) time.sleep(0.05) GPIO.output(dhtPin, GPIO.LOW) time.sleep(0.02) GPIO.setup(dhtPin, GPIO.IN, GPIO.PUD_UP) unchanged_count last data while True: current GPIO.input(dhtPin) data.append(current) last current: unchanged_count...
  • Seite 124 #print ("Data not good, skip") return False return the_bytes[0], the_bytes[2] main(): while True: result readDht11() result: humidity, temperature result print ("humidity: Temperature: C`" (humidity, temperature)) time.sleep(1) (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 125 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) destroy(): GPIO.cleanup() __name__ '__main__': try: main() except KeyboardInterrupt: destroy() Code Erklärung motor(direction): # Clockwise direction # Set direction GPIO.output(MotorPin1, GPIO.HIGH) GPIO.output(MotorPin2, GPIO.LOW) # Enable the motor GPIO.output(MotorEnable, GPIO.HIGH) print ("Clockwise") Erstellen Sie eine Funktion, motor(), deren Variable die Richtung ist. Wenn die Bedingung erfüllt ist, dass Richtung = 1 erfüllt ist, dreht sich der Motor im Uhrzeigersinn.
  • Seite 126 SunFounder Da Vinci Kit Phänomen Bild 1.7.11 1.3.2 Servo Einführung In dieser Lektion lernen wir, wie man das Servo dreht. Kapitel 1. Über das Da Vinci Kit...
  • Seite 127 SunFounder Da Vinci Kit Komponenten 1.7. 1 Ausgabe...
  • Seite 128 1,5 ms ist, tritt das Gegenteil auf. Die minimale Breite und die maximale Impulsbreite, die das Servo anweisen, sich in eine gültige Position zu drehen, sind Funktionen jedes Servos. Im Allgemeinen ist der minimale Impuls ungefähr 0,5 ms breit und der maximale Impuls ist 2,5 ms breit. Kapitel 1. Über das Da Vinci Kit...
  • Seite 129 SunFounder Da Vinci Kit Schematische Darstellung 1.7. 1 Ausgabe...
  • Seite 130 C-Code funktioniert nicht? Code #include <wiringPi.h> #include <softPwm.h> #include <stdio.h> #define ServoPin //define the servo to GPIO1 long Map(long value,long fromLow,long fromHigh,long toLow,long toHigh){ return (toHigh-toLow) (value-fromLow) (fromHigh-fromLow) toLow; (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 131: Code Erklärung

    SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) void setAngle(int pin, angle){ //Create a funtion to control the angle of the servo. < if(angle angle if(angle > 180) angle 180; softPwmWrite(pin,Map(angle, 0, 180, 5, 25)); main(void) if(wiringPiSetup() -1){ //when initialize wiring failed,print message to screen printf("setup wiringPi failed...
  • Seite 132 # make the servo rotate to specific angle (0-180 degrees) angle max(0, min(180, angle)) pulse_width map(angle, 0, 180, SERVO_MIN_PULSE, SERVO_MAX_PULSE) map(pulse_width, 0, 20000, 0, 100) p.ChangeDutyCycle(pwm)#map the angle to duty cycle and output it loop(): (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 133 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) True: while range(0, 181, 5): #make servo rotate from 0 to 180 deg setAngle(i) # Write to servo time.sleep(0.002) time.sleep(1) range(180, -1, -5): #make servo rotate from 180 to 0 deg setAngle(i) time.sleep(0.001)
  • Seite 134 Die Welle eines Schrittmachers, der mit einer Reihe von Magneten montiert ist, wird von einer Reihe elektromagnetischer Spulen gesteuert, die in einer bestimmten Reihenfolge positiv und negativ geladen werden und diese in kleinen „Schritten“ präzise vorwärts oder rückwärts bewegen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 135 SunFounder Da Vinci Kit Komponenten Prinzip Schrittmotor Es gibt zwei Typen von Steppern, Unipolare und Bipolare, und es ist sehr wichtig zu wissen, mit welchem Typ Sie arbeiten. In diesem Experiment verwenden wir einen unipolaren Stepper. Der Schrittmotor ist ein Vierphasenmotor, der eine Gleichstromversorgung mit Unipolarität verwendet. Solange Sie alle Phasenwicklungen des Motors durch eine geeignete Zeitfolge elektrifizieren, können Sie ihn Schritt für Schritt...
  • Seite 136 Magnetpolen von A- und D-Phasenpolen. Die ähnliche Situation geht weiter und weiter. Schalten Sie die Phasen A, B, C und D nacheinander ein, und der Rotor dreht sich in der Reihenfolge A, B, C und D. Kapitel 1. Über das Da Vinci Kit...
  • Seite 137 SunFounder Da Vinci Kit Der Vierphasen-Schrittmotor verfügt über drei Betriebsarten: einfach vierstufig, doppelt vierstufig und achtstufig. Der Schrittwinkel für den einzelnen vierstufigen und den doppelten vierstufigen ist gleich, aber das Antriebsmoment für den einzelnen vierstufigen ist kleiner. Der Schrittwinkel des Achtstufens ist halb so groß wie der des Einzel-Vier- Stufen- und des Doppel-Vier-Stufen-Winkels.
  • Seite 138 Schritt. Der ähnliche Fall wiederholt sich immer weiter. Geben Sie dem Schrittmotor daher einfach eine bestimmte Zeitfolge, er dreht sich Schritt für Schritt. Der ULN2003 wird hier verwendet, um bestimmte Zeitabläufe für den Schrittmotor bereitzustellen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 139 SunFounder Da Vinci Kit 1.7. 1 Ausgabe...
  • Seite 140 SunFounder Da Vinci Kit Schematische Darstellung Kapitel 1. Über das Da Vinci Kit...
  • Seite 141 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Für Benutzer in C-Sprache Schritt 2: Gehen Sie zum Ordner des Codes. /home/pi/davinci-kit-for-raspberry-pi/c/1.3.3/ Schritt 3: Kompilieren Sie den Code. gcc 1.3.3_StepperMotor.c -lwiringPi Schritt 4: Führen Sie die ausführbare Datei aus.
  • Seite 142 (direction 'a') printf("motor running anti-clockwise\n"); delay(100); break; else printf("input error, please try again!\n"); delay(100); while(1) rotary(direction); void main(void) (wiringPiSetup() printf("setup wiringPi failed !"); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 143 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) return; (int 0; i < 4; i++) pinMode(motorPin[i], OUTPUT); stepSpeed (60000000 rolePerMinute) stepsPerRevolution; loop(); Code Erklärung rolePerMinute stepsPerRevolution 2048; stepSpeed rolePerMinute: Umdrehungen pro Minute sollte die Drehzahl des in diesem Kit verwendeten Schrittmotors 0 bis 17 betragen.
  • Seite 144 In Schritt 2 ist j = 1, i = 0 ~ 4. motorPin [0] wird in der hohen Ebene geschrieben (01001100 & 00001000 = 1) motorPin [1] wird auf dem niedrigen Niveau geschrieben (01001100 & 00000100 = 1) Kapitel 1. Über das Da Vinci Kit...
  • Seite 145: Für Python-Sprachbenutzer

    SunFounder Da Vinci Kit usw. Damit sich der Schrittmotor gegen den Uhrzeigersinn dreht, wird der Füllstandsstatus von motorPin in der folgenden Tabelle angezeigt. In Schritt 1 ist j = 0, i = 0 ~ 4. motorPin [0] wird in der hohen Ebene geschrieben (10011001 & 10000000 = 1) motorPin [1] wird auf dem niedrigen Niveau geschrieben (10011001 &...
  • Seite 146: Code Erklärung

    GPIO.cleanup() __name__ '__main__': setup() try: loop() except KeyboardInterrupt: destroy() Code Erklärung rolePerMinute stepsPerRevolution 2048 stepSpeed (60/rolePerMinute)/stepsPerRevolution rolePerMinute: Umdrehungen pro Minute sollte die Drehzahl des in diesem Kit verwendeten Schrittmotors 0 bis 17 Kapitel 1. Über das Da Vinci Kit...
  • Seite 147 SunFounder Da Vinci Kit betragen. stepPerRevolution: Die Anzahl der Schritte für jede Umdrehung und der in diesem Kit verwendete Schrittmotor benötigen 2048 Schritte pro Umdrehung. Schritt Geschwindigkeit: Die Zeit, die für jeden Schritt verwendet wird, und wir weisen ihnen die Werte zu: (60 / rolePerMinute) / stepPerRevolution (60s = 1minute).
  • Seite 148 [1] wird auf dem niedrigen Niveau geschrieben (01001100 & 00000100 = 1) Um den Schrittmotor gegen den Uhrzeigersinn drehen zu lassen, wird der Füllstandsstatus von motorPin in der fol- genden Tabelle angezeigt. Kapitel 1. Über das Da Vinci Kit...
  • Seite 149 SunFounder Da Vinci Kit In Schritt 1 ist j = 0, i = 0 ~ 4. motorPin [0] wird in der hohen Ebene geschrieben (10011001 & 10000000 = 1) motorPin [1] wird auf dem niedrigen Niveau geschrieben (10011001 & 01000000 = 0) In Schritt 2 ist j = 1, i = 0 ~ 4.
  • Seite 150: Einführung

    Steuerungssystem. Wenn die Spannung, der Strom, die Temperatur, der Druck usw. den vorgegebenen Wert erreichen, überschreiten oder unterschreiten, wird das Relais den Stromkreis anschließen oder unterbrechen, um das Gerät zu steuern und zu schützen. Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 151 SunFounder Da Vinci Kit Prinzip Diode Eine Diode ist eine zweipolige Komponente in der Elektronik mit einem unidirektionalen Stromfluss. Es bietet einen geringen Widerstand in Richtung des Stromflusses und einen hohen Widerstand in der entgegengesetzten Richtung. Dioden werden meistens verwendet, um Schäden an Bauteilen zu vermeiden, insbesondere aufgrund elektromotori- scher Kraft in Schaltkreisen, die normalerweise polarisiert sind.
  • Seite 152 Der Stromkreis mit der Last wird also erregt. Ein Unterbrechen des Stromkreises wäre dann ein ähnlicher Fall, da der bewegliche Kontakt unter der Kraft der Feder zu den normalerweise geschlossenen Kontakten hochgezogen wird. Auf diese Weise kann das Ein- und Ausschalten des Relais den Zustand eines Lastkreises steuern. Kapitel 1. Über das Da Vinci Kit...
  • Seite 153 SunFounder Da Vinci Kit Schematische Darstellung Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. 1.7. 1 Ausgabe...
  • Seite 154: Für Benutzer In C-Sprache

    #define RelayPin 0 main(void){ if(wiringPiSetup() -1){ //when initialize wiring failed, print message to screen printf("setup wiringPi failed !"); return pinMode(RelayPin, OUTPUT); //set GPIO17(GPIO0) output while(1){ // Tick printf("Relay Open..\n"); delay(100); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 155: Für Python-Benutzer

    SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) digitalWrite(RelayPin, LOW); delay(1000); // Tock printf("..Relay Close\n"); delay(100); digitalWrite(RelayPin, HIGH); delay(1000); return Code Erklärung digitalWrite(RelayPin, LOW); Stellen Sie den I/O -Anschluss auf einen niedrigen Niveau (0V) ein, damit der Transistor nicht erregt und die Spule nicht mit Strom versorgt wird.
  • Seite 156 Stellen Sie die Pins des Transistors auf einen niedrigen Niveau ein, damit das Relais geöffnet wird. Die LED leuchtet nicht. time.sleep(1) 1 Sekunde warten. GPIO.output(relayPin, GPIO.HIGH) Stellen Sie die Pins des Transistors auf einen niedrigen Niveau ein, um das Relais zu betätigen. Die LED leuchtet auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 157: Eingabe

    SunFounder Da Vinci Kit Phänomen Bild 1.8 2 Eingabe 2.1 Steuerungen 1.8.1 2.1.1 Taste Einführung In dieser Lektion lernen wir, wie Sie die LED mit einer Taste ein- oder ausschalten. 1.8. 2 Eingabe...
  • Seite 158 6-mm-Miniknopf verwendet, wie in den folgenden Bildern gezeigt. Zwei Pins auf der linken Seite sind verbunden, und der eine auf der rechten Seite ähnelt dem linken, der unten gezeigt wird: Kapitel 1. Über das Da Vinci Kit...
  • Seite 159: Schematische Darstellung

    SunFounder Da Vinci Kit Das unten gezeigte Symbol wird normalerweise verwendet, um eine Schaltfläche in Schaltkreisen darzustellen. Wenn die Taste gedrückt wird, werden die 4 Pins verbunden, wodurch der Stromkreis geschlossen wird. Schematische Darstellung Verwenden Sie eine normalerweise geöffnete Taste als Eingang für Raspberry Pi. Die Verbindung ist in der folgenden schematischen Darstellung dargestellt.
  • Seite 160 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 161 SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Öffnen Sie die Kodedatei. /home/pi/davinci-kit-for-raspberry-pi/c/2.1.1/ Bemerkung: Wechseln Sie in diesem Experiment in den Pfad der Kode mit cd. Schritt 3: Kompilieren Sie den Code. gcc 2.1.1_Button.c -lwiringPi Schritt 4: Führen Sie die ausführbare Datei aus.
  • Seite 162: Für Python-Sprachbenutzer

    Drücken Sie nun die Taste und die LED leuchtet auf. Drücken Sie die Taste erneut und die LED erlischt. Gleichzeitig wird der Status der LED auf dem Bildschirm gedruckt. Code Bemerkung: Sie können den folgenden Code Ändern/Zurücksetzen/ Kopieren/Ausführen/Stoppen. Zuvor müssen Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 163: Code Erklärung

    SunFounder Da Vinci Kit import RPi.GPIO GPIO import time LedPin # Set GPIO17 as LED pin BtnPin # Set GPIO18 as button pin Led_status True # Set Led status to True(OFF) # Define a setup function for some setup setup(): # Set the GPIO modes to BCM Numbering GPIO.setmode(GPIO.BCM)
  • Seite 164 Led_status, falsch ist, wird die Funktion GPIO.output() aufgerufen, um die LED zu beleuchten. Wenn die Taste erneut gedrückt wird, wird der Status der LED von falsch in wahr umgewandelt, sodass die LED erlischt. Phänomen Bild Kapitel 1. Über das Da Vinci Kit...
  • Seite 165 SunFounder Da Vinci Kit 1.8.2 2.1.2 Schiebeschalter Einführung In dieser Lektion lernen wir, wie man einen Schiebeschalter benutzt. Normalerweise wird der Schiebeschalter als Netzschalter auf die Leiterplatte gelötet, aber hier müssen wir ihn in das Steckbrett einsetzen, damit er möglicherweise nicht festgezogen wird.
  • Seite 166 Nummer auf den Kondensatoren beim Ablesen der Werte, die auf der Platine montiert wurden. Die ersten beiden Ziffern stellen den Wert dar und die letzte Ziffer der Nummer bedeutet den Multiplikator. Somit repräsentiert 104 eine Potenz von 10 x 10 zu 4 (in pF) gleich wie 100 nF. Kapitel 1. Über das Da Vinci Kit...
  • Seite 167 SunFounder Da Vinci Kit Schematische Darstellung Verbinden Sie den mittleren Pin des Schiebeschalters mit GPIO17 und zwei LEDs mit Pin GPIO22 bzw. GPIO27. Wenn Sie dann an der Folie ziehen, leuchten die beiden LEDs abwechselnd auf. 1.8. 2 Eingabe...
  • Seite 168 Code #include <wiringPi.h> #include <stdio.h> #define slidePin #define led1 #define led2 main(void) // When initialize wiring failed, print message to screen if(wiringPiSetup() -1){ printf("setup wiringPi failed !"); return (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 169 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) pinMode(slidePin, INPUT); pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); while(1){ // slide switch high, led1 on if(digitalRead(slidePin) digitalWrite(led1, LOW); digitalWrite(led2, HIGH); printf("LED1 on\n"); delay(100); // slide switch low, led2 on if(digitalRead(slidePin) digitalWrite(led2, LOW); digitalWrite(led1, HIGH);...
  • Seite 170 # Release resource GPIO.cleanup() # If run this script directly, do: __name__ '__main__': setup() try: main() # When 'Ctrl+C' is pressed, the program # destroy() will be executed. (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 171 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) KeyboardInterrupt: except destroy() Code Erklärung GPIO.input(slidePin) GPIO.output(led1Pin, GPIO.LOW) GPIO.output(led2Pin, GPIO.HIGH) Wenn der Schieber nach rechts gezogen wird, sind der mittlere und der rechte Pins verbunden. Der Raspberry Pi liest einen hohen Niveau am mittleren Pin, sodass die LED1 an und die LED2 aus ist.
  • Seite 172 SunFounder Da Vinci Kit 1.8.3 2.1.3 Neigungsschalter Einführung Dies ist ein Kugelkippschalter mit einer Metallkugel im Inneren. Es wird verwendet, um Neigungen eines kleinen Winkels zu erfassen. Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 173 SunFounder Da Vinci Kit Prinzip Neigung Das Prinzip ist sehr einfach. Wenn der Schalter in einem bestimmten Winkel gekippt wird, rollt die Kugel im Inneren nach unten und berührt die beiden Kontakte, die mit den Pins außen verbunden sind, wodurch Schaltkreise ausgelöst werden.
  • Seite 174 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 175 SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Verzeichnis wechseln. /home/pi/davinci-kit-for-raspberry-pi/c/2.1.3/ Schritt 3: Kompilieren. gcc 2.1.3_Tilt.c -lwiringPi Schritt 4: Ausführen. sudo ./a.out Wenn Sie die Neigung horizontal platzieren, leuchtet die grüne LED auf. Wenn Sie es kippen, „Neigung!“ wird auf dem Bildschirm gedruckt und die rote LED leuchtet auf.
  • Seite 176 LED auf. Wenn die Parameterfarbe GRÜN ist, leuchtet die grüne LED ebenfalls auf. while(1){ if(0 digitalRead(TiltPin)){ delay(10); if(0 digitalRead(TiltPin)){ LED("RED"); printf("Tilt!\n"); else if(1 digitalRead(TiltPin)){ delay(10); if(1 digitalRead(TiltPin)){ LED("GREEN"); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 177 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) Wenn der Lesewert des Neigungsschalters 0 ist, bedeutet dies, dass der Neigungsschalter gekippt ist. Dann schreiben Sie den Parameter ”ROT” in die Funktions-LED, damit die rote LED aufleuchtet. Andernfalls leuchtet die grüne LED.
  • Seite 178 STATE_DATA_PULL_DOWN: current GPIO.LOW: lengths.append(current_length) state STATE_DATA_PULL_UP else: continue len(lengths) #print ("Data not good, skip") return False shortest_pull_up min(lengths) longest_pull_up max(lengths) halfway (longest_pull_up shortest_pull_up) bits the_bytes byte length lengths: (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 179 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) length > halfway: bits.append(bit) #print ("bits: %s, length: %d" % (bits, len(bits))) range(0, len(bits)): byte byte << (bits[i]): byte byte else: byte byte the_bytes.append(byte) byte #print (the_bytes) checksum (the_bytes[0] the_bytes[1] the_bytes[2] the_bytes[3]) &...
  • Seite 180 Definieren Sie eine Rückruffunktion für den Neigungsrückruf. Holen Sie sich den Lesewert des Neigungsschalters, dann steuert die Funktion LED() das Ein- oder Ausschalten der beiden LEDs, abhängig vom Lesewert des Neigungs- schalters. Phänomen Bild Kapitel 1. Über das Da Vinci Kit...
  • Seite 181: Einführung

    SunFounder Da Vinci Kit 1.8.4 2.1.4 Potentiometer Einführung Die ADC-Funktion kann verwendet werden, um analoge Signale in digitale Signale umzuwandeln, und in diesem Experiment wird ADC0834 verwendet, um die Funktion zu erhalten, an der ADC beteiligt ist. Hier implementieren wir diesen Prozess mithilfe eines Potentiometers. Das Potentiometer ändert die physikalische Größe - Spannung, die von der ADC-Funktion umgewandelt wird.
  • Seite 182 DO-Ausgangspin ausgegeben, wobei das höchstwertige Bit (MSB) zuerst angezeigt wird. Nach acht Taktperioden ist die Konvertierung abgeschlossen und der SARS-Ausgang wird niedrig. Schließlich werden die niedrigstwertigen Bit-First-Daten nach dem MSB-First-Datenstrom ausgegeben. Kapitel 1. Über das Da Vinci Kit...
  • Seite 183 SunFounder Da Vinci Kit ADC0834 MUX ADDRESS CONTROL LOGIC TABLE Potentiometer Das Potentiometer ist auch eine Widerstandskomponente mit 3 Anschlüssen und sein Widerstandswert kann gemäß einigen regelmäßigen Abweichungen eingestellt werden. Das Potentiometer besteht normalerweise aus einem Wider- stand und einer beweglichen Bürste. Wenn sich die Bürste entlang des Widerstands bewegt, gibt es abhängig von der Verschiebung einen bestimmten Widerstand oder eine bestimmte Spannung.
  • Seite 184 Potentiometer angelegten Spannung und dem Winkel abhängt, in den sich der bewegliche Arm gedreht hat, oder von der Entfernung, um die er sich bewegt. Schematische Darstellung Kapitel 1. Über das Da Vinci Kit...
  • Seite 185 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. 1.8. 2 Eingabe...
  • Seite 186 > & channel & pinMode(ADC_DIO, OUTPUT); digitalWrite(ADC_CS, 0); // Start bit digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,1); delayMicroseconds(2); digitalWrite(ADC_CLK,1); delayMicroseconds(2); //Single End mode digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,1); delayMicroseconds(2); digitalWrite(ADC_CLK,1); delayMicroseconds(2); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 187: Code Erklärung

    SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) // ODD digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,odd); delayMicroseconds(2); digitalWrite(ADC_CLK,1); delayMicroseconds(2); //Select digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,sel); delayMicroseconds(2); digitalWrite(ADC_CLK,1); digitalWrite(ADC_DIO,1); delayMicroseconds(2); digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,1); delayMicroseconds(2); for(i=0;i<8;i++) digitalWrite(ADC_CLK,1); delayMicroseconds(2); digitalWrite(ADC_CLK,0); delayMicroseconds(2); pinMode(ADC_DIO, INPUT); dat1=dat1<<1 digitalRead(ADC_DIO); for(i=0;i<8;i++) dat2 dat2 ((uchar)(digitalRead(ADC_DIO))<<i); digitalWrite(ADC_CLK,1); delayMicroseconds(2);...
  • Seite 188 INPUT); dat1=dat1<<1 digitalRead(ADC_DIO); for(i=0;i<8;i++) dat2 dat2 ((uchar)(digitalRead(ADC_DIO))<<i); digitalWrite(ADC_CLK,1); delayMicroseconds(2); digitalWrite(ADC_CLK,0); delayMicroseconds(2); digitalWrite(ADC_CS,1); pinMode(ADC_DIO, OUTPUT); return(dat1==dat2) dat1 : 0; Kapitel 1. Über das Da Vinci Kit...
  • Seite 189 SunFounder Da Vinci Kit Es gibt eine Funktion von ADC0834, um die Analog-Digital-Wandlung zu erhalten. Der spezifische Workflow lautet wie folgt: digitalWrite(ADC_CS, 0); Stellen Sie CS auf einen niedrigen Wert ein und aktivieren Sie die AD-Konvertierung. // Start bit digitalWrite(ADC_CLK,0);...
  • Seite 190 Wenn sie gleich sind, geben Sie den Konvertierungswert dat1 aus. Andernfalls wird 0 ausgegeben. Hier ist der Workflow von ADC0834 abgeschlossen. softPwmCreate(LedPin, 0, 100); Die Funktion besteht darin, mithilfe von Software einen PWM-Pin, LedPin, zu erstellen, dann die anfängliche Impuls- Kapitel 1. Über das Da Vinci Kit...
  • Seite 191 SunFounder Da Vinci Kit breite auf 0 zu setzen und die PWM-Periode 100 x 100us zu betragen. while(1){ analogVal get_ADC_Result(0); printf("Current analogVal : %d\n", analogVal); softPwmWrite(LedPin, analogVal); delay(100); Lesen Sie im Hauptprogramm den Wert von Kanal 0 ab, der mit einem Potentiometer verbunden wurde. Speichern Sie den Wert in der Variablen analogVal und schreiben Sie ihn in LedPin.
  • Seite 192 Funktion MAP auf, um den Lesewert des Potentiometers auf 0 ~ 100 abzubilden. Dieser Schritt wird verwendet, um den Arbeitszyklus von LedPin zu steuern. Jetzt können Sie sehen, dass sich die Helligkeit der LED mit dem Wert des Potentiometers ändert. Kapitel 1. Über das Da Vinci Kit...
  • Seite 193 SunFounder Da Vinci Kit Phänomen Bild 1.8.5 2.1.5 Tastatur Einführung Eine Tastatur ist eine rechteckige Anordnung von Schaltflächen. In diesem Projekt werden wir Eingabezeichen ver- wenden. 1.8. 2 Eingabe...
  • Seite 194 über einen Header, der zum Anschluss mit einem Flachbandkabel oder zum Einsetzen in eine Leiterplatte geeignet ist. Bei einigen Tastaturen ist jede Taste mit einem separaten Kontakt in der Kopfzeile verbunden, während alle Tasten eine gemeinsame Masse haben. Kapitel 1. Über das Da Vinci Kit...
  • Seite 195 SunFounder Da Vinci Kit Häufiger sind die Tasten Matrix kodiert, was bedeutet, dass jede von ihnen ein eindeutiges Leiterpaar in einer Matrix überbrückt. Diese Konfiguration eignet sich zum Abfragen durch einen Mikrocontroller, der so programmiert wer- den kann, dass er nacheinander einen Ausgangsimpuls an jeden der vier horizontalen Drähte sendet. Während jedes Impulses werden die verbleibenden vier vertikalen Drähte nacheinander überprüft, um festzustellen, welcher, falls vor-...
  • Seite 196 SunFounder Da Vinci Kit Schematische Darstellung Kapitel 1. Über das Da Vinci Kit...
  • Seite 197 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. 1.8. 2 Eingabe...
  • Seite 198 Nachdem die Kode ausgeführt wurde, werden die Werte der gedrückten Tasten auf der Tastatur (Tastenwert) auf dem Bildschirm gedruckt. Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code Kapitel 1. Über das Da Vinci Kit...
  • Seite 199 SunFounder Da Vinci Kit #include <wiringPi.h> #include <stdio.h> #define ROWS #define COLS #define BUTTON_NUM (ROWS * COLS) KEYS[BUTTON_NUM] { unsigned char '1','2','3','A', '4','5','6','B', '7','8','9','C', ','0','#','D'}; unsigned char rowPins[ROWS] {1, 4, 5, 6}; unsigned char colPins[COLS] {12, 3, 2, 0}; void keyRead(unsigned char result);...
  • Seite 200: Code Erklärung

    (a[0] printf("%c",a[0]); (int i=1; i<BUTTON_NUM; i++){ (a[i] printf(", %c",a[i]); printf("\n"); void keyClear(unsigned char (int i=0; i<BUTTON_NUM; i++){ a[i] keyIndexOf(const char value){ (int i=0; i<BUTTON_NUM; i++){ if ((const char)KEYS[i] value){ return return Code Erklärung Kapitel 1. Über das Da Vinci Kit...
  • Seite 201 SunFounder Da Vinci Kit unsigned char KEYS[BUTTON_NUM] { '1','2','3','A', '4','5','6','B', '7','8','9','C', ','0','#','D'}; unsigned char rowPins[ROWS] {1, 4, 5, 6}; colPins[COLS] {12, 3, 2, 0}; unsigned char Deklarieren Sie jede Taste der Matrixtastatur zu den Array- keys[] und definieren Sie die Pins für jede Zeile und Spalte.
  • Seite 202 (int i=0; i<BUTTON_NUM; i++){ a[i] b[i]; Diese beiden Funktionen werden verwendet, um zu beurteilen, ob sich der Tastenstatus geändert hat. Wenn Sie bei- Kapitel 1. Über das Da Vinci Kit...
  • Seite 203: Für Python-Sprachbenutzer

    SunFounder Da Vinci Kit spielsweise Ihre Hand loslassen, wenn Sie ‚3‘ oder ‚2‘ drücken, gibt keyCompare () false zurück. Mit KeyCopy() wird der aktuelle Schaltflächenwert für ein Array (last_key_pressed[BUTTON_NUM]) nach jedem Vergleich neu geschrieben. So können wir sie beim nächsten Mal vergleichen.
  • Seite 204 [10,22,27,17] keys ["1","2","3","A", "4","5","6","B", "7","8","9","C", " * ","0","#","D"] keypad Keypad(rowsPins, colsPins, keys) last_key_pressed Deklarieren Sie jede Taste der Matrixtastatur zu den Array- keys[] und definieren Sie die Pins für jede Zeile und Spalte. Kapitel 1. Über das Da Vinci Kit...
  • Seite 205 SunFounder Da Vinci Kit loop(): keypad, last_key_pressed global pressed_keys keypad.read() len(pressed_keys) last_key_pressed pressed_keys: print(pressed_keys) last_key_pressed pressed_keys time.sleep(0.1) Dies ist der Teil der Hauptfunktion, der den Tastenwert liest und druckt. Die Funktion keys[] liest den Status jeder Taste. Die Anweisung if len(pressed_keys) != 0 und last_key_pressed != pressed_keys wird zur Beurteilung verwendet ob eine Taste gedrückt wird und der Status der gedrückten Taste.
  • Seite 206 Wenn rowPins[1], rowPins[2], rowPins[3] auf eine hohe Ebene geschrieben werden, erhalten colPins[0] ~ colPins[4] eine niedrige Ebene. Die Schleife wurde gestoppt, dort wird press_keys = ‘3’ zurückgegeben. Wenn Sie die Tasten ‘1’ und ‘3’ drücken, wird pressed_keys = [‘1’,‘3’] zurückgegeben. Kapitel 1. Über das Da Vinci Kit...
  • Seite 207: Einführung

    SunFounder Da Vinci Kit Phänomen Bild 1.8.6 2.1.6 Joystick Einführung In diesem Projekt lernen wir, wie der Joystick funktioniert. Wir manipulieren den Joystick und zeigen die Ergebnisse auf dem Bildschirm an. 1.8. 2 Eingabe...
  • Seite 208 Um dem Computer einen vollständigen Bewegungsbereich zu übermitteln, muss ein Joystick die Position des Sticks auf zwei Achsen messen - der X-Achse (von links nach rechts) und der Y-Achse (nach oben und unten). Genau wie in der Grundgeometrie bestimmen die XY-Koordinaten genau die Position des Sticks. Kapitel 1. Über das Da Vinci Kit...
  • Seite 209: Schematische Darstellung

    SunFounder Da Vinci Kit Um die Position des Steuerknüppels zu bestimmen, überwacht das Joystick-Steuerungssystem einfach die Position jeder Welle. Das herkömmliche analoge Joystick-Design macht dies mit zwei Potentiometern oder variablen Wider- ständen. Der Joystick verfügt außerdem über einen digitalen Eingang, der beim Herunterdrücken des Joysticks betätigt wird.
  • Seite 210 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 211: Für Benutzer In C-Sprache

    SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Gehen Sie zum Ordner der Kode. /home/pi/davinci-kit-for-raspberry-pi/c/2.1.6/ Schritt 3: Kompilieren Sie die Kode. gcc 2.1.6_Joystick.c -lwiringPi Schritt 4: Führen Sie die ausführbare Datei aus. sudo ./a.out Nachdem die Kode ausgeführt wurde, drehen Sie den Joystick, und die entsprechenden Werte von x, y, Btn werden auf dem Bildschirm angezeigt.
  • Seite 212 %d\n", x_val, y_val, btn_val); delay(100); return Code Erklärung uchar get_ADC_Result(uint channel) uchar i; uchar dat1=0, dat2=0; channel > & channel & pinMode(ADC_DIO, OUTPUT); digitalWrite(ADC_CS, 0); // Start bit digitalWrite(ADC_CLK,0); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 213 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) digitalWrite(ADC_DIO,1); delayMicroseconds(2); digitalWrite(ADC_CLK,1); delayMicroseconds(2); //Single End mode digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,1); delayMicroseconds(2); digitalWrite(ADC_CLK,1); delayMicroseconds(2); ..Der Arbeitsprozess der Funktion ist in 2.1.4 Potentiometer beschrieben. while(1){ x_val get_ADC_Result(0); y_val get_ADC_Result(1); btn_val digitalRead(BtnPin); printf("x = %d, y = %d, btn = %d\n", x_val, y_val, btn_val);...
  • Seite 214 Lesen Sie außerdem den Wert von SW des Joysticks und speichern Sie ihn in der Variablen Btn_val. Schließlich sollen die Werte von x_val, y_val und Btn_val mit der Funktion print() gedruckt werden. Kapitel 1. Über das Da Vinci Kit...
  • Seite 215 SunFounder Da Vinci Kit Phänomen Bild 2.2 Sensoren 1.8.7 2.2.1 Fotowiderstand Einführung Der Fotowiderstand ist eine häufig verwendete Komponente der Umgebungslichtintensität im Leben. Es hilft dem Controller, Tag und Nacht zu erkennen und Lichtsteuerungsfunktionen wie Nachtlampen zu realisieren. Dieses Projekt ist dem Potentiometer sehr ähnlich, und Sie könnten denken, es ändert die Spannung, um Licht zu erfassen.
  • Seite 216 Ein Fotowiderstand oder eine Fotozelle ist ein lichtgesteuerter variabler Widerstand. Der Widerstand eines Fotowider- stands nimmt mit zunehmender Intensität des einfallenden Lichts ab; mit anderen Worten, es zeigt Fotoleitfähigkeit. Ein Fotowiderstand kann in lichtempfindlichen Detektorschaltungen sowie in licht- und dunkelheitsaktivierten Schalt- kreisen eingesetzt werden. Kapitel 1. Über das Da Vinci Kit...
  • Seite 217 SunFounder Da Vinci Kit Schematische Darstellung 1.8. 2 Eingabe...
  • Seite 218 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 219 SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Gehen Sie zum Ordner der Kode. /home/pi/davinci-kit-for-raspberry-pi/c/2.2.1/ Schritt 3: Kompilieren Sie der Kode. gcc 2.2.1_Photoresistor.c -lwiringPi Schritt 4: Führen Sie die ausführbare Datei aus. sudo ./a.out Wenn die Kode ausgeführt wird, variiert die Helligkeit der LED in Abhängigkeit von der Lichtintensität, die der Fotowiderstand erfasst.
  • Seite 220 %d\n", analogVal); delay(100); softPwmWrite(LedPin, analogVal); delay(100); return Code Erklärung Die Koden hier sind die gleichen wie in 2.1.4 Potentiometer. Wenn Sie weitere Fragen haben, lesen Sie bitte die Kode-Erklärung von 2.1.4 Potentiometer.c für Details. Kapitel 1. Über das Da Vinci Kit...
  • Seite 221 SunFounder Da Vinci Kit Für Python-Sprachbenutzer Schritt 2: Gehen Sie zum Ordner der Kode. /home/pi/davinci-kit-for-raspberry-pi/python/ Schritt 3: Führen Sie die ausführbare Datei aus. sudo python3 2.2.1_Photoresistor.py Wenn die Kode ausgeführt wird, variiert die Helligkeit der LED in Abhängigkeit von der Lichtintensität, die der Fotowiderstand erfasst.
  • Seite 222 Als nächstes müssen Sie den Wert über die Druckfunktion drucken. Da das sich ändernde Element das Tastverhältnis von LedPin ist, wird die Berechnungsformel analogVal * 100/255 benötigt, um analogVal in Prozent umzuwandeln. Schließlich wird ChangeDutyCycle() aufgerufen, um den Prozentsatz in LedPin zu schreiben. Phänomen Bild Kapitel 1. Über das Da Vinci Kit...
  • Seite 223 SunFounder Da Vinci Kit 1.8.8 2.2.2 Thermistor Einführung Genau wie der Fotowiderstand Licht erfassen kann, ist der Thermistor ein temperaturempfindliches elektronisches Gerät, mit dem Funktionen der Temperaturregelung wie z. B. ein Wärmealarm realisiert werden können. Komponenten 1.8. 2 Eingabe...
  • Seite 224 =1/(ln(R )/B+1/T ), um eine Kelvin-Temperatur zu erhalten, die minus 273.15 Grad Celsius entspricht. Diese Beziehung ist eine empirische Formel. Sie ist nur dann genau, wenn Temperatur und Widerstand im effektiven Bereich liegen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 225 SunFounder Da Vinci Kit Schematische Darstellung 1.8. 2 Eingabe...
  • Seite 226 Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code #include <wiringPi.h> #include <stdio.h> #include <math.h> typedef unsigned char uchar; typedef unsigned int uint; #define ADC_CS (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 227 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) #define ADC_CLK #define ADC_DIO uchar get_ADC_Result(uint channel) uchar i; uchar dat1=0, dat2=0; channel > & channel & pinMode(ADC_DIO, OUTPUT); digitalWrite(ADC_CS, 0); // Start bit digitalWrite(ADC_CLK,0); digitalWrite(ADC_DIO,1); delayMicroseconds(2); digitalWrite(ADC_CLK,1); delayMicroseconds(2); //Single End mode digitalWrite(ADC_CLK,0);...
  • Seite 228 (((log(Rt/10000)) 3950)+(1 (273.15 25))); Diese Kode bezieht sich auf das Einstecken von Rt in die Formel TK=1/(ln(RT/RN)/B+1/TN),um die Kelvin- Temperatur zu erhalten. temp temp 273.15; Wandeln Sie die Kelvin-Temperatur in Grad Celsius um. Kapitel 1. Über das Da Vinci Kit...
  • Seite 229 SunFounder Da Vinci Kit +32; Konvertieren Sie Grad Celsius in Fahrenheit. printf("Celsius: %.2f C Fahrenheit: %.2f F\n", cel, Fah); Drucken Sie Celsius, Fahrenheit und ihre Einheiten auf dem Display. Für Python-Sprachbenutzer Schritt 2: Gehen Sie zum Ordner der Kode. /home/pi/davinci-kit-for-raspberry-pi/python/ Schritt 3: Führen Sie die ausführbare Datei aus...
  • Seite 230 273.15 Wandeln Sie die Kelvin-Temperatur in Grad Celsius um. Konvertieren Sie den Celsius-Grad in Fahrenheit-Grad. print ('Celsius: %.2f °C Fahrenheit: %.2f (Cel, Fah)) Drucken Sie Celsius, Fahrenheit und ihre Einheiten auf dem Display. Kapitel 1. Über das Da Vinci Kit...
  • Seite 231 SunFounder Da Vinci Kit Phänomen Bild 1.8.9 2.2.3 DHT-11 Einführung Der digitale Temperatur- und Feuchtigkeitssensor DHT11 ist ein Verbundsensor, der einen kalibrierten digitalen Si- gnalausgang für Temperatur und Luftfeuchtigkeit enthält. Die Technologie einer speziellen Sammlung digitaler Mo- dule und die Technologie der Temperatur- und Feuchtigkeitsmessung werden angewendet, um sicherzustellen, dass das Produkt eine hohe Zuverlässigkeit und ausgezeichnete Stabilität aufweist.
  • Seite 232 Der DHT11 ist ein grundlegender, äußerst kostengünstiger digitaler Temperatur- und Feuchtigkeitssensor. Es verwen- det einen kapazitiven Feuchtigkeitssensor und einen Thermistor, um die Umgebungsluft zu messen, und spuckt ein digitales Signal auf den Datenstift aus (es werden keine analogen Eingangsstifte benötigt). Kapitel 1. Über das Da Vinci Kit...
  • Seite 233 SunFounder Da Vinci Kit Es sind nur drei Pins verfügbar: VCC, GND und DATA. Der Kommunikationsprozess beginnt damit, dass die DATA-Leitung Startsignale an DHT11 sendet, und DHT11 empfängt die Signale und gibt ein Antwortsignal zu- rück. Dann empfängt der Host das Antwortsignal und beginnt mit dem Empfang von 40-Bit-Feuchtigkeitsdaten (8-Bit-Feuchtigkeits-Ganzzahl + 8-Bit-Feuchtigkeits-Dezimalzahl + 8-Bit-Temperatur-Ganzzahl + 8-Bit-Temperatur- Dezimalzahl + 8-Bit-Prüfsumme).
  • Seite 234 SunFounder Da Vinci Kit Schematische Darstellung Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 235 SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Gehen Sie zum Ordner der Kode. /home/pi/davinci-kit-for-raspberry-pi/c/2.2.3/ Schritt 3: Kompilieren Sie die Kode. gcc 2.2.3_DHT.c -lwiringPi Schritt 4: Führen Sie die ausführbare Datei aus. sudo ./a.out Nachdem die Kode ausgeführt wurde, druckt das Programm die von DHT11 erfasste Temperatur und Luftfeuchtigkeit auf dem Computerbildschirm.
  • Seite 236: Code Erklärung

    Fah); main (void) { if(wiringPiSetup() -1){ //when initialize wiring failed, print messageto screen printf("setup wiringPi failed !"); return while (1) { readDht11(); delay(500); // wait 1sec to refresh return Code Erklärung Kapitel 1. Über das Da Vinci Kit...
  • Seite 237 SunFounder Da Vinci Kit void readDht11() { laststate HIGH; uint8_t uint8_t counter uint8_t 0, i; Fah; // fahrenheit float dht11_dat[0] dht11_dat[1] dht11_dat[2] dht11_dat[3] dht11_dat[4] // ... Diese Funktion wird verwendet, um die Funktion von DHT11 zu realisieren. Es kann im Allgemeinen in 3 Teile unterteilt werden: 1.
  • Seite 238 Das Endergebnis ist gleich mit den Prüfbitdaten, dann sind die empfangenen Daten korrekt: Luftfeuchtigkeit = 43% Temperatur = 60 * C. Wenn es nicht gleich mit den Prüfbitdaten ist, ist die Datenübertragung nicht normal und die Daten werden erneut empfangen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 239 SunFounder Da Vinci Kit Für Python-Sprachbenutzer Schritt 2: Gehen Sie zum Ordner der Kode. /home/pi/davinci-kit-for-raspberry-pi/python/ Schritt 3: Führen Sie die ausführbare Datei aus. sudo python3 2.2.3_DHT.py Nachdem die Kode ausgeführt wurde, druckt das Programm die von DHT11 erfasste Temperatur und Luftfeuchtigkeit auf dem Computerbildschirm.
  • Seite 240 > halfway: bits.append(bit) #print ("bits: %s, length: %d" % (bits, len(bits))) range(0, len(bits)): byte byte << (bits[i]): byte byte else: byte byte (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 241 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) the_bytes.append(byte) byte #print (the_bytes) checksum (the_bytes[0] the_bytes[1] the_bytes[2] the_bytes[3]) & 0xFF the_bytes[4] checksum: #print ("Data not good, skip") return False the_bytes[0], the_bytes[2] return main(): while True: result readDht11() result: humidity, temperature result print ("humidity:...
  • Seite 242 Körpers herstellen. Wenn sich jemand der LED nähert, leuchtet die LED automatisch auf. Wenn nicht, geht das Licht aus. Dieser Infrarot-Bewegungssensor ist ein Typ Sensor, der das von Mensch und Tier emittierte Infrarot erfassen kann. Kapitel 1. Über das Da Vinci Kit...
  • Seite 243 SunFounder Da Vinci Kit Komponenten Prinzip Der PIR-Sensor erfasst Infrarot-Wärmestrahlung, mit der das Vorhandensein von Organismen erfasst werden kann, die Infrarot-Wärmestrahlung emittieren. Der PIR-Sensor ist in zwei Steckplätze unterteilt, die an einen Differenzverstärker angeschlossen sind. Wenn sich ein stationäres Objekt vor dem Sensor befindet, empfangen die beiden Schlitze die gleiche Strahlungsmenge und der Ausgang ist Null.
  • Seite 244 Drehen Sie die Taste des Potentiometers für die Verzögerungseinstellung im Uhrzeigersinn. Sie können auch sehen, wie die Erfassungsverzögerung zunimmt. Das Maximum der Erfassungsverzögerung kann bis zu 300 s erreichen. Im Gegenteil, wenn Sie es gegen den Uhrzeigersinn drehen, können Sie die Verzögerung um mindestens 5 Sekunden Kapitel 1. Über das Da Vinci Kit...
  • Seite 245: Schematische Darstellung

    SunFounder Da Vinci Kit verkürzen. Zwei Triggermodus: (Auswahl verschiedener Modus mit der Überbrückungskappe). • H: Wiederholbarer Triggermodus, nachdem der menschliche Körper erfasst wurde, gibt das Modul einen hohen Niveau aus. Wenn während der nachfolgenden Verzögerungszeit jemand den Erfassungsbereich betritt, bleibt der Ausgang auf dem hohen Niveau.
  • Seite 246 Sie versuchen, diese beiden Potentiometer einzustellen. Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code #include <wiringPi.h> #include <softPwm.h> #include <stdio.h> #define uchar unsigned char (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 247 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) #define pirPin //the pir connect to GPIO0 #define redPin #define greenPin #define bluePin void ledInit(void){ softPwmCreate(redPin, 0, 100); softPwmCreate(greenPin,0, 100); softPwmCreate(bluePin, 0, 100); void ledColorSet(uchar r_val, uchar g_val, uchar b_val){ softPwmWrite(redPin, r_val);...
  • Seite 248 # Define a MAP function for mapping values. Like from 0~255 to 0~100 MAP(x, in_min, in_max, out_min, out_max): return in_min) (out_max out_min) (in_max in_min) out_min (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 249 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) # Define a function to set up colors setColor(color): # configures the three LEDs' luminance with the inputted color value . # Devide colors from 'color' veriable R_val (color & 0xFF0000) >>...
  • Seite 250 1.1.2 RGB-LED. loop(): while True: pir_val GPIO.input(pirPin) pir_val==GPIO.HIGH: setColor(0xFFFF00) else setColor(0x0000FF) Wenn PIR das menschliche Infrarotspektrum erkennt, sendet die RGB-LED das gelbe Licht aus. Wenn nicht, wird das blaue Licht ausgesendet. Phänomen Bild Kapitel 1. Über das Da Vinci Kit...
  • Seite 251 SunFounder Da Vinci Kit 1.8.11 2.2.5 Ultraschallsensormodul Einführung Der Ultraschallsensor verwendet Ultraschall, um Objekte genau zu erfassen und die Entfernungen zu messen. Es sendet Ultraschallwellen aus und wandelt sie in elektronische Signale um. Komponenten Prinzip Ultraschall Das Ultraschall-Entfernungsmessmodul bietet eine berührungslose Messfunktion von 2cm bis 400 cm, und die Ent- fernungsgenauigkeit kann bis zu 3mm betragen.
  • Seite 252 Formel: us / 58 = Zentimeter oder us / 148 = Zoll; oder: der Bereich = hohe Niveauzeit * Geschwindigkeit (340M/S) / 2; Es wird empfohlen, einen Messzyklus über 60ms zu verwenden, um Signalkollisionen des Triggersignals und des Echosignals zu vermeiden. Kapitel 1. Über das Da Vinci Kit...
  • Seite 253 SunFounder Da Vinci Kit Schematische Darstellung Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. 1.8. 2 Eingabe...
  • Seite 254 Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code #include <wiringPi.h> #include <stdio.h> #include <sys/time.h> #define Trig #define Echo void ultraInit(void) pinMode(Echo, INPUT); pinMode(Trig, OUTPUT); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 255 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) float disMeasure(void) struct timeval tv1; struct timeval tv2; time1, time2; long float dis; digitalWrite(Trig, LOW); delayMicroseconds(2); digitalWrite(Trig, HIGH); delayMicroseconds(10); digitalWrite(Trig, LOW); while(!(digitalRead(Echo) 1)); gettimeofday(&tv1, NULL); while(!(digitalRead(Echo) 0)); gettimeofday(&tv2, NULL); time1 tv1.tv_sec 1000000 tv1.tv_usec;...
  • Seite 256 Konvertieren Sie die von struct timeval gespeicherte Zeit in eine volle Mikrosekundenzeit. (float)(time2 time1) 1000000 34000 Die Entfernung wird durch das Zeitintervall und die Geschwindigkeit der Schallausbreitung berechnet. Die Schallge- schwindigkeit in der Luft: 34000cm/s. Kapitel 1. Über das Da Vinci Kit...
  • Seite 257 SunFounder Da Vinci Kit Für Python-Sprachbenutzer Schritt 2: Gehen Sie zum Ordner der Kode. /home/pi/davinci-kit-for-raspberry-pi/python/ Schritt 3: 8 Führen Sie die ausführbare Datei aus. sudo python3 2.2.5_Ultrasonic.py Wenn die Kode ausgeführt wird, erkennt das Ultraschallsensormodul den Abstand zwischen dem vorausfahrenden Hindernis und dem Modul selbst.
  • Seite 258 Echosignal empfangen wird, und um dann die aktuelle Zeit abzurufen. during time2 time1 Führen Sie die Intervallberechnung durch. return during Die Entfernung wird unter Berücksichtigung des Zeitintervalls und der Schallausbreitungsgeschwindigkeit berechnet. Die Schallgeschwindigkeit in der Luft: 340 m/s. Kapitel 1. Über das Da Vinci Kit...
  • Seite 259 SunFounder Da Vinci Kit Phänomen Bild 1.8.12 2.2.6 MPU6050-Modul Einführung Die MPU-6050 ist das weltweit erste und einzige 6-Achsen-Bewegungsverfolgungsgerät (3-Achsen-Gyroskop und 3-Achsen-Beschleunigungsmesser), das für Smartphones, Tablets und tragbare Sensoren entwickelt wurde, die diese Funktionen aufweisen, einschließlich geringer Leistung, geringer Kosten und hoher Leistung Leistungsanforderungen.
  • Seite 260 Legen Sie die MPU6050 flach auf den Tisch und stellen Sie sicher, dass das Gesicht mit dem Etikett nach oben zeigt und sich ein Punkt auf dieser Oberfläche in der oberen linken Ecke befindet. Dann ist die aufrechte Richtung nach Kapitel 1. Über das Da Vinci Kit...
  • Seite 261 SunFounder Da Vinci Kit oben die z-Achse des Chips. Die Richtung von links nach rechts wird als X-Achse angesehen. Dementsprechend ist die Richtung von hinten nach vorne als Y-Achse definiert. 3-Achsbeschleunigungsmesser Der Beschleunigungsmesser arbeitet nach dem Prinzip des piezoelektrischen Effekts, der Fähigkeit bestimmter Mate- rialien, als Reaktion auf angelegte mechanische Beanspruchung eine elektrische Ladung zu erzeugen.
  • Seite 262 Winkelgeschwindigkeit = (Rohdaten der Gyroskopachse / 65536 * Gyroskopbereich im vollen Maßstab) °/s Die X-Achse, zum Beispiel die Rohdaten der X-Achse des Beschleunigungsmessers, ist 16384 und reicht von +/- 250 °/s: Winkelgeschwindigkeit entlang der X-Achse = (16384/65536 * 500) °/s = 125 °/s Kapitel 1. Über das Da Vinci Kit...
  • Seite 263: Schematische Darstellung

    SunFounder Da Vinci Kit Schematische Darstellung Die MPU6050 kommuniziert mit dem Mikrocontroller über die I2C-Busschnittstelle. Der SDA1 und der SCL1 müssen mit dem entsprechenden Pin verbunden werden. 1.8. 2 Eingabe...
  • Seite 264 Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code #include <wiringPiI2C.h> #include <wiringPi.h> #include <stdio.h> #include <math.h> acclX, acclY, acclZ; gyroX, gyroY, gyroZ; double acclX_scaled, acclY_scaled, acclZ_scaled; double gyroX_scaled, gyroY_scaled, gyroZ_scaled; (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 265 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) int read_word_2c(int addr) val; wiringPiI2CReadReg8(fd, addr); << wiringPiI2CReadReg8(fd, addr+1); (val >= 0x8000) -(65536 val); val; return double dist(double double return sqrt((a b)); double get_y_rotation(double double double double radians; radians atan2(x, dist(y, z));...
  • Seite 266 -(radians (180.0 M_PI)); Wir erhalten den Ablenkwinkel auf der Y-Achse. double get_x_rotation(double double double double radians; radians atan2(y, dist(x, z)); return (radians (180.0 M_PI)); Kapitel 1. Über das Da Vinci Kit...
  • Seite 267 SunFounder Da Vinci Kit Berechnen Sie den Ablenkwinkel der x-Achse. gyroX read_word_2c(0x43); gyroY read_word_2c(0x45); gyroZ read_word_2c(0x47); gyroX_scaled gyroX 131.0; gyroY_scaled gyroY 131.0; gyroZ_scaled gyroZ 131.0; //Print values for the X, Y, and Z axes of the gyroscope sensor. printf("My gyroX_scaled: %f\n", gyroY X_scaled);...
  • Seite 268 ", gyro_xout, " scaled: ", (gyro_xout 131)) print ("gyro_yout : ", gyro_yout, " scaled: ", (gyro_yout 131)) print ("gyro_zout : ", gyro_zout, " scaled: ", (gyro_zout 131)) accel_xout read_word_2c(0x3b) (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 269 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) accel_yout read_word_2c(0x3d) accel_zout read_word_2c(0x3f) accel_xout_scaled accel_xout 16384.0 accel_yout_scaled accel_yout 16384.0 accel_zout_scaled accel_zout 16384.0 print ("accel_xout: ", accel_xout, " scaled: ", accel_xout_scaled) print ("accel_yout: ", accel_yout, " scaled: ", accel_yout_scaled) ("accel_zout: ", accel_zout, "...
  • Seite 270 Winkelgeschwindigkeitswerte und drucken Sie sie dann aus. print ("x rotation: " , get_x_rotation(accel_xout_scaled, accel_yout_scaled, accel_ zout_scaled)) print ("y rotation: " , get_y_rotation(accel_xout_scaled, accel_yout_scaled, accel_ zout_scaled)) Drucken Sie die Ablenkwinkel der x- und y-Achse. Phänomen Bild Kapitel 1. Über das Da Vinci Kit...
  • Seite 271 SunFounder Da Vinci Kit 1.8.13 2.2.7 MFRC522 RFID-Modul Einführung Radio Frequency Identification (RFID) bezieht sich auf Technologien, die die drahtlose Kommunikation zwischen einem Objekt (oder Tag) und einem Abfragegerät (oder Lesegerät) verwenden, um solche Objekte automatisch zu verfolgen und zu identifizieren.
  • Seite 272 Unterschiede. Es kommuniziert mit dem Host-Computer über die serielle Art und Weise, die weniger Verkabelung erfordert. Sie können zwischen SPI-, I2C- und seriellem UART-Modus (ähnlich wie RS232) wählen, um die Verbindung zu reduzieren, Platz auf der Leiterplatte zu sparen (kleinere Größe) und Kosten zu senken. Kapitel 1. Über das Da Vinci Kit...
  • Seite 273 SunFounder Da Vinci Kit Schematische Darstellung 1.8. 2 Eingabe...
  • Seite 274 Bemerkung: Es gibt zwei Beispiele, mit denen Sie die Karten-ID lesen oder schreiben können. Sie können je nach Bedarf eines davon auswählen. Schritt 5: Führen Sie die ausführbare Datei aus. Kapitel 1. Über das Da Vinci Kit...
  • Seite 275 SunFounder Da Vinci Kit sudo ./read sudo ./write Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code Erklärung InitRc522(); Mit dieser Funktion wird das RFID RC522-Modul initialisiert. uint8_t read_card_data(); Diese Funktion wird zum Lesen der Daten der Karte verwendet. Wenn der Lesevorgang erfolgreich ist, wird „1“...
  • Seite 276 RPi.GPIO GPIO reader SimpleMFRC522() main(): while True: text input('Please write new data:') print("Please place the card to complete writing") reader.write(text) print("Data writing is complete") destroy(): GPIO.cleanup() __name__ '__main__': (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 277 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) try: main() # When 'Ctrl+C' is pressed, the program destroy() will be executed. KeyboardInterrupt: except destroy() Code Erklärung reader SimpleMFRC522() Instanziieren Sie die Klasse SimpleMFRC522(). reader.read() Diese Funktion dient zum Auslesen von Kartendaten. Wenn das Lesen erfolgreich ist, werden ID und Text zurückge- geben.
  • Seite 278: Erweiterung

    Segmentanzeige besteht. Wenn der PIR feststellt, dass jemand vorbeikommt, addiert die Nummer auf der 4-stelligen Segmentanzeige 1. Mit diesem Zähler können Sie die Anzahl der Personen zählen, die durch den Durchgang gehen. Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 279 SunFounder Da Vinci Kit Schematische Darstellung T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO27 Pin 13 GPIO22 Pin 15 SPIMOSI Pin 19 GPIO18 Pin 12 GPIO23 Pin 16 GPIO24 Pin 18 GPIO26 Pin 37 1.9. 3 Erweiterung...
  • Seite 280 Wenn der PIR nach dem Ausführen der Kode feststellt, dass jemand vorbeikommt, addiert die Nummer auf der 4- stelligen Segmentanzeige 1. Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code Erklärung void display() (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 281 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) clearDisplay(); pickDigit(0); hc595_shift(number[counter 10]); clearDisplay(); pickDigit(1); hc595_shift(number[counter 10]); clearDisplay(); pickDigit(2); hc595_shift(number[counter 1000 100]); clearDisplay(); pickDigit(3); hc595_shift(number[counter 10000 1000]); Starten Sie zuerst die vierte Segmentanzeige und schreiben Sie die einstellige Nummer. Dann starten Sie die Anzeige des dritten Segments und geben Sie die Zehnerstelle ein.
  • Seite 282 GPIO.output(RCLK, GPIO.LOW) pickDigit(digit): placePin: GPIO.output(i,GPIO.LOW) GPIO.output(placePin[digit], GPIO.HIGH) display(): global counter clearDisplay() pickDigit(0) hc595_shift(number[counter 10]) clearDisplay() pickDigit(1) hc595_shift(number[counter 100//10]) clearDisplay() pickDigit(2) hc595_shift(number[counter 1000//100]) clearDisplay() pickDigit(3) hc595_shift(number[counter 10000//1000]) loop(): counter global (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 283 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) currentState lastState while True: display() currentState=GPIO.input(sensorPin) (currentState (lastState counter lastState=currentState setup(): GPIO.setmode(GPIO.BCM) GPIO.setup(SDI, GPIO.OUT) GPIO.setup(RCLK, GPIO.OUT) GPIO.setup(SRCLK, GPIO.OUT) placePin: GPIO.setup(i, GPIO.OUT) GPIO.setup(sensorPin, GPIO.IN) destroy(): # When "Ctrl+C" is pressed, the function is executed.
  • Seite 284: Willkommen

    Summer verwenden, um die Arbeit der Sensortür des Supermarkts zu simulieren. Wenn der Fußgänger innerhalb des Erfassungsbereichs des PIR erscheint, leuchtet die Anzeigelampe, die Tür wird geöffnet und der Summer ertönt die Öffnungsglocke. Kapitel 1. Über das Da Vinci Kit...
  • Seite 285 SunFounder Da Vinci Kit Komponenten 1.9. 3 Erweiterung...
  • Seite 286 SunFounder Da Vinci Kit Schematische Darstellung T-Karte Name physisch wiringPi GPIO18 Pin 12 GPIO17 Pin 11 GPIO27 Pin 13 GPIO22 Pin 15 Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 287 SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Verzeichnis wechseln. /home/pi/davinci-kit-for-raspberry-pi/c/3.1.2/ Schritt 3: Kompilieren. gcc 3.1.2_Welcome.c -lwiringPi Schritt 4: Ausführen. sudo ./a.out Wenn der PIR-Sensor nach dem Ausführen der Kode jemanden erkennt, der vorbeikommt, öffnet sich die Tür automa- tisch (vom Servo simuliert), schaltet die Anzeige ein und spielt die Türklingelmusik ab.
  • Seite 288 Initialisieren Sie in der Funktion main () die Bibliothek wiringPi und richten Sie softTone ein. Setzen Sie dann ledPin in den Ausgabestatus und pirPin in den Eingabestatus. Wenn der PIR-Sensor jemanden erkennt, der vorbeikommt, wird die Funktion opendoor aufgerufen, um das Öffnen der Tür zu simulieren. Kapitel 1. Über das Da Vinci Kit...
  • Seite 289 SunFounder Da Vinci Kit Für Python-Sprachbenutzer Schritt 2: Verzeichnis wechseln. /home/pi/davinci-kit-for-raspberry-pi/python/ Schritt 3: Ausführen. sudo python3 3.1.2_Welcome.py Wenn der PIR-Sensor nach dem Ausführen der Kode jemanden erkennt, der vorbeikommt, öffnet sich die Tür automa- tisch (vom Servo simuliert), schaltet die Anzeige ein und spielt die Türklingelmusik ab. Nachdem die Türklingelmusik abgespielt wurde, schließt das System automatisch die Tür und schaltet die Anzeigelampe aus, um auf das nächste Mal...
  • Seite 290: Code Erklärung

    Buzz.stop() __name__ '__main__': # Program start from here setup() try: loop() except KeyboardInterrupt: # When 'Ctrl+C' is pressed, the program destroy() will executed. destroy() Code Erklärung setup(): global (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 291 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) Buzz # Assign a global variable to replace GPIO.PWM global GPIO.setmode(GPIO.BCM) # Numbers GPIOs by physical location GPIO.setup(ledPin, GPIO.OUT) # Set ledPin's mode is output GPIO.setup(pirPin, GPIO.IN) # Set sensorPin's mode is input GPIO.setup(buzPin, GPIO.OUT)
  • Seite 292 In diesem Projekt werden wir LCD-, Summer- und Ultraschallsensoren verwenden, um ein Rückwärtshilfesystem her- zustellen. Wir können es auf das ferngesteuerte Fahrzeug setzen, um den tatsächlichen Vorgang des Rückwärtsfahrens des Autos in die Garage zu simulieren. Kapitel 1. Über das Da Vinci Kit...
  • Seite 293 SunFounder Da Vinci Kit Komponenten 1.9. 3 Erweiterung...
  • Seite 294 Gleichzeitig ließ der Ultraschallsensor den Summer einen sofortigen Ton unterschiedlicher Frequenz je nach Entfernungswert ausgeben. T-Karte Name physisch wiringPi GPIO23 Pin 16 GPIO24 Pin 18 GPIO17 Pin 11 SDA1 Pin 3 SCL1 Pin 5 Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 295 SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Verzeichnis wechseln. /home/pi/davinci-kit-for-raspberry-pi/c/3.1.3/ Schritt 3: Kompilieren. gcc 3.1.3_ReversingAlarm.c -lwiringPi Schritt 4: Ausführen. sudo ./a.out Während die Kode ausgeführt wird, erkennt das Ultraschallsensormodul die Entfernung zum Hindernis und zeigt dann die Informationen zur Entfernung auf dem LCD1602 an. Außerdem gibt der Summer einen Warnton aus, dessen Frequenz sich mit der Entfernung ändert.
  • Seite 296 0, "Ultrasonic Starting"); write(1, 1, "By Sunfounder"); while(1){ disMeasure(); printf("%.2f cm \n",dis); delay(100); digitalWrite(Buzzer,LOW); (dis > 400){ clear(); write(0, 0, "Error"); write(3, 1, "Out of range"); delay(500); else (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 297 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) clear(); write(0, 0, "Distance is"); sprintf(result,"%.2f cm",dis); write(5, 1, result); if(dis>=50) {delay(500);} else if(dis<50 & dis>20) { i=0;i<2;i++){ for(int digitalWrite(Buzzer,HIGH); delay(50); digitalWrite(Buzzer,LOW); delay(200); else if(dis<=20){ for(int i=0;i<5;i++){ digitalWrite(Buzzer,HIGH); delay(50); digitalWrite(Buzzer,LOW); delay(50); return Code Erklärung...
  • Seite 298 Frequenz sich mit der Entfernung ändert. Code Bemerkung: Sie können den folgenden Code Ändern/Zurücksetzen/ Kopieren/Ausführen/Stoppen. Zuvor müssen Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen. import LCD1602 import time import RPi.GPIO GPIO (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 299 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) TRIG ECHO BUZZER lcdsetup(): LCD1602.init(0x27, 1) # init(slave address, background light) LCD1602.clear() LCD1602.write(0, 0, 'Ultrasonic Starting') LCD1602.write(1, 1, SunFounder') time.sleep(2) setup(): GPIO.setmode(GPIO.BOARD) GPIO.setup(TRIG, GPIO.OUT) GPIO.setup(ECHO, GPIO.IN) GPIO.setup(BUZZER, GPIO.OUT, initial=GPIO.LOW) lcdsetup() distance(): GPIO.output(TRIG, 0) time.sleep(0.000002)
  • Seite 300 Hier erhalten wir die Werte des Ultraschallsensors und die Entfernung durch Berechnung. Wenn der Entfernungs- wert größer als der zu erkennende Wertebereich ist, wird eine Fehlermeldung auf dem LCD gedruckt. Und wenn der Kapitel 1. Über das Da Vinci Kit...
  • Seite 301 SunFounder Da Vinci Kit Abstand innerhalb des Arbeitsbereichs liegt, werden die entsprechenden Ergebnisse ausgegeben. LCD1602.write(5, 1, str(round(dis,2)) +‘ cm‘) Da der LCD-Ausgang nur Zeichentypen unterstützt, müssen wir str () verwenden, um numerische Werte in Zeichen umzuwandeln. Wir werden es auf zwei Dezimalstellen runden.
  • Seite 302 SunFounder Da Vinci Kit 1.9.4 3.1.4 Smart Fan Einführung In diesem Kurs werden wir Motoren, Tasten und Thermistoren verwenden, um einen manuellen + automatischen intelligenten Lüfter herzustellen, dessen Windgeschwindigkeit einstellbar ist. Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 303 SunFounder Da Vinci Kit Schematische Darstellung T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO18 Pin 12 GPIO27 Pin 13 GPIO22 Pin 15 GPIO5 Pin 29 GPIO6 Pin 31 GPIO13 Pin 33 1.9. 3 Erweiterung...
  • Seite 304 1 Geschwindigkeitsstufe nach oben oder unten eingestellt. Es gibt 5 Arten von Geschwindigkeitsstufen: 0~4. Wenn Sie die vierte Geschwindigkeitsstufe einstellen und die Taste drücken, arbeitet der Lüfter nicht mehr mit einer Windgeschwindigkeit von 0. Kapitel 1. Über das Da Vinci Kit...
  • Seite 305 SunFounder Da Vinci Kit Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Sobald die Temperatur länger als 2°C, steigt oder fällt, wird die Geschwindigkeit automatisch um 1 Grad schneller oder langsamer. Code Erklärung temperture(){ unsigned char analogVal;...
  • Seite 306 Bemerkung: Sie können den folgenden Code Ändern/Zurücksetzen/ Kopieren/Ausführen/Stoppen. Zuvor müssen Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen. import RPi.GPIO GPIO import time import ADC0834 import math # Set up pins MotorPin1 (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 307 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) MotorPin2 MotorEnable BtnPin setup(): p_M1,p_M2 global ADC0834.setup() GPIO.setmode(GPIO.BCM) GPIO.setup(MotorPin1, GPIO.OUT) GPIO.setup(MotorPin2, GPIO.OUT) p_M1=GPIO.PWM(MotorPin1,2000) p_M2=GPIO.PWM(MotorPin2,2000) p_M1.start(0) p_M2.start(0) GPIO.setup(MotorEnable, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(BtnPin, GPIO.IN) temperature(): analogVal ADC0834.getResult() float(analogVal) 10000 temp 1/(((math.log(Rt 10000)) 3950) (273.15+25))) temp 273.15...
  • Seite 308 Diese Funktion steuert die Drehzahl des Motors. Der Bereich des Hebels: 0-4 (Stufe 0 stoppt den Arbeitsmotor). Eine Stufeneinstellung steht für eine 25% ige Änderung der Windgeschwindigkeit. main(): lastState=0 level=0 markTemp temperature() while True: currentState =GPIO.input(BtnPin) currentTemp=temperature() currentState lastState level=(level+1)%5 markTemp currentTemp time.sleep(0.5) lastState=currentState level!=0: (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 309 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) currentTemp-markTemp <= level level markTemp=currentTemp currentTemp-markTemp >= level level markTemp=currentTemp level motor(level) Die Funktion main() enthält den gesamten Programmablauf wie folgt: 1) Lesen Sie ständig den Tastenstatus und die aktuelle Temperatur ab.
  • Seite 310: Batterieanzeige

    SunFounder Da Vinci Kit 1.9.5 3.1.5 Batterieanzeige Einführung In diesem Kurs erstellen wir ein Batterieanzeigegerät, mit dem der Batteriestand auf dem LED-Balkendiagramm vi- suell angezeigt werden kann. Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 311 SunFounder Da Vinci Kit Schematische Darstellung T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO18 Pin 12 GPIO27 Pin 13 GPIO25 Pin 22 GPIO12 Pin 32 GPIO16 Pin 36 GPIO20 Pin 38 GPIO21 Pin 40 GPIO5 Pin 29 GPIO6 Pin 31...
  • Seite 312 LED auf dem LED-Balkendiagramm leuchtet, um den LeistungsNiveau anzuzeigen (Messbereich: 0-5V). Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code Erklärung void LedBarGraph(int value){ for(int i=0;i<10;i++){ (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 313 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) digitalWrite(pins[i],HIGH); for(int i=0;i<value;i++){ digitalWrite(pins[i],LOW); Diese Funktion dienst für die Steuerung von Ein- und Ausschalten der 10 LEDs am LED-Bargraphen. Wir geben diesen 10 LEDs hohe Niveau, damit sie zuerst ausgeschaltet sind, und entscheiden dann, wie viele LEDs aufleuchten, indem wir den empfangenen Analogwert ändern.
  • Seite 314 Werte (0-255) mit variierenden Spannungswerten (0-5V). Wenn beispielsweise 3V an einer Batterie erkannt werden, wird der entsprechende Wert 152 auf dem Voltmeter angezeigt. Die 10 LEDs auf dem LED-Balkendiagramm dienen zur Anzeige der analogVal Messwerte. 255/10 = 25, also alle 25 Kapitel 1. Über das Da Vinci Kit...
  • Seite 315: Bewegungssteuerung

    SunFounder Da Vinci Kit erhöht sich der Analogwert, eine weitere LED leuchtet auf, z. B. wenn “analogVal = 150 (ca. 3 V), leuchten 6 LEDs”. Phänomen Bild 1.9.6 3.1.6 Bewegungssteuerung Einführung In dieser Lektion werden wir ein einfaches Bewegungserfassungs- und Steuergerät herstellen. Die MPU6050 wird als Sensor und der Schrittmotor als gesteuertes Gerät verwendet.
  • Seite 316 SunFounder Da Vinci Kit Komponenten Schematische Darstellung T-Karte Name physisch wiringPi GPIO18 Pin 12 GPIO23 Pin 16 GPIO24 Pin 18 GPIO25 Pin 22 SDA1 Pin 3 SCL1 Pin 5 Kapitel 1. Über das Da Vinci Kit...
  • Seite 317 SunFounder Da Vinci Kit 1.9. 3 Erweiterung...
  • Seite 318 Schrittmotor während der Kode gegen den Uhrzeigersinn. Bei weniger als -45 °C, dreht sich der Schrittmotor im Uhrzeigersinn. Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code Erklärung double mpu6050(){ acclX read_word_2c(0x3B); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 319 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) acclY read_word_2c(0x3D); acclZ read_word_2c(0x3F); acclX_scaled acclX 16384.0; acclY_scaled acclY 16384.0; acclZ_scaled acclZ 16384.0; double angle=get_y_rotation(acclX_scaled, acclY_scaled, acclZ_scaled); angle; return mpu6050 erhält den Neigungswinkel in Richtung der Y-Achse. void rotary(char direction){ if(direction 'c'){ for(int j=0;j<4;j++){...
  • Seite 320 2048 stepSpeed (60/rolePerMinute)/stepsPerRevolution #mpu6050 read_byte(adr): return bus.read_byte_data(address, adr) read_word(adr): high bus.read_byte_data(address, adr) bus.read_byte_data(address, adr+1) (high << return read_word_2c(adr): read_word(adr) (val >= 0x8000): return -((65535 val) else: return (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 321 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) dist(a,b): return math.sqrt((a a)+(b get_y_rotation(x,y,z): radians math.atan2(x, dist(y,z)) return -math.degrees(radians) get_x_rotation(x,y,z): radians math.atan2(y, dist(x,z)) math.degrees(radians) return mpu6050(): accel_xout read_word_2c(0x3b) accel_yout read_word_2c(0x3d) accel_zout read_word_2c(0x3f) accel_xout_scaled accel_xout 16384.0 accel_yout_scaled accel_yout 16384.0 accel_zout_scaled accel_zout 16384.0...
  • Seite 322 Der Neigungswinkel in Richtung der Y-Achse wird aus mpu6050 abgelesen. Wenn er größer als 45°C, ist, wird rotary () aufgerufen, damit sich der Schrittmotor gegen den Uhrzeigersinn dreht. Bei weniger als -45 °C, dreht sich der Schrittmotor im Uhrzeigersinn. Kapitel 1. Über das Da Vinci Kit...
  • Seite 323 SunFounder Da Vinci Kit Phänomen Bild 1.9.7 3.1.7 Ampel Einführung In diesem Projekt werden wir dreifarbige LED-Lichter verwenden, um den Wechsel der Ampeln zu realisieren, und eine vierstellige 7-Segment-Anzeige wird verwendet, um das Timing jedes Verkehrszustands anzuzeigen. 1.9. 3 Erweiterung...
  • Seite 324 T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO27 Pin 13 GPIO22 Pin 15 SPIMOSI Pin 19 GPIO18 Pin 12 GPIO23 Pin 16 GPIO24 Pin 18 GPIO25 Pin 22 SPICE0 Pin 24 SPICE1 Pin 26 Kapitel 1. Über das Da Vinci Kit...
  • Seite 325 SunFounder Da Vinci Kit 1.9. 3 Erweiterung...
  • Seite 326 Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code Erklärung #define #define RCLK #define SRCLK const placePin[] {12, 3, 2, 0}; (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 327 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) number[] {0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90}; unsigned char void pickDigit(int digit); void hc595_shift(int8_t data); void clearDisplay(); void display(); Diese Codes werden verwendet, um die Funktion der Zahlenanzeige von 4-stelligen 7-Segment-Anzeigen zu realisie- ren.
  • Seite 328 #define the pins connect to 74HC595 #serial data input(DS) RCLK #memory clock input(STCP) SRCLK #shift register clock input(SHCP) number (0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90) placePin (10,22,27,17) ledPin =(25,8,7) greenLight yellowLight redLight lightColor=("Red","Green","Yellow") colorState=0 (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 329 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) counter timer1 setup(): GPIO.setmode(GPIO.BCM) GPIO.setup(SDI, GPIO.OUT) GPIO.setup(RCLK, GPIO.OUT) GPIO.setup(SRCLK, GPIO.OUT) placePin: GPIO.setup(pin,GPIO.OUT) ledPin: GPIO.setup(pin,GPIO.OUT) global timer1 timer1 threading.Timer(1.0,timer) timer1.start() clearDisplay(): range(8): GPIO.output(SDI, 1) GPIO.output(SRCLK, GPIO.HIGH) GPIO.output(SRCLK, GPIO.LOW) GPIO.output(RCLK, GPIO.HIGH) GPIO.output(RCLK, GPIO.LOW) hc595_shift(data): range(8): GPIO.output(SDI,...
  • Seite 330: Code Erklärung

    # When "Ctrl+C" is pressed, the function is executed. global timer1 GPIO.cleanup() timer1.cancel() #cancel the timer __name__ '__main__': # Program starting from here setup() try: loop() except KeyboardInterrupt: destroy() Code Erklärung Kapitel 1. Über das Da Vinci Kit...
  • Seite 331 SunFounder Da Vinci Kit #serial data input(DS) RCLK #memory clock input(STCP) SRCLK #shift register clock input(SHCP) number (0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90) placePin (10,22,27,17) clearDisplay(): hc595_shift(data): pickDigit(digit): display(): Diese Codes werden verwendet, um die Funktion der Zahlenanzeige des 4-stelligen 7-Segments zu realisieren. Sie- 1.1.5 4-stellige 7-Segment-Anzeige des Dokuments für weitere Details.
  • Seite 332 KeyboardInterrupt: destroy() Starten Sie in der Funktion setup() den Timer. In der Funktion loop() wird eine Weile True verwendet: Rufen Sie die relativen Funktionen von 4-stelligem 7-Segment und LED kreisförmig auf. Phänomen Bild Kapitel 1. Über das Da Vinci Kit...
  • Seite 333: Überhitzungsmonitor

    SunFounder Da Vinci Kit 1.9.8 3.1.8 Überhitzungsmonitor Einführung Möglicherweise möchten Sie ein Überhitzungsüberwachungsgerät herstellen, das für verschiedene Situationen gilt, z. B. im Werk, wenn wir einen Alarm und das rechtzeitige automatische Ausschalten der Maschine bei Überhitzung des Stromkreises wünschen. In dieser Lektion verwenden wir Thermistor, Joystick, Summer, LED und LCD, um ein intelligentes Temperaturüberwachungsgerät zu erstellen, dessen Schwelle einstellbar ist.
  • Seite 334 SunFounder Da Vinci Kit Schematische Darstellung T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO18 Pin 12 GPIO27 Pin 13 GPIO22 Pin15 GPIO23 Pin16 GPIO24 Pin18 SDA1 Pin 3 SCL1 Pin 5 Kapitel 1. Über das Da Vinci Kit...
  • Seite 335 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Für Benutzer in C-Sprache Schritt 2: Gehen Sie zum Ordner der Kode. /home/pi/davinci-kit-for-raspberry-pi/c/3.1.8/ Schritt 3: Kompilieren Sie der Kode. gcc 3.1.8_OverheatMonitor.c -lwiringPi -lm Schritt 4: Führen Sie die ausführbare Datei aus.
  • Seite 336 This function is for adjusting the threshold and displaying it on the I2C LCD1602. double temperature(){ unsigned char temp_value; double Vr, Rt, temp, cel, Fah; temp_value get_ADC_Result(0); (double)(temp_value) 255; 10000 (double)(Vr) (double)(Vr)); temp (((log(Rt/10000)) 3950)+(1 (273.15 25))); temp 273.15; (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 337 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) +32; return cel; Lesen Sie den Analogwert des CH0 (Thermistor) von ADC0834 ab und wandeln Sie ihn dann in einen Temperaturwert void monitoring_temp(){ char str[6]; double temperature(); snprintf(str,6,"%.2f",cel); write(0, 0, "Temp: ");...
  • Seite 338 GPIO import ADC0834 import time import math Joy_BtnPin buzzPin ledPin upperTem setup(): ADC0834.setup() GPIO.setmode(GPIO.BCM) GPIO.setup(ledPin, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(buzzPin, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(Joy_BtnPin, GPIO.IN, pull_up_down=GPIO.PUD_UP) LCD1602.init(0x27, 1) get_joystick_value(): x_val ADC0834.getResult(1) (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 339 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) y_val ADC0834.getResult(2) if(x_val > 200): return < 50): elif(x_val return elif(y_val > 200): return elif(y_val < 50): return else: return upper_tem_setting(): global upperTem LCD1602.write(0, 0, 'Upper Adjust: change int(get_joystick_value()) upperTem upperTem change...
  • Seite 340 LCD1602.write(0, 1, str(upperTem)) LCD1602.write(len(strUpperTem),1, time.sleep(0.1) This function is for adjusting the threshold and displaying it on the I2C LCD1602. temperature(): analogVal ADC0834.getResult() float(analogVal) 10000 temp 1/(((math.log(Rt 10000)) 3950) (273.15+25))) temp 273.15 return round(Cel,2) Kapitel 1. Über das Da Vinci Kit...
  • Seite 341 SunFounder Da Vinci Kit Lesen Sie den Analogwert des CH0 (Thermistor) von ADC0834 ab und wandeln Sie ihn dann in einen Temperaturwert monitoring_temp(): global upperTem Cel=temperature() LCD1602.write(0, 0, 'Temp: LCD1602.write(0, 1, 'Upper: LCD1602.write(6, 0, str(Cel)) LCD1602.write(7, 1, str(upperTem)) time.sleep(0.1) >= upperTem: GPIO.output(buzzPin, GPIO.HIGH)
  • Seite 342 LCD wird eine entsprechende Aufforderung angezeigt, Ihr Passwort auf der Tastatur einzugeben. Wenn das Passwort korrekt eingegeben wurde, wird “Richtig” angezeigt. Auf der Grundlage dieses Projekts können wir zusätzliche elektronische Komponenten wie Summer, LED usw. hin- zufügen, um verschiedene experimentelle Phänomene für die Passworteingabe hinzuzufügen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 343 SunFounder Da Vinci Kit Komponenten 1.9. 3 Erweiterung...
  • Seite 344 T-Karte Name physisch wiringPi GPIO18 Pin 12 GPIO23 Pin 16 GPIO24 Pin 18 GPIO25 Pin 22 GPIO17 Pin 11 GPIO27 Pin 13 GPIO22 Pin 15 SPIMOSI Pin 19 SDA1 Pin 3 SCL1 Pin 5 Kapitel 1. Über das Da Vinci Kit...
  • Seite 345 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. 1.9. 3 Erweiterung...
  • Seite 346 ./a.out Nachdem der Kode ausgeführt wurde, wird die Tastatur über die Tastatur eingegeben. Wenn auf dem LCD1602 die Meldung “RICHTIG” angezeigt wird, ist das Kennwort nicht falsch. Andernfalls wird “FALSCHER SCHLÜSSEL” angezeigt. Kapitel 1. Über das Da Vinci Kit...
  • Seite 347 SunFounder Da Vinci Kit Bemerkung: Wenn es nach dem Ausführen nicht funktioniert, lesen Sie bitte C-Code funktioniert nicht? Code Erklärung #define ROWS #define COLS #define BUTTON_NUM (ROWS * COLS) #define LENS unsigned char KEYS[BUTTON_NUM] { '1','2','3','A', '4','5','6','B', '7','8','9','C', ','0','#','D'}; char password[LENS]={'1','9','8','4'};...
  • Seite 348 __init__(self, rowsPins, colsPins, keys): self.rowsPins rowsPins self.colsPins colsPins self.keys keys GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(self.rowsPins, GPIO.OUT, initial=GPIO.LOW) GPIO.setup(self.colsPins, GPIO.IN, pull_up_down=GPIO.PUD_DOWN) read(self): pressed_keys i, row enumerate(self.rowsPins): GPIO.output(row, GPIO.HIGH) j, col enumerate(self.colsPins): index len(self.colsPins) (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 349 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) (GPIO.input(col) pressed_keys.append(self.keys[index]) GPIO.output(row, GPIO.LOW) pressed_keys return ################ EXAMPLE CODE START HERE ################ LENS password=['1','9','8','4'] testword=['0','0','0','0'] keyIndex=0 check(): range(0,LENS): if(password[i]!=testword[i]): return return setup(): global keypad, last_key_pressed rowsPins [18,23,24,25] colsPins [10,22,27,17] keys ["1","2","3","A", "4","5","6","B", "7","8","9","C",...
  • Seite 350 Lesen Sie den Schlüsselwert und speichern Sie ihn im Testarray-Testwort. Wenn die Anzahl der gespeicherten Schlüs- selwerte mehr als 4 beträgt, wird die Richtigkeit des Kennworts automatisch überprüft und die Überprüfungsergebnisse werden auf der LCD-Oberfläche angezeigt. Kapitel 1. Über das Da Vinci Kit...
  • Seite 351 SunFounder Da Vinci Kit check(): range(0,LENS): if(password[i]!=testword[i]): return return Überprüfen Sie die Richtigkeit des Passworts. Geben Sie 1 zurück, wenn das Passwort korrekt eingegeben wurde, und 0, wenn nicht. Phänomen Bild 1.9.10 3.1.10 Alarmglocke Einführung In diesem Kurs erstellen wir ein manuelles Alarmgerät. Sie können den Kippschalter durch einen Thermistor oder einen lichtempfindlichen Sensor ersetzen, um einen Temperaturalarm oder einen Lichtalarm auszulösen.
  • Seite 352 SunFounder Da Vinci Kit Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 353 SunFounder Da Vinci Kit Schematische Darstellung T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO18 Pin 12 GPIO27 Pin 13 GPIO22 Pin 15 1.9. 3 Erweiterung...
  • Seite 354 In dieser Kode verwenden Sie eine neue Bibliothek, pthread.h, die aus einer Reihe allgemeiner Thread-Bibliotheken besteht und Multithreading realisieren kann. Wir fügen den Parameter -lpthread zur Kompilierungszeit hinzu, damit die LED und der Summer unabhängig voneinander arbeiten können. Kapitel 1. Über das Da Vinci Kit...
  • Seite 355 SunFounder Da Vinci Kit void ledWork(void arg){ while(1) if(flag==0){ pthread_exit(NULL); digitalWrite(ALedPin,HIGH); delay(500); digitalWrite(ALedPin,LOW); digitalWrite(BLedPin,HIGH); delay(500); digitalWrite(BLedPin,LOW); Die Funktion ledWork() hilft beim Einstellen des Arbeitszustands dieser beiden LEDs: Sie leuchtet die grüne LED 0,5 Sekunden lang auf und erlischt dann. In ähnlicher Weise leuchtet die rote LED 0,5 Sekunden lang auf und erlischt dann.
  • Seite 356 Kippschalter nach rechts umgeschaltet ist (der Messwert ist 1), wird die Funktion on () aufgerufen, der Summer wird zur Ausgabe von Tönen angesteuert und die rote und die grüne LED blinken. Andernfalls funktionieren der Summer und die LED nicht. Kapitel 1. Über das Da Vinci Kit...
  • Seite 357 SunFounder Da Vinci Kit Für Python-Sprachbenutzer Schritt 2: Verzeichnis wechseln. /home/pi/davinci-kit-for-raspberry-pi/python/ Schritt 3: Ausführen. sudo python3 3.1.10_AlarmBell.py Nach dem Start des Programms wird der Kippschalter nach rechts umgeschaltet und der Summer gibt Alarmtöne aus. Gleichzeitig blinken die roten und grünen LEDs mit einer bestimmten Frequenz.
  • Seite 358 Hier importieren wir das Threading-Modul und es ermöglicht Ihnen, mehrere Dinge gleichzeitig zu tun, während normale Programme Kode nur von oben nach unten ausführen können. Bei Threading-Modulen können die LED und der Summer separat arbeiten. ledWork(): while flag: GPIO.output(ALedPin,GPIO.HIGH) (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 359 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) time.sleep(0.5) GPIO.output(ALedPin,GPIO.LOW) GPIO.output(BLedPin,GPIO.HIGH) time.sleep(0.5) GPIO.output(BLedPin,GPIO.LOW) Die Funktion ledWork() hilft beim Einstellen des Arbeitszustands dieser beiden LEDs: Sie leuchtet die grüne LED 0,5 Sekunden lang auf und erlischt dann. In ähnlicher Weise leuchtet die rote LED 0,5 Sekunden lang auf und erlischt dann.
  • Seite 360 LED nicht. Phänomen Bild 1.9.11 3.1.11 Morsekode-Generator Einführung In dieser Lektion erstellen wir einen Morsekode-Generator, in den Sie eine Reihe englischer Buchstaben in den Raspberry Pi eingeben, damit er als Morsekode angezeigt wird. Kapitel 1. Über das Da Vinci Kit...
  • Seite 361 SunFounder Da Vinci Kit Komponenten Schematische Darstellung T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO22 Pin 15 1.9. 3 Erweiterung...
  • Seite 362 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. (Achten Sie auf die Pole des Summers: Der mit dem + Etikett ist der positive Pol und der andere der negative.) Kapitel 1. Über das Da Vinci Kit...
  • Seite 363 SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Öffnen Sie die Kodedatei. /home/pi/davinci-kit-for-raspberry-pi/c/3.1.11/ Schritt 3: Kompilieren Sie den Kode. gcc 3.1.11_MorseCodeGenerator.c -lwiringPi Schritt 4: Führen Sie die obige ausführbare Datei aus. sudo ./a.out Geben Sie nach dem Ausführen des Programms eine Reihe von Zeichen ein, und der Summer und die LED senden die entsprechenden Morsekodesignale.
  • Seite 364 Signal sein, das drei kurze, drei lange und dann drei kurze Segmente “· · · - - - · · ·” enthält. int toupper(int >= 'a') && <= 'z')) return ('A' 'a'); return char strupr(char str) char orign=str; (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 365 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) str!='\0'; str++) toupper( str); return orign; Vor dem Codieren müssen Sie die Buchstaben in Großbuchstaben vereinheitlichen. void main(){ setup(); char code; length=8; code (char )malloc(sizeof(char) length); while (1){ printf("Please input the messenger:");...
  • Seite 366 MORSECODE[letter]: '0': beep(pause/2) '1': beep(pause) time.sleep(pause) main(): while True: code=input("Please input the messenger:") code code.upper() print(code) morsecode(code) destroy(): print("") GPIO.output(BeepPin, GPIO.LOW) GPIO.output(ALedPin, GPIO.LOW) GPIO.cleanup() __name__ '__main__': setup() try: (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 367 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) main() except KeyboardInterrupt: destroy() Code Erklärung MORSECODE 'A':'01', 'B':'1000', 'C':'1010', 'D':'100', 'E':'0', 'F':'0010', 'G':'110', 'H':'0000', 'I':'00', 'J':'0111', 'K':'101', 'L':'0100', 'M':'11', 'N':'10', 'O':'111', 'P':'0110', 'Q':'1101', 'R':'010', 'S':'000', 'T':'1', 'U':'001', 'V':'0001', 'W':'011', 'X':'1001', 'Y':'1011', 'Z':'1100',...
  • Seite 368: Spiel - Nummer Vermutung

    70 eingibt, kann der Nummerbereich zwischen 50 und 70 liegen. Wenn der Spieler 51 eingibt, ist dieser Spieler der Unglückliche. Hier verwenden wir die Tastatur zur Eingabe von Nummer und das LCD zur Ausgabe der Ergebnisse. Kapitel 1. Über das Da Vinci Kit...
  • Seite 369 SunFounder Da Vinci Kit Komponenten 1.9. 3 Erweiterung...
  • Seite 370 Pin 12 GPIO23 Pin 16 GPIO24 Pin 18 GPIO25 Pin 22 SPIMOSI Pin 19 GPIO22 Pin 15 GPIO27 Pin 13 GPIO17 Pin 11 SDA1 Pin 3 SDA1(8) SDA1(2) SCL1 Pin 5 SCL1(9) SDA1(3) Kapitel 1. Über das Da Vinci Kit...
  • Seite 371 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Schritt 2: I2C einrichten (siehe Anhang. Wenn Sie I2C eingestellt haben, überspringen Sie diesen Schritt.) 1.9. 3 Erweiterung...
  • Seite 372 / **************************************** / //Start from here / **************************************** / void init(void){ wiringPiI2CSetup(LCDAddr); lcd_init(); lcd_clear(); for(int i<4 ; i++) { pinMode(rowPins[i], OUTPUT); pinMode(colPins[i], INPUT); lcd_clear(); write(0, 0, "Welcome!"); write(0, 1, "Press A to go!"); Kapitel 1. Über das Da Vinci Kit...
  • Seite 373 SunFounder Da Vinci Kit Diese Funktion wird verwendet, um zunächst I2C LCD1602 und Tastatur zu definieren und “Willkommen!” und “Drücken Sie A, um zu gehen!” anzuzeigen. void init_new_value(void){ srand(time(0)); pointValue rand()%100; upper lower count printf("point is %d\n",pointValue); Die Funktion erzeugt die Zufallsnummer ‘Punkt’ und setzt den Bereichshinweis des Punktes zurück.
  • Seite 374 6) Wenn die Taste 0-9 gedrückt wird, wird der Zählwert geändert. Wenn die Anzahl größer als 10 ist, beginnt das Urteil. 7) Die Änderungen des Spiels und seiner Werte werden auf dem LCD1602 angezeigt. Kapitel 1. Über das Da Vinci Kit...
  • Seite 375 SunFounder Da Vinci Kit Für Python-Sprachbenutzer Schritt 3: Verzeichnis wechseln. /home/pi/davinci-kit-for-raspberry-pi/python/ Schritt 4: Ausführen. sudo python3 3.1.12_GAME_GuessNumber.py Nachdem das Programm ausgeführt wurde, wird die erste Seite auf dem LCD angezeigt: Welcome! Press A to go! Drücken Sie ‘A’ und das Spiel startet und die Spieleseite erscheint auf dem LCD.
  • Seite 376 < upper: upper count elif count < pointValue: count > lower: lower count elif count pointValue: count return count return lcd_show_input(result): LCD1602.clear() result LCD1602.write(0,1,'You have got it!') (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 377 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) time.sleep(5) init_new_value() lcd_show_input(0) return LCD1602.write(0,0,'Enter number:') LCD1602.write(13,0,str(count)) LCD1602.write(0,1,str(lower)) LCD1602.write(3,1,' < Point < LCD1602.write(13,1,str(upper)) loop(): global keypad, last_key_pressed,count while(True): result pressed_keys keypad.read() len(pressed_keys) last_key_pressed pressed_keys: pressed_keys ["A"]: init_new_value() lcd_show_input(0) elif pressed_keys ["D"]: result...
  • Seite 378 Da write() nur den Datentyp - Zeichenfolge - unterstützen kann, wird str () benötigt, um die Nummer in eine Zeichenfolge umzuwandeln. loop(): global keypad, last_key_pressed,count while(True): result pressed_keys keypad.read() len(pressed_keys) last_key_pressed pressed_keys: pressed_keys ["A"]: init_new_value() lcd_show_input(0) elif pressed_keys ["D"]: result detect_point() (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 379 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) lcd_show_input(result) elif pressed_keys[0] keys: pressed_keys[0] list(["A","B","C","D","#"," * "]): continue count count count int(pressed_keys[0]) count >= result detect_point() lcd_show_input(result) print(pressed_keys) last_key_pressed pressed_keys time.sleep(0.1) Main () enthält den gesamten Prozess des Programms, wie unten gezeigt: 1) Initialisieren Sie I2C LCD1602 und Tastatur.
  • Seite 380 Durch erneutes Schütteln wird die Zählung beendet. Wenn es Ihnen gelingt, die angezeigte Anzahl bei 10,00 zu halten, gewinnen Sie. Sie können das Spiel mit Ihren Freunden spielen, um zu sehen, wer der Zeitassistent ist. Kapitel 1. Über das Da Vinci Kit...
  • Seite 381 SunFounder Da Vinci Kit Komponenten Schematische Darstellung T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO27 Pin 13 GPIO22 Pin 15 SPIMOSI Pin 19 GPIO18 Pin 12 GPIO23 Pin 16 GPIO24 Pin 18 GPIO26 Pin 37 1.9. 3 Erweiterung...
  • Seite 382 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 383 SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Gehen Sie zum Ordner der Kode. /home/pi/davinci-kit-for-raspberry-pi/c/3.1.13/ Schritt 3: Kompilieren Sie die Kode. gcc 3.1.13_GAME_10Second.c -lwiringPi Schritt 4: Führen Sie die ausführbare Datei aus. sudo ./a.out Schütteln Sie den Stab, die 4-stellige Segmentanzeige beginnt zu zählen. Durch erneutes Schütteln wird die Zählung beendet.
  • Seite 384 Code Bemerkung: Sie können den folgenden Code Ändern/Zurücksetzen/ Kopieren/Ausführen/Stoppen. Zuvor müssen Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen. import RPi.GPIO GPIO import time import threading sensorPin RCLK (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 385 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) SRCLK placePin (10, 22, 27, 17) number (0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90) counter timer gameState clearDisplay(): range(8): GPIO.output(SDI, 1) GPIO.output(SRCLK, GPIO.HIGH) GPIO.output(SRCLK, GPIO.LOW) GPIO.output(RCLK, GPIO.HIGH) GPIO.output(RCLK, GPIO.LOW)
  • Seite 386: Code Erklärung

    __name__ '__main__': # Program starting from here setup() try: loop() except KeyboardInterrupt: destroy() Code Erklärung stateChange(): global gameState global counter global timer1 gameState counter time.sleep(1) timer() elif gameState ==1: timer1.cancel() time.sleep(1) gameState (gameState+1)%2 Kapitel 1. Über das Da Vinci Kit...
  • Seite 387 SunFounder Da Vinci Kit Das Spiel ist in zwei Modi unterteilt: gameState=0 ist der „Start“ -Modus, in dem die Zeit zeitlich festgelegt und auf der Segmentanzeige angezeigt wird und der Kippschalter geschüttelt wird, um in den „Show“ -Modus zu wechseln.
  • Seite 388: Spiel - Nicht Nicht

    Zeit in die entgegengesetzte Richtung des Pfeils drücken. Wenn die Zeit abgelaufen ist oder wenn die Taste in die gleiche Richtung wie der Pfeil gedrückt wird, sind Sie raus. Dieses Spiel kann wirklich Ihr umgekehrtes Denken üben, und jetzt sollen wir es versuchen? Kapitel 1. Über das Da Vinci Kit...
  • Seite 389 SunFounder Da Vinci Kit Komponenten Schematische Darstellung T-Karte Name physisch wiringPi GPIO17 Pin 11 GPIO18 Pin 12 GPIO27 Pin 13 GPIO20 Pin 38 GPIO26 Pin 37 1.9. 3 Erweiterung...
  • Seite 390 SunFounder Da Vinci Kit Experimentelle Verfahren Schritt 1: Bauen Sie die Schaltung auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 391 SunFounder Da Vinci Kit Für Benutzer in C-Sprache Schritt 2: Gehen Sie zum Code-Ordner. /home/pi/davinci-kit-for-raspberry-pi/c/3.1.14/ Schritt 3: Kompilieren. gcc 3.1.14_GAME_NotNot.c -lwiringPi Schritt 4: Ausführen. sudo ./a.out Nach dem Start des Programms wird ein Pfeil nach links oder rechts in der Punktmatrix nach dem Zufallsprinzip aktualisiert.
  • Seite 392 - “kode” des bestimmten Wortes. Die Funktion Strcmp() wird verwendet, um die Identität von zwei Zeichenfolgen glyph[i].word und Schlüssel zu vergleichen; Wenn die Identität beurteilt wird, geben Sie den glyph[i].code zurück (wie gezeigt). Kapitel 1. Über das Da Vinci Kit...
  • Seite 393 SunFounder Da Vinci Kit void display(char glyphCode){ i;i<8;i++){ for(int hc595_in(glyphCode[i]); hc595_in(0x80>>i); hc595_out(); Zeigen Sie das angegebene Muster in der Punktmatrix an. void createGlyph(){ srand(time(NULL)); i=rand()%(sizeof(arrow)/sizeof(arrow[0])); waypoint=arrow[i].word; stage="PLAY"; alarm(2); Mit der Funktion createGlyph() wird zufällig eine Richtung ausgewählt (das Wortattribut eines Elements im array arrow[]: “left”, “right”.
  • Seite 394 Sie ausgeschaltet und die Punktmatrix zeigt “x” an. Sie können auch 2 neue Schaltflächen hinzufügen oder durch Joystick-Tasten für Auf, Ab, Links und Rechts ersetzen - 4 Richtungen, um die Schwierigkeit des Spiels zu erhöhen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 395 SunFounder Da Vinci Kit Code Bemerkung: Sie können den folgenden Code Ändern/Zurücksetzen/ Kopieren/Ausführen/Stoppen. Zuvor müssen Sie jedoch zu einem Quellcodepfad wie davinci-kit-for-raspberry-pi\\python gehen. import RPi.GPIO GPIO import time import threading import random RCLK SRCLK timerPlay timerCheck AButtonPin BButtonPin waypoint "NULL"...
  • Seite 396 True: stage "PLAY": display(arrow[waypoint]) getKey() elif stage "CHECK": display(check[waypoint]) destroy(): global timer1 GPIO.cleanup() timerPlay.cancel() # cancel the timer timerCheck.cancel() __name__ '__main__': setup() try: main() except KeyboardInterrupt: destroy() Code Erklärung Kapitel 1. Über das Da Vinci Kit...
  • Seite 397 SunFounder Da Vinci Kit Basierend auf 1.1.6 LED Dot Matrix fügt diese Lektion 2 Tasten hinzu, um ein amüsantes Spielgerät zu erstellen. Wenn Sie mit der Punktmatrix nicht sehr vertraut sind, lesen Sie bitte 1.1.6 LED-Punktmatrix. Der gesamte Programmprozess ist wie folgt: 1.
  • Seite 398 Das Ergebnis von waypoint=random.choice(list(arrow.keys())) sollte also “rechts” oder “links” sein. checkPoint(inputKey): global waypoint global stage global timerCheck inputKey "empty" inputKey waypoint: waypoint "wrong" else: waypoint "right" timerPlay.cancel() stage "CHECK" timerCheck threading.Timer(1.0, creatGlyph) timerCheck.start() Kapitel 1. Über das Da Vinci Kit...
  • Seite 399 SunFounder Da Vinci Kit Mit checkPoint() wird der aktuelle Status der Tasteneingabe ermittelt: Wenn keine Taste gedrückt wird oder die Taste in die gleiche Richtung wie der Pfeil gedrückt wird, ist der zugewiesene Wert des ``Wegpunkt`` ``falsch`` und zeigt x auf der Punktmatrix.
  • Seite 400: Iot

    Anmeldung bei Cloud4RPi auf Ihrem Computer Öffnen Sie den Chromium Web Browser und geben Sie diesen Link ein: https://cloud4rpi.io. Bevor Sie es benutzen können, müssen Sie sich registrieren und bei Ihrem Cloud4RPi-Konto anmelden. Kapitel 1. Über das Da Vinci Kit...
  • Seite 401: Verbinden Sie Ihren Raspberry Pi Mit Cloud4Rpi

    SunFounder Da Vinci Kit Sobald Sie eingeloggt sind, sollten Sie zwei Schaltflächen am oberen Rand von Cloud4RPi sehen: Geräte, um die Geräteverbindungen anzuzeigen, und Kontrollfelder, um die vom Raspberry Pi empfangenen oder gesendeten Infor- mationen auf der Webseite anzuzeigen. Verbinden Sie Ihren Raspberry Pi mit Cloud4RPi Klicken Sie nach dem Einloggen auf die Option Geräte und dann auf Neues Gerät.
  • Seite 402 Drücken Sie Strg + X, um die Änderung abzuschließen. DEVICE_TOKEN '556UfPaRw6r6rDKYfzx5Nd1jd' Führen Sie die Beispieldatei control.py aus. sudo python3 control.py Gehen Sie zurück zur Cloud4RPi-Server-Seite. Wenn Ihr Raspberry Pi mit Cloud4RPi verbunden ist, werden die Geräteinformationen grün angezeigt. Kapitel 1. Über das Da Vinci Kit...
  • Seite 403: Verwendung Der Cloud4Rpi Control Panels

    SunFounder Da Vinci Kit Verwendung der Cloud4RPi Control Panels Das Bedienfeld auf dem Cloud4RPi-Server bietet viele nützliche Widgets für IoT-Anwendungen. Diese Widgets kön- nen verwendet werden, um die Komponenten zu steuern oder Sensordaten anzuzeigen. Nachdem Sie Kontrollfelder eingegeben haben, klicken Sie auf die Schaltfläche Neues Kontrollfeld.
  • Seite 404 SunFounder Da Vinci Kit Wir wählen zum Beispiel das Widget Text aus und wählen dann Heißwasser °C, so dass wir es auf dem neu erstellten Bedienfeld sehen können. Kapitel 1. Über das Da Vinci Kit...
  • Seite 405: Erfahren Sie Mehr Über Control.py

    SunFounder Da Vinci Kit Bemerkung: Diese angezeigten Daten werden wir im Kapitel Erfahren Sie mehr über control.py ausführlich vorstel- len. 1.10.2 Erfahren Sie mehr über control.py Um die folgenden Projekte besser zu verstehen, werfen wir einen Blick auf den offiziellen Beispielcode, der von Cloud4RPi bereitgestellt wird.
  • Seite 406 'bind': get_location Die vdiagnostics speichert Informationen über den Raspberry Pi und wird verwendet, um Fehlverbindungen zu überprüfen und zu verhindern. vdiagnostics 'CPU Temp': rpi.cpu_temp, Address': rpi.ip_address, 'Host': rpi.host_name, 'Operating System': rpi.os_name, 'Client Version:': cloud4rpi.__version__, Kapitel 1. Über das Da Vinci Kit...
  • Seite 407: Erfassung Von Temperatur Und Luftfeuchtigkeit

    SunFounder Da Vinci Kit 1.10.3 Projekte In diesem Abschnitt werden Sie lernen, IoT-Projekte zu erstellen. Bevor Sie mit dem Projekt beginnen, sollten Sie den von uns bereitgestellten Code heruntergeladen haben (Laden Sie die Kode herunter). Dann kopieren Sie die Codes aus dem Ordner iot in den Ordner cloud4rpi-raspberrypi-python.
  • Seite 408 SunFounder Da Vinci Kit Wählen Sie ein Diagramm-Widget mit den beiden Variablen Raumtemperatur und CPU-Temperatur, die angezeigt werden sollen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 409 SunFounder Da Vinci Kit Nach dem Hinzufügen sehen Sie die Kurven der Temperatur (Raumtemperatur) und der Luftfeuchtigkeit (CPU-Temp) über die Zeit, und Sie können das Anzeigefenster anpassen, indem Sie auf die Optionen unten rechts klicken. 1.10. 4 IOT...
  • Seite 410: Code Erläuterung

    Mit dieser Funktion wird die Luftfeuchtigkeit (Result[0]) ermittelt, und die Funktion wird nicht unterbrochen, bis die Ablesung erfolgreich war. variables 'Room Temp': { (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 411: Ferngesteuerter Schalter

    SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) 'type': 'numeric', 'bind': getTem 'CPU Temp': { 'type': 'numeric', 'bind': getHum Die Temperatur wird im 'bind' des 'Room Temp' Schlüssels gespeichert, und die Luftfeuchtigkeit wird im 'bind' des 'CPU Temp' Schlüssels gespeichert. Wenn Cloud4RPi das Variablen-Wörterbuch erhält, wird es in ein JavaScript-Objekt umgewandelt, das von der Webseite erkannt werden kann.
  • Seite 412 Gehen Sie zu Cloud4RPi, fügen Sie ein neues Control Panel mit dem Namen project2 hinzu und klicken Sie auf Widget hinzufügen, um ein Switch-Widget hinzuzufügen. Nach dem Hinzufügen können Sie das Schalter-Widget zur Steuerung des Relais verwenden. Kapitel 1. Über das Da Vinci Kit...
  • Seite 413: Intelligentes Licht

    SunFounder Da Vinci Kit Code Erläuterung RELAY_PIN Relais angeschlossen an GPIO18 der T-Erweiterungskarte. GPIO.setmode(GPIO.BCM) GPIO.setup(RELAY_PIN, GPIO.OUT) Auf BCM-Nomenklatur einstellen und RELAY_PIN auf Ausgang setzen. relay_control(value=None): GPIO.output(RELAY_PIN, value) return GPIO.input(RELAY_PIN) Diese Funktion steuert das Relais entsprechend dem Wert und gibt den aktuellen Pegel des Relais zurück.
  • Seite 414 DEVICE_TOKEN '__YOUR_DEVICE_TOKEN__' Führen Sie den Code aus. sudo python3 smart_light.py Gehen Sie zu Cloud4RPi, fügen Sie ein neues Control Panel namens project3 hinzu und klicken Sie auf Widget hinzufügen, um ein Slider-Widget hinzuzufügen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 415 SunFounder Da Vinci Kit Nach dem Hinzufügen können Sie das Schieberegler-Widget verwenden, um die Helligkeit der LED zu steuern. 1.10. 4 IOT...
  • Seite 416 Indem wir den Wert des Schlüssels 'value setzen, können wir den Anfangswert des Slider Widgets setzen, dann immer den Wert des Schlüssels 'value lesen und den aktuellen Pegel von LED_PIN (der Wert, der von der Funktion led_control zurückgegeben wird) an Cloud4RPi senden. Kapitel 1. Über das Da Vinci Kit...
  • Seite 417: Intelligenter Vorhang

    SunFounder Da Vinci Kit Intelligenter Vorhang In diesem Projekt werden wir ein Szenario simulieren, in dem die Vorhänge je nach Helligkeit des Raums automatisch geöffnet oder geschlossen werden. Wenn der Fotowiderstand erkennt, dass die Raumhelligkeit zu hell ist, treibt der Raspberry Pi den Motor an, um den Vorhang zu schließen;...
  • Seite 418 Motor 5 Sekunden lang im Uhrzeigersinn. Wenn der Wert kleiner als 20 ist, dreht sich der Motor 5 Sekunden lang gegen den Uhrzeigersinn. 'CPU Temp': { 'type': 'numeric', (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 419 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) 'bind': getValue Übergeben Sie getValue() in die 'bind' Taste als Callback-Funktion, so daß der Helligkeitswert (der Rückga- bewert der getValue() Funktion) an das Text-Widget gesendet werden kann. Anwesenheitssystem In diesem Projekt verwenden wir das MFRC522 RFID-Modul und Cloud4RPi, um ein System zu erstellen. Sie können die Anwesenheitsinformationen auf Cloud4RPi anzeigen oder die lokale .csv-Datei öffnen, um die Anwesenheitsda-...
  • Seite 420 Führen Sie den code aus. sudo python3 attendance_system.py Gehen Sie zu Cloud4RPi, fügen Sie ein neues Control Panel namens project5 hinzu und fügen Sie 2 Widgets (Text- und Diagramm-Widgets) über die Schaltfläche Widget hinzufügen hinzu. Kapitel 1. Über das Da Vinci Kit...
  • Seite 421 SunFounder Da Vinci Kit Nach dem Hinzufügen können Sie die Einstempel-Datensätze für verschiedene Zeiträume im Diagramm-Widget an- zeigen (wenn der Wert von LED ON True ist, bedeutet dies, dass jemand eingestempelt wurde) und dann die Anzahl der Personen anzeigen, die sich im Text-Widget eingestempelt haben .
  • Seite 422 Stellen Sie 2 LEDs als Ausgang ein und setzen Sie den Anfangswert auf hoch. get_time(): time.time() year str(time.strftime('%Y',time.localtime(time.time()))) month str(time.strftime('%m',time.localtime(time.time()))) str(time.strftime('%d',time.localtime(time.time()))) hour str(time.strftime('%H',time.localtime(time.time()))) minute str(time.strftime('%M',time.localtime(time.time()))) second str(time.strftime('%S',time.localtime(time.time()))) present_time year month hour minute second present_date year month return present_date, present_time Kapitel 1. Über das Da Vinci Kit...
  • Seite 423 SunFounder Da Vinci Kit Verwenden Sie die Funktion get_time(), um den aktuellen Zeitstempel abzurufen und zwei Werte zurückzugeben. Wobei present_date auf den Tag genau und present_time auf die Sekunde genau ist. attendance False GPIO.output(GreenPin, GPIO.LOW) GPIO.output(RedPin, GPIO.HIGH) print("Reading...Please place the card...")
  • Seite 424: Spielen Sie Mit Der Verarbeitung

    Führen Sie den folgenden Befehl im Terminal aus, um Processing zu installieren. curl https://processing.org/download/install-arm.sh sudo sh Wenn die Installation abgeschlossen ist, geben Sie processing ein, um sie zu öffnen. Eine ausführliche Anleitung finden Sie unter Processing. Kapitel 1. Über das Da Vinci Kit...
  • Seite 425: Zeichne Einen Matchmaker

    SunFounder Da Vinci Kit 1.11.3 Projekte Zeichne einen Matchmaker Sie führen jetzt die Processing Development Environment (oder PDE) aus. Es ist nicht viel dabei; der große Bereich ist der Texteditor, und oben gibt es eine Reihe von Schaltflächen; Dies ist die Symbolleiste. Unterhalb des Editors be- findet sich der Nachrichtenbereich und darunter die Konsole.
  • Seite 426 • ellipse(x, y, width, height): Zeichnet eine Ellipse (oval) auf den Bildschirm. • line(x1, y1, x2, y2): Zeichnet eine Linie (einen direkten Pfad zwischen zwei Punkten) zum Bild- schirm. Weitere Informationen finden Sie unter Verarbeitungsreferenz. Kapitel 1. Über das Da Vinci Kit...
  • Seite 427 SunFounder Da Vinci Kit Hallo Maus In diesem Projekt schießt Ihre Maus weiterhin Linien auf einen Punkt; Bewegen Sie die Maus und Sie werden eine einzigartige Sternenlinie zeichnen. Drücken Sie die Maus, um die Zeichnung neu zu starten. Skizzieren pointX 172;...
  • Seite 428 Blinkender Punkt In diesem Projekt werden wir einen Punkt auf Processing zeichnen, der synchron mit der LED blinkt. Bitte bauen Sie die Schaltung wie im Diagramm gezeigt auf und führen Sie die Skizze aus. Kapitel 1. Über das Da Vinci Kit...
  • Seite 429 SunFounder Da Vinci Kit Verdrahtung Skizzieren import processing.io. ledPin boolean state true; void setup() { size(100, 100); frameRate(2); //set frame rate GPIO.pinMode(ledPin, GPIO.OUTPUT); //set the ledPin to output mode void draw() { state !state; (state==true) { GPIO.digitalWrite(ledPin, GPIO.LOW); //led on (Fortsetzung auf der nächsten Seite)
  • Seite 430 Wir haben versucht, Animationen zu zeichnen, auf Mausereignisse zu reagieren und die LED zu steuern. Wir können diese Funktionen also genauso gut kombinieren, einen anklickbaren Punkt zeichnen, um die LED zu steuern! Verdrahtung Kapitel 1. Über das Da Vinci Kit...
  • Seite 431 SunFounder Da Vinci Kit Skizzieren import processing.io. boolean state false; ledPin void setup() { GPIO.pinMode(ledPin, GPIO.OUTPUT); background(255); void draw() { (state true) { GPIO.digitalWrite(ledPin, GPIO.LOW); fill(255, 0, 0); }else GPIO.digitalWrite(ledPin, GPIO.HIGH); fill(155); ellipse(width/2, height/2, width 0.75, height 0.75); void mouseClicked() {...
  • Seite 432 (int 0; i < pins.length; i++) { GPIO.pinMode(pins[i], GPIO.OUTPUT); size(300, 100); background(255); void draw() { fill(255, 0, 0); rect(0, 0, width/3, height); fill(0,255,0); rect(width/3, 0, width/3, height); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 433: Aufblasen Des Dot

    SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) fill(0,0,255); rect(2 width/3, 0, width, height); void mouseClicked() { for (int 0; i < pins.length; i++) { GPIO.digitalWrite(pins[i],GPIO.LOW); (mouseX<width/3){ GPIO.digitalWrite(pins[0],GPIO.HIGH); }else if (mouseX>width/3&&mouseX<2 width/3){ GPIO.digitalWrite(pins[1],GPIO.HIGH); }else if (mouseX>2 width/3){ GPIO.digitalWrite(pins[2],GPIO.HIGH); Wie es funktioniert? Dieses Projekt hat viel mit gemeinsam, außer dass es die Bedingungen für die Bestimmung des...
  • Seite 434: Skizzieren

    Wie es funktioniert? Dieses Projekt verwendet die Eingabefunktion im Vergleich zu den vorherigen 2 Projekten, die die Ausgabefunktion des GPIO verwendet haben. Die Funktion GPIO.pinMode() wird verwendet, um buttonPin in den Pull-Up-Eingangsmodus zu setzen, wo- Kapitel 1. Über das Da Vinci Kit...
  • Seite 435: Punkt Auf Der Schaukel

    SunFounder Da Vinci Kit durch der Pin im Standardzustand automatisch hoch wird. Verwenden Sie dann die Funktion GPIO.digitalRead(), um den Wert von buttonPin auszulesen. Wenn der Wert NIEDRIG ist, bedeutet dies, dass die Taste gedrückt wird. Lassen Sie dann den Durchmesser des Punkts um 5 zunehmen;...
  • Seite 436 // Modify attributes of the Dot depending on which buttons are pressed (GPIO.digitalRead(pins[0]) GPIO.LOW) {myDot.setSize();} (GPIO.digitalRead(pins[1]) GPIO.LOW) {myDot.setPosition();} (GPIO.digitalRead(pins[2]) GPIO.LOW) {myDot.setColor();} // Update the Dot state myDot.update(); // And draw it to the screen myDot.show(); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 437 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) class float initX; float initY; currentX; float float currentY; positionRange float initSize; float currentSize; sizeRange initColor; currentColor; ColorRange float timer 0.0; float speed 0.06; Dot(float float float c) { initX initY currentX...
  • Seite 438: Klasse (Computerprogrammierung) - Wikipedia

    Änderung (von -1 zu 1) ergibt. des aktuellen Wertes des Punktes. Wir müssen auch einen Startwert, timer, für die periodische Variation hinzufügen. Es fügt den festen Wert in die Methode update() ein und wird in draw() aufgerufen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 439 SunFounder Da Vinci Kit void update() { timer speed; Schließlich wird der Punkt mit der Methode show() entsprechend dem aktuellen Wert angezeigt, die auch in draw() aufgerufen wird. void show() { fill(currentColor, 100, 100); ellipse(currentX, currentY, currentSize, currentSize); Was mehr? Wenn Sie die Verwendung von Klassen beherrschen, können Sie bereits mehrere Punkte mit den gleichen Eigenschaf-...
  • Seite 440 { background(255); mySlider.show(); if(level==0){ GPIO.digitalWrite(buzzerPin, GPIO.HIGH); }else if((frameCount/5) (levelRange-level+1) ==0){ GPIO.digitalWrite(buzzerPin, GPIO.LOW); }else{ GPIO.digitalWrite(buzzerPin, GPIO.HIGH); void mouseDragged(){ level mySlider.dragPoint(mouseX,mouseY); class Slider{ float slotPointAX; float slotPointBX; float slotPointAY; (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 441 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) slotPointBY; float float linePoint; float depth; maxRange; minRange; value; Slider(float float float float min, max, slotPointAX slotPointAY slotPointBX slotPointBY maxRange max; minRange min; value linePoint slotPointAX;// + map(value, minRange, maxRange, slotPointAX, slotPointBX);...
  • Seite 442 Weitere Informationen finden Sie unter Verarbeitungsreferenz. Anzahl anzeigen In dieser Lektion verwenden wir die Verarbeitung, um eine 7-Segment-Anzeige anzusteuern, um eine Zahl von 0 bis 9 und A bis F anzuzeigen. Verdrahtung Skizzieren Kapitel 1. Über das Da Vinci Kit...
  • Seite 443 SunFounder Da Vinci Kit import processing.io. SDI=17; //serial data input RCLK=18; //memory clock input(STCP) SRCLK =27; //shift register clock input(SHCP) SegCode= {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e, int[] 0x79,0x71}; void hc595_shift(int dat){ for(i=0;i<8;i++){ n=(0x80 & (dat << i)); ( n==0){ GPIO.digitalWrite(SDI, 0); else GPIO.digitalWrite(SDI, 1);...
  • Seite 444 • textSize(): Setzt die aktuelle Schriftgröße. Diese Größe wird in allen nachfolgenden Aufrufen der Funktion text() verwendet. Die Schriftgröße wird in Pixeleinheiten gemessen. Diese Funktionen können den bei der Verarbeitung angezeigten Textstil anpassen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 445 SunFounder Da Vinci Kit void draw() { background(255); number (frameCount%100)/10; text(number, width/2, height/2); hc595_shift(SegCode[number]); Der frameCount ist ein Seed, der mit frameRate verwandt ist. Standardmäßig ist frameRate 60, was bedeutet, dass frameCount 60 Mal pro Sekunde akkumuliert. Dann können wir Verarbeitung und 7-Segment-Anzeige die Zahl von 0 bis 9 und A bis F gleichzeitig anzeigen lassen.
  • Seite 446 {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e, 0x79,0x71}; void hc595_shift(int dat){ for(i=0;i<8;i++){ n=(0x80 & (dat << i)); ( n==0){ GPIO.digitalWrite(SDI, 0); else GPIO.digitalWrite(SDI, 1); GPIO.digitalWrite(SRCLK, 1); delay(1); GPIO.digitalWrite(SRCLK, 0); GPIO.digitalWrite(RCLK, 1); delay(1); GPIO.digitalWrite(RCLK, 0); (Fortsetzung auf der nächsten Seite) Kapitel 1. Über das Da Vinci Kit...
  • Seite 447 SunFounder Da Vinci Kit (Fortsetzung der vorherigen Seite) setup() { void size(400, 200); frameRate(50); mySlider Slider(width 0.2,height 0.4,width 0.8,height 0.6,0, levelRange,number); GPIO.pinMode(SDI, GPIO.OUTPUT); GPIO.pinMode(RCLK, GPIO.OUTPUT); GPIO.pinMode(SRCLK, GPIO.OUTPUT); GPIO.digitalWrite(SDI, 0); GPIO.digitalWrite(RCLK, 0); GPIO.digitalWrite(SRCLK, 0); void draw() { background(255); mySlider.show(); hc595_shift(SegCode[number]); void...
  • Seite 448: Spielen Mit Scratch

    2 GB RAM. Sie können Scratch 3 zwar auf einem Raspberry Pi 2, 3, 3B+ oder einem Raspberry 4 mit 1 GB RAM ausführen, aber die Leistung ist bei diesen Modellen reduziert und je nachdem, welche andere Software Sie gleichzeitig ausführen, kann Scratch 3 aufgrund von Speichermangel nicht starten. Kapitel 1. Über das Da Vinci Kit...
  • Seite 449: Scratch 3 Installieren

    SunFounder Da Vinci Kit Scratch 3 installieren Bei der Installation von Raspberry Pi OS (Installieren des Betriebssystems) müssen Sie die Version mit Desktop auswählen, entweder nur mit Desktop oder mit Desktop und empfohlener Software. Wenn Sie die Version mit der empfohlenen Software installieren, können Sie Scratch 3 im Systemmenü unter Pro- gramming sehen.
  • Seite 450 SunFounder Da Vinci Kit Sobald die Installation abgeschlossen ist, sollten Sie sie unter Programming im Systemmenü finden. Kapitel 1. Über das Da Vinci Kit...
  • Seite 451: Über Die Benutzeroberfläche Von Scratch

    SunFounder Da Vinci Kit Über die Benutzeroberfläche von Scratch 3 Scratch 3 ist so konzipiert, dass es Spaß macht, lehrreich und leicht zu erlernen ist. Es verfügt über Werkzeuge zum Er- stellen von interaktiven Geschichten, Spielen, Kunst, Simulationen und mehr, die auf blockbasierter Programmierung basieren.
  • Seite 452 Sprites hinzufügen, die mit Scratch 3 geliefert werden, oder lokale Sprites hochladen. Hier ist der Scratch 3 Hintergrundbereich, hauptsächlich um einen passenden Hintergrund für deine Bühne hinzu- zufügen. Du kannst den Hintergrund, der mit Scratch 3 geliefert wird, hinzufügen oder einen lokalen Hintergrund hochladen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 453 SunFounder Da Vinci Kit Dies ist eine Schaltfläche Erweiterung hinzufügen. In Scratch 3 können wir alle Arten von nützlichen Erweiterungen hinzufügen, hier nehmen wir Video-Erfassung als Beispiel und klicken es an. 1.12. Spielen mit Scratch...
  • Seite 454 SunFounder Da Vinci Kit Sie wird in der Blockpalette angezeigt und Sie können die mit dieser Erweiterung verbundenen Funktionen nutzen. Wenn Sie eine Kamera angeschlossen haben, sehen Sie den Kamerabildschirm im Bühnenbereich. Kapitel 1. Über das Da Vinci Kit...
  • Seite 455 SunFounder Da Vinci Kit Kostüme Klicken Sie auf die Option Kostüme in der oberen linken Ecke, um die Kostümpalette zu öffnen. Verschiedene Kostü- me ermöglichen den Sprites unterschiedliche statische Bewegungen, und wenn diese statischen Bewegungen zusam- mengefügt werden, bilden sie eine kohärente dynamische Bewegung.
  • Seite 456 Möglicherweise müssen Sie einige Musikclips verwenden, um Ihre Experimente interessanter zu gestalten. Klicken Sie auf die Option Sounds in der oberen linken Ecke und Sie können den aktuellen Sound bearbeiten oder einen neuen Sound auswählen bzw. hochladen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 457 SunFounder Da Vinci Kit 1.12.2 Projekte In diesem Kapitel spielen Sie mit Scratch 3 durch 18 Projekte. Wenn Sie ein Benutzer sind, der gerade Scratch 3 verwendet hat, empfehlen wir Ihnen, die Projekte der Reihe nach auszuprobieren, damit Sie schnell mit Scratch 3 beginnen können.
  • Seite 458 SunFounder Da Vinci Kit 1.1 Zauberstab Heute werden wir LED, Raspberry Pi und Scratch verwenden, um ein lustiges Spiel zu machen. Wenn wir den Zau- berstab schwingen, blinkt die LED. Kapitel 1. Über das Da Vinci Kit...
  • Seite 459 SunFounder Da Vinci Kit Erforderliche Komponenten 1.12. Spielen mit Scratch...
  • Seite 460: Gpio-Erweiterung Hinzufügen

    Bauen Sie den Stromkreis auf GPIO-Erweiterung hinzufügen Klicken Sie auf die Schaltfläche Erweiterung hinzufügen in der unteren linken Ecke und fügen Sie dann Raspberry Pi GPIO hinzu, eine Erweiterung, die wir für alle unsere Scratch-Projekte verwenden. Kapitel 1. Über das Da Vinci Kit...
  • Seite 461 SunFounder Da Vinci Kit 1.12. Spielen mit Scratch...
  • Seite 462: Laden Sie Den Code Und Sehen Sie, Was Passiert

    Laden Sie den Code und sehen Sie, was passiert Lade die Code-Datei von deinem Computer (home/pi/davinci-kit-for-raspberry-pi/scratch/ code) in Scratch 3. Nachdem du den Zauberstab im Bühnenbereich angeklickt hast, blinkt die LED zwei Sekunden lang. Kapitel 1. Über das Da Vinci Kit...
  • Seite 463 SunFounder Da Vinci Kit Tipps zu Figur Klicken Sie auf die Schaltfläche Figur hochladen. 1.12. Spielen mit Scratch...
  • Seite 464 SunFounder Da Vinci Kit Lade Wand.png aus dem Pfad home/pi/davinci-kit-for-raspberry-pi/scratch/picture in Scratch 3 hoch. Löschen Sie schließlich die Figur1. Kapitel 1. Über das Da Vinci Kit...
  • Seite 465 SunFounder Da Vinci Kit Tipps zu Codes Dies ist ein Ereignisblock, dessen Auslösebedingung das Klicken auf die grüne Flagge auf der Bühne ist. Ein Auslö- seereignis ist am Anfang aller Codes erforderlich, und Sie können andere Auslöseereignisse in der Kategorie Ereig- nisse der Blockpalette auswählen.
  • Seite 466: Bunte Kugeln

    Level). Da die Kathode der LED mit GPIO17 verbunden ist, wird die LED aufleuchten. Wenn Sie dagegen GPIO(BCM17) auf einen hohen Wert einstellen, wird die LED ausgeschaltet. 1.2 Bunte Kugeln Wenn du auf verschiedenfarbige Kugeln auf der Bühne klickst, leuchtet die RGB-LED in verschiedenen Farben auf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 467 SunFounder Da Vinci Kit 1.12. Spielen mit Scratch...
  • Seite 468: Erforderliche Komponenten

    SunFounder Da Vinci Kit Erforderliche Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 469 SunFounder Da Vinci Kit Bauen Sie den Stromkreis auf Laden Sie den Code und sehen Sie, was passiert Nachdem du die Codedatei (1.2_colorful_balls.sb3) in Scratch 3 geladen hast, leuchtet die RGB-LED gelb, blau, rot, grün oder lila, wenn du auf den entsprechenden Ball klickst.
  • Seite 470 Additive Farbmischung: Wenn man Rot zu Grün addiert, erhält man Gelb; wenn man Grün zu Blau addiert, erhält man Cyan; wenn man Blau zu Rot addiert, erhält man Magenta; wenn man alle drei Grundfarben addiert, erhält man Weiß. Kapitel 1. Über das Da Vinci Kit...
  • Seite 471 SunFounder Da Vinci Kit Eine RGB-LED ist eine Kombination von 3 LEDs (rote LED, grüne LED, blaue LED) in nur einem Gehäuse, Sie können fast jede Farbe durch die Kombination dieser drei Farben erzeugen. Sie hat 4 Pins, von denen einer GND ist, und die anderen 3 Pins steuern jeweils 3 LEDs.
  • Seite 472 (blaue LED aus), so dass die RGB-LED gelb leuchtet. Du kannst auf die gleiche Weise Codes in andere Sprites schreiben, um die RGB-LEDs in den entsprechenden Farben aufleuchten zu lassen. 1.3 Becher In diesem Projekt werden wir ein kippschaltergesteuertes Tumbler-Spielzeug bauen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 473 SunFounder Da Vinci Kit 1.12. Spielen mit Scratch...
  • Seite 474 SunFounder Da Vinci Kit Erforderliche Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 475 SunFounder Da Vinci Kit Bauen Sie den Stromkreis auf Laden Sie den Code und sehen Sie, was passiert s Lade die Code-Datei (1.3_tumbler.sb3) in Scratch 3. Wenn der Kippschalter senkrecht steht, bleibt der Becher stehen. Wenn Sie ihn kippen, fällt auch der Becher um.
  • Seite 476 Upload Costume button; delete the default 2 costumes, and rename the sprite to tumbler. Tipps zu Codes Wenn die grüne Flagge angeklickt wird, wird der Ausgangszustand von gpio17 auf low gesetzt. Kapitel 1. Über das Da Vinci Kit...
  • Seite 477 SunFounder Da Vinci Kit Wenn Pin17 niedrig ist (der Kippschalter ist aufrecht), schalten wir das Kostüm des Tumbler-Sprites auf Tumbler1 (aufrechter Zustand). Wenn Pin17 High ist (Kippschalter ist gekippt), schaltet das Kostüm des Tumbler-Sprites auf Tumbler2 (Kippzustand). 1.4 Hase Heute werden wir Button, Raspberry Pi und Scratch verwenden, um einen Hasen mit verschiedenen Veränderungen zu erstellen! Wenn wir den ersten Knopf drücken, ändert der Hase im Bühnenbereich seine Körperfarbe;...
  • Seite 478 SunFounder Da Vinci Kit Kapitel 1. Über das Da Vinci Kit...
  • Seite 479 SunFounder Da Vinci Kit Erforderliche Komponenten 1.12. Spielen mit Scratch...
  • Seite 480 Jetzt kannst du versuchen, jeden der 3 Knöpfe zu drücken, um zu sehen, wie sich der Hase auf der Bühne verändert. Tipps zu Figur Klicken Sie auf die Schaltfläche Figur auswählen in der unteren rechten Ecke des Sprite-Bereichs, geben Sie Hase in das Suchfeld ein, und klicken Sie dann, um es hinzuzufügen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 481 SunFounder Da Vinci Kit Löschen Sie Figur1. Tipps zu Codes Dies ist ein Ereignisblock, der ausgelöst wird, wenn der Pegel von GPIO17 hoch ist, was bedeutet, dass die Taste zu diesem Zeitpunkt gedrückt wird. 1.12. Spielen mit Scratch...
  • Seite 482 Aktionen aus. In diesem Projekt soll Hase zum Beispiel einen Schritt nach vorne machen. 1.5 Weck die Eule auf Heute werden wir ein Spiel spielen, bei dem es darum geht, die Eule zu wecken. Wenn sich jemand dem PIR-Sensormodul nähert, erwacht die Eule aus dem Schlaf. Kapitel 1. Über das Da Vinci Kit...
  • Seite 483 SunFounder Da Vinci Kit 1.12. Spielen mit Scratch...
  • Seite 484 SunFounder Da Vinci Kit Erforderliche Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 485 SunFounder Da Vinci Kit Bauen Sie den Stromkreis auf Laden Sie den Code und sehen Sie, was passiert Laden Sie die Codedatei (1.5_wake_up_the_owl.sb3) in Scratch 3. Wenn Sie sich dem PIR-Sensormodul nähern, sehen Sie, wie die Eule auf dem Bühnenbereich ihre Flügel öffnet und aufwacht, und wenn Sie gehen, schläft die Eule wieder ein.
  • Seite 486 SunFounder Da Vinci Kit Tipps zu Codes Wenn die grüne Flagge angeklickt wird, wird der Ausgangszustand von gpio17 auf low gesetzt. Kapitel 1. Über das Da Vinci Kit...
  • Seite 487 SunFounder Da Vinci Kit Wenn Pin17 niedrig ist (es nähert sich niemand), schalte das Kostüm des Eulen-Sprites auf Eule1 (Schlafzustand). Wenn Pin17 hoch ist (jemand nähert sich), schalten wir das Kostüm des Eulen-Sprites auf Eule2 (Wachzustand). 1.6 Water Lamp Heute werden wir mit LED-Balkengrafik, Raspberry Pi und Scratch eine Wasserlampe bauen.
  • Seite 488 SunFounder Da Vinci Kit Kapitel 1. Über das Da Vinci Kit...
  • Seite 489 SunFounder Da Vinci Kit Erforderliche Komponenten 1.12. Spielen mit Scratch...
  • Seite 490 Klicken Sie auf Pfeil2 und die LEDs leuchten in der umgekehrten Reihenfolge auf. Tipps zu Figur Löschen Sie das Standard-Figur und wählen Sie das Figur Pfeil1. Hier benötigen wir 2 Pfeil1-Sprites, die mit dem Duplikat-Button erstellt werden können. Kapitel 1. Über das Da Vinci Kit...
  • Seite 491 SunFounder Da Vinci Kit Klicken Sie auf das Sprite Pfeil 2 und ändern Sie die Richtung des Pfeils, indem Sie Kostüm 2 wählen. Nun wollen wir eine Variable erstellen. 1.12. Spielen mit Scratch...
  • Seite 492 SunFounder Da Vinci Kit Benennen Sie es als num. Gehen Sie genauso vor, um eine Liste namens led zu erstellen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 493 SunFounder Da Vinci Kit Nach dem Hinzufügen sollten Sie die Variable num und die Liste led im Bühnenbereich sehen. Klicken Sie auf +, um 10 Listenelemente hinzuzufügen, und geben Sie die Pin-Nummern der Reihe nach ein (17,18,27,22,23,24,25,2,3,8). 1.12. Spielen mit Scratch...
  • Seite 494 Sie dann den Pin mit der Nummer num-1 auf high, um die vorherige LED auszuschalten. 1.7 Türklingel Heute werden wir eine Türklingel bauen, klicke auf das Button3-Sprite auf der Bühne, der Summer ertönt; klicke erneut, der Summer hört auf zu ertönen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 495 SunFounder Da Vinci Kit 1.12. Spielen mit Scratch...
  • Seite 496 SunFounder Da Vinci Kit Erforderliche Komponenten Kapitel 1. Über das Da Vinci Kit...
  • Seite 497 SunFounder Da Vinci Kit Bauen Sie den Stromkreis auf Laden Sie den Code und sehen Sie, was passiert Lade die Code-Datei (1.7_doorbell.sb3) in Scratch 3. Klicken Sie auf die grüne Flagge auf der Bühne. Wenn wir auf das Sprite Button 3 klicken, wird es blau und der Summer ertönt.
  • Seite 498 Zeitpunkt angeklickt wird; Wenn button3 geklickt wird, wechselt es zum Kostüm als button-b Kostüm (blau) und der Status wird auf 1 gesetzt. Wenn das Hauptprogramm den Status* erhält * als 1 wird der Summer im 0,1s-Intervall Kapitel 1. Über das Da Vinci Kit...
  • Seite 499 SunFounder Da Vinci Kit ertönt. Wenn **button3 erneut geklickt wird, wechselt es zu button-a Kostüm (grau) und status wird wieder auf 0 gesetzt. 1.8 123 Holzmann Heute spielen wir 123 Holzmann. Klicken Sie auf die grüne Flagge, um das Spiel zu starten, halten Sie die rechte Pfeiltaste auf der Tastatur gedrückt, um das Sprite nach rechts zu bewegen.
  • Seite 500 SunFounder Da Vinci Kit Kapitel 1. Über das Da Vinci Kit...
  • Seite 501 SunFounder Da Vinci Kit Erforderliche Komponenten 1.12. Spielen mit Scratch...
  • Seite 502: Baue Die Schaltung

    Wenn die grüne LED leuchtet, können Sie Avery mit der rechten Pfeiltaste so steuern, dass sie nach rechts geht; Wenn die rote LED leuchtet und Sie Avery weiter nach rechts bewegen lassen, ertönt ein Alarm. Tipps zu Sprite Löschen Sie das Standard-Sprite und wählen Sie dann das Avery Walking-Sprite. Kapitel 1. Über das Da Vinci Kit...
  • Seite 503 SunFounder Da Vinci Kit Tipps zu Codes Initialisieren Sie alle Pins auf High. 1.12. Spielen mit Scratch...
  • Seite 504 Weisen Sie die Statusvariable auf 0 zu, was bedeutet, dass sich das Avery Walking-Sprite nicht bewegt; setze dann gpio27 auf low und gpio17 auf high, was die gelbe LED ausschaltet und dann die rote LED für 3s aufleuchtet. Setzen Sie schließlich gpio17 auf hoch, um die rote LED auszuschalten. Kapitel 1. Über das Da Vinci Kit...
  • Seite 505: Aufblasen Des Ballons

    SunFounder Da Vinci Kit Wenn wir die rechte Pfeiltaste auf der Tastatur drücken, müssen wir das Sprite Avery Walking auf das nächste Kostüm umschalten, damit wir Avery nach rechts gehen sehen. Dann müssen wir den Wert der Variable status bestimmen.
  • Seite 506 SunFounder Da Vinci Kit Kapitel 1. Über das Da Vinci Kit...
  • Seite 507 SunFounder Da Vinci Kit Erforderliche Komponenten 1.12. Spielen mit Scratch...
  • Seite 508 Luft. Sie müssen beurteilen, wann Sie den Schalter nach rechts schieben müssen, um das Pumpen zu stoppen. Tipps zu Figur Löschen Sie das vorherige Sprite1-Sprite und fügen Sie dann das Balloon1-Sprite hinzu. Kapitel 1. Über das Da Vinci Kit...
  • Seite 509 SunFounder Da Vinci Kit In diesem Projekt wird ein Ballonexplosions-Soundeffekt verwendet. Sehen wir uns also an, wie er hinzugefügt wurde. Klicken Sie oben auf die Option Sound und dann auf Sound hochladen, um boom.wav von home/pi/ davinci-kit-for-raspberry-pi/scratch/sound hochzuladen. Pfad zu Scratch 3.
  • Seite 510 SunFounder Da Vinci Kit Kapitel 1. Über das Da Vinci Kit...
  • Seite 511 SunFounder Da Vinci Kit Tipps zu Codes Dies ist ein Ereignisblock, und die Triggerbedingung ist, dass gpio17 hoch ist, dh der Schalter wird nach links ge- schaltet. Stellen Sie die Größenschwelle des Ballon1-Sprites auf 120 . ein Verschieben Sie die Koordinaten des Sprites Balloon1 auf (0,0), die Mitte des Bühnenbereichs.
  • Seite 512 Richten Sie eine Schlaufe zum Aufblasen des Ballons ein. Diese Schlaufe stoppt, wenn der Schieberegler nach rechts geschoben wird. Innerhalb dieser Schleife wird die Ballongröße alle 0,1s um 1 erhöht, und wenn sie größer als maxSize ist, platzt die Sprechblase, woraufhin das Boom-Geräusch erzeugt und der Code verlassen wird. Kapitel 1. Über das Da Vinci Kit...
  • Seite 513 SunFounder Da Vinci Kit Nachdem die letzte Schleife beendet wurde (Slider schaltet nach rechts), bestimmen Sie die Position des Balloon1- Sprites basierend auf seiner Größe. Wenn die Größe des Balloon1-Sprites größer als 90 ist, heben Sie ab (bewegen Sie die Koordinaten auf (0, 90), andernfalls landen Sie (bewegen Sie die Koordinaten auf (0, -149).
  • Seite 514 SunFounder Da Vinci Kit Kapitel 1. Über das Da Vinci Kit...
  • Seite 515 SunFounder Da Vinci Kit Erforderliche Komponenten 1.12. Spielen mit Scratch...
  • Seite 516 Sie erneut auf das Stern-Sprite klicken, hören es und der Motor auf zu drehen. Tipps zu Figur Löschen Sie das Standard-Sprite, wählen Sie dann das Star-Sprite und das Arrow1-Sprite aus und kopieren Sie Arrow1 einmal. Kapitel 1. Über das Da Vinci Kit...
  • Seite 517 SunFounder Da Vinci Kit Ändern Sie in der Option Kostüme das Arrow2-Sprite in ein anderes Richtungskostüm. Passen Sie die Größe und Position des Sprites entsprechend an. 1.12. Spielen mit Scratch...
  • Seite 518 SunFounder Da Vinci Kit Tipps zu Codes Flussdiagramm Kapitel 1. Über das Da Vinci Kit...
  • Seite 519 SunFounder Da Vinci Kit In diesem Code sehen Sie 2 rosa Blöcke, biegen Sie links ab und biegen Sie rechts ab, die unsere benutzerdefinierten Blöcke (Funktionen) sind. Wie erstelle ich einen Block? Lassen Sie uns lernen, wie man einen Block (eine Funktion) erstellt. Der Block (Funktion) kann verwendet werden, um Ihr Programm zu vereinfachen, insbesondere wenn Sie dieselbe Operation mehrmals ausführen.
  • Seite 520 SunFounder Da Vinci Kit Geben Sie den Namen des neuen Blocks ein. Kapitel 1. Über das Da Vinci Kit...
  • Seite 521 SunFounder Da Vinci Kit Nachdem Sie die Funktion des neuen Blocks in den Codierbereich geschrieben haben, speichern Sie diese und Sie finden den Block dann in der Blockpalette. 1.12. Spielen mit Scratch...
  • Seite 522 Dies ist der Code innerhalb des Linksabbiegeblocks, um den Motor gegen den Uhrzeigersinn drehen zu lassen. Biegen Sie rechts ab Dies ist der Code im Block rechts drehen, um den Motor im Uhrzeigersinn drehen zu lassen. Kapitel 1. Über das Da Vinci Kit...
  • Seite 523: Anhang

    SunFounder Da Vinci Kit 1.13 Anhang 1.13.1 I2C-Konfiguration Schritt 1: Aktivieren Sie den I2C-Port Ihres Raspberry Pi (Wenn Sie ihn aktiviert haben, überspringen Sie diesen; wenn Sie nicht wissen, ob Sie das getan haben oder nicht, fahren Sie bitte fort).
  • Seite 524 SunFounder Da Vinci Kit <Ja>, dann <Ok> -> <Fertig stellen> Schritt 2: Prüfen Sie, ob die i2c-Module geladen und aktiv sind. lsmod grep i2c Dann erscheinen die folgenden Codes (die Nummer kann unterschiedlich sein). Kapitel 1. Über das Da Vinci Kit...
  • Seite 525 SunFounder Da Vinci Kit i2c_dev 6276 i2c_bcm2708 4121 Schritt 3: Installieren Sie i2c-tools. sudo apt-get install i2c-tools Schritt 4: Überprüfen Sie die Adresse des I2C-Geräts. i2cdetect -y # For Raspberry Pi 2 and higher version i2cdetect -y # For Raspberry Pi 1...
  • Seite 526 SunFounder Da Vinci Kit P4 SPI <YES>, dann auf <OK> und <Finish> klicken. Jetzt können Sie den Raspberry Pi mit dem Befehl sudo reboot neu starten. Kapitel 1. Über das Da Vinci Kit...
  • Seite 527 SunFounder Da Vinci Kit Schritt 2: Überprüfen Sie, ob die Spi-Module geladen und aktiv sind. ls /dev/sp Dann erscheinen die folgenden Codes (die Nummer kann abweichen). /dev/spidev0.0 /dev/spidev0.1 Schritt 3: Installieren Sie das Python-Modul SPI-Py. git clone https://github.com/lthiery/SPI-Py.git cd SPI-Py sudo python3 setup.py install...
  • Seite 528 Der VNC-Dienst wurde im System installiert. VNC ist standardmäßig deaktiviert. Sie müssen es in der Konfiguration aktivieren. Schritt 1 Geben Sie den folgenden Befehl ein: sudo raspi-config Schritt 2 Wählen Sie 3 Schnittstellenoptionen, indem Sie die Abwärtspfeiltaste auf Ihrer Tastatur drücken und dann die Ein- gabetaste drücken. Kapitel 1. Über das Da Vinci Kit...
  • Seite 529 SunFounder Da Vinci Kit Schritt 3 P3-VNC Schritt 4 Wählen Sie Ja -> OK -> Fertig, um die Konfiguration zu beenden. 1.13. Anhang...
  • Seite 530 Ihrem PC installieren. Nachdem die Installation abgeschlossen ist, öffnen Sie es. Schritt 2 Wählen Sie dann „Neue Verbindung“. Schritt 3 Geben Sie die IP-Adresse des Raspberry Pi und einen beliebigen Namen ein. Kapitel 1. Über das Da Vinci Kit...
  • Seite 531 SunFounder Da Vinci Kit Schritt 4 Doppelklicken Sie auf die soeben erstellte Verbindung: 1.13. Anhang...
  • Seite 532 SunFounder Da Vinci Kit Schritt 5 Geben Sie den Benutzernamen (pi) und das Passwort (standardmäßig raspberry) ein. Kapitel 1. Über das Da Vinci Kit...
  • Seite 533 SunFounder Da Vinci Kit Schritt 6 Nun sehen Sie den Desktop des Raspberry Pi: 1.13. Anhang...
  • Seite 534 Geben Sie die folgenden Anweisungen ein, um XRDP zu installieren. sudo apt-get update sudo apt-get install xrdp Schritt 3 Später startet die Installation. Geben Sie „Y“ ein, drücken Sie zur Bestätigung die Taste „Enter“. Kapitel 1. Über das Da Vinci Kit...
  • Seite 535 SunFounder Da Vinci Kit Schritt 4 Nachdem Sie die Installation abgeschlossen haben, sollten Sie sich mit Windows-Remote-Desktop-Anwendungen bei Ihrem Raspberry Pi anmelden. Bei XRDP anmelden Schritt 1 Wenn Sie ein Windows-Benutzer sind, können Sie die mit Windows gelieferte Remotedesktopfunktion verwenden.
  • Seite 536 Dann erscheint die xrdp-Anmeldeseite. Bitte geben Sie Ihren Benutzernamen und Ihr Passwort ein. Danach klicken Sie bitte auf „OK“. Bei der ersten Anmeldung lautet Ihr Benutzername „pi“ und das Passwort „raspberry“. Schritt 4 Hier melden Sie sich erfolgreich über den Remote-Desktop bei RPi an. Kapitel 1. Über das Da Vinci Kit...
  • Seite 537: Faq

    Alle Inhalte, einschließlich, aber nicht beschränkt auf Texte, Bilder und Code in diesem Handbuch, sind Eigentum der SunFounder Company. Sie sollten es nur für persönliche Studien, Recherchen, Genuss oder andere nicht-kommerzielle oder gemeinnützige Zwecke gemäß den entsprechenden Vorschriften und Urheberrechtsgesetzen verwenden, ohne die gesetzlichen Rechte des Autors und der entsprechenden Rechteinhaber zu verletzen.
  • Seite 538: Thank You

    • Kalen Daniel • Juan Delacosta Now, could you spare a little time to fill out this questionnaire? Bemerkung: After submitting the questionnaire, please go back to the top to view the results. Kapitel 1. Über das Da Vinci Kit...
  • Seite 539: Urheberrechtshinweis

    Alle Inhalte, einschließlich, aber nicht beschränkt auf Texte, Bilder und Kode in diesem Handbuch, sind Eigentum der SunFounder Unternehmen. Sie sollten es nur für persönliche Studien, Nachforschungen, Genüsse oder andere nichtkommerzielle oder gemeinnützige Zwecke gemäß den entsprechenden Bestimmungen und Urheberrechtsgeset- zen verwenden, ohne die gesetzlichen Rechte des Autors und der relevanten Rechteinhaber zu verletzen.

Diese Anleitung auch für:

Davinci-kit-for-raspberry-pi

Inhaltsverzeichnis