SSN-688

Relacje z budowy tych jednostek
ODPOWIEDZ
Awatar użytkownika
Kon_Bar
Posty: 371
Rejestracja: 04 gru 2010, 21:56

O:SSN-688

Post autor: Kon_Bar »

Model zacny :)
Na zlocie przyparty do muru Andrzej zdradził nam sekret PIĘKNYCH powłok lakierniczych:
Jak coś pomalujesz a potem zeszlifujesz tak z 70 razy to ostatni raz farbę położysz idealnie :evil:
Awatar użytkownika
Andrzej1
Posty: 1568
Rejestracja: 04 gru 2010, 21:56
Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}

O:SSN-688

Post autor: Andrzej1 »

Kon_Bar napisał:
...
Na zlocie przyparty do muru Andrzej zdradził nam sekret PIĘKNYCH powłok lakierniczych:
Jak coś pomalujesz a potem zeszlifujesz tak z 70 razy to ostatni raz farbę położysz idealnie :evil:

Witam

Teraz mieszczę się w dziesięciu razach :P .
Uważam, że to niezły wynik w porównaniu ... .

Z ukłonami
Andrzej Korycki
[Edit]
Opiszę jeszcze jak zrobić z zakurzonej piwnicy komorę bezpyłową.
Po pierwsze należy przygotować model do malowania. Wyszlifować, wypolerować, wylizać, aby
potem żadnych gwałtownych ruchów czynić nie trza było. Należy nabyć, drogą kupna, pieluchę
antystatyczną do przecierania powierzchni przed malowaniem. Do nabycia w sklepach z farbami do
samochodów. Szmata ta jest nasączona jakimś klajstrem antystatycznym, który zbiera wszystkie kłaczki
z przecieranej powierzchni. Nie trzeć, tylko delikatnie przesunąć, po powierzchni modelu - nie pozostanie
żadna drobinka kurzu.
Model przykryć szmatą.
Całe pomieszczenie spryskać wodą z rozpylacza.
Odczekać 15 minut
Spryskać ponownie
Odczekać 5 minut, aż wszystko opadnie i zdjąć szmatę z modelu.
Dopiero teraz użyć wzmiankowanej pieluchy. Nie wcierać tylko delikatnie przejechać.
Trysnąć farbą i wyjść, aby nie kurzyć.
Jak farba stanie się pyłosucha można wrócić do piwnicy i .... .

Andrzej
Awatar użytkownika
Andrzej1
Posty: 1568
Rejestracja: 04 gru 2010, 21:56
Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}

O:SSN-688

Post autor: Andrzej1 »

Witam
Teraz będzie mniej wesoło, bo postaram się (najlepiej jak umiem) przybliżyć Wam, drodzy Koledzy,
( tu Koleżanki traktuję jak Kolegów (bez urazy) ).
istotę działania komputera. Potrzebne to nam będzie do zrozumienia dalszych moich kroków przy
oprogramowaniu telewizora (nazwa Jarka) znajdującego się na pokładzie. Ci, którzy mieli to szczęście
i uczyli się o komputerach w szkole proszeni są o wybaczenie poziomu tych wymiocin.
Jeżeli, też ktoś znajdzie błąd w wyjaśnieniach, niezgodność ze zdrowym rozsądkiem lub jakąś inną
wadę ukrytą lub jawną, proszony jest o napisanie tego tak, abym :
a) mógł wreszcie, choć trochę, zrozumieć komputery
b) mógł to poprawić
c) inni mogli mieć przekonanie graniczące z pewnością, że błędów nie ma.

Jak mały Jasio wyobrażał sobie komputer.

Wyimaginujmy sobie, że mamy do rozwiązania jedno równanie z jedną niewiadomą typu A*x + B = C.
A ,B, C są dane i różne od zera a znaleźć mamy x.
Do dyspozycji mamy kalkulator, kartkę papieru, ołówek i głowę. W rozważaniu tym kalkulator będzie
procesorem, kartka papieru pamięcią a my cóż, będziemy programem.
Musimy wykonać następujące operacje :
1. „przenieść B na prawą stronę” : A*x = C - B
2. podzielić obustronnie przez A (o ile nie jest zerem) x = ( C - B )/A
i otrzymujemy wynik.
Potrzebujemy narysować sobie tabelkę, w której będą następujące kolumny (te pionowe) (razem 5):
A, B, C, C – B i ( C – B )/A
W pierwszym wierszu w kolumnach A,B,C wpisujemy wartości A,B i C.
Za pomocą kalkulatora wykonujemy odejmowanie C – B i wpisujemy do odpowiedniej kolumny, kolumnę
piątą wypełniamy wynikiem dzielenia komórki zawierającej C – B przez zawartość komórki zawierającej
A. Komórkami nazwałem kratki w tabeli. Te kratki to pamięć komputera.
Aby analogia była pełniejsza, to można poszczególne kratki w tabelce ponumerować od 1 do 5.
Procesor działa bardzo podobnie. Otrzymuje dane : (A,B i C ). Dane te zapamiętuje gdzieś w pamięci (nasza kartka). Następnie pobiera dane z komórki pamięci zawierającej C i zapisuje ją w jednostce
arytmetycznej ( tu ekran kalkulatora ). Od zawartości akumulatora odejmuje zawartość komórki zawierającej B. Wynik pozostaje w akumulatorze ( na ekranie ). Wreszcie ostatnie dzielenie i wysłanie wyniku do komórki ( C - B )/A. Wynik pozostaje w akumulatorze.
Komputer działa bardzo podobnie. Działanie komputera opisuje program. Na razie napiszemy program
dla naszego wyimaginowanego komputera w języku programowania nie mającym nic wspólnego z
jakimkolwiek mi znanym :
Odczytaj zawartość komórki 3 ( wyklep to na klawiaturze kalkulatora )
Naciśnij –
Odczytaj zawartość komórki 2
Naciśnij =
Zapisz wynik do komórki 4
Naciśnij /
Odczytaj zawartość komórki 1
Naciśnij =
Zapisz wynik do komórki 5
Koniec programu
Ponumerujmy wiersze programu : 6 - Odczytaj zawartość komórki 3 ( wyklep to na klawiaturze
kalkulatora )
7 - Naciśnij – (minus) i tak dalej ...
Gdybyśmy ten program dopisali na tej kartce, to każdy, kto już z drzewa zszedł mógłby powtórzyć nasze obliczenia nie mając fioletowego pojęcia czego dotyczą – i tak działają programy komputerowe.
Komputer wykonuje bez znużenia wszystkie te czynności jakie nakaże mu program.
Nie wiem, czy Państwo zauważyli, że pod tabelką pojawił się program. Czyli pamięć komputera zawiera już i program i dane. Dzisiejsze procesory zawierają więcej niż jeden rejestr (akumulator) i potrafią
przesyłać dane z jednego obszaru pamięci do drugiego blokami ( nie po jednej sztuce ).
Zawierają jednostki arytmetyczne, które umieją mnożyć, dzielić liczyć sinusy czy co inne tam.
Ale istota jest ta sama :
Włącza się zasilanie. Procesor ustawia rejestr programu na jakąś liczbę (podaną w specyfikacji przez producenta ) Nasz wyimaginowany procesor na liczbę 6. Wykonuje zawarte tam polecenie i zwiększa
licznik rejestru na 7 aż dojdzie do 15 ( koniec programu ). Znane wszystkim komputery gdy kończą
program, to zamykają okno i wyświetlają pulpit. Nasz komputer nie ma pulpitu, nie ma nic, więc będzie próbował zwiększyć licznik na 16 i tu kucha. Tu w pamięci są śmieci (dowolne wartości ). Procesor może
próbować wykonać takie polecenie ale najczęściej kończy się to katastrofą (komputer się powiesi).
Rzeczywisty komputer (mikrokontroler) ma pamięć operacyjną (nasza kartka ) w której umieszczone są
dane i program. Pamięć posiada adresy ( nasze numerki). Po włączeniu zasilania, albo po resecie, PC
(program counter) licznik rozkazów, czy jak to jeszcze tam zwał ustawia się na tyle co podał producent i
z tamtego obszaru pamięci pobierany jest pierwszy rozkaz do wykonania a potem, potem to już samo
idzie. Jeżeli pod adresem pierwszego rozkazu są śmieci, to procesor wykona śmieciową robotę. Jeżeli
podłączony jest od urządzeń wykonawczych, to może je uszkodzić. Jeżeli jednak, znajduje się tam
program sterowania O.P., to procesor będzie sterował O.P. (Okręt Podwodny).
Taka jest idea.

Jeżeli Państwo uważacie, że nie ma to sensu (ten tekst), to na ten tychmiast napiszcie a stanie się
według woli Waszej i zaprzestanę "zadupać Wam wracę".

Z ukłonami
Andrzej Korycki
Awatar użytkownika
rychenko
Posty: 681
Rejestracja: 04 gru 2010, 21:56

O:SSN-688

Post autor: rychenko »

Andrzeju czym cie struli na tym zjeździe k…… nie dałem rady tego twojego wpisu strawić do końca B) , nie możesz z Myszowatym za często się jednak spotykać bo to szkodzi twojemu zdrowiu:P
Pozdrawiam Ryszard
Awatar użytkownika
Andrzej1
Posty: 1568
Rejestracja: 04 gru 2010, 21:56
Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}

O:SSN-688

Post autor: Andrzej1 »

rychenko napisał:
… nie dałem rady tego twojego wpisu strawić do końca...


Wybaczcie, smrodek dydaktyczny okazał się smrodem bez dydaktyki.
Nie będę go usuwał, bo to Kogowa własność. Choć nie jestem do końca przekonany
o tym, że Koga chce to mieć. Jak nie chce, to niech sama usunie.
Mechanika jest gotowa w 99%. Pozostały drobiazgi.
Reszta to program. Jak go opisać ? Tego nie wiem.
Może nie ma potrzeby ?

Z ukłonami
Andrzej Korycki
Awatar użytkownika
Bartek_W
Posty: 245
Rejestracja: 04 gru 2010, 21:56

O:SSN-688

Post autor: Bartek_W »

Andrzej1 napisał:
Jak go opisać. Tego nie wiem. Może nie ma potrzeby ?

Cześć

Oczywiście, że jest potrzeba. Może przedstawić to na rysunkowym schemacie? (może uproszczony UML?) Program jest w końcu elementem Twojego modelu - ambitnego, bardzo ciekawego i niekonwencjonalnego. Śledzę z najwyższą uwagą każdy krok w Twojej relacji, stąd na ten programowy (czy też programistyczny) czekam niecierpliwie, z kciukiem w zębach i śliniakiem pod brodą.

:)

Pozdrawiam serdecznie
Bartek
Awatar użytkownika
Andrzej1
Posty: 1568
Rejestracja: 04 gru 2010, 21:56
Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}

O:SSN-688

Post autor: Andrzej1 »

Witam

No to część praktyczna.
Stanowisko do pracy :

Obrazek

i pierwszy pracujący program mrugający niebieskim ledem :

Obrazek

Czerwony led to zasilanie.
Z przykrością stwierdzam, że nie ja jestem jego autorem ( zarówno leda jak i programu ).

Z ukłonami
Andrzej Korycki
Awatar użytkownika
rychenko
Posty: 681
Rejestracja: 04 gru 2010, 21:56

O:SSN-688

Post autor: rychenko »

Witaj Andrzeju jak widać nieuchronnie zbliżasz się do wodowania mam nadzieję ze przed nadejściem lodu i mrozów zrobisz próbne zanurzenie:) , Andrzejku powiedz czy to oprogramowanie które robisz wraz ze swoim guru można będzie np. zastosować do innego modelu , czy to jest raczej tylko i wyłącznie dedykowane do LAluni ,wymuszone takim a nie innym sposobem w jaki rozwiązałeś system zanurzania itp.?
Pozdrawiam Ryszard
Awatar użytkownika
Andrzej1
Posty: 1568
Rejestracja: 04 gru 2010, 21:56
Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}

O:SSN-688

Post autor: Andrzej1 »

Witaj Ryszardzie i Ty Szanowny Oglądaczu

Cały program użyć się nie da. Program będzie bowiem dostosowany do płyty głównej i do peryferiałów.
Ale niektóre pomysły najprawdopodobniej tak. Będę się starał (oby wyszło) aby te fragmenty, które
mogą być użyte do innego sprzętu były opublikowane. Będzie to język C K&R + modyfikacje dla kontrolera AVR.

W tej chwili program już mruga z użyciem przerwań. Teraz jest już mój.

Z ukłonami
Andrzej Korycki
Awatar użytkownika
Andrzej1
Posty: 1568
Rejestracja: 04 gru 2010, 21:56
Lokalizacja: {"name":"Polska Szczecin","desc":"","lat":"","lng":""}

O:SSN-688

Post autor: Andrzej1 »

Witam

Tego użyć się nie da. Ale prezentuję pokrętny sposób, w jaki moja myśl chadza. Otóż chcę się szybko
odkleić od hardware i zająć się algorytmami. Na razie trwa walka z oporną materią. Obsługuję już czujniki
wody a czynię to tak :
Plik PortDefs.h utworzony przez Gurę procesorową, nieco zmodyfikowany. Tu zawarta jest konfiguracja
przyłączenia różnych urządzeń do procesora.

[code:1]#if !defined( PORTDEFS_H_25_08_2010_DEFINED )
#define PORTDEFS_H_25_08_2010_DEFINED 1

#define LED_1 0 //Port A Out; Led - pin 2
#define LED_2 1 //Port A Out; Led - pin 4
#define LED_3 2 //Port A Out; Led - pin 6
#define Nap_Ster 3 //Port A In; pomiar napiecia zasilania elektroniki sterujacej
#define Zb1_Kier 4 //Port A Out; kierunek pracy tloka zbiornika 1
#define Zb1_Silnik 5 //Port A Out; HIGH - zalaczanie silnika tloka zbiornika 1
#define Inklinometr 6 //Port A In; pomiar nachylenia okretu
#define Glebokosc 7 //Port A In; pomiar zanurzenia

#define SilnikGl_P 0 //Port B In; HIGH - przeciazenie silnika glownego
#define SilnGl_Kier 1 //Port B Out; kierunek obrotow silnika glownego
#define RC_Zanurz 2 //Port B In; sygnal odbiornika RC - zanurzenie, we. INT2
#define Servo_Zawor 3 //Port B Out; sterowanie serwomechanizmem zaworu napowietrzania, OC0
#define LED_TEST 4 //Port B Out; Led testowy na plycie glownej, niebieski

#define Zb2_WeKranc 0 //Port C In; wejscie krancowki zbiornika 2, aktywne HIGH
#define Zb2_Silnik 1 //Port C Out; HIGH - zalaczanie silnika tloka zbiornika 2
#define Zb2_Kier 2 //Port C Out; kierunek pracy tloka zbiornika 2
#define CzWody_Z 3 //Port C In; wejscie czujnika wody w zezie
#define CzWody_K 4 //Port C In; wejscie czujnika wody na kiosku
#define CzWody_D 5 //Port C In; wejscie czujnika wody w dnie (na zewnatrz)
#define Zb1_WeImp 6 //Port C In; wejscie sygnalu impulsatora obrotow tloka zbiornika 1
#define Zb1_WeKranc 7 //Port C In; wejscie krancowki zbiornika 1, aktywne HIGH

#define Nap_Mocy 0 //Port D In; czujnik niskiego napiecia zasilania mocy, napiecie za niskie -> HIGH
#define TXD_Test 1 //Port D Out; wyjscie testowe nadajnika szeregowego
#define RC_SterGleb 2 //Port D In; sygnal odbiornika RC - ster glebokosci, we. INT0
#define RC_SilnikGl 3 //Port D In; sygnal odbiornika RC - silnik glowny, we. INT1
#define SilnikGlPWM 4 //Port D Out; PWM sterowania silnika glownego, OC1B
#define SterGlebPWM 5 //Port D Out; PWM sterowania steru glebokosci, OC1A
#define Zb2_WeImp 6 //Port D In; wejscie sygnalu impulsatora obrotow tloka zbiornika 2
#define Servo_SterK 7 //Port D Out; sterowanie serwomechanizmem steru kiosku, OC2

#endif[/code:1]

Plik Water.h

#if !defined(WATER_H_26_08_2010_DEFINED)
#define WATER_H_26_08_2010_DEFINED

/*
Funkcje zwracaja nie zero gdy zdanie jest TRUE
*/

extern unsigned char WaterOnBoard( void );
extern unsigned char ShipInTheWater( void );
extern unsigned char ShipUnderTheWater( void );

#endif

"Pryk" Water.c

#include
#include "PortDefs.h"
#include "Water.h"

unsigned char WaterOnBoard( void )
{
return (unsigned char)bit_is_clear( PINC, CzWody_Z );
}

unsigned char ShipInTheWater( void )
{
return (unsigned char)bit_is_clear( PINC, CzWody_D );
}

unsigned char ShipUnderTheWater( void )
{
return (unsigned char)bit_is_clear( PINC, CzWody_K );
}

Więcej takich rzeczy nie będę pokazywał, bo to nie będzie sensu miało.
Widzę, że tabulatory zjadło przy wyświetlaniu. To czyni całość jeszcze mniej przejrzystą.
Wstawiałem spacje, ale inteligencja oprogramowania jest wielka - wycięło.

Z ukłonami
Andrzej Korycki

P.S.
Proszę wybaczyć, ale programy (na mikrokontrolery zwłaszcza) nie tolerują polskich liter (tych z
ogonkami i kreseczkami ).
[Edit]P.S.P.S.
Bartek_W powiedział jak wstawić program. Efekt jest czerwony. Ale po modyfikacjach ze spacjami
wygląda to nadal tak sobie.
ODPOWIEDZ