اطلاعیه

Collapse
No announcement yet.

پروژه قفل رمز وایرلس با آرم

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پروژه قفل رمز وایرلس با آرم

    سلام بر دوستان عزیز
    من و دو تا از هم دانشگاهی محترمم داریم روی آرم کار میکنیم.
    دارم اولین پروژه ام را با آرم که قفل رمز بدون سیم هست درست میکنم.
    این پروژه شامل دو قسمت هست :
    1-قسمت اول شامل یک برد فرستنده است
    2-قسمت دوم شامل برد دریافت و فعال کردن رله است.
    کم کم سعی میکنم متناسب با پیشرفت پروژه مطالب و وقتم پروژه را براتون میزارم.
    سعی میکنم کم کم برنامه و فایل های اون را کامل براتون بزارم تا شما هم استفاده کنید.
    البته با وجود اساتید محترم تو این سایت این کار شاید زیاد جالب نباشه ولی فکر کنم بهتره برای اینکه همه ی دوستان عزیز از این پروژه استفاده کنن و کمی به علمشون اضافه بشه این کار را میکنم.
    امیدوارم همه ی شما دوستان عزیز موفق باشید
    **همیشه به این فکر کن که خداوند با توست**

    #2
    پاسخ : پروژه قفل رمز وایرلس با آرم

    این هم برنامه ی اولیه که البته خیلی ناقصه و دوست دارم به کمک شما و به همت خودم خیلی زود تمامش کنم.

    ( چون متن برنامه تغییر کرد پاکش کردم تا پست الکی شلوغ نشه )
    متن اصلی برنامه را در پست های بعد قرار دادم.
    **همیشه به این فکر کن که خداوند با توست**

    دیدگاه


      #3
      پاسخ : پروژه قفل رمز وایرلس با آرم

      انشا الله تمام فایل های پروژه به مرور زمان ضمیمه میشن.
      ( برد مدار چاپی . تمام هدر فایل ها و ... )
      **همیشه به این فکر کن که خداوند با توست**

      دیدگاه


        #4
        پاسخ : پروژه قفل رمز وایرلس با آرم

        سلام مجدد بر دوستان عزیز
        این هم چارت اصلی دو بورد مورد نظر برای طراحی
        **همیشه به این فکر کن که خداوند با توست**

        دیدگاه


          #5
          پاسخ : پروژه قفل رمز وایرلس با آرم

          اگر دوستان عزیز نظری دارن بهم لطفا بگن.
          با تشکر
          **همیشه به این فکر کن که خداوند با توست**

          دیدگاه


            #6
            پاسخ : پروژه قفل رمز وایرلس با آرم

            این هم هدر فایل های مورد استفاده در این پروژه.
            لازم به ذکر است که تمام هدر فایل ها مربوط به مجله ی PMM است که متعلق به سایت ایران میکرو میشود.
            من پیشنهاد میکنم برای یاد گیری بهتر و شروع به کار با ARM حتما به این سایت یه سری بزنید و مجلات این سایت را دانلود کنید.
            واقعا مفید و بدرد بخور هستن.
            http://www.4shared.com/file/cSqa0qQg/header.html
            **همیشه به این فکر کن که خداوند با توست**

            دیدگاه


              #7
              پاسخ : پروژه قفل رمز وایرلس با آرم

              سلام و درود مجدد بر دوستان عزیز
              من یک تاپیک دیگر با همین موضوع در سایت ایران میکرو باز کردم.
              این هم لینک تاپیک :
              http://www.iranmicro.ir/forum/showthread.php?t=4348
              لینک تاپیک را براتون گذاشتم تا در صورتی که تو اون تاپیک فعالیت بیشتری انجام شد یا یکی از دوستان تو اون سایت زحمت کشیدن و نظری دادن تا برنامه کاملتر و موثر تر بشه شما هم متوجه این تغییرات و پیشنهاد دوستان دیگر در سایت ایران میکرو بشید.
              با تشکر
              **همیشه به این فکر کن که خداوند با توست**

              دیدگاه


                #8
                پاسخ : پروژه قفل رمز وایرلس با آرم

                سلام و درود بر دوستان عزیز
                راستش من تو این پروژه یک سری تغییرات دادم که به اطلاعتون میرسونم :
                الف : اول از همه برای کاهش هزینه ها دو تا کار انجام دادم :
                1-برای برد دریافت از مگا 8 استفاده کردم .( چون واقعا حیفه برای برد دریافت که کار خاصی نمیخواد بکنه بیام و از ARM استفاده کنم.
                2- اومدم و به جای دردسر های زیاد در کشیدن و عدم اطمینان در جواب گرفتن از برد طراحی شده توسط خودم یک دونه از برد های AT91SAM7S64 Header Board مربوط به سایت را خریدم.
                هم از لحاظ هزینه بسیار به صرفه است و هم بسیار مطمعنه.
                ( تو پرانتز میگم .خدا شاهده قصد تبلیغ ندارم ولی واقعا این برد فوق العاده است.مخصوصا اگر برای اول کار نیاز به یه برد مطمعن و بسیار کم هزینه دارین فوق العاده است )
                ب : برنامه ی برد ارسال که باید با ARM کار کنه به زبان C هست و برنامه ی برد دریافت به زبان بیسیک هست( راستش من از همون اول بیسیک یاد گرفتم ولی خوشبختانه کم کم دارم با C کار میکنم .دیگه مجبور شدم برای کار با ARM زبان C را یاد بگیرم :mrgreen: )
                ج : برنامه ای که نوشتم و کل فایل ها را حتما تا فردا میزارم .فقط تو برنامه ی برد ارسال مشکل دارم و واقعا نمیدونم باید چه جوری حلش کنم :angry:
                تا فردا روش کار میکنم و براتون میزارم تا اگر دوستان و اساتید مایل بودن و فرصت کردن اشکالات برنامه را بهم بگن .
                **همیشه به این فکر کن که خداوند با توست**

                دیدگاه


                  #9
                  پاسخ : پروژه قفل رمز وایرلس با آرم

                  سلام و درود بر دوستان عزیز
                  این هم متن برنامه ی اصلی که من نوشتم.
                  نمیدونم چرا بهم جواب نمیده و کیپد کار نمیکنه !!!!
                  نمیدونم شاید هم اشتباه از برنامه نویسی من باشه که جواب نمیده !!
                  دوستان و اساتیدی که برنامه نویسیشون خوبه اگر میشه برنامه را چک کنن و اگر اشتباهی هست بهم بگن.
                  این هم صفحه کلید و کلید هایی که روی اون تعریف کردم .
                  این هم متن برنامه ی اصلی :

                  #include "AT91SAM7s64.h" //Header File Configuration
                  #include "lib_AT91SAM7s64.h" //Header File Configuration
                  #include "ioat91sam7s64.h" //Header File Configuration
                  #include "usart.h" //Header File Configuration
                  #include "kbd.h" //Header File Configuration
                  #include <stdio.h> //Header File Configuration
                  #define LCD_bit 4 //Define 4-Bit LCD
                  #define LCD_PORT_A //Define Port_A For LCD
                  #define LCD_RS 31 //Define RS For LCD
                  #define LCD_E 30 //Define E For LCD
                  #define LCD_DB4 29 //Define DB4 For LCD
                  #define LCD_DB5 28 //Define DB5 For LCD
                  #define LCD_DB6 27 //Define DB6 For LCD
                  #define LCD_DB7 26 //Define DB7 For LCD
                  #include "lcd.h" //Header File Configuration
                  #include "delay.h" //Header File Configuration

                  void getpass ();
                  void changepass (void);
                  void buzzer (void);
                  void wrong (void);


                  int a=1234;
                  int Keyread;
                  int send=111111111;

                  /************************* main *************************/

                  int main (void)
                  {
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA0) ;
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA1) ;
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA2) ;
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA3) ;
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA4) ;
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA5) ;
                  //AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA6) ; //USART 0
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA7) ;
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA8) ;
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA9) ;
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA10 );
                  //AT91F_PIO_CfgInput(AT91C_BASE_PIOA,AT91C_PIO_PA11) ; //keypad
                  //AT91F_PIO_CfgInput(AT91C_BASE_PIOA,AT91C_PIO_PA12) ; //keypad
                  //AT91F_PIO_CfgInput(AT91C_BASE_PIOA,AT91C_PIO_PA13) ; //keypad
                  //AT91F_PIO_CfgInput(AT91C_BASE_PIOA,AT91C_PIO_PA14) ; //keypad
                  //AT91F_PIO_CfgInput(AT91C_BASE_PIOA,AT91C_PIO_PA15) ; //keypad
                  //AT91F_PIO_CfgInput(AT91C_BASE_PIOA,AT91C_PIO_PA16) ; //keypad
                  //AT91F_PIO_CfgInput(AT91C_BASE_PIOA,AT91C_PIO_PA17) ; //keypad
                  //AT91F_PIO_CfgInput(AT91C_BASE_PIOA,AT91C_PIO_PA18) ; //keypad
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA19 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA20 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA21 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA22 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA23 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA24 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA25 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA26 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA27 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA28 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA29 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA30 );
                  AT91F_PIO_CfgOutput(AT91C_BASE_PIOA,AT91C_PIO_PA31 );


                  kbd_pin(1,11,12,13,14,15,16,17,18); //keypad Configuration
                  lcd_init();
                  lcd_clear();
                  USART(18432000,9600,0); //usart0 Configuration
                  usart0_init(); //usart0 Configuration

                  while(1)
                  {
                  cursor_off();
                  Display_on();
                  lcd_clear();
                  lcd_gotoxy(1,2);
                  lcd_putsf("In The Name OF"
                  lcd_gotoxy(2,7);
                  lcd_putsf("GOD"
                  delay_s(2);
                  lcd_clear();
                  lcd_gotoxy(1,5);
                  lcd_putsf("welcome"
                  delay_s(3);
                  lcd_clear();
                  lcd_gotoxy(1,2);
                  lcd_putsf("Project Name :"
                  lcd_gotoxy(2,3);
                  lcd_putsf("HM-TR & ARM"
                  delay_s(2);
                  lcd_clear();
                  lcd_gotoxy(1,2);
                  lcd_putsf("Designed By :"
                  lcd_gotoxy(2,3);
                  lcd_putsf("<<*******>>"
                  delay_s(2);
                  lcd_clear();
                  lcd_gotoxy(1,2);
                  lcd_putsf("Hosein Eghbali"
                  delay_s(2);
                  lcd_clear();
                  lcd_gotoxy(1,6);
                  lcd_putsf("please"
                  lcd_gotoxy(2,2);
                  lcd_putsf("Enter Password"
                  delay_s(2);

                  Keyread=get_kbd(100);
                  switch (Keyread)
                  {
                  case 3:
                  changepass(); //Go to changepass
                  break;
                  case 7:
                  Display_off(); //LCD Of
                  break;
                  case 11:
                  Display_on(); //LCD On
                  break;
                  case 12:
                  Display_on(); //Enter
                  break;
                  case 14:
                  Display_on(); //Back
                  break;
                  case 15:
                  main(); //RESET
                  break;
                  default :
                  getpass();
                  break;
                  }


                  }
                  }


                  /************************* get password *************************/

                  void getpass (void)
                  {
                  int a1,a2,a3,a4,a5;
                  a1=get_kbd(100);
                  a1=a1*1000;
                  lcd_gotoxy(2,7);
                  lcd_putsf("*"

                  a2=get_kbd(100);
                  a2=a2*100;
                  lcd_gotoxy(2,8);
                  lcd_putsf("*"

                  a3=get_kbd(100);
                  a3=a3*10;
                  lcd_gotoxy(2,9);
                  lcd_putsf("*"

                  a4=get_kbd(100);
                  a4=a4*1;
                  lcd_gotoxy(2,10);
                  lcd_putsf("*"

                  a5=a1+a2+a3+a4;
                  if (a5==a)
                  {
                  lcd_clear();
                  lcd_gotoxy(1,1);
                  lcd_putsf("Correct Password"
                  delay_s(3);
                  buzzer();
                  printf ("%d ",send); //set usart0
                  lcd_gotoxy(2,4);
                  lcd_putsf("Data Send"
                  getpass();
                  }
                  else
                  {
                  lcd_clear();
                  lcd_gotoxy(1,2);
                  lcd_putsf("Wrong Password"
                  delay_s(3);
                  buzzer();
                  buzzer();
                  buzzer();
                  wrong();
                  getpass();
                  }
                  }

                  /************************* change password *************************/

                  void changepass (void)
                  {
                  int b5,b4,b3,b2,b1;
                  buzzer();
                  lcd_clear();
                  lcd_gotoxy(1,2);
                  lcd_putsf("New Password:"

                  b1=get_kbd(100);
                  b1=b1*1000;
                  lcd_gotoxy(2,7);
                  lcd_putsf("*"

                  b2=get_kbd(100);
                  b2=b2*100;
                  lcd_gotoxy(2,8);
                  lcd_putsf("*"

                  b3=get_kbd(100);
                  b3=b3*10;
                  lcd_gotoxy(2,9);
                  lcd_putsf("*"

                  b4=get_kbd(100);
                  b4=b4*1;
                  lcd_gotoxy(2,10);
                  lcd_putsf("*"

                  b5=b1+b2+b3+b4;
                  a=b5;

                  lcd_clear();
                  lcd_gotoxy(1,1);
                  lcd_putsf("Password Changed"
                  delay_s(3);
                  getpass();
                  }

                  /************************* buzzer *************************/

                  void buzzer(void) //Define buzzer
                  {
                  AT91F_PIO_SetOutput(AT91C_BASE_PIOA,AT91C_PIO_PA25 ); //Set buzzer
                  delay_s(1);
                  AT91F_PIO_ClearOutput(AT91C_BASE_PIOA,AT91C_PIO_PA 25); //Reset buzzer
                  delay_s(1);

                  }

                  /************************* wrong password *************************/

                  void wrong (void)
                  {
                  int i=1;
                  i++;
                  if (i<4)
                  getpass ();
                  else
                  lcd_clear();
                  lcd_gotoxy(1,7);
                  lcd_putsf("LCD Lock"
                  delay_s(180);
                  i=1 ;
                  main ();
                  }
                  **همیشه به این فکر کن که خداوند با توست**

                  دیدگاه


                    #10
                    پاسخ : پروژه قفل رمز وایرلس با آرم

                    تا یادم نرفته بگم که :
                    نمیدونم چه جوری باید زیر برنامه های بخش بازگشت (Back) و تایید پسورد (Enter) را بنویسم !! :cry2:
                    **همیشه به این فکر کن که خداوند با توست**

                    دیدگاه


                      #11
                      پاسخ : پروژه قفل رمز وایرلس با آرم

                      سلام حسین جان

                      راستش من که خیلی از ATMEL سر در نمیارم ، ولی به نظر من برنامت رو تکه تکه تست کن ،

                      مثلا اول ال سی دی ، بعد کیبورد و......

                      اینطوری راحت تر نتیجه میگیری :nerd:

                      موفق باشی

                      دیدگاه


                        #12
                        پاسخ : پروژه قفل رمز وایرلس با آرم

                        نوشته اصلی توسط حامد مهری
                        سلام حسین جان

                        راستش من که خیلی از ATMEL سر در نمیارم ، ولی به نظر من برنامت رو تکه تکه تست کن ،

                        مثلا اول ال سی دی ، بعد کیبورد و......

                        اینطوری راحت تر نتیجه میگیری :nerd:

                        موفق باشی
                        سلام بر آقا حامد گل
                        اتفاقا دارم همین کار را میکنم.ال سی دی بهم جواب داده.
                        ولی نمیدونم چرا کیپد بهم جواب نمیده !!!!! :angry:
                        در هر حال از راهنماییت بیسار ممنونم.
                        لطف کردین
                        **همیشه به این فکر کن که خداوند با توست**

                        دیدگاه


                          #13
                          پاسخ : پروژه قفل رمز وایرلس با آرم

                          سلام
                          من با IAR برنامه می نویسم اگه بخواهید می توانم برنامه صفحه کلید و LCD که کار کند را برایتان بفرستم. در ضمن میکرو شما در چه فرکانسی می خواهید کار کند. در فرکانس های بالا اسکن کردن صفحه کلید یک خورده دردسر داره باید در هنگام اسکن کردن یک مقدار dellay ایجاد کنید.

                          دیدگاه


                            #14
                            پاسخ : پروژه قفل رمز وایرلس با آرم

                            نوشته اصلی توسط حامد AT91
                            سلام
                            من با IAR برنامه می نویسم اگه بخواهید می توانم برنامه صفحه کلید و LCD که کار کند را برایتان بفرستم. در ضمن میکرو شما در چه فرکانسی می خواهید کار کند. در فرکانس های بالا اسکن کردن صفحه کلید یک خورده دردسر داره باید در هنگام اسکن کردن یک مقدار dellay ایجاد کنید.
                            سلام و درود بر شما
                            فرکانس کاری میکرو حدودا 19 مگا هرتز هست.ممنون میشم لطف کنید و برنامه ها را برام بزارید
                            **همیشه به این فکر کن که خداوند با توست**

                            دیدگاه


                              #15
                              پاسخ : پروژه قفل رمز وایرلس با آرم

                              سلام
                              اگه می شود پین هایی که از میکرو به صفحه کلید متصل است رو برام بزار و همچنین پین های lcd را بگو به کدام پایه های میکرو وصل کرده اید. در ضمن این هدری که من استفاده می کنم از 8 خط داده برای lcd استفاده می کند. در ضمن هم میکرو در 48mhz باید کار کند که هدر فایل ها بدرستی کار کند فکر کنم شما از 19mhz منظورتون کریستال متصل به میکرو بود ؟؟

                              دیدگاه

                              لطفا صبر کنید...
                              X