Schlagwort-Archive: bitbastelei

BitBastelei #312 – Oszilloskop als Vektoranzeige

BitBastelei #312 - Oszilloskop als Vektoranzeige

(1012 MB) 00:20:19

2018-12-09 11:00 🛈

Oszilloskope sind tolle Werkzeuge, aber was mache ich mit dem „alten“ 10MHz Analogmodell? Zum Wegwerfen zu schade, also benutzen wir doch einfach als Vektoranzeige für Logos o.Ä. Nicht unbedingt eine große Hilfe im Arbeitsalltag, aber auf jeden Fall ein toller Hingucker.

Links:

BitBastelei #311 – Lange Funkstrecken mit Arduino, LoRaWAN/RFM95W und The Things Network

BitBastelei #311 - Lange Funkstrecken mit Arduino, LoRaWAN/RFM95W und The Things Network

(362 MB) 00:23:35

2018-12-02 11:00 🛈

Wenn man Daten drahtlos übertragen möchte ist mit den üblichen Funkmodulen für Arduino & Co meist nach wenigen hundert Metern Schluss. Zwar gibt es mit Handymodulen einfache Möglichkeiten, jedoch ist hierzu eine entsprechende Datenkarte samt Vertrag notwendig. An dieser Stelle kommt die proprietäre Modulationsart „LoRa“ (Long Range) ins Spiel: Hiermit können draußen im frei Nutzbaren 868MHz-Bereich Strecken von mehreren Kilometern überbrückt werden. Wem das nicht reicht kann auf LoraWAN zurückgreifen. Hierbei betreiben Freiwillige und Firmen LoRa-Empfänger, welche empfangene Datenpakete ins Internet weiterleiten.

Ardunio-Library
https://github.com/matthijskooijman/arduino-lmic

LoRa-Videos von Andreas Spiess (EN)
https://www.youtube.com/watch?v=hMOwbNUpDQA&list=PL3XBzmAj53Rkkogh-lti58h_GkhzU1n7U

TheThingsNetwork
https://thethingsnetwork.org

Hamnetdb (Funkstrecken simulieren)
https://hamnetdb.net/map.cgi

RMOnline (Funkausbreitung simulieren)
http://www.ve2dbe.com/rmonline.html

BitBastelei #310 – VSCode und PlatformIO statt Arduino IDE

BitBastelei #310 - VSCode und PlatformIO statt Arduino IDE

(144 MB) 00:32:35

2018-11-25 11:00 🛈

Die Arduino IDE dürfte nahezu jeder kennen, der mit Mikrocontrollern herumspielt. Ich selbst nutze in meinem Videos jedoch immer wieder auch PlatformIO auf Basis von VSCode. Daimmer mal wieder Fragen zur Einrichtung aufkamen also mal ein schneller Blick auf die Unterschiede, Installation und Funktionen.

BitBastelei #308 – LED-Matrix mit MAX7219

BitBastelei #308 - LED-Matrix mit MAX7219

(490 MB) 00:22:16

2018-11-11 11:00 🛈
Wenn es darum geht viele LEDs anzusteuern gibt es viele Möglichkeiten: Serielle Systeme wie z.B. die „Neopixel“-Streifen oder Matrizen wie z.B. bei meiner 7-Segment-Anzeige sind die häufigsten Vertreter. Letztere hatte ich zuletzt händisch mit Schieberegistern und Dekadenzählern aufgebaut – mit dem MAX7219 gibt es jedoch einen fertigen Controller, welcher einen deutlich einfacheren Aufbau verspricht.

Hinweise und Ergänzungen:

Code

BitBastelei #308 – LED-Matrix mit MAX7219 weiterlesen

BitBastelei #307 – BERG bz40i Messwandlerzähler

BitBastelei #307 - BERG bz40i Messwandlerzähler

(615 MB) 00:24:55

2018-11-04 11:00 🛈
Mehr Messwerte? Gerne. Üblicherweise nutze ich bisher S0-Zahler um meinen Stromverbrauch im Auge zu behalten – so auch für meinen Testkreislauf. Ab und an ist das aber etwas zu wenig – weitere Werte wie z.B. Leistungsfaktor wären schon mal hilfreich. Vorzugsweise mit PC-Verbindung, um diese auch aufzeichnen zu können. All das verspricht der für wenig Geld geschossene bz40i: Spannung, Strom, Blind-, Wirk und Scheinleistung sowie der Leistungsfaktor soll herausfallen, dank RS480/Profibus auch digital. Bonus: Das Gerät ist für 1 oder 3 Phasen nutzbar, wenn ich also irgendwann mal Drehstrom analysieren will wäre auch das drin.

Achtung: Arbeiten am Stromnetz sollten nicht durch Personen ohne die nötigen Kenntnisse und Fähigkeiten durchgeführt werden. Durch Fehler kann man sich und andere in Lebensgefahr bringen.

Ergänzungen:

  • Alle Arbeiten wurden hinter entsprechend gesicherten Zuleitungen durchgeführt.
  • 19:08 Sammelschiene

BitBastelei #306 – Canon EOS 550d Reparatur (Teil 2)

BitBastelei #306 - Canon EOS 550d Reparatur (Teil 2)

(384 MB) 00:14:19

2018-10-28 11:00 🛈
Bei meinem letzten Versuch konnte ich an der kaputten Canon EOS 550d Spiegelreflexkamera keinen offensichtlichen Fehler finden. Ein Schalter und der SD-Karten-Halter waren kaputt, beide sollten aber das Einschalten der Kamera nicht verhindern. Eigentlich.

Inhalt:

  • 00:00 SD-Slot-Tausch
  • 04:52 Spiegelreflex-, System-, Bridge und Kompaktkameras – wo sind die Unterschiede?

Produkte:

Folgende Links zeigen Produkte, welche im Video verwendet wurden. Es handelt sich um Affiliate-Links, der angegebene Shop kann Käufe über diesen Link zurückverfolgen, ich erhalte hierdurch eine Werbekostenerstattung. Die angegebenen Preise beziehen sich auf meine Rechnung, diese können z.B. durch Anpassungen der Shops, Währungsschwankungen & Co. inzwischen abweichen.

BitBastelei #305 – EC-Karten-Terminal-Recycling: LCD&Keypad an ESP8266

BitBastelei #305 - EC-Karten-Terminal-Recycling: LCD&Keypad an ESP8266

(318 MB) 00:30:29

2018-10-21 10:00 🛈
Vor einiger Zeit hatte ich ein altes EC-Kartenterminal zerlegt und schon angemerkt, dass man viele der Bauteile recyclen kann. Dieses mal geht es um das Display sowie die Tastatur – eigentlich eine einfache Aufgabe. Eigentlich.

Links

Quellcode Testsoftware

#include <Arduino.h>
#include <SPI.h>
#include <MCP23S17.h>
#include <Wire.h>
#include <LiquidCrystal_PCF8574.h>

extern "C" {
    #include "user_interface.h"
}

const char* kbdmap = "K##.0CRE321MSO654FTe987U";
const char* cmdmap = " +-*/";

#define ROWS 4
#define COLS 6

LiquidCrystal_PCF8574 lcd(0x27);
MCP gpio(0, 15);
int8_t last = 0;

String num1, num2;
byte cmd = 0;

void setPinMode(void) {
    uint16_t out = 0xFFFF;
    out <<= (ROWS);
    gpio.pinMode(out);
    gpio.pullupMode(out);
    gpio.inputInvert(out);
    out = ~out;
    gpio.digitalWrite(out);
}

void startLCD(void) {
    int error;
    Serial.println("LCD...");
    Wire.begin(D1, D2);
    Wire.beginTransmission(0x27);
    error = Wire.endTransmission();
    Serial.print("Return: ");
    Serial.print(error);

    if (error == 0) {
        Serial.println(": LCD found.");
    } else {
        Serial.println(": LCD not found.");
    }

    lcd.begin(20, 2); // initialize the lcd
    lcd.home();
    lcd.clear();
    lcd.print("BitBa // POS-Matrix");
}

void setup() {
    Serial.begin(115200);
    Serial.print("\nInit...");
    gpio.begin();

    setPinMode();

    Serial.println("OK");

    startLCD();
}

int8_t checkKeys(void) {
    byte row, col;
    int input;
    for(row = 0; row < ROWS; row++) {
        gpio.digitalWrite(row, LOW);
        delay(1);
        input = gpio.digitalRead();
        gpio.digitalWrite(row, HIGH);
        for(col=0; col < COLS; col++) {
            if(input & (1<<(ROWS + col))) {
                return (byte)(COLS * row + col);
            }
        }
    }
    return -1;
}

void loop() {
    int8_t input = checkKeys(); 
    int8_t check = 0xFF;
    float result = num2.toFloat();
    bool change = false;
    if(result == 0) result = num1.toFloat();

    if(input < (COLS*ROWS) && input >= 0 && last != input) {
        Serial.print(input);
        Serial.print(": ");
        last = input;
        if(input >= 0) {
            check = kbdmap[input];
            Serial.print(check);
        }else{
            check = 0xFF;
        }
        Serial.println();
        delay(15); //Poor maker debounce
    }else{
        check = 0xFF;
    }

    if(check != 0xFF) {
        switch(check) {
            //K##.0CRE321MSO654FTe987U
            case 'K':
                cmd = 4;
                change = true;
                break;
            case 'R':
                cmd = 3;
                change = true;
                break;
            case 'S':
                cmd = 2;
                change = true;
                break;
            case 'T':
                cmd = 1;
                change = true;
                break;
            case 'C':
                cmd = 0;
                num1 = "";
                num2 = "";
                change = true;
                break;
            case 'U':
                cmd = 0;
                num2 = "";
                change = true;
                break;
            case 'F':
                if(cmd == 0) {
                    if(num1.length() > 0) num1.remove(num1.length()-1);
                }else{
                    if(num2.length() > 0) num2.remove(num2.length()-1);
                }
                change = true;
                break;
            case '#':
                switch(cmd) {
                    case 1:
                        result = num1.toFloat() + num2.toFloat();
                        break;
                    case 2:
                        result = num1.toFloat() - num2.toFloat();
                        break;
                    case 3:
                        result = num1.toFloat() * num2.toFloat();
                        break;
                    case 4:
                        result = num1.toFloat() / num2.toFloat();
                        break;
                }
                cmd = 0;
                num1 = result;
                num2 = "";
                change = true;
                break;
            case '.':
            case '0':
            case '1':
            case '2':
            case '3':
            case '4':
            case '5':
            case '6':
            case '7':
            case '8':
            case '9':
                if(cmd == 0) {
                    num1 += (char)check;
                }else{
                    num2 += (char)check;
                }
                change = true;
        }

        if(change) {
            lcd.clear();
            lcd.setCursor(0, 0);
            lcd.print(num1);
            if(cmd > 0) {
                lcd.setCursor(18, 0);
                lcd.print(" ");
                lcd.print(cmdmap[cmd]);
                lcd.setCursor(0, 1);
                lcd.print(num2);
            }
        }
    }
}

 

 

Hinweis: Der bei 19:40 gezeigter GPIO-Expander wurde mir seinerzeit von ICStation.com zur Verfügung gestellt.

BitBastelei #304 – Server-Akkupacks: Was steckt drin

BitBastelei #304 - Server-Akkupacks: Was steckt drin

(73 MB) 00:17:14

2018-10-14 10:00 🛈
In professionellen Speichersystemen kommen oft Batterien oder große Kondensatoren zum Einsatz, um bei Stromausfällen die Risiken eines Datenverlustes zu minimieren. Erstere müssen regelmäßig getauscht werden um Probleme durch Alterung zuvorzukommen. Schauen wir doch mal, was da so im Inneren steckt.