Schlagwort-Archive: bitbastelei

[ICStation.com] BitBastelei #240 – Line-Following Robot Bausatz

[ICStation.com] BitBastelei #240 - Line-Following Robot Bausatz

(377 MB) 00:33:50

2017-05-14 10:00 🛈

Nachdem die meisten Bausätze bisher „nur“ blinken konnten sorgen wir jetzt mal für Bewegung: Dieser Bausatz enthält ein kleines Auto, welches einer aufgemalten Linie folgen kann – selbstfahrend sozusagen. Und da diese Bausätze sich an Einsteiger richten habe ich mir gleich einen solchen geangelt um zu schauen, ob man es tatsächlich als Anfänger schaffen kann.

Links

Bausatz: http://www.icstation.com/kits-intelligent-tracking-smart-suite-at89c2051-intelligent-p-10170.html
Gutscheincode: bitics (15% Rabatt)

Ergänzungen/Korrekturen

  • 31:03: Zwei AA-Batterien natürlich

Diese Version ist an diversen Stellen gekürzt um Irrwege oder doppelte Erklärungen einzusparen. Wer lieber die ausführliche Variante schauen möchte findet diese hier.

Hinweise

Der Bausatz wurde mit von ICStation.com kostenfrei zur Verfügung gestellt

BitBastelei #239 – Yaya 3D Pen

BitBastelei #239 - Yaya 3D Pen

(143 MB) 00:14:20

2017-05-07 10:00 🛈

Zusammen mit dem 101Hero hatte ich mir seinerzeit den Yaya 3D-Stift zugelegt – dank ordentlichem Rabatt bei Setkauf war er mit 19$ recht erschwinglich. Im Prinzip handelt es sich um den Druckkopf des 101Hero ohne das Delta-Gestänge. Über zwei Taster kann man Vor- und Rücklauf steuern, die Temperatur ist fest vorgegeben. Schauen wir mal was das Gerät so kann und was drin steckt.

BitBastelei #238 – ICStation.com: LM3915 Audio Level Indicator Bausatz

BitBastelei #238 - ICStation.com: LM3915 Audio Level Indicator Bausatz

(161 MB) 00:15:47

2017-04-23 10:00 🛈

Während der April wettertechnisch eher nass wütet ist es wieder Zeit für einen Bausatz: Der LM3915 ist ein Klassiker wenn es darum geht Audio-Aussteueranzeigen zu bauen – kein Wunder also, dass er in vielen Audiogeräten wie Equalizern oder Mixern kein Unbekannter ist. Mit dem passenden Bausatz von ICStation.com kann man eine solche Lautstärkenanzeige schnell selbst bauen und so z.B. selbstgebaute Boxen o.Ä. optisch aufwerten.

Links:

Inhalt:

  • 00:59 Produktbeschreibung ICStation.com
  • 01:36 Inhalt des Sets
  • 03:59 Der Haupt-IC LM3915
  • 05:35 Schaltung des Bausatzes
  • 08:09 Zusammenbau
  • 10:30 Erster Test
  • 10:48 Dot vs. Bar-Modus
  • 11:42 Logarithmisch vs. Linear

Ergänzungen/Korrekturen:

  • 09:48 Bei LEDs Polung beachten: Langes Beinchen zur „+“-Markierung
  • 13:36 Spannungsabstand natürlich
  • 15:00 Bezogen auf die internen Lautsprecher. Man kann natürlich noch eine Box zusätzlich anschließen um Musik und Anzeige zu haben

Hinweise:

Der Bausatz wurde mit von ICStation.com kostenfrei zur Verfügung gestellt

BitBastelei #237 – Strom/Spannung Einbaumessgerät

BitBastelei #237 - Strom/Spannung Einbaumessgerät

(224 MB) 00:22:05

2017-04-09 10:00 🛈

Das DL69-2048 hatte ich vor einiger Zeit für etwa 10€ geordert. Es handelt sich um ein Messgerät für Strom und Spannung, welches in einen Schlatschrank o.Ä. eingebaut werden kann. Im Gegensatz zu den günstigeren Varianten wird zusätzlich jedoch auch die Wirkleistung (W), die Scheinleistung (VA) und der zugehörige Leistungsfaktor (aka Power-Factor, cos ?) ausgegeben. Zwar wird die Blindleistung in deutschen Privathaushalten nicht abgerechnet, wer jedoch mit USV oder Invertern arbeitet muss sich auch mit diesen Werten auseinandersetzen.

BitBastelei #236 – Arduino-Temperaturmessung mit Thermoelement & MAX6675

BitBastelei #236 - Arduino-Temperaturmessung mit Thermoelement & MAX6675

(68 MB) 00:13:55

2017-03-26 10:00 🛈

Üblicherweise nutze ich für Temperaturmessungen den DS18B20, einen 1Wire-Sensor, welcher die Temperatur digital an den genutzten Mikrocontroller übermittelt. Hat man jedoch mit höheren Temperaturen zu tun muss man sich etwas anderes suchen: Maximal 80°C sind in guter Genauigkeit möglich. Wer in heißeren Umgebungen spielt kann z.B. ein K-Thermoelement nutzen, welches vielen von ihrem Multimeter bekannt sein dürfte. Zusammen mit einem MAX6675 lassen sich auch diese einfach an Controllern nutzen.

Als Beispiel verbinde ich ein solches Thermoelement mit MAX6675, einem Arduino und einem OLED-Display um die Temperatur eines Backofens im Auge zu behalten – und das genauer als das Original-Thermostat.

Links:

BitBastelei #235 – Uni-T UT210E Zangenmultimeter

BitBastelei #235 - Uni-T UT210E Zangenmultimeter

(95 MB) 00:11:13

2017-03-19 11:01 🛈

Das Uni-T UT210E ist ein preisgünstiges Zangenmultimeter, welches auch für Gleichstrom geeignet ist.

BitBastelei #234 – WS2812B (Neopixel) Uhr

BitBastelei #234 - WS2812B (Neopixel) Uhr

(132 MB) 00:38:13

2017-03-12 11:00 🛈

Die WS2812B, auch bekannt als Neopixel, sind RGB-LEDs mit internem Steuer-IC, welche sich über einen einzelnen Datenpin kaskadieren und separat ansteuern lassen. Als in meinem Feed ein Angebot für ¼-Kreise mit 15 dieser LEDs durchtickerte war der Plan schnell klar: 4 ¼-Kreise á 15 LEDs macht 60 LEDs. Passend für eine Uhr. Mal schauen, ob es auch funktioniert.
Zur Zeithaltung kommt ein DS3231 zum Einsatz – ein I²C-Chip, welcher speziell für Uhren gedacht ist und genauer funktioniert als die internen Taktgeber der üblichen µCs.

Inhalt:

  • 00:00 LED-Module & Aufbauplan
  • 08:22 LED-Test mit Adafruit-Library
  • 12:32 Warum RTC statt Systemtakt / millis()?
  • 17:05 Blick auf die Software
  • 34:13 Uhr in Aktion

Code:

/**
 * NeoClock
 * 
 * Clock using 60 WS2812B/Neopixel LEDs and DS3231 RTC
 * 
 * Libraries needed:
 *   * Adafruit NeoPixel (Library Manager) - Phil Burgess / Paint Your Dragon for Adafruit Industries - LGPL3
 *   * Rtc by Makuna (Library Manager) - Michael C. Miller
 *   * Arduino Timezone Library (https://github.com/JChristensen/Timezone) - Jack Christensen - CC-BY-SA
 *   * Time Library (https://github.com/PaulStoffregen/Time) - Paul Stoffregen, Michael Margolis - LGPL2.1
 */

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
  #include <avr/power.h>
#endif

#if defined(ESP8266)
#include <pgmspace.h>
#else
#include <avr/pgmspace.h>
#endif

#include <SoftwareWire.h>  // must be included here so that Arduino library object file references work
#include <RtcDS3231.h>

#include <Time.h>        //http://www.arduino.cc/playground/Code/Time
#include <Timezone.h>    //https://github.com/JChristensen/Timezone

#include <EEPROM.h>

//Central European Time (Frankfurt, Paris)
TimeChangeRule CEST = {"CEST", Last, Sun, Mar, 2, 120};     //Central European Summer Time
TimeChangeRule CET = {"CET ", Last, Sun, Oct, 3, 60};       //Central European Standard Time
Timezone CE(CEST, CET);

TimeChangeRule *tcr;        //pointer to the time change rule, use to get the TZ abbrev
time_t utc;

SoftwareWire myWire(8, 9);
RtcDS3231<SoftwareWire> Rtc(myWire);

#define PIN 6

unsigned long lastMillis = millis();
byte dimmer = 0x88;
byte hmark = 0;

byte ohour=0;
byte ominute=0;
byte osecond=0;

boolean fader=true;

Adafruit_NeoPixel strip = Adafruit_NeoPixel(60, PIN, NEO_GRB + NEO_KHZ800);

void setup() {

  Serial.begin(115200);
  
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'

  Rtc.Begin();

  Rtc.Enable32kHzPin(false);
  Rtc.SetSquareWavePin(DS3231SquareWavePin_ModeNone); 

  if (!Rtc.GetIsRunning())
  {
      Serial.println("RTC was not actively running, starting now");
      Rtc.SetIsRunning(true);
  }

  if (!Rtc.IsDateTimeValid()) 
  {
      // Common Cuases:
      //    1) the battery on the device is low or even missing and the power line was disconnected
      Serial.println("RTC lost confidence in the DateTime!");
  }

  byte eechk = EEPROM.read(0);
  if(eechk == 0xAA) { //Assume this is our config and not a fresh chip
    dimmer = EEPROM.read(1);
    hmark = EEPROM.read(2);
    fader = EEPROM.read(3);
  }

  timeSync();
}

void calcTime(void) {
  utc = now();
  CE.toLocal(utc, &tcr);
  ohour = hour(utc);
  ominute = minute(utc);
  if(osecond != second(utc)) {
    osecond = second(utc);
    lastMillis = millis();

    if(ominute == 0 && osecond == 0) {
      //Every hour
      timeSync();
    }
  }
}

void addPixelColor(byte pixel, byte color, byte brightness) {
  color *= 8;
  uint32_t acolor = brightness;
  acolor <<= color;
  uint32_t ocolor = strip.getPixelColor(pixel);
  ocolor |= acolor;
  strip.setPixelColor(pixel, ocolor);
}

void drawClock(byte h, byte m, byte s) {  
  strip.clear();
  
  addPixelColor(m, 1, dimmer);

  if(hmark > 0) {
    for(byte i = 0; i<12; i++) {
      addPixelColor((5*i), 2, hmark);
    }
  }

  h %= 12;
  h *= 5;
  h += (m/12);
  addPixelColor(h, 2, dimmer);
  // 0x RR GG BB

  if(fader) {
    byte dim_s1 = dimmer;
    byte dim_s2 = 0;
    byte px_s2 = s+1;
    if(px_s2 >= 60) px_s2 = 0;
    unsigned long curMillis = millis()-lastMillis;
    if(curMillis < 250) {
      dim_s2 = 0;
      dim_s1 = dimmer;
    }else{
      dim_s2 = map(curMillis, 250, 1000, 0, dimmer);
      dim_s1 = dimmer - map(curMillis, 250, 1000, 0, dimmer);
    }
    
    addPixelColor(s, 0, dim_s1);
    addPixelColor(px_s2, 0, dim_s2);
  }else{
    addPixelColor(s, 0, dimmer);
  }
  
  strip.show();
}

byte rounds = 0;

void loop() {
  calcTime();

  if(rounds++ > 100) {
    Serial.print(ohour);
    Serial.print(":");
    Serial.print(ominute);
    Serial.print(":");
    Serial.println(osecond);
    rounds = 0;
  }
  
  drawClock(ohour,ominute,osecond);

  delay(10);
  
  chkSer();
}

void timeSync(void) {
  RtcDateTime dt = Rtc.GetDateTime();
  setTime(dt.Hour(),dt.Minute(),dt.Second(),dt.Day(),dt.Month(),dt.Year());
    
  Serial.print("Synced to: ");
  Serial.print(dt.Year());
  Serial.print("-");
  Serial.print(dt.Month());
  Serial.print("-");
  Serial.print(dt.Day());
  Serial.print("-");
  Serial.print(dt.Hour());
  Serial.print("-");
  Serial.print(dt.Minute());
  Serial.print("-");
  Serial.println(dt.Second());
}

void timeSave(void) {
  utc = now();
  
  RtcDateTime store = RtcDateTime(year(utc), month(utc), day(utc), hour(utc), minute(utc), second(utc));
  Rtc.SetDateTime(store);

  Serial.print("Synced to: ");
  Serial.print(year(utc));
  Serial.print("-");
  Serial.print(month(utc));
  Serial.print("-");
  Serial.print(day(utc));
  Serial.print("-");
  Serial.print(hour(utc));
  Serial.print("-");
  Serial.print(minute(utc));
  Serial.print("-");
  Serial.println(second(utc));
  
}

void setBrightness(byte brightness) {
  dimmer = brightness;
}

void chkSer(void) {
  unsigned int iy;
  byte im,id,iH,iM,iS;
  
  if(!Serial.available()) return;

  switch(Serial.read()) {
    case 'b':
      setBrightness(Serial.parseInt());
      Serial.print(F("Brightness changed to: "));
      Serial.println(dimmer);
      EEPROM.put(0, 0xAA);
      EEPROM.put(1, dimmer);
      break;
    case 't':
      iy = Serial.parseInt();
      im = Serial.parseInt();
      id = Serial.parseInt();
      iH = Serial.parseInt();
      iM = Serial.parseInt();
      iS = Serial.parseInt();
      setTime(iH,iM,iS,id,im,iy);
      Serial.println(F("System time changed"));
      break;
    case 'f':
      fader = false;
      EEPROM.put(0, 0xAA);
      EEPROM.put(3, 0);
      Serial.println(F("Fader off"));
      break;
    case 'F':
      fader = true;
      EEPROM.put(0, 0xAA);
      EEPROM.put(3, 1);
      Serial.println(F("Fader on"));
      break;
    case 'm':
      hmark = Serial.parseInt();
      EEPROM.put(0, 0xAA);
      EEPROM.put(2, hmark);
      Serial.println(F("HMark changed"));
      break;
    case 's':
      timeSync();
      Serial.println(F("Synced RTC to System"));
      break;
    case 'S':
      timeSave();
      Serial.println(F("Synced System to RTC"));
      break;
    default:
      Serial.println('?');
  }
}

Links:

BitBastelei #233 – Powerbank-Vergleich

BitBastelei #233 - Powerbank-Vergleich

(141 MB) 00:39:50

2017-03-05 11:00 🛈

Powerbanks sind auch nach dem letzten Pokemon-Hype noch überall anzutreffen. Für eine längere Tour war ich auf der Suche nach einigen Modellen, die meine Geräte längere Zeit versorgen können. Mindestens 3.5Ah sollten es sein, 2A am Ausgang und natürlich so günstig wie möglich.


Inhalt

01:24 Meine Anforderungen
02:28 Technische Daten laut Hersteller
05:13 Erster Blick: Swees RJ-PB08
08:50 Erster Blick: Aukey PB-N42
12:31 Erster Blick: Momoho 4000
15:02 Erster Blick: Poweradd Pilot X7
20:21 Messwerte: Größe & Gewicht
21:15 Messwerte: Kapazität
24:28 Messwerte: Laden
26:15 USB-Spannungen & Signaling
28:30 Messwerte: Entladespannung
31:07 Messwerte: PowerOn/Off & USV-Modus
33:52 Fazit: Preis/Gewicht
35:31 Fazit: Persönliche Rangliste


Getestete Modelle

Bild: https://www.adlerweb.info/blog/wp-content/uploads/2017/03/aukey-300×251.png

Die Aukey PB-N42 ist ein guter Kompromiss zwischen Größe und Kapazität. Die versprochenen 10Ah kann sie gut erfüllen, auch alle anderen Werte erfüllen die Erwartungen. Die eingebaute Taschenlampe ist ebenfalls praktisch. Für aktuell 18,99€ ist sie jedoch vergleichsweise teuer.


Bild: https://www.adlerweb.info/blog/wp-content/uploads/2017/03/poweradd-300×157.pngDie Poweradd Pilot X7 ist optisch nichts anderes als eine große Variante des Aukey-Modells. Die 20Ah werden gut erfüllt, die Ausgangsspannungen könnten etwas stärker sein. Mit 15,99€ ist sie mein Preis-Tipp für alle, die für wenig Geld möglichst viel Leistung bekommen möchten und sich am hohen Gewicht nicht stören.


Bild: https://www.adlerweb.info/blog/wp-content/uploads/2017/03/swees-300×138.png

Die Swees RJ-PB08 hinterlässt bei mir ein gemischtes Bild: Was Ein- und Ausgangsströme angeht macht sie eine mehr als gute Figur, die gemessene Kapazität erscheint jedoch für versprochene 20Ah etwas schwach, dafür ist sie für diese Größe sehr leicht und somit ein praktischer Begleiter. Am Ende sind es Kleinigkeiten wie das glänzende – und damit schnell mit Fingerabdrücken übersäte – Gehäuse, die falschrum montieren USB-Buchsen sowie der kleine Abstand zwischen selbigen, welche mir die Nutzung eher nervig erscheinen lassen. Für 19,99€ hätte ich mehr erwartet.


Bild: https://www.adlerweb.info/blog/wp-content/uploads/2017/03/momo-300×159.png Zuletzt kommt mit der Momoho ein kleineres Modell hinzu. Klein, leicht und mit dunkelblauer Lederoptik sicher nichts, was sich in der Hosentasche verstecken muss. Zumindest wenn man nicht auf die Technik schaut. Zwar kann sie die versprochenen Ströme abgeben, was bei Geräten dieser Größe eher selten ist, jedoch sind Kapazität und Effizient weit unter dem, was in meinen Augen als akzeptabel durchgehen würde. Wer nicht auf die Optik steht sollte die 10,20€ lieber in andere Geräte investieren.


Weitere Links


Rohdaten

Wer statt meiner Ausführungen lieber nackte Zahlen haben möchte: Im Open Document Spreadsheet Powerbankvergleich Rohdaten finden sich all meine Messwerte sowie Lade- und Entladekurven der Geräte.


Disclaimer

Auch wenn es meine Bewertungen, wie ihr wisst, ohnehin nicht beeinträchtigen würde: Alle Modelle habe ich mir selbst gekauft, es gab kein Sponsoring oder andere Zuwendungen durch Hersteller, Händler & Co. Es werden Affiliate-Links zu Amazon verwendet.

BitBastelei #232 – Feinstaubsensor im Eigenbau

BitBastelei #232 - Feinstaubsensor im Eigenbau

(97 MB) 00:46:51

2017-02-26 11:00 🛈

Feinstaub ist in letzter Zeit immer wieder in den Nachrichten zu hören – kleine Staubpartikel, welche bis in die Lunge vordringen und gesundheitliche Risiken bergen können. Mit dem SDS011 ist ein erschwinglicher Sensor verfügbar, mit welchem man schnell und einfach eine lokale Messstation aufbauen kann.

In diesem Video gehen wir vom ersten Blick bis zum Auslesen alle Schritte durch, welche ich nach Erhalt des Sensors durchführte. Wer einfach nur Messwerte lesen möchte kann natürlich auch einfach die fertige Firmware von Luftdaten.info verwenden. Ich erarbeite Sensordaten und Protokoll, schreibe eine Testsoftwate am Rechner und portiere sie zusammen mit einer Cloud-Anbindung auf den ESP8266.

Inhalt:

00:00 Der Sensor
03:33 Technische Daten
09:56 Das Protokoll
17:15 Sensorwerte am PC interpretieren
23:05 Datensammlung in der Cloud: Thingspeak
26:09 Sensorwerte mit Arduino/ESP8266
42:12 ESP8266-Hardware
43:00 Vergleich mit staatlicher Messstation
45:40 Fazit & Ausblick

Links:

00:26 http://www.codefor.de/stuttgart
00:34 http://www.stuttgart.de/feinstaubalarm
01:50 http://en.wikipedia.org/wiki/File:Particlecounter.jpg
03:33 http://www.luftdaten.info
04:45 http://inovafitness.com/software/SDS011%20laser%20PM2.5%20sensor%20specification-V1.3.pdf
09:58 http://cl.ly/ekot
23:05 http://www.thingspeak.com
26:18 https://github.com/nothans/ESP8266/blob/master/examples/RSSI_to_ThingSpeak.ino

PHP-Testcode:
https://gist.github.com/adlerweb/5ea58beb8a6bee3422932983c5c8ae92
Arduino-Testcode:
https://gist.github.com/adlerweb/ce23c61179bec3433279da6c2e7ff969

BitBastelei #231 – Onion Omega 2 als 3D-Druck-Steuerung

BitBastelei #231 - Onion Omega 2 als 3D-Druck-Steuerung

(91 MB) 00:23:29

2017-02-19 11:00 🛈

Der Onion Omega 2 ist ein kleines und günstiges Bastelboard, welches sich zwischen kleinen Mikrocontrollern wie Arduino/ESP8266 und den großen Mini-Computern wie dem Raspberry Pi platziert. Mit 580MHz, 64MB RAM und integriertem WLAN wird er für „Internet of Things“-Anwendungen angepriesen.
In diesem Video werden wir einen Blick auf die technischen Daten werfen, uns die Einrichtung anschauen und letztendlich mittels OctoPrint dem 3D-Drucker der letzten Folge ein Webinterface verpassen.

Inhalt

  • 00:00 Der Omega 2
    • 01:10 Technische Daten
    • 03:13 Anschlüsse
    • 04:26 Docks und Module
  • 05:42 Erster Start & Einrichtung
  • 07:50 ?-Ware
  • 08:56 Einsatzplanung
    • 09:28 Requirements
    • 09:57 Speichererweiterung per USB-Stick
    • 13:36 Requirements Versuch 2
    • 14:57 RTFM…
    • 16:09 Octoprint Einrichtung
    • 18:24 Octoprint mit Webcam
  • 20:54 Fazit

Links