Author Topic: Туторијал за користење на развојниот систем Pinguino  (Read 4672 times)

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
Туторијал за користење на развојниот систем Pinguino
« Opened on 19.01.2010, Tuesday, 22:03:35 (Edited 23.01.2011, Sunday, 19:18:40) »
Во претходната тема ги наведив сите потребни материјали и програми кој ќе ви служат за користење и работа со овај опен сорс проект.
можете да ги погледните тука --> http://elektronika-mk.net/index.php?topic=442.msg1909#msg1909

Во овај дел ќе ви објаснам малку повеќе за тоа како да инсталирате потребните програми и накратко некои од функциите на самиот софтвер
и исто така накратко ќе ви ги објаснам некои поими кој се користат

Па да започнам

1. Како да го инсталирате софтверот :
Понекогаш може да се случи да програмата libusb не работи баш како што треба но тоа се најчесто решава со преинсталиање , значи можи да не проработа на прва но можи и одма да проработа секогаш е различно, не треба паничење во врска со тоа.
Откако ќе ги инсталирате сите потребни документи и програми треба да го симнете и модифицираниот драјвер.
За оваа работа отворете нова папка каде ќе го ставите драјверот, папката нека биде кај што ви се и другите програми од Pinguino.
Откако ќе го приклучите овај склоп на вашиот компјутер Windoews-от ќе ве праша за драјвер вие ќе го селектирате погоре наведениот драјвер.
Откако ќе го екстрактирате/ отпакувате Pinguino софтверот одете во соодветната папка и барајте Pinguino betaX.py, на ова со десен клик изберете launch with или open with и изберете ја програмата python.
Со ова вашата инсталација е завршена
Доколку некој се одлучи да го работи под друг оперативен систем нека се изјасни ќе му објаснам како да инсталира и на ним ( важи само за Linux и за Mac OS X )

Најдобро  е со некој друг програматор ( JDM, PicKit2, ICD и тн. ) најпрво да го внесите bootloader-от па после да го приклучувате на компјутер.

2. Што поточно е тоа bootloader ?
Bootloader-от во глобала претставува малечка програма сместена во самиот пик ( во случајот 18F2550 ) која служи за да се конектира Pinguino со вашиот компјутер и да може да ги извршува потребните акции.

3. Користење
I верзија ( PIC18F2550 )
Откако ќе ја испишите вашата програма и ќе ja компајлирате
- Прицкате на reset копчето на самата плоча од Pinguino
- ЛЕД диодата D1 нема да свети ( run диодата )
- Кликнувате на копчето за уплоадирање

- Откако ќе се вметни саканата програма во PIC-от односно во Pinguino го притиснувате RUN копчето.
- Run лед диодата ( D1 ) ќе засвети а и ова е сигнализација дека програмата работи.

II Верзија ( PIC18F4550 )
Откако ќе ја испишите вашата програма и ќе ај компајлирате
- Притиснете на копчето reset
-Откако run диодата ќе се исклучи притиснете на копчето за уплоадирање

-Откако ќе се внеси програмата после 5 секунди ќе се уклучи и ЛЕД диодата ( ќе светне ) ова значи дека програмата работи.

4. Почетни примери за користење
Во следните примери ќе биде објаснато под PIC18F4550, но истото важи и за PIC18F2550

Под нормална работа во Pinguino IDE програмата како основен микропроцесор е наместен
PIC18F2550, доколку работите со PIC18F4550 тогаш треба да се користи следната линија
Quote
#define 18F4550
обратное за PIC18F2550 ќе треба да ја користите
Quote
#define 18F2550

1. Тест
шема и потребни компоненти


начин на поврзување


софтвер кој се користи односно програмата
Quote
// test trepkac so Pinguino

#define PIC18F4550

void setup()
{
pinMode(0,OUTPUT);
}

void loop()
{
digitalWrite(0,HIGH);
delay(500);
digitalWrite(0,LOW);
delay(500);
}

Pinguino тест програмата е поделена на повеќе делови
првиот дел е Setup командата/функцијата, оваа функција се извршува при самиот почеток на програмата, потоа иде loop функцијата која е функција за повторување.
Во нашиот пример функлцијата setup ни го објаснува пинот 0 ( Pin 0 ), пинот 0 „ја вози“ лед диодата односно тој се користи како драјвер за неа, значи овај пин ни служи како излез.
Функцијата pinMode(0,OUTPUT)  го поставува пинот 0 како излез. Состојбата на дигиталниот излез може да биде или 0 ниско логичко ниво или 1 високо логичко ниво. При што на ниско логичко ниво нема да свети диодата, а на високо логичко ниво ќе свети диодата.
Функцијата Loop сега може да ја изврши нашата програма.
За да се доведи ЛЕД диодата да трепка прво мора да се доведе високо логичко ниво па пауза со одредено време па ниско логичко ниво.
Прво на пинот 0 се носи високо логичко ниво (5V), после ова треба да има мала пауза за тоа се користи функцијата delay  , после оваа мала пауза пинот 0 треба пак да се доведе на ниско логичко ниво (0V ) па после ова пак да има пауза. Бидејќи се користи функцијата loop ЛЕД диодата ќе трепка бесконечно долго. За да се овозможи местењето на пинот на високо/ниско логичко ниво се користи функцијата digitalWrite. Доколку сакаме на излез да добиеме високо логичко ниво тогаш ја користиме следната функција digitalWrite(0,HIGH) каде што 0 ни го означува пинот а после запирката е логичкото ниво во случајов високо.
После ова иде функцијата delay оваа функција е во ms, па така да delay(500) нас ни е пауза од 500ms, во зависност од бројот во заградата е и паузата поголем број поголема пауза и обратно. За време на оваа функција ништо не се случува значи диодата продолжува да си свети.
После ова иди функцијата digitalWrite(0,LOW) или како што погоре напоменав со ова се мести логичкото ниво на излезот во случајов на ниско логичко ниво со што запира да свети лед диодата.
После пак иде функцијата delay, после ова програмата почнува од почеток и пак се повторуваат истите чекори, се до бесконечност.

Пробајте сменете ги паузите ставете помали или поголеми
Заменетеја програмата додадете повеќе диоди повеќе излези
експериментирајте малку и видете што се случува

2. Тест
Откако го совладавте првиот тест одиме на малку посложен ( не е многу  ;D )
Шема и потребни компоненти


Поврзување со Pinguino


Програма
Quote
// ednostavna multi-led programa za Pinguino

void setup()
{
pinMode(0,OUTPUT);
pinMode(1,OUTPUT);
pinMode(2,OUTPUT);
pinMode(3,OUTPUT);
}

void loop()
{
digitalWrite(0,HIGH);
delay(250);
digitalWrite(0,LOW);
digitalWrite(1,HIGH);
delay(250);
digitalWrite(1,LOW);
digitalWrite(2,HIGH);
delay(250);
digitalWrite(2,LOW);
digitalWrite(3,HIGH);
delay(250);
digitalWrite(3,LOW);
}


Ова програма веќе позната ни е од претходниот пример исти променливи слични функции
но сето ова може да се скрати на друг начин
програма 2
Quote
// prerabotena multi-led programa za Pinguino

int pin;

void setup()
{
for (pin=0;pin<4;pin++) pinMode(pin,OUTPUT);                    
}

void loop()
{
for (pin=0;pin<4;pin++)
    {
    if (pin==0) digitalWrite(3,LOW);
    else digitalWrite(pin-1,LOW);
    digitalWrite(pin,HIGH);
    delay(250);
    }

Функцијата pin во овај случај ни е integer променлива ( integer променлива е променлива која мора да земе цела вредност односно 0, 1, 2, 3, 4.....)
Во loop функцијата се користи за да заземе вредност од 0 до 3. И да заземе односно ни покаже на соодветните пинови на Pinguino.
Во главниот дел функцијата Pin зазема променливи од 0 до 3 и да го напојува/ контролира соодветниот пин од Pinguino и за да го ресетира претходниот еден.
Треба да се знае дека во случај кога pin==0 претходниот пин не е -1 туку 3

За крај експериментирајте пробувајте и се разбира пишете ваши резултати заедно со вашите програми можеби некој ќе ги направи

ВАЖНО : Проектот Pinguino  е опен сорс проект и не е наменет за комерцијални цели, ова е проект кој се користи во едукативни цели!!!

Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline nCounTr

  • Почивај во мир
  • Стручњак
  • *****
  • Posts: 231
  • Gender: Male
  • Дипл.Ел.Инж.
    • Македонски форум за електроника
Oва е одлично, јас мислев да земам еден 4550 за да го искористам за контролата на 5.1 засилувачот, и оваа околина добро ќе ми дојде при тестирањето на целата конфигурација на контролерот. Ќе можам да ги најдам сите грешки кои би можел да ги направам при програмирањето на контролерот, а јас како јас сигурно правам грешки, колку и мали да се сепак се грешки :)
Одличен пост Девил, респект ++
ESPRIMO Mobile v5505 | Intel Centrino Duo T5450 @ 1,66GHz Santa Rosa | Apacer 4GB DDR2-667MHz | Fujitsu 120GB SATA-150 5400rpm | Intel x3100 384M Memory | Intel PRO/Wireless 3945abg | Gigabit Ethernet | Toshiba Bluetooth v2.0 | Windows 7 x64
АМАН ЧИТАЈТЕ ПРАВИЛA

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
Мило ми е што ти се допаѓа, ќе надополнувам со тек на времето како ќе берам информации
не сум во можност се наеднаш да објавам ..
Не очекувајте некој 100% супер пост без грешки или некој мали ситници поради тоа што не сум некој јак програмер и да ви објаснувам се како е што е, ќе објаснам онака како што и јас знам, а ако некој знае поубаво слободо нека ме надополни.
Една интересна работа околу овај проект е тоа што има подршка и од микрочип, тие го надгледуваат неговото развивање и надградување па така да не верувам дека е нешто фуш :)
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!

Offline alex

  • Ентузијаст
  • **
  • Posts: 54
  • Gender: Male
Горан, фалат сликите од првиот пост.
Не биди себичен, сподели го своето знаење со другите... what goes around comes around ;)

Offline Devil

  • Администратор
  • Топ Експерт
  • *****
  • Posts: 5329
  • Gender: Male
    • Македонски форум за електроника
Средено е :), фала за инфото
Jас не сум себичен, помагам. Помагај и ти !

Секоја куќа си има свои куќни правила.Почитувај ги куќните правила!