Robosapien’ini Bilgisayardan Kontrol Etmek

WowWee Robosapien   Ne zamandır bir fırsatını bulsam da kodunu hazırlayıp videosunu yayınlasam diye düşünüyordum. Kızıma oyuncak bakarken kendime bulduğum robotumu, Robosapien’i, bilgisayarımdan kontrol etmek istiyordum. Dinamik hareket ve etkileşim sensörleri sayesinde oldukça başarılı bir robot olan Robosapien’i infrared kumandası yardımıyla kontrol edebiliyoruz.

   Hatırlarsanız daha önceki yazılarımda sizlere USB-UIRT yardımıyla bilgisayardan nasıl infrared sinyali gönderebileceğinizi paylaşmıştım. Bunu yapabildikten sonrası aslında çorap söküğü gibi geliyor. Robosapien kumandasını kullanarak gönderilen her bir komuta ait kodları yakaladım; sonrasında güzel bir arayüz üzerinden bu kodları gerektiğinde Robosapien’e göndermem yeterli oldu. Sonuç oldukça başarılı oldu; izlem isterseniz enterprisecoding video kanalında : http://enterprisecoding.tv/video/Nroum6NGGvc

Robosapien uygulaması ana penceresi

   Aşağıda, sizlere yardımcı olması adına, uygulamam içerisinde kullandığım komut infrared kodlarını bulabilirsiniz;

 using UsbUirt;
using System;

namespace Com.Enterprisecoding.Robosapien {
    internal static class KumandaKodlari {
        public static readonly CodeFormat KodFormati = CodeFormat.Uuirt;
        public static TimeSpan DoubleCommmandTimeSpan = new TimeSpan(0, 0, 2);

        #region Wake up / Sleep / Power off
        public static readonly string Sleep = "F5AR1BEC811578222022782220222022202278227822";

        public static readonly string WakeUp = "F41R206B81148083232323808323808323232323232323808323";

        public static readonly string PowerOff = "F41R29C881168084238084232323808423232323232323808423"; 
        #endregion

        public static readonly string Stop = "F3FR0EE681168085232423242324238085238085238085232423";

        #region Lean
        public static readonly string LeanRight = "F4AR13A1811572221F221F221F221F221F2272227122";

        public static readonly string LeanLeft = "F4DR0E51811872221F231F231F2372221F2372227122";

        public static readonly string LeanBack = "F4FR13BB811776222023752220232023762320237623";

        public static readonly string LeanForward = "F41R1FCD8114808323232380832323238083238083232323808323";
        #endregion

        #region Left Hand

        public static readonly string LeftArmIn = "F43R0EE181167D222122222221237D227D2222237D22";

        public static readonly string LeftArmOut = "F47R0DCF811476222022202220227622202276222022";

        public static readonly string LeftArmUp = "F40R0FF1811680832223232323232380832323232323808323";

        public static readonly string LeftArmDown = "F41R0E59811680812223232323232380812280812223232323";
        
        #endregion

        #region Move
        #region Walk
        public static readonly string MoveWalkLeft = "F3FR13228116808523242324232423808523242324232423";

        public static readonly string MoveWalkRight = "F3FR13A981168085232423242324232423242324232423";

        public static readonly string MoveWalkForward = "F3FR0EE3811680852324232423242324238085238085232423";

        public static readonly string MoveWalkBack = "F3FR0CC381168085232423242324232423808523808523808523";
        #endregion

        #region Step
        public static readonly string MoveStepForward = "F41R24B081148083232323808323232323238083238083232323";

        public static readonly string MoveStepBack = "F41R23A78114808323232380832323232323808323808323808323";

        public static readonly string MoveStepRight = "F41R22938114808323232380832323232323232323232323";

        public static readonly string MoveStepLeft  = "F41R20F5811480832323238083232323808323232323232323";
        #endregion 
        #endregion

        #region Right Hand
        public static readonly string RightArmIn = "F3FR0EE2811680852324232423242324238085232423808523";

        public static readonly string RightArmOut = "F3FR13208116808423232323232323232323238084232323";

        public static readonly string RightArmUp = "F3FR0DD38116808523242324232423242324232423808523";

        public static readonly string RightArmDown = "F3FR0FF28116808523242324232423242380852324232423";
        #endregion
    }
}

  Bu kodlar dışında, aşağıda Robosapien’i kumanda etmek için ihtiyacınız olabilecek diğer kodları bulabilirsiniz;

 const string Stop = "F3FR0EE681168085232423242324238085238085238085232423";
const string Reset = "F41R1C898116808423232380842323238084238084238084232323";
const string TurnLeft = "F3FR13228116808523242324232423808523242324232423";
const string TurnRight = "F3FR13A981168085232423242324232423242324232423";
const string WalkForward = "F3FR0EE3811680852324232423242324238085238085232423";
const string WalkBackward = "F3FR0CC381168085232423242324232423808523808523808523";
const string RightArmUp = "F3FR0DD38116808523242324232423242324232423808523";
const string RightArmDown = "F3FR0FF28116808523242324232423242380852324232423";
const string RightArmIn = "F3FR0EE2811680852324232423242324238085232423808523";
const string RightArmOut = "F3FR13208116808423232323232323232323238084232323";
const string LeftArmUp = "F40R0FF1811680832223232323232380832323232323808323";
const string LeftArmDown = "F41R0E59811680812223232323232380812280812223232323";
const string LeftArmIn = "F43R0EE181167D222122222221237D227D2222237D22";
const string LeftArmOut = "F47R0DCF811476222022202220227622202276222022";
const string TiltBodyRight = "F4AR13A1811572221F221F221F221F221F2272227122";
const string TiltBodyLeft = "F4DR0E51811872221F231F231F2372221F2372227122";
const string RightHandTump = "F4CR149E811774221F2373221F232023202320237422";
const string RightHandPickUp = "F4FR13A2811875222023752220232023752220232023";
const string LeanBackward = "F4FR13BB811776222023752220232023762320237623";
const string RightHandThrow = "F50R1561811676222023762220232023202377232023";
const string Sleep = "F5AR1BEC811578222022782220222022202278227822";
const string Listen = "F5FR2C90811779237923212321237923212379237923|2002811779222123792321237923212379237923";
const string LeftHandThump = "F61R17FF811779222123792221237922212321237923";
const string LeftHandPickUp = "F41R1D1481148083232323808323232380832380832323232323";
const string LeanForward = "F41R1FCD8114808323232380832323238083238083232323808323";
const string LeftHandThrow = "F41R1EBD81148083232323808323232380832323238083232323";
const string StepForward = "F41R24B081148083232323808323232323238083238083232323";
const string StepBackward = "F41R23A78114808323232380832323232323808323808323808323";
const string StepRightTurn = "F41R22938114808323232380832323232323232323232323";
const string StepLeftTurn = "F41R20F5811480832323238083232323808323232323232323";
const string ExecuteRightSensorProgram = "F41R229781148083232323808323808323232323238083232323";
const string ExecuteLeftSensorProgram = "F41R1FE48114808323232380832380832323232323808323808323";
const string ExecuteMasterCommandProgram = "F41R1DBB811480832323238083238083232323232323232323";
const string ExecuteSonicSensorProgram = "F41R1E2F81148083232323808323808323232380832323232323";
const string WakeUp = "F41R206B81148083232323808323808323232323232323808323";
const string RightHandSweep = "F42R2B57811480832380832323232323232323232323808323";
const string High5 = "F42R2229811480832380832323232323232380832323232323";
const string RightHandStrike1 = "F42R233781148083238083232323232323238083232323808323";
const string Burp = "F42R239A811480832380832323232323232323238083232323";
const string RightHandStrike2 = "F42R255081148083238083232323232323232323808323808323";
const string LeftHandSweep = "F42R26FE81148083238083232323232380832323232323808323";
const string TalkBack = "F42R267281148083238083232323232380832380832323232323";
const string LeftHandStrike1 = "F42R24D88114808323808323232323238083238083232323808323";
const string Whistle = "F42R256681148083238083232323232380832323238083232323";
const string LeftHandStrike2 = "F42R270B8114808323808323232323238083232323808323808323";
const string Bulldozer = "F42R294381148083238083232323232323238083238083232323";
const string RightHandStrike3 = "F42R255F8114808323808323232323232323232323232323";
const string LeftHandStrike3 = "F42R2819811480832380832323232323808323232323232323";
const string Demo1 = "F42R255C81148083238083232323808323232323238083232323";
const string Demo2 = "F42R25658114808323808323232380832323232323808323808323";
const string DemoDance = "F42R257881148083238083232323808323232380832323232323";
const string DemoAll = "F41R270A811680842380842323238084232323232323232323";
const string Opss = "F41R2A808115808423808423232323232323808423808423808423";
const string PowerOff = "F41R29C881168084238084232323808423232323232323808423";

Fatih Boy

Ankara'da yaşayan Fatih, bir kamu kurumunda danışman olarak çalışmaktadır. ALM süreçleri, kurumsal veri yolu sistemleri, kurumsal altyapı ve yazılım geliştirme konularında destek vermektedir. Boş zamanlarında açık kaynak kodlu projeler geliştirmeyi ve bilgisini yazdığı makalelerle paylaşmayı seven Fatih, aynı zamanda Visual C# ve Visual Studio teknolojileri konusundan Microsoft tarafından altı yıl üst üste MVP (En Değerli Profesyonel) ödülüne layık görülmüştür. İş hayatı boyunca masaüstü uygulamaları, web teknolojileri, akıllı istemciler gibi konularda Asp.Net, Php, C#, Java programlama dilleri ve MySql, MsSql ve Oracle gibi veritabanı yönetim yazılımları ile çalışmıştır. İngilizce ve Türkçe olarak yayınlanan makalelerini gerek İngilizce bloğunda, gerekse de Türkçe bloğunda bulabileceğiniz gibi web sitesinden de açık kaynak kodlu geliştirdiği yazılımlarına ulaşabilirsiniz. vCard - Twitter - Facebook - Google+

2 yorum

  1. Kemal   •  

    Gerçekten güzel bir uygulama olmuş ılk fırsatta bende deneyeceğim 🙂

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir