Wie ich eine elektronische Karte für Telemetriesensoren und zur Steuerung von Peripheriegeräten hergestellt habe

Bei der Erstellung eines Roboter-Kellners, eines Telepräsenz-Roboters und eines Selfie-Bots haben sich einige Entwicklungen herausgestellt, dass es eine Sünde ist, nicht mit der Community zu teilen, dh Open Source zu machen. Eine der Arbeitsversionen war eine elektronische Karte mit dem Codenamen SB Version 4.0, die ein kostengünstiges und relativ wenig funktionierendes Arduino verwendete, nämlich Nano 3.0. Die SB 4.0-Platine ist einfach genug und verständlich, um ihre Kenntnisse über Elektronik und Lötfähigkeiten während der Montage zu festigen. Sie ist funktional genug, um eigene praktische Projekte durchzuführen (z. B. das Einschalten der Glühbirne durch Signale vom Bewegungssensor und vom Lichtsensor oder durch Ihren Befehl über Bluetooth). und die Kosten für Komponenten mit Lieferung bei der Bestellung bei unseren chinesischen Freunden mit Taobao betrugen ca. 55 USD (einschließlich der Sensoren selbst).

Der Hauptzweck der SB 4.0-Karte ist die Hardwareschnittstelle. Nach der Erfassung können Sie damit Daten von mehreren vorinstallierten Sensoren empfangen und verarbeiten sowie weitere Entscheidungen treffen und Algorithmen ausführen. Zur Vereinfachung des Debuggens wurde unter OS Windows eine Schnittstelle erstellt, in der telemetrische Messwerte von Sensoren und einer Stromquelle, der Status von Tasten und Servos klar angezeigt werden und Befehle an den Mikrocontroller gesendet werden können.

In dieser Veröffentlichung werde ich die Eigenschaften des Boards und ein Beispiel für seine Anwendung beschreiben. Auch dies ist alles Open Source, lizenziert unter CC Attribution Non-Commercial Share Alike.

Ja, es gibt bereits ähnliche Steuerplatinen und KITs mit Sensoren (teurere Arduino-Platinen mit Abschirmungen für Raspberry Pi für Jodampere), aber SB 4.0 unterscheidet sich von diesen durch das Vorhandensein einer Leistungsplatine und eines praktischen Steuerungsprogramms, das mit der LabView-Entwicklungsumgebung geschrieben wurde. Das heißt, SB 4.0 besteht aus zwei Karten: Steuerung + Leistung. Dies wird in Fotos und Videos zu sehen sein.

Foto von beiden Boards, Bewegungssensor, Batterie:



Programmierung


Für die Programmierung des Mikrocontrollers verwenden wir wie immer C / C ++. Wir entwickeln in der Arduino IDE.

Der Screenshot zeigt die Benutzeroberfläche des Selfiebot Control Panel-Programms, in der die telemetrischen Messwerte der Sensoren und der Stromquelle, der Status der Tasten und Servos deutlich angezeigt werden. Sie können Befehle an den Mikrocontroller senden.

Screenshot des Interface-Teils:



Leistung


SB 4.0 verwendet eine der kostengünstigsten Arduino Nano 3.0-Plattformen mit einem 8-Bit-ATmega328-Mikrocontroller. Dies reicht aus, um den Code zu verarbeiten und Probleme zu lösen: Steuerroboter, Smart-Home-Systeme usw.



Kompatibilität


Die logische Spannung beträgt 5 V, was die elektrische Kompatibilität mit den Arduino-Peripheriegeräten gewährleistet.

Eingangs- / Ausgangsanschlüsse


Mikrocontroller-Steuerstifte verfügbar. In Klammern gab er vorinstallierte Elemente an, mit denen die Platine bereits arbeiten kann.
  • 2 Pins, die als digitaler Ein- / Ausgang und PWM-Ausgang konfiguriert werden können (für zwei digitale Servos);
  • 1 Pin, digitaler Ein- / Ausgang (für Bewegungssensor);
  • 3 Pins, digitaler Ein- / Ausgang (für RGB-LEDs);
  • 1 Pin, digitaler Ein- / Ausgang (für Grenzwertsensor, Tasten);
  • 1 Pin, digitaler Ausgang + 5V / 0V (zur Steuerung der externen Last).

Der I2C-Bus und der UART-Port werden jeweils für die Port-Expander-Karte und das Bluetooth-Modul verwendet.
Die Universalität der SB 4.0-Karte ist gegeben. Passen Sie Leistungspegel, Signalpegel, Eingangs- / Ausgangstyp an! Ersetzen Sie die vorinstallierten Sensoren durch Ihre Sensoren:

  • Temperatur
  • Geräuschpegel
  • Luftfeuchtigkeit
  • Druck usw.


Der Eingangspin arbeitet geschlossen / offen. Das heißt, auf dem Pin, der zum MK oder + 5V oder 0 geht. Diese Werte sind in den Telemetriedaten enthalten, die an die Selfiebot Control Panel-Software gesendet werden.

Der Ausgangspin erzeugt entweder 5 V mit einer Lastkapazität von 1A oder ist deaktiviert - 0 V. Das Anlegen einer Spannung an diesen Anschluss oder nicht ist nur durch einen externen Befehl oder durch einen Befehl des Firmware-Algorithmus möglich.

Es macht keinen Sinn, analoge Sensoren an digitale Pins anzuschließen.

Ernährung


Die Stromversorgung erfolgt über die 2,1-mm-Steckdose oder über Li-Ion-Akkus mit Laderegler. Die Quelle wird automatisch ermittelt.
Bei Stromversorgung über eine Steckdose beträgt die empfohlene Eingangsspannung 12-12,6 V. DC-DC-Spannungswandler liefern 7 V an Servos, 5 V an USB1, USB2 und andere Lasten. Ein Netzteil oder Batterien können als Stromquelle verwendet werden.
Verwenden Sie 5-V-Pins, um Peripheriegeräte mit Strom zu versorgen. Bei Verwendung einer externen Stromquelle können bis zu 1A von einem 5-V-Pin erhalten werden.

Das Netzteil enthält:
  • 3x18650 Akku, 1 Stck.
  • Batterie 18650, 3,7 V, ab 2200 mAh, 3 Stk.
  • Laderegler, 1 Stck.
  • 1 x Stromanschluss
  • DC-DC-Wandler, 4-tlg.
  • Hallsensor, 1 Stck.
  • Transistoren, 3 Stk.
  • Optokoppler und Widerstände.




Kommunikation


Der Arduino Nano-Mikrocontroller wird über USB mit kostenloser Standardsoftware von der Hersteller-Website MK programmiert. Um wie immer Daten zwischen SB 4.0 und einem Computer zu übertragen, habe ich mich für das kostengünstige gemeinsame Bluetooth HC-06-Modul entschieden, die Datenübertragungsrate von 9600 Kb / s. Telemetriedaten und Steuerbefehle werden über diesen Funkkanal übertragen.

Abmessungen


Ich habe die Abmessungen der elektronischen Leistungsplatine - 100 × 70 × 40 mm. Die Abmessungen der elektronischen Steuerkarte betragen 90 × 70 × 45 mm. Aber ich bin sicher, Sie können immer noch schamanisieren und die Größe reduzieren.

Der Kontaktabstand beträgt 2,54 mm.

Mikrocontroller-Spezifikationen


  • Mikrocontroller: 8-Bit-ATmega328.
  • Taktfrequenz: 16 MHz.
  • Flash-Speicher: 32 KB (2 KB werden für den Bootloader verwendet, 30 KB - zum Speichern des Codes Ihres Programms).
  • RAM 2 KB.
  • EEPROM 1 Kb.
  • Nennbetriebsspannung: 5 V.


Merkmale der elektronischen Karte SB 4.0


  • Nennbetriebsspannung: 12,6 V.
  • Empfohlene Eingangsspannung: 12–12,6 V.
  • Maximaler Strom vom Bus 5 V: 1000 mA
  • Allzweck-E / A-Ports: 2
  • Ports mit PWM-Unterstützung: 2


Die Steuerplatine enthält die folgenden Elemente:

  • Bluetooth-Modul HC-06, 1 Stck.
  • Elektronische Karte des Mikrocontroller-Port-Expanders, 1 Stck.
  • Mikrocontroller Arduino Nano 3.0, 1 Stck.
  • 1 Stk. Elektronische Beleuchtungsplatine
  • Servos TowerPro MG966R, 2 Stk.
  • Fotowiderstand, 1 Stck.
  • Bewegungssensor, 1 Stck.
  • 1 x RGB LED
  • Knopf, 1 Stck.
  • Sicherung, 1 Stck.
  • Jumper, 1 Stck.
  • Transistor, 1 Stck.
  • Kondensator, 1 Stck.




Praktische Anwendung


Optionen für den praktischen Gebrauch:

1. Öffnen / Schließen von Fenstern, wenn sich die Temperatur ändert.
2. Schalten Sie den Lüfter ein / aus, wenn sich die Luftfeuchtigkeit im Raum ändert.
3. Schalten Sie das Licht bei Bewegung im Dunkeln ein / aus.
4. Schalten Sie die Wasserversorgung ein / aus, wenn Sie die Bodenfeuchtigkeit ändern.
5. Schalten Sie die IR-Beleuchtung im Dunkeln ein.
6. Übertragung von Telemetriedaten über die Internetverbindung an den Server.

Anwendungsbeispiel für die SB 4.0-Karte


Zweck: Wenn die Taste gedrückt wird, schalten Sie das Licht ein, wenn eine Bewegung erkannt wird.



Dazu benötigen wir zusätzlich ein Relaismodul, eine Glühbirne (220 ADC oder bis 12 VDC).

1. Am häufigsten finden wir Relais 12VDC und 05VDC. Die Zahl gibt an, welcher Gleichspannungswert an den Relaiseingang geliefert werden muss.
2. Betrachten Sie den Betrieb des beliebten SRD-05VDC-Relais von Arduino von Songle.
3. Wenn der Vcc-Pin mit Strom versorgt und mit dem „GND“ -Pin kurzgeschlossen wird, leuchtet die grüne LED auf.
4. Seit Wir haben ein Einkanalmodul, dann sehen Sie auf der Platine nur einen Signalstift In1. Wenn Sie den Spannungspegel LOW auf In1 einstellen, leuchtet die rote LED am Relaismodul auf und das Relais arbeitet mit einem charakteristischen Klick. Auf Arduino ist der Befehl digitalWrite (Pin, LOW) für die Einstellung des Spannungspegels am Pin verantwortlich. Verwenden Sie den Befehl digitalWrite (Pin, HIGH), um das Relais in seinen vorherigen Zustand zurückzusetzen.
5. Schließen Sie das Relaismodul an die SB 4.0-Karte an, auf der ein Bewegungssensor und eine Benutzertaste installiert sind.
5.1. Der Signalstift In1 des Relaismoduls ist mit Stift 13 verbunden.
5.2. Im Programmcode von Arduino Nano finden wir:
***********************************
 //     -   ,       timeout_SnSM
 if (var_Tlm_SnSM == 1) { time_Move_detect = millis(); }
 if (millis() - time_Move_detect < timeout_Move_detect) { Move_detect = 1; } else { Move_detect = 0; }
***********************************


Fügen Sie die folgenden Zeilen hinzu:
***********************************
  //     (== 0),     (== 1)     13 (== LOW),   timeout_SnSM
  if (var_Tlm_BUT == 0) { 
    if (Move_detect == 1) { digitalWrite(PIN_D13, LOW); } else {  digitalWrite(PIN_D13, HIGH); }
  } else {
    digitalWrite(PIN_D13, HIGH); 
  }
***********************************

5.3. Laden Sie die neue Firmware herunter und schalten Sie die Karte ein.

Wenn der Bewegungssensor eine Bewegung erkannt hat, erscheint dank unseres Algorithmus der LOW-Pegel am Stromversorgungsstift der externen Last, das Relais arbeitet, schließt den Stromkreis und die Lampe leuchtet auf.

Wenn also eine Person an einem Bewegungssensor vorbeikommt, geht das Licht an.

Source: https://habr.com/ru/post/de397493/


All Articles