Archiv für das Jahr: 2012

Music Box

Eine neue Kategorie ist geboren…

Aber was ist eine Music Box und was hat es mit Programmieren zu tun?

Eine Music Box ist eine kleine Drehorgel. Zu der kleinen Music Box gibt es auch eine Stanze mit der man aus (beiliegenden) Streifen, selbst Musik komponieren kann.

Der große Hype in der Internetgemeinde kam wohl als der bekannte Nerd-Shop ThinkGeek ein Set anbot.

Da der Versand aus Amerika mir aber zu teuer war, hab ich mir eine andere bei Amazon gekauft. Gefällt mir auch viel besser, da in einer Holzbox verbaut. Die Qualität ist sehr gut. Leider sehe ich gerade dass nur die gelbe Version vorrätig ist.

Das Set besteht aus:

  • Music Box
  • Locher
  • 10 Streifen Notenblätter
  • Vorgelochte Version von Happy Birthday

Für knapp 30€ ist das ganze für ein Spielzeug nicht ganz billig, aber es macht Spaß!

Als Langhaariger ist es mir des öfteren passiert dass mir Leute eine Gitarre in die Hand drücken und ich nicht spielen kann (ok, Smoke On The Water geht  :silly: ).

Nun habe ich mein Instrument gefunden und versuche öfters darüber zu bloggen und auch Notenblätter Lochstreifen online zu stellen.

Mit programmieren hat es auch bisl was zu tun. Es sind zwar 15bit (Ton) zur Verfügung aber man kommt damit zu recht :biggrin:

Von |2012-07-05T21:31:14+02:002012-07-05|Music Box|

PagePdf

Das Script fügt einen Menüpunkt im Seitennavigator hinzu. Mit dieser Action könnt ihr ein PDF von einer oder mehrer Seiten erstellen. Alle einzelnen PDFs werden im Zielordner gespeichert. Es werden auch Ordner für Strukturkennzeichen erzeugt.

 

PagePdf (1481 Downloads )

 

using System.Diagnostics;
using System.Windows.Forms;
using Eplan.EplApi.ApplicationFramework;
using Eplan.EplApi.Base;
using Eplan.EplApi.Scripting;

public class PagePdf
{
    [DeclareMenu]
    public void MenuFunction()
    {
        Eplan.EplApi.Gui.ContextMenu oMenu =
            new Eplan.EplApi.Gui.ContextMenu();

        Eplan.EplApi.Gui.ContextMenuLocation oLocation =
            new Eplan.EplApi.Gui.ContextMenuLocation(
                "PmPageObjectTreeDialog",
                "1007"
                );

        oMenu.AddMenuItem(
            oLocation,
            "PDF erstellen",
            "PagePdf",
            true,
            false
            );
    }

    [DeclareAction("PagePdf")]
    public void PagePdfVoid()
    {
        FolderBrowserDialog fbd = new FolderBrowserDialog();
        CommandLineInterpreter oCLI = new CommandLineInterpreter();
        ActionCallingContext acc = new ActionCallingContext();

        if (fbd.ShowDialog() != DialogResult.OK)
        {
            return;
        }

        Progress oProgress = new Progress("SimpleProgress");
        oProgress.SetAllowCancel(true);
        oProgress.SetAskOnCancel(true);
        oProgress.BeginPart(100, "");
        oProgress.ShowImmediately();

        try
        {
            string strPages = string.Empty;
            acc.AddParameter("TYPE", "PAGES");
            oCLI.Execute("selectionset", acc);
            acc.GetParameter("PAGES", ref strPages);

            foreach (string CurrentPage in strPages.Split(';'))
            {
                if (!oProgress.Canceled())
                {
                    acc.AddParameter("TYPE", "PDFPAGESSCHEME");
                    acc.AddParameter("PAGENAME", CurrentPage);
                    acc.AddParameter("EXPORTFILE", fbd.SelectedPath + @"\" + CurrentPage);
                    acc.AddParameter("EXPORTSCHEME", "EPLAN_default_value");
                    oCLI.Execute("export", acc);
                }
                else
                {
                    oProgress.EndPart(true);
                    return;
                }
            }
            Process.Start(fbd.SelectedPath);
            oProgress.EndPart(true);
        }
        catch (System.Exception ex)
        {
            oProgress.EndPart(true);
            MessageBox.Show("Error", ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Error);
        }

    }

}

 

Von |2017-11-09T12:23:47+01:002012-07-03|EPLAN, EPLAN-Scripts|

Prototype Board

Da sich über die Zeit nun einiges an Mikrocontroller Bauteilen angesammelt hat, hab ich beschlossen mir ein Prototype Board zu bauen.

Als Platte habe ich eine Handelsübliche Plexiglasscheibe gekauft.

Da wir in der arbeit eine NC-Maschine haben, konnte ich auch gleich hier das passende Lochraster bohren lassen. Einer der Vorteile des Gadgeteer ist, dass die Hardware schön standardisiert ist. In den .NET Gadgeteer Builder Guides ist auch der Lochabstand beschrieben.

Es ist eigentlich ein 5mm Raster, ich hab mich für ein 10mm Raster entschieden. Ein bisschen habe ich es schon bereut. Denn nicht alle Module kann ich mehrfach befestigen. Aber oft reichen 1-2 Schraubbefestigungen.

Leider hat der Netduino Plus kein Standard-Lochraster und ich musste bisl schieben und drehen, damit ich das Board überhaupt zweimal befestigen konnte.

Achja Schrauben, hier hab ich mich mit M3 Teilen von Conrad eingedeckt:

Tip: Versuchen, keine Schrauben mit langem Gewinde zu kaufen, hatte hier bisl Probleme.

Zusätzlich habe ich mir noch ein kleine Breadboard (Steckbrett), passend in schwarz, gekauft.

Nun habe ich alle meine Bauteile mal aufgelegt, geachtet dass die Sockeltypen richtig auf dem Mainboard belegt sind. Dann Modul für Modul festgeschraubt. Abstand zu Board habe ich versucht kurz zu halten.

 

 

 

Bin sehr zufrieden. Ich werde es noch bisl erweitern um Verdrahtung (4-Digit-Shield). Ein bisschen habe ich das schon gemacht, siehe kleines Breadboard.

 

Von |2018-02-09T13:00:49+01:002012-06-13|Gadgeteer, Netduino, NETMF|
Nach oben