Crash chrome po uruchomieniu – rozwiązanie

Z problemem spotkałem się na komputerach z zainstalowanym systemem Windows Vista.

Jeżeli przeglądarka Chrome wywala się od razu po włączeniu, a typowe metody (kasowanie profilu, reinstalacja przeglądarki) nie pomagają, proponuję sprawdzić 2 rzeczy:

-Skan systemu programem Malwarebytes;

-Odinstalowanie lub aktualizację programu Cyberlink YouCam.

Moduł Wifi ESP8266 – jak zacząć, niespodzianki

Zakupiłem ostatnio taki moduł Wifi:

esp8266

Link: http://www.ebay.com/itm/371152025256?_trksid=p2060778.m2749.l2649&ssPageName=STRK%3AMEBIDX%3AIT

Cena jednego to US $3.15

Jest to chyba najtańsza opcja wyposażenia naszych układów elektronicznych w komunikację poprzez Wifi. Domyślnie komunikacja przebiega poprzez port USART (3,3V) z wykorystaniem komend AT, ale sam układ ESP8266 pozwala się programować, dając nam możliwość wyeliminowania dodatkowego mikrokontrolera z wielu zadań.

Podłączenie.

Moduł posiada 2 rzędy po 4 piny. Nie jest więc przyjazny w podłączaniu do płytek stykowych. Tak więc można go podpiąć na kabelkach, lub z użyciem prostego adaptera, który można wykonać z kawałka płytki uniwersalnej (4×4 pady, bez połączeń), goldpinów i gniazd do nich:

OLYMPUS DIGITAL CAMERA

Oznaczenia pinów:

esp8266-pinout

Pin CH_PD należy podpiąć do VCC, a VCC do 3,3V. Pin RxD podpinamy do TxD, a pin TxD do RxD przejściówki UART. Ważne, aby nasza przejściówka pracowała na napięciu 3,3V, a nie 5V! Można to sprawdzić mierząc napięcie na linii TxD przejściówki w stanie spoczynku. Jeżeli nasz konwerter lub inny układ pracuje przy 5V TTL, to należy użyć takiego dzielnika z 2 rezystorów:

esp8266_divider

Komunikacja

Testy proponuję rozpocząć z użyciem komputera i Serial Monitora dołączonego do Arduino IDE. Jeżeli chcesz, możesz użyć innego, ale przydałoby się, aby posiadał takie funkcjonalności:

-Możliwość „wklepania” ciągu znaków „na sucho” przed wysłaniem,

-Możliwość zdefiniowania znaku końca linii

Parametry transmisji:

-8 bit, 1 bit stopu, brak bitu parzystości

Jaki baudrate? Tutaj sprawa jest ciekawa. W wielu opisach znajdziecie 57600, a czasami 115200. Jednak z modułami, które zamówiłem to nie działało. Dlatego trzeba sprawdzić doświadczalnie z baudrate 9600, 57600 i 115200. U mnie była to ta pierwsza wartość. Był to powód dużej frustracji. Jeżeli prawidłowo ustawimy parametry transmisji, po podpięciu modułu do zasilania powinien wysłać ciąg „śmieci”, z napisem „ready” na końcu. Jeżeli jest OK, możemy wysłać do niego pierwszą komendę AT:

AT+GMR

Wysłanie komendy musi zakończyć się znakami \n\r (NL+CR)!

Jeżeli wszystko jest OK, powinniśmy dostać w odpowiedzi wersję firmware, na której pracuje nasz moduł.

Atmel Studio – wgrywanie programu do Atxmega256A3BU poprzez Flip

źródło: http://www.avrfreaks.net/forum/atmel-studio-61-evk1100-dfu-usb-programming

Klikamy w Menu Tools -> External Tools i uzupełniamy pola:
Title:

FLIP

Command:

C:\Program Files (x86)\Atmel\Flip 3.4.7\bin\Batchisp.exe

Arguments:

-device atxmega256a3bu -hardware usb -operation erase f memory flash blankcheck loadbuffer "$(TargetPath)" program verify start reset 0

Initial directory:

$(TargetDir)

Zaznaczamy opcję „Use Output window”
Klikamy OK.

as6_flip

Najlepiej dodać sobie tak utworzony skrót do paska narzędzi. Menu View -> Toolbars -> Customize…
Przechodzimy na zakładkę Commands, wybieramy pole Toolbar, z listy rozwijanej preferowany przez nas pasek narzędzi.
Klikamy przycisk „Add Command…” i szukamy w kategorii Tools pozycji „External Command 1”

Trzeba pamiętać, że przed załadowaniem programu musimy ręcznie uruchomić bootloader poprzez zwarcie odpowiedniego pinu do masy i reset mikrokontrolera.

Niestety nie ma możliwości, aby Atmel Studio sam przekazywał w parametrach wywołania programu Flip typ mikroprocesora.

Debouncing przycisków – pomiary

Odnośnie drgań styków, ich filtrowania itd. powstało dużo dyskusji, teorii i kłótni. Nie chcę się wypowiadać w tej kwestii, po prostu zamieszczę kilka zrzutów z oscyloskopu.

Schemat testowy:
schemat

Użyty przycisk to mały, dwukońcówkowy tact-switch jak ten:
Tact_Switch_INT-1101_

A oto pomiary:
R=470Ω, C niepodłączony:
sw1

R=470Ω, C=100nF:
sw1_100n

R=2Ω, C niepodłączony:
sw1_2a

R=2Ω, C=100nF:
sw1_2a

Przy analizie wykresów proszę pamiętać o różnych podstawach czasu oraz napięciach. Starałem się je tak wyskalować, aby „drgania” były jak najlepiej widoczne do analizy.

Sensor dotykowy na AVR, udało się bez Qtouch library

IMAG0328W końcu udało mi się zmusić AVR’ki do odczytu dotykowych przycisków. Biblioteka Atmel Qtouch kusiła, ale za nic nie byłem wstanie jej rozgryźć, a o rozmiarze nie wspomnę. Poczytałem trochę teorii, znalazłem jakieś przykłady i udało się. Pierwszym efektem jest ten moduł. Jak działa w praktyce:

Jak działa w teorii:
Płytki czujników dotyku działają jak kondensatory, ładowane przez rezystor. Mikroprocesor ładuje ten układ RC, mierząc czas. Ponieważ R jest stałe, czas ładowania jest zależny od pojemności. Pojemność zmienia się gdy przykładamy palec – staje się on dielektrykiem. Aby układ działał, należy zadbać o kilka elementów:
-Pojemność takiego „kondensatora” jest bardzo mała. Aby wydłużyć czas ładowania, stosuje się rezystory o dużej wartości (ja użyłem z braku innych 10M, lepsze byłyby około 2-5M om).
-Jeden sensor wymaga jednego pinu do odczytu, i jednego do ładowania, z tym że ten drugi może obsługiwać jednocześnie wiele czujników.
-Czasy są tu bardzo niewielkie; nie ma po co używać funkcji opóźniających; sam obrót pętli pomiarowej jest wystarczająco długi.
-Zmiany pojemności są także niewielkie, dlatego ważne jest aby ta zmiana po przyłożeniu palca była możliwie duża. Dlatego płytki mają powierzchnię w postaci siatki, aby zmniejszyć ich własną pojemność. Wbrew intuicji, im większe pola sensorów, tym niekoniecznie lepiej.
-W takich układach bardzo ważne jest zastosowanie jak najkrótszych ścieżek, aby zmniejszyć szkodliwe pojemności.
-Ważne jest też wylanie dookoła masy, która będzie ekranować zakłócenia i stanowić drugą elektrodę kondensatora.
-Jak wynika z powyższego opisu, pomiar nie polega na wykryciu pojemności ludzkiego ciała względem ziemi, ani niczego takiego. Palec człowieka jest dielektrykiem w polu elektrycznym kondensatora utworzonego z pola czujnika i pobliskiego pola masy.

Download:

Tiny13_2x_touch_sources_firmware

tiny13_2x_touch

Linux – komendy

Pomoc:
Potrzebujesz dokładnego opisu polecenia? wpisz więc coś takiego: man
hasło. Spowoduje to wyświetlenie jeśli to możliwe, podręcznika do „hasła”.

Oznaczenia:
Polecenia zakończone jednym lub dwoma wykrzyknikami wymagają wysokich
uprawnień (nawet root’a), czasem nawet fizycznego dostępu do komputera.
Mogą więc być niepraktyczne przy zdalnej pracy za pomocą telnet lub ssh.

arch – wyświetla informacje na temat budowy komputera na którym pracujesz
awk – interpreter skryptowego języka programowania
bzip2 (*.bz2) – wysokowydajny kompresor
cal – ustawienia daty cat – przekierowuje strumień danych (np. sklejanie plików cat plik1 plik2 >plik12
cd – zmiana katalogu (bez parametru: przejście do katalogu użytkownika)
chown! – ustawianie właściciela pliku
chmod – ustawianie praw dostępu do pliku tzw. atrybuty
clear – czyści okno terminalu
cmp – porównuje pliki
copy – kopiuje pliki i katalogi
cp – kopiuje pliki
cut –
date – wyświetla lub zmienia datę
dd – konwertuje i kopiuje pliki
diff – porównuje zawartość plików, np. kodu źródłowego programu
du – oblicza zajętość na dysku
df – informuje o wolnych blokach na dysku
dircmp – porównuje katalogi
dmesg!! – podaje wszystkie komunikaty wyświetlane przy uruchamianiu systemu
echo –
egrep – odmiana polecenia grep
elm – program pocztowy
exit – wylogowanie z konsoli
fdisk!! – zarządzanie partycjami dysku
fetchmail! – zarządzanie zewnętrzną pocztą
file – testowanie pliku
find – wyszukiwanie pliku, katalogu
finger! – wyszukuje informacje o użytkowniku
fsconf!! – program do zmian ustawień systemu plików
fsck!! – naprawa systemu plików
ftp – prosty klient ftp
gcc – kompilator języka c
gnus – przeglądarka news
grep – wyszukiwanie linii spełniających wyrażenia
gzip (*.gz) – kompresor
gzip -9v *    kompresja z maksymalną skutecznością poszczegolne pliki w katalogu, zastępując stare.
head – wyświetlanie początkowej części pliku
hello – wysylanie krótkiego tekstu na ekran adresata
host – podaje informacje o 'sieciowych’ danych dotyczączych komputera
hostname! – wyświetlanie lub zmiana nazwy komputera
hwconfig –
ipcalc – program umożliwiający operacje na adresach ip
irc – klient irc
joe – edytor tekstów
join – specjalne sklejanie plików
kernelversion – podaje informacje o wersji używanego kernela
kill – zabijanie procesów
pc – kopiuje plik
ps – zarządzanie procesami
less – przeglądarka tekstów, obustronne przewijanie
lftp – dobry klient ftp
lilo!! – boot manager (Linux Loader)
links – przeglądarka www, świetna obsługa tabel
ln! – tworzy dowiązania symboliczne tzw. linki
loadkeys – ładuje nową mapę klawiatury, np. polską
locate – odpowiednik polecenia where
logout – wylogowanie z konsoli
ls – wyświetla zawartość katalogu
lynx – przeglądarka www
make!! – kompilacja jądra
man – wyświetla podręcznik do programu podanego jako parametr
mesg – włącza i wyłącza reagowanie na wywoływania
mc – menedżer plików: midnight commander
mkdir – tworzy nowy katalog
mkfs!! – formatowanie systemu plików
more – przeglądarka tekstów, przewijanie w dół
mush – program pocztowy
mutt – rozbudowany program pocztowy i news
more – program do wyświetlania pliku na ekranie
mount!! – podłącza (montuje) systemy plików / napędy
mv – zmienia nazwe/przenosi plik
newgrp! – zmiana grupy aktualnego użytkownika
pack – prosty kompresor
passwd! – ustawianie hasła
paste – łączy wiersze pliku
pico – dość przyjazny edytor tekstowy
pine – wygodny program pocztowy
ping – wysyła pakiety testowe
procmail – narzędzie zarządzające pocztą
ps – wyświetla informacje o procesach
pwd – wyświetla ścieżkę bieżącego katalogu
quota – sprawdza/ustawia ograniczenie wielkości konta
rm – usuwa pliki
rmdir – usuwa pusty katalog
rpm!! – instaluje pakiety rpm
scp – kopiowanie zdalne plików szyfrowane
screen – otwiera nowe okna konsoli podczas pracy zdalnej
sed – edytor strumieniowy, umożliwia w zaawansowaną podmianę ciągu
setenv! – ustawia zmienna lokalna/globalna
setterm – ustawienia konsoli
sort – sortuje linie w pliku
split – tworzy jeden lub wiecej plikow z pliku wejsciowego
ssh – bezpieczny telnet tzw. secure shell
startx!! – uruchamia x-window
su!! – umożliwia prace z uprawnieniami roota
slrn – dobry klient news i pocztowy
tail – wyświetlanie końcowej części pliku
talk – wywołuje adresata na wspólną pogawędkę w czasie rzeczywistym
tar – archiwizer plików, poprawia skuteczność kompresji kompresora jak:
gzip, bzip2
np.1: tar -cz ./katalog/ >archiwum.tar.gz
np.2: tar –use-compress-program=bzip2 -c ./katalog/ >archiwum.tar.bz2
telnet – klient telnet
tin – klient poczty i news
top – wyswietla obciazenie procesora przez poszczegolne procesy
touch – uaktualnia datę pliku
tr –
umount!! – odłącza systemy plików / napędy
uniq –
unpack – rozpakowuje pliki spakowane poprzez 'pack’
unzip – rozpakowuje pliki .zip
np.: unzip -o -u plik.zip    rozpakuje do bierzącego katalogu, bez potwierdzania nadpisze stare
uptime – mowi jak dlugo jest uruchomiony komputer
w – wyświetla „kto co robi”
wc – raportuje ilość linii, słów, znaków w wyspecyfikowanych plikach
wget – ściągacz plików, obsluga ftp, http
np.: wget -r -l1 -A gif,jpg http://programy.com/lista.html
where – podaje ścieżke poszukiwanego programu
whereis – inna nazwa polecenia where
which – podaje sciezke do szukanego programu
who – informuje o zalogowanych użytkownikach
whodo – co kto robi
write – wysyłanie jednorazowo wiele linii tekstu na ekran adresata
vi – skomplikowany edytor tekstowy, dostępny w każdej odmianie unixów

 

 

Mini stacja czujników online

Spakowany sketch Arduino: Pobierz sketch Mini stacja czujników online

Wymagana biblioteka (z odpowiednimi przeróbkami): EtherCard

Podłączenie:

  • Moduł Ethernet pod złącze ICSP na Arduino (MOSI – SI, MISO – SO, SCK – SCK, GND-GND), pin CS do pinu 8, VCC do 3,3V
  • DHT11 wyjście pod pin 12
  • MQ7 wyjście analogowe pod pin A0
  • Fotorezystor pomiędzy VCC a pin A1, który ściągamy do masy rezystorem 1KΩ
  • Moduł Ethernet podpięty do routera

Aby odnaleźć IP, pod którym widnieje nasz układ proponuję zalogować się do panelu administracyjnego routera, u mnie była to zakładka/okienko „DHCP Client List”. Odczyt z czujnika tlenku węgla w normalnych warunkach wynosi poniżej 50 (<250mV). Potraktowanie go jakimikolwiek oparami powoduje szybką reakcję i skok napięcia powyżej 1V (przy bliskim rozpyleniu).