Esempio n. 1
0
        private static void Kompass()
        {
            int TasterPin = 26;

            WirinPiWrapper wiringPiLib = new WirinPiWrapper();

            wiringPiLib.WiringPiSetupGpio();

            wiringPiLib.PinMode(TasterPin, PinType.INPUT);              //37 liest am Taster, um die Nadel manuell zu bewegen

            ISchrittmotor schrittMotor = new Schrittmotor(wiringPiLib, 19, 13, 6, 5);

            schrittMotor.Run(1);

            KompassHMC6343 kompass = new KompassHMC6343(wiringPiLib);
            KompassDisplay display = new KompassDisplay(schrittMotor);

            while (true)
            {
                while (wiringPiLib.DigitalRead(TasterPin) == 1)
                {
                    Console.WriteLine("Calibrate");
                    display.Calibrate();
                }

                double heading = kompass.ReadHeading();
                Console.WriteLine("Heading: " + heading);
                //display.ShowClassic (heading);
                display.ShowNavigation(heading);
            }
        }
Esempio n. 2
0
        private static void AD_MCP4921_SPI()
        {
            WirinPiWrapper wiringPiLib = new WirinPiWrapper();

//			WiringPiWrapperLogging wiringPiLib = new WiringPiWrapperLogging ();
//			wiringPiLib.SetPinName (18, "CS");
//			wiringPiLib.SetPinName (23, "Clock");
//			wiringPiLib.SetPinName (25, "SDI");

            wiringPiLib.WiringPiSetupGpio();

            DA_MCP4921_SPI ad = new DA_MCP4921_SPI(wiringPiLib, 18, 23, 25);

            while (true)
            {
                ad.SetVoltage(0);
                Thread.Sleep(50);
                ad.SetVoltage(50);
                Thread.Sleep(50);
                ad.SetVoltage(100);
                Thread.Sleep(50);
                ad.SetVoltage(50);
                Thread.Sleep(50);
            }
        }
Esempio n. 3
0
        public Servo(int pwmPin, int hertz, int pwmRange, int maximalAusschlagGrad, WirinPiWrapper wiringPiLib, int microSecLeft, int microSecRight)
        {
            WiringPiLib = wiringPiLib;

            PwmRange = (uint)pwmRange;
            //pwmFrequency in Hz = 19.2e6 Hz / pwmClock / pwmRange.
            int PwmClock = 19200000 / pwmRange / hertz;

            WiringPiLib.PinMode(pwmPin, PinType.PWM_OUTPUT);

            WiringPiLib.PwmSetClock(PwmClock);
            WiringPiLib.PwmSetMode(PwmType.PWM_MODE_MS);                //Servos likes mark / Space approach
            WiringPiLib.PwmSetRange(PwmRange);

            PwmPin = pwmPin;

            MaximalAusschlagGrad = maximalAusschlagGrad;

            MicroSecLeft = microSecLeft;

            MicroSecRange = microSecRight - MicroSecLeft;

            PeriodeMicroSecs = 1000000 / hertz;
            Position         = 1;
            SetPosition(0);
        }
Esempio n. 4
0
        void Initializer()
        {
            WiringPiLib = new WirinPiWrapper();
            WiringPiLib.WiringPiSetupGpio();

            WiringPiLib.PinMode(SHUTDOWNPIN, PinType.INPUT);
            WiringPiLib.PullUpDnControl(SHUTDOWNPIN, PullUpType.PUD_UP);

            WiringPiLib.PinMode(ACTIVPIN, PinType.INPUT);
            WiringPiLib.PullUpDnControl(ACTIVPIN, PullUpType.PUD_DOWN);

            for (int i = 0; i < Sensors.Length; i++)
            {
                WiringPiLib.PinMode(Sensors [i], PinType.INPUT);
                WiringPiLib.PullUpDnControl(Sensors[i], PullUpType.PUD_DOWN);
            }

            SleepBetweenActions = Int32.Parse(ConfigurationManager.AppSettings ["Hund_SleepBetweenActions"]);

            int pwmRange   = Int32.Parse(ConfigurationManager.AppSettings ["Hund_PWM_Range"]);
            int servohertz = Int32.Parse(ConfigurationManager.AppSettings ["HundServohertz"]);
            int servoMaximalAusschlagGrad = Int32.Parse(ConfigurationManager.AppSettings ["HundServoMaximalAusschlagGrad"]);
            int hundServoMilliSecLeft     = Int32.Parse(ConfigurationManager.AppSettings ["HundServoMicroSecLeft"]);
            int hundServoMilliSecRight    = Int32.Parse(ConfigurationManager.AppSettings ["HundServoMicroSecRight"]);

            InvertSensorInput             = bool.Parse(ConfigurationManager.AppSettings ["HundInvertSensorInput"]);
            NonPlausibleWaitTimerMilliSec = Int32.Parse(ConfigurationManager.AppSettings ["HundNonPlausibleWaitTimerMilliSec"]);
            LenkDeltaInGrad = float.Parse(ConfigurationManager.AppSettings ["HundLenkDeltainGrad"]);

            LenkServo = new Servo(PWMServoPin, servohertz, pwmRange, servoMaximalAusschlagGrad, WiringPiLib, hundServoMilliSecLeft, hundServoMilliSecRight);
        }
Esempio n. 5
0
        private static void Toggle()
        {
            //1.06MHZ

            WirinPiWrapper wiringPiLib = new WirinPiWrapper();
            Toggler        toggler     = new Toggler(wiringPiLib);

            toggler.Toggle();
        }
Esempio n. 6
0
        private static void Schrittmotor()
        {
            WirinPiWrapper wiringPiLib = new WirinPiWrapper();

            wiringPiLib.WiringPiSetupGpio();

            Schrittmotor schrittmotor = new Schrittmotor(wiringPiLib, 1, 2, 3, 4);

            schrittmotor.Run(100);
        }
Esempio n. 7
0
        private static void LCD1602_HD44780()
        {
            //Schieberegister ist sinnlos: Ich brauch 3 Pins fürs register und dann immer noch 3 für die LCD und habe dann nicht direkt die
            //Möglichkeit, PIN 7 auf lazy abzufragen
            //Zeitkritisch ist das nicht, so dass die 4Bit Variante GPIOPinverbrauch / Timing den besseren Wirkungsgrad bringen sollte!

            WirinPiWrapper wiringPiLib = new WirinPiWrapper();

            LCD1602_HD44780 lcd = new LCD1602_HD44780(wiringPiLib);

            lcd.Init();
            lcd.Display("Faxe world");
        }
Esempio n. 8
0
        private static void AD_MCP4921_SPI_Toggler()
        {
            //Verzerrt bisschen, schafft 50 KHZ

            WirinPiWrapper wiringPiLib = new WirinPiWrapper();

            wiringPiLib.WiringPiSetupGpio();

            DA_MCP4921_SPI ad = new DA_MCP4921_SPI(wiringPiLib, 18, 23, 25);

            while (true)
            {
                ad.SetVoltage(0);
                ad.SetVoltage(100);
            }
        }
Esempio n. 9
0
        public Schrittmotor(WirinPiWrapper wiringPiLib, int in1, int in2, int in3, int in4)
        {
            WiringPiLib = wiringPiLib;
            In1         = in1;
            In2         = in2;
            In3         = in3;
            In4         = in4;

            wiringPiLib.PinMode(in1, PinType.OUTPUT);
            wiringPiLib.PinMode(in2, PinType.OUTPUT);
            wiringPiLib.PinMode(in3, PinType.OUTPUT);
            wiringPiLib.PinMode(in4, PinType.OUTPUT);

            Ausschalten();

            LoadMotorstateOnRestart();
        }
Esempio n. 10
0
        public KompassHMC6343(WirinPiWrapper wiringPiLib)
        {
            WiringPiLib = wiringPiLib;
            //Wait at least 500 milli-seconds for device initialization. The HMC6343 is in the default Run Mode
            Thread.Sleep(501);

            fd = wiringPiLib.WiringPiI2CSetup(I2CdeviceID);

            if (fd < 0)
            {
                Console.WriteLine("F****D UP wiringPiI2CSetup");
            }

            Thread.Sleep(5);

            //Set Orientation
            wiringPiLib.WiringPiI2CWrite(I2CdeviceID, ORIENTATION_LEVEL);
        }
Esempio n. 11
0
        private static void AD_8562_Parallel()
        {
            WirinPiWrapper wiringPiLib = new WirinPiWrapper();

            wiringPiLib.WiringPiSetupGpio();

            DA_8562FPZ_Parallel da = new DA_8562FPZ_Parallel(wiringPiLib);

            while (true)
            {
                da.SetVoltage(0);
                Thread.Sleep(50);
                da.SetVoltage(2047);
                Thread.Sleep(50);
                da.SetVoltage(4095);
                Thread.Sleep(50);
            }
        }