14. června 2012

ATiny10 - Programování

Nejmenší mikrokontrolér od Atmelu - ATtiny10 se vyrábí už delší dobu. Disponuje 1024b paměti flash a 4 použitelnými IO piny (včetně AD převodníku, PWM) , programování je použito rozhraní TPI. Na internetu se objevilo několik návodu jak tento mikrokontrolér naprogramovat až v poslední době (samozřejmě, že je možné použít komerční prograátory, které disponují TPI rozhraním - ASIX Presto apod.). Jednou možností je využití Arduina, dále pak existuje návod přímo na na USB programátor na AVRFreaks. Já jsem zvolil poslední nejjednodušší možnost a to využití převodníku USB na sériovou linku od FTDI (FT232R), který jsem měl doma. Vycházel jsem z toho návodu na internetu.  Připojení k procesoru k převodníku je na následujícím obrázku:

K prvním pokusům jsem použil  redukci ze SOT23-6 na DIL. Při programování je třeba používat 5V napájení. Při 3.3V nejde procesor naprogramovat.



K programování je třeba mít nainstalované Avrdude 5.11 (je k dispozici pro WIN i Linux). Do avrdude.conf přidáme novou definici programátoru:


programmer
  id    = "dasaftdi";
  desc  = "FTDI serial port banging, reset=rts sck=dtr mosi=txd miso=cts";
  type  = serbb;
  reset = ~7;
  sck   = ~4;
  mosi  = ~3;
  miso  = ~8;
;

A pak už můžeme spustit programování:

sudo avrdude -c dasaftdi -P /dev/ttyUSB0 -p t10 -U flash:w:blik.hex


Programování je poměrně pomalé, ale to je daň za využití převodníku bit bang módu.
Zatím jsem nevyřešil použití pinu reset jako IO pinu. Pokud tento pin pomocí konfiguračních pojistky změníme na IO pin, je třeba pro další programovaní je použít 12Vna tomto pinu.
Plošný spoj na SOT23-6 na DIL nebo i destičku se zapájeným procesorem je možné zakoupit na hamshop.cz.

10. června 2012

Univerzální deska s relé

Tato deska s 8 relé vznikla pro Raspberry Pi a  USB-IO. Zapojení je velice jednoduché. Deska obsahuje 8 SMD LED pro signalizaci a 8 relé 250V/10A s jedním přepínacím kontaktem a napájením 5V.  Výstupy relé jsou vyvedeny na svorkovnice. Plošný spoj je velký 50x100mm. Připojení vstupů je realizováno pomocí pin lišty.





Schéma zapojení

Plošný spoj
Seznam součástek:
R1-R8 - 1k SMD 0805
T1-T8 - BC847A SMD
LED1-LED8 - SMD LED červená 0805
REL1- REL8 - HF3FD

Deska v akci propojená s Raspberry Pi
Stavebnice bude k dispozici během příštího týdne na hamshop.cz.

5. června 2012

Raspberry Pi - ovládáme GPIO přes web

Raspberry Pi má k dispozici 8 volně přístupných GPIO portů. které je možné ovládat. Na následujícím obrázku jsou vybarveny zeleně. 
Pozor !! GPIO jsou 3.3V a netolerují 5V !! Maximální proud je 16mA!!
Bylo by jich možné změnou konfigurace využít víc. Při oživování  jsem vycházel z toho německého návodu



Nejprve je třeba nainstalovat ligthhttpd (nebo apache ) server a PHP5:
sudo groupadd www-data
sudo apt-get install  lighttpd
sudo apt-get install php5-cgi

sudo lighty-enable-mod fastcgi
sudo adduser pi www-data
sudo chown -R www-data:www-data /var/www



Do konfigurace lighthttpd  /etc/lighttpd/lighttpd.conf
 je třeba přidat:

fastcgi.server = ( ".php" => ((
"bin-path" => "/usr/bin/php5-cgi",
"socket" => "/tmp/php.socket"
)))

Nyní je třeba restartovat lighthttpd:
sudo /etc/init.d/lighttpd force-reload


Tím nám běží webserver s PHP.

Nyní se dostaváme k vlastnímu ovládání GPIO.  Porty můžeme používat jako vstupní i výstupní.  Vše třeba dělat jako root.
Nejprve je třeba port zpřístupnit:
echo "17" > /sys/class/gpio/export
Pak nastavíme jestli je to vstup  (in)  nebo výstup (out):
echo "out" > /sys/class/gpio/gpio17/direction
Hodnotu nastavíme takto:

echo 1 > /sys/class/gpio/gpio17/value
Stav vyčteme:
cat /sys/class/gpio/gpio17/value


Tímto způsobem můžeme GPIO ovládat přímo z příkazové řádky. Pokud budeme využívat pro ovládání www rozhraní je třeba všem portům nastavit práva tak aby je mohl  ovládat i jiný uživatel než root.


chmod 666 /sys/class/gpio/gpio17/value
chmod 666 /sys/class/gpio/gpio17/direction

Toto je třeba udělat pro všechny porty, které chceme použít. Součástí balíčku kde je www rozhraní je script, který to udělá za nás. Balíček je možné stáhnout zde.
Scripty rozbalíme do /var/www.
Spustíme script na nastavení GPIO:
sudo ./gpio.sh 

Nyní můžeme spustit prohlížeč a zadat adresu našeho Raspberry Pi a mělo by se objevit následující rozhraní:


Scripty si můžeme upravit dle vlastních potřeb.

4. června 2012

Raspberry Pi

Tak mi po několika měsících čekání konečně dorazilo Raspberry Pi.  Raspberry Pi je velmi levný počítač na platformě ARM.


  • CPU 700MHz ARM11
  • 256MB SDRAM
  • OpenGL ES 2.0
  • 1080p30 H.264 high-profile decode
  • Composite / HDMI výstup
  • USB 2.0
  • SD/MMC/SDIO paměťový slot
Bohužel první série se vyprodala během několika dní. Snad budou k dispozici další kusy. Ke stažení na Raspbery Pi je  OS Linux. Vyzkoušel jsem i dodávené grafické rozhraní, ale moc svižné to není, i když film  nebo MP3 to přehrálo. Využití vidím spíše v automatizaci a ovládání různých zařízení po síti.


Zatím se mi podařilo na Raspberry PI zprovoznit zde již popsané univerzální USB IO. Určitě budu ještě experimentovat s GPIO, kterou jsou dostupné přímo na desce a sériovými porty. Mezi amatéry se už objevují další uživatelé jako OK1HRA, OK4BX.