1. Montar o cd na pasta /media/cdrom: $ mount /dev/cdrom /media/cdrom
2. Caso necessário, executar o comando para atualizar a lista de pacotes do CD: $ apt-cdrom -m add
3. Instalar pelo apt-get, por exemplo: $ apt-get install lamp-server^
Variedades sobre desenvolvimento, eletrônica e afins. Ou: minha memória de longo prazo.
Translate
terça-feira, 3 de setembro de 2013
domingo, 16 de junho de 2013
Bootloader no Arduino Minimal Shrimp com USBAsp
Utilizar os pinos 1-RESET, 8/22-GND, 7/21/20-VCC, 19-SCK, 18-MISO, 17-MOSI.
No Arduino Minimal Shrimp Simples funcionou perfeitamente.
Driver: http://www.fischl.de/usbasp/
Testado no Win 8.1
---------------
Tentando programar um ATMega8, não deu certo, de primeira. Tentarei depois. Lembrando que o USBasp é mantido por um ATMega8-16AU
---------
Consegui programar o bootloader e fazer upload do programa, tudo com o USBasp.
Ligando conforme o esquema acima, consegui carregar o bootloader com o avrdudess (http://blog.zakkemble.co.uk/avrdudess-a-gui-for-avrdude/) uma GUI para o avrdude. Basta arrastar o bootloader (arduino-1.5.5-r2\hardware\arduino\avr\bootloaders\atmega8\ATmegaBOOT.hex) para o campo Flash), configurar programmer (USBASP), porta, baud rate (19200), bit clock (1.5), MCU (atmega8) e clicar em Program!.
Utilizando o Arduino IDE 1.5.5-r2, caso utilize o "Carregar usando programador", ele carregará o programa sem bootloader (substituirá). Acertar a Placa para "Arduino NG or older", o processador para "atMega8", a porta para a utilizada pelo programador, o programador para "USBasp".
Caso queira carregar pelo Arquivo/Carregar, o arquivo contido no "Arquivo/Preferências/Mais preferências podem ser editadas diretamente no arquivo..." deve ser apagado para ser recriado ou corrigido. Não sei ao certo, mas aparentemente ele somente altera o parâmetro "programmer=arduino:usbasp". Existe um problema no arquivo de configuração, que força o uso do Arduino como programador, mesmo estando o USBasp selecionado. Para corrigir, basta editar o arquivo arduino-1.5.5-r2\hardware\arduino\avr\boards.txt, localizando e alterando a linha :
...
atmegang.name=Arduino NG or older
atmegang.upload.tool=avrdude
atmegang.upload.protocol=arduino <<<======
atmegang.upload.speed=19200
atmegang.bootloader.tool=avrdude
....
para
atmegang.upload.protocol=usbasp
Deve entrar novamente na IDE para efetivar e poderá carregar o programa.
Outra observação é que o Low fuse original (L) 0xE1 trabalha em 1 MHz, deixando o microcontrolador muiiiiitoooo lento. Alterei para 0xE4, fazendo-o trabalhar a 8 MHz utilizando o clock interno, sem precisar de cristal. Muittooo mais rápido. Dá para notar no exemplo Blink. Caso queira utilizar um cristal externo de 16 Mhz, pode alterar para 0xEF. Outros cálculos disponíveis em http://www.engbedded.com/fusecalc. Não é simples, mas estudando um pouco se consegue usar.
====================================
Atualização: em Julho/2020 voltei a utilizar o USBasp, mas sofri um pouco para conseguir utilizá-lo no Windows 10 64 1909.
A solução foi baixar o Zadig (https://zadig.akeo.ie/) e substituir o driver do USBasp pelo libusbK, o que funcionou perfeitamente para o ATtiny85 em 19200/1.5 Mhz no AVRDudess.
Atualização: em Agosto 2020 fiz a carga do bootloader no atmega8 e atmega328p usando a protoboard da foto. Vários problemas de driver do USBasp. Vá almoçar volte e teste de novo...
Ia atualizar o firmware do USBasp, mas funcionou antes disso. Feito com Arduino IDE.
1-RESET, 8-GND, 7-VCC, 19-SCK, 18-MISO, 17-MOSI. 9 e 10 com Cristal de 16 Mhz
Outra observação é que o Low fuse original (L) 0xE1 trabalha em 1 MHz, deixando o microcontrolador muiiiiitoooo lento. Alterei para 0xE4, fazendo-o trabalhar a 8 MHz utilizando o clock interno, sem precisar de cristal. Muittooo mais rápido. Dá para notar no exemplo Blink. Caso queira utilizar um cristal externo de 16 Mhz, pode alterar para 0xEF. Outros cálculos disponíveis em http://www.engbedded.com/fusecalc. Não é simples, mas estudando um pouco se consegue usar.
====================================
Atualização: em Julho/2020 voltei a utilizar o USBasp, mas sofri um pouco para conseguir utilizá-lo no Windows 10 64 1909.
A solução foi baixar o Zadig (https://zadig.akeo.ie/) e substituir o driver do USBasp pelo libusbK, o que funcionou perfeitamente para o ATtiny85 em 19200/1.5 Mhz no AVRDudess.
Atualização: em Agosto 2020 fiz a carga do bootloader no atmega8 e atmega328p usando a protoboard da foto. Vários problemas de driver do USBasp. Vá almoçar volte e teste de novo...
Ia atualizar o firmware do USBasp, mas funcionou antes disso. Feito com Arduino IDE.
1-RESET, 8-GND, 7-VCC, 19-SCK, 18-MISO, 17-MOSI. 9 e 10 com Cristal de 16 Mhz
sábado, 15 de junho de 2013
Arduino Minimo
O resto dos materiais: 2x22pF Capacitor, 1x100nF Capacitor, 1x10KΩ Resistor
Atualização Agosto/2020: montei o ATmega8 no mesmo esquema, mas com reset manual (switch no pino reset com ground), e o usb serial é o CH340G. A carga foi tranquila, observando que frequentemente há uma demora maior para mostrar a mensagem de que está sendo feito o carregamento do programa. O botão deve ser mantido pressionado ao início da compilação e solto quando aparecer a mensagem Carregando. Como a versão mudou muito desde a publicação inicial deste post (era a versão 0023, e hoje 1.8.13) a versão da placa é a Arduino NG para o ATmega8.
quinta-feira, 6 de junho de 2013
Pinagem: USBASP ligado no Arduino via ICSP
Difícil achar a pinagem clara do ICSP na placa do arduino. Mas o esquema é o seguinte: o ponto branco é a referência para o pino 1. Assim temos os 3 pinos consecutivos:
- 1-MISO
- 2-SCK
- 3-RST
- 4-VCC
- 5-MOSI
- 6-GND
Lembrando que a imagem está espelhada na placa, pois é a posição como conector.
terça-feira, 4 de junho de 2013
Breakout mjkdz LCD 1602 no Arduíno
- LCD 5V-5V Arduino
- LCD SDA-A4 Arduino
- LCD SCL-A5 Arduino
- LCD GND-GND Arduino
Atenção: caso ocorram os seguintes problemas na compilação:
...\LiquidCrystal_I2C.cpp: In member function 'void LiquidCrystal_I2C::expanderWrite(uint8_t)':
...\LiquidCrystal_I2C.cpp:243: error: 'class TwoWire' has no member named 'write'
alterar a linha 243 do arquivo LiquidCrystal_I2C.cpp, trocando o write por send:
de
Wire.write((int)(_data) | _backlightval);
para
Wire.send((int)(_data) | _backlightval);
domingo, 2 de junho de 2013
Atualização do arquivo de tradução GroceryCRUD 1.3.3
Exemplo para iniciantes do GroceryCRUD
Do site do GroceryCRUD, um resumo do tutorial para iniciantes:
Executar a criação da tabela e preenchimento de registros de exemplo abaixo:
CREATE TABLE IF NOT EXISTS `employees` ( `employeeNumber` int(11) NOT NULL AUTO_INCREMENT, `lastName` varchar(50) NOT NULL, `firstName` varchar(50) NOT NULL, `extension` varchar(10) NOT NULL, `email` varchar(100) NOT NULL, `officeCode` varchar(10) NOT NULL, `file_url` varchar(250) CHARACTER SET utf8 NOT NULL, `jobTitle` varchar(50) NOT NULL, PRIMARY KEY (`employeeNumber`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1703 ; INSERT INTO `employees` (`employeeNumber`, `lastName`, `firstName`, `extension`, `email`, `officeCode`, `file_url`, `jobTitle`) VALUES (1002, 'Murphy', 'Diane', 'x5800', 'dmurphy@classicmodelcars.com', '1', '', 'President'), (1056, 'Patterson', 'Mary', 'x4611', 'mpatterso@classicmodelcars.com', '1', '', 'VP Sales'), (1076, 'Firrelli', 'Jeff', 'x9273', 'jfirrelli@classicmodelcars.com', '1', '', 'VP Marketing'), (1088, 'Patterson', 'William', 'x4871', 'wpatterson@classicmodelcars.com', '6', '', 'Sales Manager (APAC)'), (1102, 'Bondur', 'Gerard', 'x5408', 'gbondur@classicmodelcars.com', '4', 'pdftest.pdf', 'Sale Manager (EMEA)'), (1143, 'Bow', 'Anthony', 'x5428', 'abow@classicmodelcars.com', '1', '', 'Sales Manager (NA)'), (1165, 'Jennings', 'Leslie', 'x3291', 'ljennings@classicmodelcars.com', '1', '', 'Sales Rep'), (1166, 'Thompson', 'Leslie', 'x4065', 'lthompson@classicmodelcars.com', '1', '', 'Sales Rep'), (1188, 'Firrelli', 'Julie', 'x2173', 'jfirrelli@classicmodelcars.com', '2', 'test-2.pdf', 'Sales Rep'), (1216, 'Patterson', 'Steve', 'x4334', 'spatterson@classicmodelcars.com', '2', '', 'Sales Rep'), (1286, 'Tseng', 'Foon Yue', 'x2248', 'ftseng@classicmodelcars.com', '3', '', 'Sales Rep'), (1323, 'Vanauf', 'George', 'x4102', 'gvanauf@classicmodelcars.com', '3', '', 'Sales Rep'), (1337, 'Bondur', 'Loui', 'x6493', 'lbondur@classicmodelcars.com', '4', '', 'Sales Rep'), (1370, 'Hernandez', 'Gerard', 'x2028', 'ghernande@classicmodelcars.com', '4', '', 'Sales Rep'), (1401, 'Castillo', 'Pamela', 'x2759', 'pcastillo@classicmodelcars.com', '4', '', 'Sales Rep'), (1501, 'Bott', 'Larry', 'x2311', 'lbott@classicmodelcars.com', '7', '', 'Sales Rep'), (1504, 'Jones', 'Barry', 'x102', 'bjones@classicmodelcars.com', '7', '', 'Sales Rep'), (1611, 'Fixter', 'Andy', 'x101', 'afixter@classicmodelcars.com', '6', '', 'Sales Rep'), (1612, 'Marsh', 'Peter', 'x102', 'pmarsh@classicmodelcars.com', '6', '', 'Sales Rep'), (1619, 'King', 'Tom', 'x103', 'tking@classicmodelcars.com', '6', '', 'Sales Rep'), (1621, 'Nishi', 'Mami', 'x101', 'mnishi@classicmodelcars.com', '5', '', 'Sales Rep'), (1625, 'Kato', 'Yoshimi', 'x102', 'ykato@classicmodelcars.com', '5', '', 'Sales Rep'), (1702, 'Gerard', 'Martin', 'x2312', 'mgerard@classicmodelcars.com', '4', '', 'Sales Rep');
Criar o arquivo Drive:\xampp\htdocs\codeigniter\application\views\our_template.php abaixo:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8" /> <?php foreach($css_files as $file): ?> <link type="text/css" rel="stylesheet" href="<?php echo $file; ?>" /> <?php endforeach; ?> <?php foreach($js_files as $file): ?> <script src="<?php echo $file; ?>"></script> <?php endforeach; ?> <style type='text/css'> body { font-family: Arial; font-size: 14px; } a { color: blue; text-decoration: none; font-size: 14px; } a:hover { text-decoration: underline; } </style> </head> <body> <!-- Beginning header --> <div> <a href='<?php echo site_url('examples/offices_management')?>'>Offices</a> | <a href='<?php echo site_url('examples/employees_management')?>'>Employees</a> | <a href='<?php echo site_url('examples/customers_management')?>'>Customers</a> | <a href='<?php echo site_url('examples/orders_management')?>'>Orders</a> | <a href='<?php echo site_url('examples/products_management')?>'>Products</a> | <a href='<?php echo site_url('examples/film_management')?>'>Films</a> </div> <!-- End of header--> <div style='height:20px;'></div> <div> <?php echo $output; ?> </div> <!-- Beginning footer --> <div>Footer</div> <!-- End of Footer --> </body> </html>Criar o arquivo Drive:\xampp\htdocs\codeigniter\application\controllers\main.php abaixo:<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed'); class Main extends CI_Controller { function __construct() { parent::__construct(); /* Standard Libraries of codeigniter are required */ $this->load->database(); $this->load->helper('url'); /* ------------------ */ $this->load->library('grocery_CRUD'); } public function index() { echo "<h1>Welcome to the world of Codeigniter</h1>";//Just an example to ensure that we get into the function die(); } public function employees() { $this->grocery_crud->set_table('employees'); $output = $this->grocery_crud->render(); $this->_example_output($output); } function _example_output($output = null) { $this->load->view('our_template.php',$output); } } /* End of file main.php */ /* Location: ./application/controllers/main.php */Chamar a página http://localhost/codeigniter/index.php/main/employees, e, estando os serviços Apache e Mysql funcionando e o restante da configuração ok, teremos:
Mudando a linguagem do GroceryCRUD
Para alterar a linguagem dos botões, títulos, etc do GroceryCRUD edite o arquivo D:\xampp\htdocs\codeigniter\application\config\grocery_crud.php. Procure pelo parâmetro $config['grocery_crud_default_language'] e deixe como:
$config['grocery_crud_default_language'] = 'pt-BR.portuguese';
sexta-feira, 31 de maio de 2013
Grocery CRUD 1
Verificando se o GroceryCRUD está ok:
- carregue o módulo de administração PHPmyadmin, no painel de controle do Xampp, botão Admin do Mysql e escolha o bando de dados mysql;
- Execute o SQL do conteúdo do arquivo Drive:\xampp\htdocs\codeigniter\examples_database.sql - serão criadas as tabelas e os registros de teste no banco de dados.
- no browser, carregue a página: http://localhost/codeigniter/index.php/examples
- clicando nos itens, será mostrada a grade de consulta do item selecionado.
Editor PHP
Appcelerator aptana
Permite criar projetos PHP para edição e até testes.
Uma dica é localizar a pasta htdocs na guia Project Explorer, clicar com botão direito e escolher Promote to Project, que será guardado no Workspace facilitando a navegação para edições. Utilizei o Aptana Studio 3, build: 3.4.0. Excelente freeware. site
CodeIgniter - PHP Application Development Framework
Iniciei há alguns dias o uso do CodeIgniter, um kit de ferramentas para PHP. Promete a aceleração do desenvolvimento em PHP, com um excelente desempenho e ainda permite a utilização do Design Patern MVC para desenvolvimento. Na verdade, comecei a utilização devido à necessidade de agilização no desenvolvimento de rotinas CRUD com o GroceryCRUD, que utiliza o Framework CodeIgniter.
A dor de cabeça que me fez perder dois dias foi a configuração correta do CodeIgniter no Xampp:
A Database Error Occurred
Error Number: 1046
No database selected
SELECT * FROM (`users`)
Filename: D:\xampp\htdocs\codeigniter\system\database\DB_driver.php
Line Number: 330
Descompactando o Codeigniter para a pasta Drive:\Xampp\htdocs\codeigniter\, a única configuração que tive que fazer foi em Drive:\xampp\htdocs\codeigniter\application\config\database.php.
Mantendo tudo original no Xampp (mysql sem senha, nesse caso), a alteração foi a seguinte:
$db['default']['hostname'] = 'localhost';
$db['default']['username'] = 'root';
$db['default']['password'] = '';
$db['default']['database'] = 'mysql';
$db['default']['dbdriver'] = 'mysql';
$db['default']['dbprefix'] = '';
simplesmente foi colocar o username e database corretos, pois o restante está como no original.
Feito isso, o erro desapareceu e um dos tutoriais que fazia acesso ao Mysql funcionou perfeitamente de primeira.
quinta-feira, 30 de maio de 2013
Portable Apps
Assinar:
Postagens (Atom)