====== Juhtmevaba programmeerimine ====== Kauglabori programmeerimise lahenduse tehniline kirjeldus ja kasutusjuhend. ===== Kiirjuhend ===== **Robotil** * Laadida Wireless_bootloader HapyJTAG2 programmiga * Kontrollida FuseBit-s Boot vector enabled (hlinit keerab selle maha) * Fusebits: 90 F7 * Kontrollida XBee konfiguratsiooni **Kauglabori serveris** Koodi laadimine: ./robocop -r [roboti number] -f [hex faili nimi] ./robocop -r 3 -f atmega2561_demo.hex Reseti tegemine ./robocop -r [roboti number] -R ./robocop -r 3 -R ADC sisendite lugemine: ./robocop -r [roboti number] -a -i [intervall sek] -n [lugemite arv] ./robocop -r 2 -a -i 1 -n 10 **Veebiserveris** ===== Detailne juhend ===== RoboCop on Linuxi keskkonnas töötav kauglabori robotite haldamise kliendiprogramm, mis kasutab vajadusel RoboLoader-it ja RoboCharger-it. RoboLoader sisaldab bootloaderit ja Robocharger laadimisprogrammi. {{:et:distancelab:robotite_haldamine.png?330|}}\\ \\ Mõned RoboCop programmi võimalused * Uue programmi laadimine robotile * XBee viikude seadistamine * ADC andmete lugemine konsoolis ja andmete salvestamine kasutaja arvuti kõvakettale .txt formaadis * Roboti raadiomoodulu konfiguratsiooni kontrollimine (juhtmevaba) * Roboti raadiomooduli konfigureerimine (juhtmevaba) * Roboti oleku jälgimine, laadima saatmine * Kauglabori veebikeskkonnas robotit puudutava info uuendamine\\ \\ RoboLoader ehk juhtmevaba bootloader * Arvestab raadiosidest tulenevate võimalike probleemidega * Saadab andmeid blokkide kaupa * Kontrollib laetud andmeblokkide õigsust kontrollsummaga * Vea korral kasutab andmebloki kordussaatmist * Omab mõistlikke ooteaegu\\ \\ RoboCharger ehk juhtmevaba laadimisprogramm * Sisaldab loogikat laadimisjaama otsimiseks * Tuvastab laadimise alguse * Tuvastab laadimise lõpu * Vabastab laadimisjaama\\ {{:et:distancelab:skeem.jpg?330|}} **Robocopi oleku kontroll** *Pärib baasist robotite loetelu, olekud, seadistused ... *Kontrollib iga roboti aku pinget, temperatuuri *Vajadusel muudab roboti olekut (DIO4) active -> charge *Saadab roboti laadima, laeb robotisse RoboCharger programmi *Muudab roboti olekut Kauglabori veebikeskkonnas *Salvestab (ADC) parameetrid, analüüsi (graafikute) tarbeks. **RoboCharger** *Otsib / sõidab laadimisjaama *Tuvastab laadimise alguse * *Peab arvet aja üle (igaks juhuks, kui laadimine ei lõpe) *Kontrollib akude temperatuuri (seda teeb ka RoboCop) *Tuvastab laadimise lõpu, vabastab laadimisjaama *Muudab roboti oleku charge -> active ==== RoboCopi kasutamine ==== Usage: robocop [options] General options:\\ -r remote 16 bit address\\ -f flash robot\\ -R reset robot\\ -m maintenance (check batteries)\\ GPIO options\\ -g gpio num\\ -v gpio value (0|1)\\ ADC options\\ * -a read adc0 value\\ * -n read number of samples\\ * -i interval between samples\\ * -A all ADC's\\ Diagnostics options\\ -c check remote XBee configuration\\ -F fix remote XBee configuration\\ -m test MySQL connectivity\\ **Koodi laadimine** -r3 = roboti 16 bitiine aadress ./robocop -r [roboti number] -f [hex faili nimi] ./robocop -r 3 -f atmega2561_demo.hex \\ **ADC kasutamine** Aku pinge pärimine ./robocop -r [roboti number] -a ./robocop -r 3 -f -a \\ Aku pinge nomitoorimine ./robocop -r [roboti number] -a -n [näitude arv] -i [intervall (1/10 s)] ./robocop -r 3 -a -n 100 -i 1 Konsooli edastatakse 100 korda iga 0,1 sekundi järel aku pinge. \\ ADC kõikide kanalite näidud ./robocop -r [roboti number] -a -n [näitude arv] -i [intervall (1/10 s)] -A ./robocop -r 3 -a -n 100 -i 1 -A \\ **Muud toimingud**\\ \\ XBee seadistuse kontroll ./robocop -r [roboti number] -c ./robocop -r 3 -c \\ XBee seadistuste parandamine ./robocop -r [roboti number] -F ./robocop -r 3 -F \\ Robotile reseti tegemine ./robocop -r [roboti number] -R ./robocop -r 3 -R \\ GIPO viikude seadistamine ./robocop -r [roboti number] -g [viigu number] -v [1|0] ./robocop -r 3 -g 4 -v 1 g4 tähendab XBee viiku DIO4 ja v 1 tähendab et see viik määrati kõrgeks **Locking** Mitme RoboCop programmi korraga kasutamine ei ole probleem. Oodatakse viisakalt järjekorras, kuni võtk vabaneb või aeg otsa saab. ===== Probleemid-Lahendused ===== \\ **Ei saa juhtmevabalt programmeerida** * Lae bootloader kontrollerile uuesti * Kontrolli et fusebit oleks 0x90 0xF7